修复或改进的逻辑

此页面列出了火卫一中所有修复或增强的不那么重要的逻辑。

Bug修复与其它

  • Fixed the bug when retinting map lighting with a map action corrupted light sources.

  • 心控对于可以部署的载具, 部署后不再会永久改变所属方。

  • 修复了当单位已经死亡却还在地图上时(例如沉没,坠毁,死亡动画等)还能再次死亡的问题。

  • 修复了隐形的辐射工兵无法发射部署武器的问题。

  • 修复了被超时空武器冻结的单位不能被正确抹消的问题,并不会再生成错误。

  • SHP碎片可以通过Shadow控制阴影。

  • 允许使用TileSet 255及以上,不再会使东北到西南方向的桥梁不可维修。

  • 在重新开始游戏的对话框中增加了一个“读取游戏”按钮

image
VXL炮台侧偏移,在Breaking Blue project中

  • TurretOffset现在可以像FLH(TurretOffset=F,LTurretOffset=F,L,H),一样指定,一个数为前后,两个数的第二个数为左右,三个数的第三个数为上下。

  • Damage=1InfiniteMindControl现在可以控制多于1个单位。

  • Fighter=no的飞机或扫射型飞机(即抛射体ROT小于2)现在会在每次攻击时都读取Burst,而非仅第一次。

  • AnimList.PickRandom取代EMEffect,可以使弹头爆炸时随机播放动画。

  • 修复了脚本动作“移动到坐标”使用先前游戏中的残留计算的问题。

  • 路径点上限由702增加至2147483647。

  • 地图触发动作125将建筑建造于...现在可选是否播放建造动画 (需要自行修改fadata.ini

  • 修复了DeployFire逻辑,使DeployFireWeaponFireOnce,及停止指令可以正常运作。

  • 修复了DebrisMaximums(产生的碎片不再能超过指定的最大值)。出于稳定性考量,只有当DebrisMaximums设定的值多于1个的时候才会激活此修复。

  • 修复了Q/W快捷键在失败摆放之后不会再把建造完成的建筑放到鼠标上的问题。

  • 可反部署的建筑,在反部署时不再会触发EVA_NewRallypointEstablished语音。

  • 修复了Naval=yes会无视WaterBound=no强制将建筑限制在水面上的问题。

image
Nod炮台保持攻击指令在C&C: Reloaded

  • DeployToFire的载具在部署后会保持它们之前的攻击目标。

  • 修复了激光绘制的代码以允许所属方颜色绘制模式下更粗的激光。

  • DeathWeapon现在会正确引爆了。

    • 但是仍有部分设置被忽略,如PreImpactAnim(Ares功能),未来可能会改。

  • 对于使用Burst的武器来说,效果如激光不再会绘制在错误的位置上。

  • 全局变量(rulesmd.ini中的VariableNames)与局部变量(地图中的VariableNames)均扩展为无上限的了。

  • 现在可以用XDrawOffset为动画设置X轴偏移量了。

  • IsSimpleDeployer units now only play DeploySound and UndeploySound once, when done with (un)deploying instead of repeating it over duration of turning and/or DeployingAnim.

Animations

Ore stage threshold for HideIfNoOre

  • You can now customize which growth stage should an ore/tiberium cell have to have animation with HideIfNoOre displayed. Cells with growth stage less than specified value won’t allow the anim to display.

In artmd.ini:

[SOMEANIM]               ; AnimationType
HideIfNoOre.Threshold=0  ; integer, minimal ore growth stage

Layer on animations attached to objects

  • You can now customize whether or not animations attached to objects follow the object’s layer or respect their own Layer setting. If this is unset, attached animations use ground layer.

In artmd.ini:

[SOMEANIM]                 ; AnimationType
Layer.UseObjectLayer=      ; boolean

Vehicles

Deploy direction for IsSimpleDeployer vehicles & deploy animation customization

  • DeployDir can be used to set the facing the vehicle needs to turn towards before deploying if it has DeployingAnim set. This is works the same as Ares flag of same name other than allowing use of negative numbers to disable the direction-specific deploy and that it only applies to units on ground. If not set, it defaults to [General] -> DeployDir.

  • In addition there are some new options for DeployingAnim:

    • DeployingAnim.KeepUnitVisible determines if the unit is hidden while the animation is playing.

    • DeployingAnim.ReverseForUndeploy controls whether or not the animation is played in reverse for undeploying.

    • DeployingAnim.UseUnitDrawer controls whether or not the animation is displayed in the unit’s palette and team colours.

rulesmd.ini中:

[SOMEVEHICLE]                          ; VehicleType
DeployDir=                             ; integer, facing or a negative number to disable direction-specific deploy
DeployingAnim.KeepUnitVisible=false    ; boolean
DeployingAnim.ReverseForUndeploy=true  ; boolean
DeployingAnim.UseUnitDrawer=true       ; boolean

Stationary vehicles

  • Setting VehicleType Speed to 0 now makes game treat them as stationary, behaving in very similar manner to deployed vehicles with IsSimpleDeployer set to true. Should not be used on buildable vehicles, as they won’t be able to exit factories.

通用

自定义超时空属性

image
超时空军团兵和Ronco(英雄)来自YR:New War

  • 现在全局中的超时空属性可以在每个单位中微观定义,默认均为对应的全局标签。

  • 仅对拥有Teleport/Chrono运动模式的单位有效。

rulesmd.ini中:

[SOMETECHNO]            ; TechnoType
WarpOut=                ; Anim (played when Techno warping out)
WarpIn=                 ; Anim (played when Techno warping in)
WarpAway=               ; Anim (played when Techno chronowarped by chronosphere)
ChronoTrigger=          ; boolean, if yes then delay varies by distance, if no it is a constant
ChronoDistanceFactor=   ; integer, amount to divide the distance to destination by to get the warped out delay
ChronoMinimumDelay=     ; integer, the minimum delay for teleporting, no matter how short the distance
ChronoRangeMinimum=     ; integer, can be used to set a small range within which the delay is constant
ChronoDelay=            ; integer, delay after teleport for chronosphere

重新激活失效的[JumpjetControls]

  • 重新激活失效的[JumpjetControls],其中的标签会作为Jumpjet类单位的初始值。

    • 此外,增加了新标签对应空缺的项。

rulesmd.ini中:

[JumpjetControls]
Crash=5.0       ; float
NoWobbles=no    ; boolean

注解

CruiseHeight对应JumpjetHeightWobblesPerSecond对应JumpjetWobblesWobbleDeviation对应JumpjetDeviationAcceleration对应JumpjetAccel。其他对应标签为无Jumpjet前缀的标签。

Jumpjet unit layer deviation customization

  • Allows turning on or off jumpjet unit behaviour where they fluctuate between air and top layers based on whether or not their current altitude is equal / below or above JumpjetHeight or [JumpjetControls] -> CruiseHeight if former is not set on TechnoType. If disabled, airborne jumpjet units exist only in air layer. JumpjetAllowLayerDeviation defaults to value of [JumpjetControls] -> AllowLayerDeviation if not specified.

rulesmd.ini中:

[JumpjetControls]
AllowLayerDeviation=yes         ; boolean

[SOMETECHNO]                    ; TechnoType
JumpjetAllowLayerDeviation=yes  ; boolean

自定义采矿动画

image
自定义采矿动画在Project Phantom

  • 现在可以自定义矿车的在不同矿石上的采矿动画了。

rulesmd.ini中:

[SOMETECHNO]                     ; TechnoType
OreGathering.Anims=              ; list of animations
OreGathering.FramesPerDir=15     ; list of integers
OreGathering.Tiberiums=0         ; list of Tiberium IDs

建筑断电子机坠毁

  • 需要供电 (Powered=yes) 的建筑类子机发射者现在可以在断电时停止瞄准敌人。

  • 而飞行中的子机将会直接坠毁。

rulesmd.ini中:

[SOMESTRUCTURE]       ; BuildingType
Powered.KillSpawns=no ; boolean

地形

自定义矿柱

image
不同种类的矿柱在Rise of the East

  • 在可以指定矿柱 (SpawnsTiberium=yes) 的地形对象生成的矿石种类。”

  • 现在还可以为与标准 3x3 矩形不同的矿石生成区域指定范围。矿石将均匀分布在分布范围内的所有受影响的单元格中。

  • 也可以指定将生成矿石的哪个阶段以及每个矿石生成动画周期中会填充多少单元格。 相应的标签接受一个整数值或两个逗号分隔的值,以允许范围内(含)的随机生长阶段。

rulesmd.ini中:

[SOMETERRAINTYPE]             ; TerrainType
SpawnsTiberium.Type=0         ; tiberium/ore type index
SpawnsTiberium.Range=1        ; integer, radius in cells
SpawnsTiberium.GrowthStage=3  ; single int / comma-sep. range
SpawnsTiberium.CellsPerAnim=1 ; single int / comma-sep. range

Customizable unit image in art

  • Image tag in art INI is no longer limited to AnimationTypes and BuildingTypes, and can be applied to all TechnoTypes (InfantryTypes, VehicleTypes, AircraftTypes, BuildingTypes).

  • The tag specifies only the file name (without extension) of the asset that replaces TechnoType’s graphics. If the name in Image is also an entry in the art INI, no tags will be read from it.

  • By default this feature is disabled to remain compatible with YR. To use this feature, enable it in rules with ArtImageSwap=true.

  • This feature supports SHP images for InfantryTypes, SHP and VXL images for VehicleTypes and VXL images for AircraftTypes.

rulesmd.ini中:

[General]
ArtImageSwap=false  ; disabled by default

In artmd.ini:

[SOMETECHNO]
Image=              ; name of the file that will be used as image, without extension

武器

自定义飞碟激光半径

image

  • 现在可以通过一个新标签来设置飞碟激光半径

rulesmd.ini中:

[SOMEWEAPON]          ; WeaponType
DiskLaser.Radius=38.2 ; floating point value
                      ; 38.2 is roughly the default saucer disk radius

可开关的特斯拉特效

  • 现在可以关闭特斯拉武器的特定电流。注意这只是视觉变化。

rulesmd.ini中:

[SOMEWEAPONTYPE]       ; WeaponType
IsElectricBolt=true    ; an ElectricBolt Weapon, vanilla tag
Bolt.Disable1=false    ; boolean
Bolt.Disable2=false    ; boolean
Bolt.Disable3=false    ; boolean

Projectiles

Customizable projectile gravity

  • You can now specify individual projectile gravity.

    • Set Gravity=0 with an arcing projectile can create a straight trail.

      • Set Gravity.HeightFix=true allows the projectile to hit target which is not at the same height while Gravity=0.

rulesmd.ini中:

[SOMEPROJECTILE]        ; Projectile
Gravity=6.0             ; double
Gravity.HeightFix=false ; boolean