Skip to content

用户界面特性

此页面列出了所有 Phobos 关于用户界面的添加、更改及修复的功能。

Bug 修复与各类杂项

  • 支持加载任何位数的全彩非索引色 PCX 图像。这适用于加载的每个 PCX 文件,包括 Ares 所提供的 PCX 文件使用方式。
  • 你可以通过 -icon 命令行参数(例如 gamemd.exe -icon Resources/clienticon.ico )指定自定义一个绝对或相对路径中的 *.ico 文件作为 gamemd.exe 的图标。
  • 修复了由 Blowfish.dll 导致的 ***FATAL*** String Manager failed to initialize properly 错误,该错误发生在 Blowfish.dll 无法在操作系统中注册时,例如玩家没有管理员权限的情况。在 Phobos 中,如果游戏在系统中找不到已注册的文件,它将不再尝试注册该文件,而是绕过注册直接加载。
  • 修复了非输入法键盘输入以使基础拉丁或拉丁 -1 以外的语言/键盘布局可以正常工作。
  • 修复了被选中建筑上信息提示和显示生产图标的位置和图层问题。
  • 可以通过设置 [AudioVisual] -> TimerBlinkColorScheme 来自定义计时器(超级武器、任务计时等)交替闪烁的配色方案。默认使用 [Colors] 中列出的第三种配色方案。
  • 修复了若生产暂停那么添加或移除单位时侧边栏并不更新队列单位数量的问题。
  • 通过将间隔从 16 毫秒更改为 1 毫秒来提高光标更新频率。

Note

你可在 Phobos 补充资源库 中找到并使用相对原本那个而言拥有更多 Unicode 字符的改进版原版字体。

音频

  • 现在你可以指定在胜利或失败时播放哪些音轨的主题曲。

rulesmd.ini

ini
[SOMESIDE]             ; Side
IngameScore.WinTheme=  ; Soundtrack theme ID
IngameScore.LoseTheme= ; Soundtrack theme ID

战斗界面 UI/UX

允许以百分比形式绘制超武计时器

  • 现在超武冷却计时器可以以百分比的形式绘制。

rulesmd.ini

ini
[AudioVisual]
SuperWeaponTimer.Percentage=false  ; boolean

[SOMESW]                           ; SuperWeaponType, with ShowTimer=yes
ShowTimer.Percentage=              ; boolean

自定义血条显示

image CnC: Final War 中的隐藏血条使用实例

  • 现在可以根据需要关闭血条显示,这会隐藏血条框和血量 Pip。
    • HealthBar.HidePips 仅隐藏血条而不影响其他任何元素。
    • HealthBar.Permanent 将始终显示血条。
    • HealthBar.Permanent.PipScale 将始终显示其他 Pip 及编队序号。

rulesmd.ini

ini
[SOMENAME]                           ; TechnoType
HealthBar.Hide=false                 ; boolean
HealthBar.HidePips=false             ; boolean
HealthBar.Permanent=false            ; boolean
HealthBar.Permanent.PipScale=false   ; boolean

数字化显示

image 使用来自 Phobos 补充资源库 中示例 Shape 文件的默认配置。

  • 现在你可以配置各种类型的数字化计数器来显示科技类型的属性,例如生命值或护盾值,并且可以通过一个新的快捷键开启或关闭。
    • InfoIndex 定义了具体的 InfoType

      • InfoType=Spawns 中,
        • 0 - 存活的子机,
        • 1 - 返航的子机,
        • 2 - 发射中的子机。

      • InfoType=Tiberium 中,
        • 0 - 所有类型,
        • 1 - 第一类矿石,
        • 2 - 第二类矿石,
          ...
      • InfoType=SpawnTimer 中,
        • 0 - 最快的子机,
        • 1 - 第一个子机,
        • 2 - 第二个子机,
          ...
      • InfoType=SuperWeapon 中,
        • 0 - 所有超武中的第一个,
        • 1 - [BuildingType] -> SuperWeapon
        • 2 - [BuildingType] -> SuperWeapon2
        • 3 - [BuildingType] -> SuperWeapons 中的第一个,
          ...
      • InfoType=FactoryProcess 中,
        • 0 - 正在生产的首个产线,
        • 1 - 主/科技建筑生产线,
        • 2 - 副/防御建筑生产线。

    • Anchor.HorizontalAnchor.Vertical 设置显示位置相对于单位中心/选择框的锚点(取决于 Align)。建筑使用 Anchor.Building

      • OffsetOffset.ShieldDelta(后者在护盾激活时使用)可用于进一步修改位置。
    • 默认情况下,值以 当前值/最大值 的格式显示(例如 20/40)。

      • HideMaxValue=yes 将使计数器仅显示当前值(例如 20),默认值取决于科技类型是否为步兵。
      • Percentage=yes 将格式更改为 百分比 %(例如 50%)。
      • ValueAsTimer 控制数值是否以计时器格式显示(例如 0:305:001:00:00)。
    • VisibleToHousesVisibleToHouses.Observer 可以限定特定玩家可见。

      • VisibleInSpecialState 控制当拥有者处于铁幕或被超时空武器冻结时是否仍显示此类信息。
    • 数字可以是自定义的 Shape(.shp) 或使用游戏字体绘制的文本。这取决于是否设置了 Shape

      • Text.ColorText.Color.ConditionYellowText.Color.ConditionRed 允许自定义颜色。Text.Background=yes 将绘制黑色矩形背景。
      • 当使用 Shape时,可以通过 Palette 指定自定义色盘。Shape.Spacing 控制字符之间以像素为单位的间隔。若 Shape.PercentageFrame 设为 true,则仅绘制与总进度百分比相对应的单个帧。
      • 当所有者的血量为健康状态时使用 0-9 帧的数字,黄血时使用 10-19 帧,红血时使用 20-29 帧。对于 /% (或当 ValueAsTimer=true 时的 :)符号,帧序号索引分别为 30-31、32-33、34-35。
    • Offset.ShieldDeltaInfoType=Shield 时默认为 0,-10,其他情况默认为 0,0

    • 建筑的 Shape.Spacing 默认为 4,-2,其他为 4,0

    • ValueScaleDivisor 可用于调整显示值的缩放比例。如果给定的整数大于 1 那么当前值和最大值都将除以该整数。默认为 1(或当 ValueAsTimer=true 时为 15)。

    • DigitalDisplay.Health.FakeAtDisguise 在一个使用伪装的步兵上设为 true,那么它将用被伪装单位的 Strength 来显示最大值。当前值将由该单位当前生命值所占的百分比乘新的最大值计算得出。

    • ShowType 指定了显示所需的条件。注意 idle 仅在 HealthBar.Permanent=yes 时生效。

rulesmd.ini

ini
[DigitalDisplayTypes]
0=SOMEDIGITALDISPLAYTYPE

[AudioVisual]
Buildings.DefaultDigitalDisplayTypes=          ; List of DigitalDisplayTypes
Infantry.DefaultDigitalDisplayTypes=           ; List of DigitalDisplayTypes
Vehicles.DefaultDigitalDisplayTypes=           ; List of DigitalDisplayTypes
Aircraft.DefaultDigitalDisplayTypes=           ; List of DigitalDisplayTypes

[SOMEDIGITALDISPLAYTYPE]                       ; DigitalDisplayType
; Generic
InfoType=Health                                ; Displayed value enumeration (Health|Shield|Ammo|Mindcontrol|Spawns|Passengers|Tiberium|Experience|Occupants|GattlingStage|ROF|Reload|SpawnTimer|GattlingTimer|ProduceCash|PassengerKill|AutoDeath|SuperWeapon|IronCurtain|TemporalLife|FactoryProcess)
InfoIndex=                                     ; integer
Offset=0,0                                     ; integers - horizontal, vertical
Offset.ShieldDelta=                            ; integers - horizontal, vertical
Align=right                                    ; Text alignment enumeration (left|right|center/centre)
Anchor.Horizontal=right                        ; Horizontal position enumeration (left|center/centre|right)
Anchor.Vertical=top                            ; Vertical position enumeration (top|center/centre|bottom)
Anchor.Building=top                            ; Hexagon vertex enumeration (top|lefttop|leftbottom|bottom|rightbottom|righttop)
Percentage=false                               ; boolean
HideMaxValue=false                             ; boolean
VisibleToHouses=owner                          ; Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
VisibleToHouses.Observer=true                  ; boolean
VisibleInSpecialState=true                     ; boolean
ValueScaleDivisor=                             ; integer
ValueAsTimer=false                             ; boolean
ShowType=cursorhover,selected                  ; Displayed ShowType Enumeration (cursorhover|selected|idle|all)
; Text
Text.Color=0,255,0                             ; integers - Red, Green, Blue
Text.Color.ConditionYellow=255,255,0           ; integers - Red, Green, Blue
Text.Color.ConditionRed=255,0,0                ; integers - Red, Green, Blue
Text.Background=false                          ; boolean
; Shape
Shape=                                         ; filename with .shp extension, if not present, game-drawn text will be used instead
Palette=palette.pal                            ; filename with .pal extension
Shape.Spacing=                                 ; integers - horizontal, vertical spacing between digits
Shape.PercentageFrame=false                    ; boolean

[SOMETECHNOTYPE]                               ; TechnoType
DigitalDisplay.Disable=false                   ; boolean
DigitalDisplayTypes=                           ; List of DigitalDisplayTypes
DigitalDisplay.Health.FakeAtDisguise=true      ; boolean

RA2MD.INI

ini
[Phobos]
DigitalDisplay.Enable=false                    ; boolean

Note

可以在 Phobos 补充资源库 找到数字化显示的示例 Shape 文件。

Note

Shape.PercentageFrame 实际上提供了一切静态化数据显示效果的终极解决方案:它允许将当前值通过计算其相对总值的比例来到一个 Shape 文件序列中的特定静态帧的序号,而这一帧上的具体图像是完全由用户自由定义的。

Hint

例如:你可以为单位制作一个圆环形状的血条,这个圆环 Shape 文件的不同帧对应环状血条不同程度的受损状态。

Example of a ring-shaped health bar

静态图像在平面上的排布方式完全由您自由绘制,而不必受制于既定的框架下(例如对于血条来说原先的规则就是固定坐标处开始按固定间隔从固定文件的固定帧获取一个 pip 格点然后横向排布),在本就有限的选项中进行选择。

当然,这只是实现方式,对于在可行的同时兼顾效率,即如何高效绘制您所需要的图样,您仍需自主探索属于您的工作流。

闪烁选中的科技类型

  • 现在可以通过设置一个大于 0 的 SelectionFlashDuration 来让由玩家控制的单位在被选中时可以出现闪烁效果。
    • 此功能可以在 mod 中于 RA2MD.INI 设置 ShowFlashOnSelecting 来由用户自行开关。

rulesmd.ini

ini
[AudioVisual]
SelectionFlashDuration=0    ; integer, number of frames

RA2MD.INI

ini
[Phobos]
ShowFlashOnSelecting=false  ; boolean

低优先级框选

东方崛起 中的矿车不会与作战单位一同被选中

  • 现在你可以为游戏中的对象设置较低的优先级(目前主要影响单位),这意味着如果框选区域内至少有一个正常优先级的单位,则该对象将被排除在框选结果之外。否则它会被正常地选中。适用于带类型选择框选(类型选择快捷键 + 拖动)和普通框选。如果要添加的单位中不存在正常优先级的单位那么 Shift 框选时正常将低优先级单位添加到选中的组中。

rulesmd.ini

ini
[SOMETECHNO]                ; TechnoType
LowSelectionPriority=false  ; boolean
  • 此行为设计为可由用户切换。目前你只能通过客户端或进行手动设置。

RA2MD.INI

ini
[Phobos]
PrioritySelectionFiltering=true  ; boolean

放置预览

放置预览 东方崛起 中使用 50% 透明度的建筑放置预览

  • 现在放置建筑进行建造时可以启用建筑预览。这可以通过在全局设置 [AudioVisual] -> PlacementPreview 和每个建筑上设置 [BuildingType] -> PlacementPreview 来进一步自定义开启。
  • 如果 PlacementPreview 被禁用,PlacementGrid.Translucency 可以调整建筑放置网格(place.shp)的透明度,如果 PlacementPreview 被启用,那么由 PlacementGrid.TranslucencyWithPreview 来进行调整。
  • 如果不希望使用建筑的 Buildup,那也允许你使用 PlacementPreview.ShapePlacementPreview.ShapeFramePlacementPreview.Palette 来选择你希望显示的确切 Shape 文件和帧。
    • 你可以通过在文件名的特定部分添加三个 ~ 标记来指定特定气候的色盘和 Shape 文件。~~~ 将被替换为气候的三字母扩展名。
  • PlacementPreview.ShapeFrame 标签默认为建筑 artmd.iniBuildup 条目的最后一个非阴影帧。如果没有指定 Buildup 那么它会尝试使用建筑本体的第一帧(动画帧和 Bib 不包括在此预览效果中)作为默认值。

rulesmd.ini

ini
[AudioVisual]
PlacementPreview=no                     ; boolean
PlacementPreview.Translucency=75        ; translucency level (0/25/50/75)
PlacementGrid.Translucency=0            ; translucency level (0/25/50/75)
PlacementGrid.TranslucencyWithPreview=  ; translucency level (0/25/50/75), defaults to [AudioVisual] -> PlacementGrid.Translucency

[SOMEBUILDING]                          ; BuildingType
PlacementPreview=yes                    ; boolean
PlacementPreview.Shape=                 ; filename - including the .shp extension. If not set uses building's artmd.ini Buildup SHP (based on Building's Image)
PlacementPreview.ShapeFrame=            ; integer, zero-based frame index used for displaying the preview
PlacementPreview.Offset=0,-15,1         ; integer, expressed in X,Y,Z used to alter position preview
PlacementPreview.Remap=yes              ; boolean, does this preview use player remap colors
PlacementPreview.Palette=               ; filename - including the .pal extension
PlacementPreview.Translucency=          ; translucency level (0/25/50/75), defaults to [AudioVisual] -> PlacementPreview.Translucency

Note

PlacementPreview.Remap 设为 yes 时 PlacementPreview.Palette 不会被使用。这在未来可能进行更改。

  • 此行为设计为可由用户切换。目前你只能通过客户端或进行手动设置。

RA2MD.INI

ini
[Phobos]
ShowPlacementPreview=yes   ; boolean

实时计时器

  • 计时器现在可以实时显示值,同时考虑游戏速度。这可以通过 RealTimeTimers=true 来启用。

  • 默认情况下,时间是根据期望的帧率计算的。当启用 RealTimeTimers.Adaptive(对于无限制 FPS 和自定义速度始终为 true)时,时间将根据 当前 FPS 计算,同时考虑延迟。

    • 在使用无限制 FPS(或自定义速度高于 60 FPS)时,计时器可能会因为不稳定而不断改变数值。
  • 此选项尊重自定义游戏速度。

  • 此行为设计为可由用户切换。目前你只能通过客户端或进行手动设置。

RA2MD.INI

ini
[Phobos]
RealTimeTimers=false            ; boolean
RealTimeTimers.Adaptive=false   ; boolean

自定义选择框

选择框

Negi烈葱耀斑 中的选择框与投影线使用效果

  • 现在你可以为每个单位自定义选择框。默认建筑没有选择框但你可以为其开启。
    • Frames 可用于列举 Shape 文件中用于绘制选择框的帧,对应单位生命值处于满血/低于 [AudioVisual] -> ConditionYellow/ConditionRed 的百分比时的不同状态。
    • 选择框的半透明效果可以通过 Translucency 来进行调整。
    • VisibleToHousesVisibleToHouses.Observer 可以限定特定玩家可见。
    • DrawAboveTechno 决定选择框是否在相对于单位本体更高的图层绘制。若为 false 则选择框可以被单位本体遮挡,且绘制位置将忽略 PixelSelectionBracketDelta
    • 现在你可以使用 GroundShape 来指定一个始终绘制在地面上的图像,若设置了 Ground.AlwaysDraw=false 则仅当单位处于空中时才会绘制,这同样作用于 GroundLine
    • 如果 GroundLine=true,那么游戏会绘制一条从单位位置到其正下方地面的投影线,GroundLine.Dashed=true 可以将投影线设为虚线样式。

rulesmd.ini

ini
[SelectBoxTypes]
0=SOMESELECTBOXTYPE

[AudioVisual]
DefaultInfantrySelectBox=               ; Select box for infantry
DefaultUnitSelectBox=                   ; Select box for vehicle and aircraft

[SOMESELECTBOXTYPE]                     ; Select box Type name
Shape=                                  ; filename with .shp extension
Palette=palette.pal                     ; filename with .pal extension
Frames=                                 ; List of integer, default 1,1,1 for infantry, 0,0,0 for vehicle and aircraft
Offset=0,0                              ; integers - horizontal, vertical
Translucency=0                          ; translucency level (0/25/50/75)
VisibleToHouses=all                     ; Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
VisibleToHouses.Observer=true           ; boolean
DrawAboveTechno=true                    ; boolean
GroundShape=                            ; filename with .shp extension
GroundPalette=palette.pal               ; filename with .pal extension
GroundFrames=                           ; List of integer, default 1,1,1 for infantry, 0,0,0 for vehicle and aircraft
GroundOffset=0,0                        ; integers - horizontal, vertical
Ground.AlwaysDraw=true                  ; boolean
GroundLine=false                        ; boolean
GroundLineColor=0,255,0                 ; R, G, B
GroundLineColor.ConditionYellow=        ; R, G, B
GroundLineColor.ConditionRed=           ; R, G, B
GroundLine.Dashed=false                 ; boolean

[SOMETECHNO]                            ; TechnoType
SelectBox=                              ; Select box
HideSelectBox=false                     ; boolean

RA2MD.INI

ini
[Phobos]
EnableSelectBox=false                   ; boolean

Warning

  • 为了让你的 shp 正常工作,你需要将它以 用于步兵建筑 的模式来保存,否则它可能会错误地绘制为类似于 AlphaImage 的东西。
  • 对于 ImageShaper 用户,则是需要选择 UncompressedUncompressed_Full_Frame 以外的模式来创建 *.shp 文件。

显示指示者和抑制者范围

  • 现在可以在超级武器瞄准模式下显示指示者和抑制者单位的范围。每个玩家拥有的、列在 [SuperWeapon] -> SW.Designators 中的科技类型将显示一个半径由 [TechnoType] -> DesignatorRangeSight 设置的圆。
    • 类似的,每个敌方拥有的、列在 [SuperWeapon] -> SW.Inhibitors 中的科技类型将显示一个半径由 [TechnoType] -> InhibitorRangeSight 设置的圆。
  • 可以通过全局的 [AudioVisual] -> ShowDesignatorRange=false 或超级武器类型上的 [SuperWeapon] -> ShowDesignatorRange=false 来禁用此功能。
  • 此功能可以 由玩家 通过在 RA2MD.INI 中设置 ShowDesignatorRange 或「界面」类别中的 「开启指示者范围显示」快捷键 来切换(如果在 mod 中启用)。

rulesmd.ini

ini
[AudioVisual]
ShowDesignatorRange=true    ; boolean

[SOMESW]                    ; SuperWeaponType
ShowDesignatorRange=true    ; boolean

RA2MD.INI

ini
[Phobos]
ShowDesignatorRange=false             ; boolean

超级武器计时器优先级

  • 现在你可以根据给定的优先级数值将超级武器的计时器从上到下按升序排列。

rulesmd.ini

ini
[SOMESW]              ; SuperWeaponType, with ShowTimer=yes
ShowTimer.Priority=0  ; integer

字幕居中

心灵终结 中的一个战役为例展示字幕居中

  • 现在你可以通过将 MessageApplyHoverState 设为 true 来让任务信息在光标悬浮于显示区域上时不会消失。
  • 你还可以设置 MessageDisplayInCenter 为 true 以使得(由 11 文本触发事件... 创建的)任务信息直接显示在屏幕中间而不是左上角,并自带半透明背景。这种情况下游戏中的所有字幕均可被保留,即便在存读档后。存储上限可达几千条。
    • 若你同时设置了 MessageApplyHoverState 为 true 那么当鼠标选停在字幕区域时(系统会将其按矩形范围判定),其不透明度会提高且在此期间不会消失。若该区域被展开为列表,禁用此选项也不会阻止鼠标点击行为被限制在该区域内。
    • MessageDisplayInCenter.BoardOpacity 控制屏幕中央区域的背景不透明度。
    • MessageDisplayInCenter.LabelsCount 控制屏幕中央区域可同时自动弹出的字幕条数上限。至少为 1。
    • MessageDisplayInCenter.RecordsCount 控制展开中央区域后可显示的历史字幕条数上限(不是存储数量上限)。至少为 4,GIF 中使用了 8。
    • 可通过「界面」类别中的 「开关字幕居中」快捷键 来切换标签的显示状态。

RA2MD.INI

ini
[Phobos]
MessageApplyHoverState=false            ; boolean
MessageDisplayInCenter=false            ; boolean
MessageDisplayInCenter.BoardOpacity=40  ; integer
MessageDisplayInCenter.LabelsCount=6    ; integer
MessageDisplayInCenter.RecordsCount=12  ; integer

建筑同类选择

  • 在原本的游戏中,类型选择几乎只能用于拥有 UndeploysInto 的 1x1 建筑。现在如果将 BuildingTypeSelectable 设为 true,那么也可以对所有建筑使用类型选择。

Note

在原版中,你可以通过提前按住 T 键然后点击建筑来进行类型选择。然而,其他类型选择方法(例如先选择建筑再按 T 键,或者先选择建筑再按底边栏的类型选择按钮)对建筑无效。

rulesmd.ini

ini
[General]
BuildingTypeSelectable=false  ; boolean

Warning

由于技术限制,没有 Ares 的情况此功能将被强制禁用。

可视化效果开关

  • 可以关闭某些闪光效果。这些闪光效果包括:
    • 战斗闪光效果(Bright=true)以及使用相同逻辑的所有效果,例如铁幕/力场护盾受击闪光。
    • 如果 [AudioVisual] -> WarheadParticleAlphaImageIsLightFlash 或弹头 Particle.AlphaImageIsLightFlash 设为 true,那么计入那些附加在由弹头 Particle 生成的粒子系统或粒子上的 AlphaImage 光效。
      • 此外如果 [AudioVisual] -> LightFlashAlphaImageDetailLevel 高于当前画质级别,那么无论 HideLightFlashEffects 设置如何,这些 AlphaImage 都不会被创建。
  • 可以通过设置 HideShakeEffects=true 来关闭屏幕抖动(ShakeX/Ylo/hi)效果。
  • Phobos 的 激光尾焰效果 也可以被关闭。
    • 如果某个激光尾焰类型拥有 IsHideable=false,那么它将无法通过设置 HideLaserTrailEffects=true 来关闭。

rulesmd.ini

ini
[AudioVisual]
WarheadParticleAlphaImageIsLightFlash=false  ; boolean
LightFlashAlphaImageDetailLevel=0            ; integer

[SOMEWARHEAD]                                ; WarheadType
Particle.AlphaImageIsLightFlash=             ; boolean

artmd.INI

ini
[SOMETRAIL]                  ; LaserTrailType name
IsHideable=true              ; boolean

RA2MD.INI

ini
[Phobos]
HideLightFlashEffects=false  ; boolean
HideLaserTrailEffects=false  ; boolean
HideShakeEffects=false       ; boolean

从回收站和矿场获得收入的视觉提示

  • DisplayIncome 可以设置为显示建筑在回收单位或从矿车或奴隶接受矿石时获得的资金点数。
    • DisplayIncome.Delay 设置了每两次连续收入提示之间间隔的帧数,默认 15(中速下的 1 秒)。
      • 在游戏内不到 DisplayIncome.Delay 定义的时间内多次收入的金额将会合并成一个来显示。
      • 该间隔不得设为 0,否则将会自动调整为 1 并在日志中输出开发者警告。
    • DisplayIncome.Houses 决定哪些所属方可以看到资金点数显示。
      • 例如如果你不希望玩家看到 AI 如何通过 VirtualPurifiers 作弊,可以将 DisplayIncome.AllowAI 设为 false 以禁用。覆盖上一条选项。
    • DisplayIncome.Offset 是资金点数显示中心以像素为单位的额外偏移,默认为 0,0 即建筑的中心。
    • [AudioVisual] -> DisplayIncome 还允许在维修厂出售单位时显示资金点数。

rulesmd.ini

ini
[AudioVisual]
DisplayIncome=false       ; boolean
DisplayIncome.Delay=15    ; integer
DisplayIncome.Houses=all  ; Affected House Enumeration (none|owner/self|allies/ally|team|enemies/enemy|all)
DisplayIncome.AllowAI=yes ; boolean

[SOMEBUILDING]            ; BuildingType
DisplayIncome=            ; boolean, defaults to [AudioVisual] -> DisplayIncome
DisplayIncome.Delay=15    ; integer, defaults to [AudioVisual] -> DisplayIncome.Delay
DisplayIncome.Houses=     ; Affected House Enumeration, defaults to [AudioVisual] -> DisplayIncome.Houses
DisplayIncome.Offset=0,0  ; X,Y, pixels relative to default

显示电厂增幅器的范围

  • 现在可以在摆放建筑物时显示电厂增幅器的作用范围了。

rulesmd.ini

ini
[AudioVisual]
ShowPowerPlantEnhancerRange=true   ; boolean

RA2MD.INI

ini
[Phobos]
ShowPowerPlantEnhancerRange=false  ; boolean

快捷键命令

[ ] 显示伤害数字

  • 切换在造成杀伤时显示/隐藏浮动数字。详见 此处 以了解。
  • 为了本地化请将 TXT_DISPLAY_DAMAGETXT_DISPLAY_DAMAGE_DESC 添加到你的 .csf 文件。

[ ] 输出对象信息

  • 将当前悬停或最后选中的对象的信息写入日志并显示消息。详见 此处 以了解。
  • 为了本地化请将 TXT_DUMP_OBJECT_INFOTXT_DUMP_OBJECT_INFO_DESC 添加到你的 .csf 文件。

[ ] 开关逐帧模式

  • 开关 逐帧模式
  • 为了本地化,请将 TXT_FRAME_BY_FRAMETXT_FRAME_BY_FRAME_DESC 添加到你的 .csf 文件中。

[ ] 保存变量

  • 将局部变量和全局变量保存到一个 INI 文件。参见 此处 以了解。
  • 为了本地化,请将 TXT_SAVE_VARIABLESTXT_SAVE_VARIABLES_DESC 添加到你的 .csf 文件中。

[ ] 切换指示范围

  • 切换超级武器指示者范围指示器开关。参见 此处 以了解。
  • 为了本地化,请将 TXT_DESIGNATOR_RANGETXT_DESIGNATOR_RANGE_DESC 添加到你的 .csf 文件中。

[ ] 开关数字化显示

  • 开关 数字化显示类型
  • 为了本地化,请将 TXT_DIGITAL_DISPLAYTXT_DIGITAL_DISPLAY_DESC 添加到你的 .csf 文件中。

[ ] 下一个空闲矿车

  • 选择并将镜头中心转移到下一个被 矿车计数器 计入且处于空闲状态的科技类型。
  • 为了本地化请将 TXT_NEXT_IDLE_HARVESTERTXT_NEXT_IDLE_HARVESTER_DESC 添加到你的 .csf 文件。

[ ] 快速保存

  • 保存当前游戏

Note

要让此命令用于多人游戏,你必须使用支持多人存档后的 YRpp spawner 版本。

  • 为了本地化,请将 TXT_QUICKSAVETXT_QUICKSAVE_DESCTXT_QUICKSAVE_SUFFIXMSG:NotAvailableInMultiplayer 添加到你的 .csf 文件中。
    • 这些原有 CSF 条目将会被使用:TXT_SAVING_GAMETXT_GAME_WAS_SAVEDTXT_ERROR_SAVING_GAME
    • 保存的文件名应当类似于 Allied Mission 25: Esther's Money - QuickSaved

[ ] 开关字幕居中

  • 开关 字幕居中 显示。
  • 为了本地化请将 TXT_TOGGLE_MESSAGETXT_TOGGLE_MESSAGE_DESC 添加到你的 .csf 文件。

[ ] 取消选中对象

  • 从当前已选中对象中取消选中 1 或 5 个对象
  • 为了本地化请将 TXT_DESELECTTXT_DESELECT_DESCTXT_DESELECT5TXT_DESELECT5_DESC 添加到你的 .csf 文件。

载入图

  • 现在可以使用 PCX 文件作为载入图图像。
    • 你可以使用 Ares 标签 File.LoadScreen 指定自定义载入图。
    • 战役载入图(missionmd.ini -> [LS800BkgdName]) 也可以使用 PCX 图像。
    • 观察者载入图可以使用 ls800obs.pcx(当屏幕宽度为 640 时使用 ls640obs.pcx)。
  • 载入图的大小现在可以与默认的 800x600 不同;如果图像比屏幕大,它将被居中并裁剪。
    • 此功能与 CnCNet5 Spawner DLL 相结合,它将把载入界面固定为当前游戏分辨率大小并把载入图置于中间。如果没有 CnCNet5 Spanwer,那么载入分辨率将被锁定为 800x600
    • 同样适用于战役载入图(missionmd.ini -> [LS800BkgdName])。
  • 现在你可以禁用 YR 引擎在空置出生点显示的黑点,这允许使用由地图渲染器生成的更美观且位置正确的标记。

uimd.ini

ini
[LoadingScreen]
DisableEmptySpawnPositions=false  ; boolean

杂项

开始新战役时跳过保存游戏

在开始新战役时游戏会自动保存游戏。现在你可以自行决定是否要进行保存。

RA2MD.INI

ini
[Phobos]
SaveGameOnScenarioStart=true ; boolean

侧边栏/战斗界面 UI

允许使用可切换的自动维修替换原版维修

  • 现在你可以使用可切换的自动维修来替换掉原版维修方式。

    • 按下维修按钮或快捷键将不再更改你的鼠标,而是切换自动维修的开/关状态。
    • 当自动维修被切换为关闭时建筑将停止维修。

    rulesmd.ini

ini
[General]
ExtendedPlayerRepair=false    ; boolean

建筑生产队列

建筑生产队列 列队多个建筑

  • 现在如果 BuildingProductionQueue 设置为 true 那么建筑可以像其他单位一样列队建造。

rulesmd.ini

ini
[General]
BuildingProductionQueue=false  ; boolean

Note

只有等玩家摆下当前建筑以后序列中的下一个建筑才会开始生产。

图标排序

  • 现在你可以为任何科技类型/超级武器类型指定图标优先级。原版排序规则可见 此处
    • 图标优先级在原版所有内容之前检查。更高的 CameoPriority 具有更高优先级。
  • 你也可以使用单位/超级武器的 Name 来排列图标。它们将在所有其他规则之后、UIName 的 CSF 文本前被比较。
    • 这用于避免图标顺序因 CSF 变更而被意外打乱,例如当你使用不同语言的翻译包时。

rulesmd.ini

ini
[General]
SortCameoByName=false  ; boolean

[SOMENAME]             ; TechnoType / SuperWeaponType
CameoPriority=0        ; integer

暂停菜单背景居中

  • 现在可以选择将暂停菜单背景(bkgdXX(y).shp) 居中而不是丢在左上角。这允许背景在分辨率大于 1024x768 的时候更好地设计。

uimd.ini

ini
[Sidebar]
CenterPauseMenuBackground=false  ; boolean

自定义缺省图标(XXICON.SHP

  • 现在你可以指定任何 SHP/PCX 文件作为缺省图标使用的 XXICON.SHP

rulesmd.ini

ini
[AudioVisual]
MissingCameo=XXICON.SHP  ; filename - including the .shp/.pcx extension

矿车计数器

幻想奇遇 中的矿车计数器

  • 可以在资金示数器附近添加一个额外的计数器用于显示你的活动(工作中)矿车的数量/总矿车数量。
    • 你可以使用 Harvester.Counted 指定哪些科技类型被视为矿车。若未设置,带有 Harvester=yesEnslaves=SOMESLAVE 的单位将被计入。
      • 可以在使用 ProduceCashAmount 的建筑上设置为 true 以便在其生成资金时计为工作中的 “矿车”。
    • 计数器以 标签(活动矿车数/总矿车数) 的格式显示,标签默认为 ⛏ U+26CF
    • 你可以通过 Sidebar.HarvesterCounter.Offset 调整计数器位置,负数表示左/上,正数表示右/下。
    • 通过设置 HarvesterCounter.ConditionYellowHarvesterCounter.ConditionRed,当矿车活动百分比小于或等于它们时,游戏将通过改变计数器颜色来警告玩家,就像 HP 达到 ConditionYellowConditionRed 改变颜色一样。
    • 此逻辑可以在 mod 中于 RA2MD.INI 设置 ShowHarvesterCounter 来由用户自行开关。

uimd.ini

ini
[Sidebar]
HarvesterCounter.Show=false                     ; boolean
HarvesterCounter.Label=<none>                   ; CSF entry key
HarvesterCounter.ConditionYellow=99%            ; floating point value, percents
HarvesterCounter.ConditionRed=50%               ; floating point value, percents

rulesmd.ini

ini
[SOMETECHNO]                                    ; TechnoType
Harvester.Counted=                              ; boolean

[SOMESIDE]                                      ; Side
Sidebar.HarvesterCounter.Offset=0,0             ; X,Y, pixels relative to default
Sidebar.HarvesterCounter.ColorGreen=            ; integer - Red,Green,Blue, default to [Side] -> ToolTipColor=
Sidebar.HarvesterCounter.ColorYellow=255,255,0  ; integer - Red,Green,Blue
Sidebar.HarvesterCounter.ColorRed=255,0,0       ; integer - Red,Green,Blue

RA2MD.INI

ini
[Phobos]
ShowHarvesterCounter=true  ; boolean

Note

如果你的 mod 使用原版字体文件,你可以使用改进的字体文件(v4 或更高版本;可以在 Phobos 补充资源库 中找到)其中包含所有提到的图标。否则你需要自己编辑字库文件,例如使用 WWFontEditor 绘制它们。

此外,默认的矿车计数器位置与 废矿计数器 重叠。

电力差值计数器

Assault Amerika 中的电力差值计数器

  • 可以在资金示数器旁边追加一个电力差值计数器以显示你的电力差值(盈余)。
    • 计数器以 Label(sign)(电力差值) 的格式显示,标签默认为 PowerLabel(在 ToolTips 中使用)。
    • 当玩家的电力被间谍或力场护盾中断时,在 ToolTips 中显示的会换成 PowerBlackoutLabel (默认为 ⚡❌ U+26A1 U+274C),文本颜色为 Sidebar.PowerDelta.ColorGrey
    • 你可以通过 Sidebar.PowerDelta.Offset 调整计数器位置,负数表示左/上,正数表示右/下。
    • 你可以通过 Sidebar.PowerDelta.Align 调整计数器对齐方式,可接受的值为左对齐(left)、右对齐(right)或居中对齐(centercentre)。
    • 通过设置 PowerDelta.ConditionYellowPowerDelta.ConditionRed,当电力使用率超过指定值时,游戏将通过改变计数器颜色来警告玩家(例如,当负载与输出功率之比大于 100% 时,计数器会变为红色)。
    • 此规则的例外情况是当负载和输出功率均为 0 时 - 这种情况下计数器将默认为黄色。
    • 此逻辑可以在 mod 中于 RA2MD.INI 设置 ShowPowerDelta 来由用户自行开关。

uimd.ini

ini
[Sidebar]
PowerDelta.Show=false           ; boolean
PowerDelta.ConditionYellow=75%  ; floating point value, percents
PowerDelta.ConditionRed=100%    ; floating point value, percents

rulesmd.ini

ini
[SOMESIDE]                                ; Side
Sidebar.PowerDelta.Offset=0,0             ; X,Y, pixels relative to default
Sidebar.PowerDelta.ColorGreen=0,255,0     ; integer - Red,Green,Blue
Sidebar.PowerDelta.ColorYellow=255,255,0  ; integer - Red,Green,Blue
Sidebar.PowerDelta.ColorRed=255,0,0       ; integer - Red,Green,Blue
Sidebar.PowerDelta.ColorGrey=128,128,128  ; integer - Red,Green,Blue
Sidebar.PowerDelta.Align=left             ; Alignment enumeration - left | center/centre | right

RA2MD.INI

ini
[Phobos]
ShowPowerDelta=true  ; boolean

Note

如果你的 mod 使用原版字体文件,你可以使用改进的字体文件(v4 或更高版本;可以在 Phobos 补充资源库 中找到)其中包含所有提到的图标。否则你需要自己编辑字库文件,例如使用 WWFontEditor 绘制它们。

生产进度

幻想奇遇 中的生产进度条

  • 现在你可以通过侧边栏了解到你的工厂的状态了!
  • 你需要自己绘制资源(tab0xpp.shp,x 替换为 0-3)并将它们放入 sidec0x.mix 中。

uimd.ini

ini
[Sidebar]
ProducingProgress.Show=false  ; boolean

rulesmd.ini

ini
[SOMESIDE]                            ; Side
Sidebar.ProducingProgress.Offset=0,0  ; X,Y, pixels relative to default

指定侧边栏样式

  • 现在可以通过设置 Sidebar.GDIPosition 来切换硬编码的侧边栏按钮坐标为 GDI 阵营(原版盟军)侧边栏坐标。默认情况下,第一个阵营为 true,其他阵营为 false。

rulesmd.ini

ini
[SOMESIDE]             ; Side
Sidebar.GDIPositions=  ; boolean

超武侧边栏

image 使用 Phobos 补充资源库 中类原版 UI 资产的超武侧边栏

  • SuperWeaponSidebar 为 true 时可以把超级武器的图标像 C&C3 那样放置在屏幕左侧。
    • 超武侧边栏兼容 Ares 新增的超武类别。
    • SuperWeaponSidebar.Pyramid 决定图标以金字塔形而不是矩形排列。
    • SuperWeaponSidebar.Interval 控制两列图标之间的间距(不包括背景)。如果你需要制作背景那么背景图像的宽度应当为 SuperWeaponSidebar.Interval + 60(图标固定宽度)。
    • SuperWeaponSidebar.LeftOffset 控制图标左侧与其所在列(背景)左侧的距离,该值不应大于 SuperWeaponSidebar.Interval
    • SuperWeaponSidebar.CameoHeight 控制图标顶部到下一个图标顶部的距离。即,上下图标间距为 SuperWeaponSidebar.CameoHeight - 48(图标固定高度)。该值不应小于 48。如果你需要制作背景那么此值即为背景图像的高度。
    • SuperWeaponSidebar.Max 控制左侧每列最多显示的图标数量,这也取决于游戏分辨率。
    • SuperWeaponSidebar.MaxColumns 控制最多有多少列。
    • SuperWeaponSidebar.Significance 用于由用户控制哪些超武可以出现在侧边栏。仅当超武 SuperWeaponSidebar.Significance 不低于用户定义的 SuperWeaponSidebar.RequiredSignificance 时才会出现。

Warning

虽然 Mod 作者可以通过设置 SuperWeaponSidebar.Allow=falseSuperWeaponSidebar.AllowByDefault=false 来完全“禁止”某些超武出现在侧边栏上,但并不建议在移除例如子阵营选择用的跳板性虚拟超武之外使用这些设置。而是应当使用 SuperWeaponSidebar.SignificanceSuperWeaponSidebar.RequiredSignificance 来控制哪些超武出现在侧边栏上。这样一来具有不同偏好和不同显示分辨率的用户就可以通过客户端设置来控制他们希望在侧边栏上看到多少超武而无需编辑 Mod 文件,并且你可以通过默认的 Significance 值来精确指定你的预期效果。

  • 快捷键设置中新增了一个快捷键条目以用于开关超武侧边栏。
    • TXT_TOGGLE_SW_SIDEBARTXT_TOGGLE_SW_SIDEBAR_DESC 用于该快捷键的本地化。
  • SuperWeaponSidebarKeysEnabled 允许用户使用快捷键拉起侧边栏上显示的超武。
    • 这些快捷键的位置是定死仅对应前 10 个超武的。
    • 如果已分配快捷键,则对应的按键会替代 就绪 等文本显示在超武图标上。
    • 为了本地化,请将 TXT_FIRE_TACTICAL_SW_XXTXT_FIRE_TACTICAL_SW_XX_DESC 添加到你的 .csf 文件中。

Warning

超武快捷键属于实验性功能并且由于超武在侧边栏上的位置并不固定所以当前用户体验可能不够完善,因此该功默认处于禁用状态。

uimd.ini

ini
[Sidebar]
SuperWeaponSidebar=false                    ; boolean
SuperWeaponSidebar.Pyramid=true             ; boolean
SuperWeaponSidebar.Interval=0               ; integer, pixels
SuperWeaponSidebar.LeftOffset=0             ; integer, pixels
SuperWeaponSidebar.CameoHeight=48           ; integer, pixels
SuperWeaponSidebar.Max=0                    ; integer
SuperWeaponSidebar.MaxColumns=              ; integer

rulesmd.ini

ini
[GlobalControls]
SuperWeaponSidebarKeysEnabled=false         ; boolean

[AudioVisual]
SuperWeaponSidebar.AllowByDefault=false     ; boolean

[SOMESIDE]                                  ; Side
SuperWeaponSidebar.OnPCX=                   ; filename - including the .pcx extension
SuperWeaponSidebar.OffPCX=                  ; filename - including the .pcx extension
SuperWeaponSidebar.TopPCX=                  ; filename - including the .pcx extension
SuperWeaponSidebar.CenterPCX=               ; filename - including the .pcx extension
SuperWeaponSidebar.BottomPCX=               ; filename - including the .pcx extension

[SOMESW]                                    ; SuperWeaponType
SuperWeaponSidebar.Allow=                   ; boolean
SuperWeaponSidebar.PriorityHouses=          ; List of house types
SuperWeaponSidebar.RequiredHouses=          ; List of house types
SuperWeaponSidebar.Significance=0           ; integer

RA2MD.INI

ini
[Phobos]
SuperWeaponSidebar.RequiredSignificance=0   ; integer

Hint

虽然该功能可以在没有任何额外图像的情况下使用,但你可以在 Phobos 补充资源库 找到数与原版界面 UI 图像搭配使用的示例资产。

废矿计数器

  • 你可以在资金示数器附近添加一个额外的计数器用于显示存储的泰伯利亚废矿的数量。
    • 你可以通过 Sidebar.WeedsCounter.Offset(每个阵营的设置)调整计数器位置,负数表示左/上,正数表示右/下。
    • 计数器默认为每个阵营拓展工具条的颜色,可以通过设置 Sidebar.WeedsCounter.Color 来为每个阵营独立覆盖设置。
    • 此逻辑可以在 mod 中于 RA2MD.INI 设置 ShowWeedsCounter 来由用户自行开关。

uimd.ini

ini
[Sidebar]
WeedsCounter.Show=false          ; boolean

rulesmd.ini

ini
[SOMESIDE]                       ; Side
Sidebar.WeedsCounter.Offset=0,0  ; X,Y, pixels relative to default
Sidebar.WeedsCounter.Color=      ; integer - Red,Green,Blue

RA2MD.INI

ini
[Phobos]
ShowWeedsCounter=true  ; boolean

Note

默认的废矿计数器位置与 矿车计数器 重叠。

拓展工具条

image CnC: Final War 中的拓展拓展工具条

  • 现在当鼠标悬停在图标上时侧边栏拓展工具条提示可以显示关于科技类型/超级武器类型的拓展信息。此外当通过相应标签启用此功能时低字符限制将被取消从而允许长达 1024 字符长度的工具提示信息。
  • 科技类型的拓展工具条将显示其名称、成本、电力、建造时间和描述(如果适用)。
  • 超级武器类型的拓展工具条将显示其名称、成本和充能时间(如果适用)。
    • 如果使用了 Ares 的 SW.Shots,那么将会附加一个 C 语言风格的格式化字符,默认为 Shots: %d。格式可以在 csf 中自定义。如果使用双参数格式(例如 还剩 %d/%d 发),第二个整数是 SW.Shots
  • 拓展拓展工具条不会使用 TXT_MONEY_FORMAT_1TXT_MONEY_FORMAT_2。但你可以使用对应的标签指定成本、电力和时间标签(在对应值前显示)。默认为 $ U+0024⚡ U+26A1⌚ U+231A
  • 修复了一个通过 QWER 切换建造队列标签时拓展工具条没有消失的问题,这导致拓展工具条卡住。
  • 现在拓展工具条可以超出侧边栏边界以容纳更长的内容。你可以使用新增的标签控制最大文本宽度(不包括边框)。
  • AnchoredToolTips 将拓展工具条始终定到侧边栏左侧,仅在 ExtendedToolTips 设置为 true 且用户启用时生效。

uimd.ini

ini
[ToolTips]
ExtendedToolTips=false     ; boolean
AnchoredToolTips=false     ; boolean
CostLabel=<none>           ; CSF entry key
PowerLabel=<none>          ; CSF entry key
PowerBlackoutLabel=<none>  ; CSF entry key
TimeLabel=<none>           ; CSF entry key
SWShotsFormat=<none>       ; CSF entry key
MaxWidth=0                 ; integer, pixels

rulesmd.ini

ini
[SOMENAME]            ; TechnoType or SWType
UIDescription=<none>  ; CSF entry key
  • 描述设计可由用户自行切换。目前你只能通过客户端或进行手动设置。

RA2MD.INI

ini
[Phobos]
ToolTipDescriptions=true  ; boolean

Note

与矿车计数器相同,你可以下载改进的字体(v4 或更高版本;可以在 Phobos 补充仓库 中找到)否则你需要自己编辑字库文件。

  • 现在可以全局或按阵营自定义拓展工具条的背景色和不透明度。

rulesmd.ini

ini
[SOMESIDE]                          ; Side
ToolTip.Background.Color=0,0,0      ; integer - Red,Green,Blue, defaults to [AudioVisual] -> ToolTip.Background.Color, which defaults to 0,0,0
ToolTip.Background.Opacity=100      ; integer, ranged in [0, 100], defaults to [AudioVisual] -> ToolTip.Background.Opacity, which defaults to 100
ToolTip.Background.BlurSize=0.0     ; floating point value, defaults to [AudioVisual] -> ToolTip.Background.BlurSize, which defaults to 0.0

Note

模糊效果非常占用资源,请确保你的确想要启用此效果,否则请保持 0.0 以禁用。

RA2MD.INI

ini
[Phobos]
ToolTipBlur=false  ; boolean, whether the blur effect of tooltips will be enabled.