是否有编辑实体 XML 文件的文档?

Viewed 1

我在修改游戏单位的 XML 文件时,不清楚各个组件的 XML 语法和可用参数,请问有没有相关的官方文档可以参考?

1 Answers

以下页面列出了可以添加到实体的组件以及其初始化数据的 XML 语法:实体文档

0 A.D. 实体 XML 文档

实体组件文档

0 A.D. 中,实体(单位、建筑及其他世界对象)由一系列组件构成,每个组件决定实体行为的某一部分。实体模板 XML 文件指定了每种实体类型加载的组件列表,以及各组件的初始化数据。

本页列出可添加到实体的所有组件及其初始化数据的 XML 语法。


AIProxy

无参数,仅占位。


AlertRaiser(警报发起者)

List

受此警报发起者影响的实体类别。值类型: 文本。

其他字段

  • RaiseAlertRange:发起警报的范围(整数)
  • EndOfAlertRange:解除警报的范围(整数)
  • SearchRange:搜索范围(整数)

Attack(攻击)

控制单位的攻击能力和攻击强度。

示例

<Attack>
  <Melee>
    <AttackName>Spear</AttackName>
    <Damage>
      <Hack>10.0</Hack>
      <Pierce>0.0</Pierce>
      <Crush>5.0</Crush>
    </Damage>
    <MaxRange>4.0</MaxRange>
    <RepeatTime>1000</RepeatTime>
    ...
  </Melee>
  <Ranged>
    <AttackName>Bow</AttackName>
    ...
  </Ranged>
</Attack>

攻击类型目前包括:Melee(近战)、Ranged(远程)、Capture(占领)、Slaughter(屠杀)

字段说明

字段 说明
AttackName 攻击名称,显示在 GUI 中
Damage 伤害类型元素(非负小数)
Capture 占领点数值
ApplyStatus 状态效果(中毒、燃烧等),需在 data/status_effects 中有对应 JSON 文件
Duration 状态持续时间(可选)
Interval 状态效果触发间隔
Stackability 状态叠加方式:Ignore(忽略新效果)、Extend(延长持续时间)、Replace(替换)、Stack(叠加)
Civ 可选,指定文明时才触发加成
Classes 指定拥有所有这些类别的实体才触发加成
Multiplier 效果强度乘数
MaxRange 最大攻击范围(米)
MinRange 最小攻击范围(米,可选,默认为 0)
Origin 攻击起点相对于实体位置的偏移(可选,默认 {0,0,0})
PrepareTime 攻击命令发出到实际攻击的时间(毫秒,可选,默认 0)
RepeatTime 攻击间隔时间(毫秒),攻击动画会拉伸以匹配此时间
EffectDelay 攻击命中后效果生效的延迟(毫秒,可选,默认 0)
PreferredClasses 优先攻击的类别列表(空格分隔,可选)
RestrictedClasses 不能攻击的类别列表(空格分隔,可选)

溅射伤害(Splash)

字段 说明
Shape 溅射形状:圆形或线形
Range 溅射影响区域大小
FriendlyFire 溅射是否伤害非敌方单位

投射物(Projectile)

字段 说明
Speed 投射物速度(米/秒)
Spread 在 100 米处的双变量正态分布标准差(散布精度)
Gravity 影响投射物飞行曲线的重力值
FriendlyFire 流弹是否伤害非敌方单位
ActorName 投射物动画 actor(可选)
ImpactActorName 命中动画 actor(可选)
ImpactAnimationLifetime 命中动画时长(可选)

AttackDetection(攻击检测)

检测传入的攻击。

字段 说明
SuppressionTransferRange 此范围内(米)的攻击将替换之前的攻击抑制
SuppressionRange 此范围内(米)的其他攻击不会被登记
SuppressionTime 此时间内(毫秒)的其他攻击不会被登记

Auras(光环)

光环列表,以空格分隔的 token 形式表示。


AutoBuildable(自动建造)

定义实体是否可以自我建造。

字段 说明
Rate 建筑自动建造的速率(非负小数)

BattleDetection(战斗检测)

检测战斗的发生。

字段 说明
TimerInterval 单个计时器周期的持续时间(毫秒)
RecordLength 用于计算伤害率的计时器周期数
DamageRateThreshold 触发警戒提升的伤害率
AlertnessBattleThreshold 玩家被判定为处于战斗状态的警戒值
AlertnessPeaceThreshold 玩家被判定为处于和平状态的警戒值
AlertnessMax 最大警戒等级

BuildRestrictions(建造限制)

指定与地形、领土和距离相关的建筑放置限制。

字段 说明
PlacementType 地形类型限制:land(陆地)、shore(海岸)、land-shore(陆地或海岸)
Territory 领土类型限制:own(己方)、ally(盟友)、neutral(中立)、enemy(敌方)
Category 建筑类别(用于满足特殊约束,如 Palace、Fortress、Wonder 等)
MatchLimit 可选,指定此实体在一场比赛中的创建上限
Distance 可选,相对于指定类别建筑的距离限制

Builder(建造者)

允许单位建造和修复建筑。

字段 说明
Rate 建造速度倍率(1.0 为正常速度)
Entities 该单位可建造的实体模板名称列表(空格分隔)。{civ} 会替换为所有者的文明代码,{native} 替换为单位自身的文明代码

BuildingAI(建筑 AI)

字段 说明
DefaultArrowCount 默认箭矢数量
MaxArrowCount 最大箭矢数量(可选)
GarrisonArrowMultiplier 每个驻守单位增加的箭矢倍率
GarrisonArrowClasses 可增加额外箭矢的单位类别

Capturable(可占领)

字段 说明
CapturePoints 最大占领点数
RegenRate 每秒为所有者恢复的占领点数
GarrisonRegenRate 每个驻守实体每秒为所有者增加的占领点数倍率

Cost(费用)

指定此实体的建造/训练费用。

字段 说明
Population 人口消耗
BuildTime 建造/训练所需时间(秒)
Resources 资源消耗(food 食物、wood 木材、stone 石材、metal 金属)

DeathDamage(死亡伤害)

当单位或建筑被摧毁时,对附近单位造成伤害。

字段 说明
Shape 溅射形状(圆形等)
Range 溅射影响区域大小
FriendlyFire 是否伤害非敌方单位
Damage / Capture / ApplyStatus 伤害类型,同 Attack 组件

Decay(消散)

字段 说明
Active 为 false 时实体不会消散
SinkingAnim 为 true 时以类似船只下沉的方式消散
SinkProb 每帧消散的概率
DelayTime 开始下沉前的等待时间(秒)
SinkRate 初始下沉速率(米/秒)
SinkAccel 下沉加速度(米/秒²)

Diplomacy(外交)

字段 说明
SharedLosTech 研究此科技后盟友共享视野(留空则永不共享)
SharedDropsitesTech 研究此科技后盟友共享资源投放点(留空则永不共享)

EntityLimits(实体上限)

指定每个玩家可创建的各类建筑或单位的数量上限。

字段 说明
Limits 各类别建筑/单位的数量上限
LimitChangers 可改变特定上限的建筑/单位
LimitRemovers 满足条件后可解除特定上限的建筑/单位

Fogging(迷雾)

允许此实体在战争迷雾中被幻影实体替代。


Footprint(占地面积)

实体形状的近似表示,用于碰撞检测、轮廓渲染和可选择边界框。

字段 说明
Square 设置为指定尺寸的正方形(width 宽度,depth 深度,单位:米)
Circle 设置为指定半径的圆形(radius,单位:米)
Height 占地面积的垂直高度(米)
MaxSpawnDistance 单位可从此实体边缘生成的最远距离(可选)

Formation(阵型)

字段 说明
RequiredMemberCount 阵型所需的最小实体数量(至少 2)
DisabledTooltip 阵型被禁用时显示的提示文字
SpeedMultiplier 阵型速度 = 所有成员最低速度 × 此倍率
FormationShape 阵型形状:square(方形)、triangle(三角形)、special(特殊)
MaxTurningAngle 阵型尝试转向的角度阈值(弧度)
ShiftRows 为 true 时后续行将交错排列
SortingClasses 根据类别层级决定单位在阵型中的位置
SortingOrder 排序顺序(可选):默认从第一行到最后一行、每行从中心向两侧填充;fillFromTheSides 将重要单位置于两侧;fillToTheCenter 将脆弱单位置于中心
WidthDepthRatio 平均宽深比(按单位数量)
Sloppiness 实际位置与理想阵型位置之间的最大偏差(米)
MinColumns 最小列数(可选)
MaxColumns 最大列数(可选)
MaxRows 最大行数(可选)
CenterGap 中央间隔大小(以单位宽度为单位,可选)
UnitSeparationWidthMultiplier 单位横向间距倍率
UnitSeparationDepthMultiplier 单位纵向间距倍率
AnimationVariants 根据成员位置使用的动画变体列表

FormationAttack(阵型攻击)

CanAttackAsFormation:指定是否可以整体阵型进行攻击。


Foundation(地基)

字段 说明
BuildTimeModifier 多个建造者同时建造时的效果(非负小数)

GarrisonHolder(驻守容器)

字段 说明
Max 可驻守的最大实体数量
List 允许驻守的实体类别(来自 Identity)
EjectClassesOnDestroy 被摧毁时弹出的单位类别(其余被杀死)
BuffHeal 每秒为驻守单位恢复的生命值
LoadingRange 允许驻守的最大距离(米)
EjectHealth 可选,低于此生命百分比时不再允许驻守
Pickup 可选,为 true 时此容器会主动移动去接收待驻守单位

Garrisonable(可驻守)

字段 说明
Size 此实体驻守时占用的驻守槽数量

Gate(城门)

控制城墙城门的行为。

字段 说明
PassRange 单位必须在此距离(米)内城门才会打开

Guard(守卫)

无参数。


Heal(治疗)

控制单位的治疗能力。

字段 说明
Range 可进行治疗的范围(米)
Health 每次治疗恢复的生命值
Interval 治疗间隔时间(毫秒)
UnhealableClasses 拥有这些类别的目标无法被治疗(即使也有 HealableClasses 中的类别)
HealableClasses 目标必须拥有其中一个类别才可被治疗

Health(生命值)

处理生命值与死亡。

字段 说明
Max 最大生命值
Initial 初始生命值(可选,默认等于 Max)
DamageVariants 生命值低于特定比例时切换的外观变体
RegenRate 每秒生命值恢复速率(可为负数)
IdleRegenRate 空闲或驻守时每秒生命值恢复速率
DeathType 死亡行为:vanish(立即消失)、corpse(变为尸体)、remain(以 0 生命值保留在世界中)
SpawnEntityOnDeath 可选,死亡时生成的实体模板
Unhealable 此实体无法被治疗者治疗

Identity(身份)

指定与实体相关的各种名称和值,通常用于 GUI 显示。

字段 说明
Civ 主要关联的文明(4 字母代码,如 athen、rome、cart 等)
Lang 语音语言(可选)
Phenotype 语音和外观表现型,指定多个时随机选择(可选)
GenericName 英文通用名称
SpecificName 本地语言专有名称(可选)
SelectionGroupName 用于对同级实体分组的名称(可选)
Rank 等级:Basic(基础)、Advanced(进阶)、Elite(精英)
Classes 可选的实体类别列表(影响游戏机制)
VisibleClasses 可选的实体类别列表(同时显示在 GUI 中)
Requirements 生产此实体前需满足的条件(可选)
Controllable 玩家是否可控制此实体(可选,默认为 true)
Undeletable 防止玩家删除此实体

Loot(战利品)

指定此实体被消灭时获得的战利品。

字段:food(食物)、wood(木材)、stone(石材)、metal(金属)、xp(经验值),均为非负整数。


Market(市场)

字段 说明
TradeType 贸易路线类型:land(陆地)或 naval(海上)
InternationalBonus 两个不同玩家之间贸易时的额外收益比例

Minimap(小地图)

字段 说明
Color 小地图上的颜色(r、g、b 属性,0–255)
Icon 小地图上显示的图标纹理(可选,相对于 art/textures/ui/session/icons/minimap/

Mirage(幻影)

幻影实体在战争迷雾中替代真实实体。无参数。


Obstruction(障碍物)

使此实体阻挡其他单位的移动。

字段 说明
Static 静态矩形障碍物(width × depth)
Unit 单位障碍物
Obstructions 多个子障碍物
Active 为 false 时被其他单位的碰撞检测忽略
BlockMovement 是否阻挡单位通行
BlockPathfinding 是否阻挡长距离寻路(仅用于大型静止障碍物)
BlockFoundation 是否阻止在其上放置建筑地基
BlockConstruction 是否阻止在其上开始建造建筑
DeleteUponConstruction 在其上开始建造时是否删除此实体
DisableBlockMovement 为 true 时覆盖 BlockMovement(专用于地基处理)
DisableBlockPathfinding 为 true 时覆盖 BlockPathfinding(专用于地基处理)
ControlPersist 可选,若存在则将此实体的控制组传递给与之碰撞的实体

Ownership(所有权)

允许此实体被玩家拥有。无参数。


Pack(收起/展开)

字段 说明
Entity 变形后的实体模板
Time 变形所需时间(毫秒)
State 当前状态:packed(已收起)或 unpacked(已展开)

Player(玩家)

字段 说明
BarterMultiplier 物物交换价格倍率(Buy 买入、Sell 卖出)
Formations 此玩家可使用的阵型列表(空格分隔)
SpyCostMultiplier 间谍费用倍率

Population(人口)

字段 说明
Bonus 此实体存在时增加的人口上限

Position(位置)

允许此实体在世界中存在于某位置(和朝向)。

字段 说明
Anchor 跟随地形坡度的旋转方式:upright(直立,如人类)、pitch(前后倾斜,如动物)、roll(左右倾斜)、pitch-roll(全方向倾斜,如车辆)
Altitude 地形以上的高度(米)
Floating 是否在水面漂浮
FloatDepth 在水面漂浮的深度(需 Floating 为 true)
TurnRate 绕 Y 轴的最大旋转速度(弧度/秒)

ProductionQueue(生产队列)

帮助建筑训练新单位和研究科技。无参数。


Promotion(晋升)

字段 说明
Entity 晋升后变为的实体模板
TrickleRate 每秒获得的经验值涓流(可选)
RequiredXp 晋升所需的经验值

RallyPoint(集结点)

无参数。


RallyPointRenderer(集结点渲染器)

显示新训练单位将聚集的集结点标记。

字段 说明
MarkerTemplate 集结点标记实体的模板名称(通常是航路旗 actor)
LineTexture 集结点连线的纹理文件
LineTextureMask 纹理遮罩(指示叠加颜色区域)
LineThickness 连线厚度
LineDashColor 连线虚线颜色(r、g、b)
LineStartCap / LineEndCap 线段端点形状:flat(平直)、round(圆形)、sharp(尖锐)、square(方形)
LinePassabilityClass 计算集结点路径时使用的寻路通行级别

Repairable(可修复)

字段 说明
RepairTimeRatio 相对于建造时间的修复时间比例

Researcher(研究者)

允许实体研究科技。

字段 说明
Technologies 此建筑可研究的科技名称列表(空格分隔,可选)。{civ} 会被替换为所有者的文明代码
TechCostMultiplier 修改资源费用和研究时间的倍率(可选)