- UID
- 327890
- 阅读权限
- 80
- 注册时间
- 2018-11-30
- 最后登录
- 2026-5-24
- 在线时间
- 1183 小时
- 性别
- 男
- 生日
- 2012 年 2 月 29 日
- 情感状态
- 喵
国王
- 耕战
- 775
- 鹰币
- 403119
- 天龙币
- 0
- 回帖
- 250

|
本帖最后由 凌果 于 2026-4-4 21:06 编辑
本文档为更新版,只收录2025年8月大型更新的内容。
此外另有整合版文档整合了2024年11月开始至今的所有更新内容,并补充少量旧知识内容→https://www.hawkaoe.net/bbs/foru ... read&tid=149274
====================================================================================================
◆◆◆◆◆科技:
科技现在可以设置多个研发地点。每个研发地点的研发时间、按钮位置、热键可以独立设置。改变科技研发地点的效果只改变第一个。
满足其它自动研发条件的前提下,只要任一研发地点的研发时间为0就能够自动研发。
====================================================================================================
◆◆◆◆◆效果:
Command Type 3_Upgrade Unit:新增当Mode=3时将升级所有单位,包括已独立化的
Command Type 7_Spawn Unit:现在可以生成大地之母独有的单位了(以前也可以呀)
Command Type 203、204、205_Selected Unit Attribute Modifier(Set、+/-、Multiply):为研发的建筑单独进行属性设置、加减、乘除。(会独立化)
Command Type 206_Transform Selected Unit:将研发的建筑单独转换为特定建筑单位。(不独立化)
====================================================================================================
◆◆◆◆◆资源:
下面方括号[]内为官方翻译名称(官译未必准确)
33_[效果功能数]^调用XS函数:设置本资源数值后,将调用xs文件夹中的Effects.xs文件里对应数值的函数(EffectFunction<N>,函数参数为玩家ID)。
这个新增功能使得DAT中单位的指令栏不再因为个别民族的独特科技而变得臃肿,同时避免了多个民族有类似的指令修改项时可能出现的冲突(例如之前的蜀汉的盘蛇阵和阿契美尼德的波斯步兵方阵)
缺点是大大增加了理解门槛,不懂XS则难以看懂该文件
另见下文XS部分
70_[货源市场或码头 X 坐标]、71_[货源市场或码头 Y 坐标]:可以指定贸易的市场或船坞的X、Y坐标点。(实际效果和使用方法暂不明)
203_[地图显示]:0≡默认;1≡已探索;2≡全部可视
204_[单位显现]:显示地图上所有玩家的某ID单位或种属(900+种属编号)。为正时,将在本资源调配或单位创建时短暂显示;为负时,单位始终显示(对移动单位目前可能不会揭开战雾)
262_[文明名称覆盖]:现在可以正常工作了(值为字符串ID)
====================================================================================================
◆◆◆◆◆单位:
单位现在可以设置多个训练地点。每个训练地点的训练时间、按钮位置、热键可以独立设置。改变单位训练地点的效果只改变第一个
对于建筑而言,建造时间取决于第一行,并只有118_建筑工或13_渔船会有建造的按钮
现在Type60的抛射物单位可以使用157_Stingers_毒刺指令(主抛看兵种的指令,副抛、蓄抛才看抛射物的)
交易单位现在可以携带多种资源类型(以前似乎也可以呀)
阿契美尼德的萨伽里斯科技重新启用了被遗弃的31号攻防类型
====================================================================================================
◆◆◆◆◆单位属性:
下面方括号[]内为官方翻译名称(官译未必准确)
所谓"标志位"指该属性具备二进制标志位功能,例如具有1功能A、2功能B、4功能C、8功能D,那么如果同时需求功能ACD,可将该属性设为13即=1+4+8
127_Disabled Unit Flag[禁用单位旗帜]:新增标志位8≡启用有限功能时,数量到达上限后移除训练按钮
126_Available Unit Flag 和 127_Disabled Unit Flag的(新增)功能现在也适用于建筑
新增下列属性编号,可用于效果修改:
81_Special Ability_[特殊能力] 82_Idle Attack Graphic_[待命攻击图示] 83_Hero Glow Graphic_[英雄光效图示] 84_Garrison Graphic_[驻扎图示] 85_Construction Graphic_[建造图示]
86_Snow Graphic_[雪地图示] 87_Destruction Graphic_[摧毁图示] 88_Destruction Rubble Graphic_[摧毁碎石图示] 89_Researching Graphic_[研究中图示] 90_Research Completed Graphic_[研究完成图示]
91_Damage Graphic_[损坏图示] 92_Selection Sound_[选择音效] 93_Selection Sound Event_[选择音效事件](WWise) 94_Dying Sound_[濒死音效] 95_Dying Sound Event_[濒死音效事件](WWise)
96_Train Sound_[训练音效] 97_Train Sound Event_[训练音效事件](WWise) 98_Damage Sound_[损坏音效] 99_Damage Sound Event_[损坏音效事件](WWise)
132_Command Sound_[命令音效] 133_Command Sound Event_[命令音效事件](WWise) 134_Move Sound_[移动音效] 135_Move Sound Event_[移动音效事件](WWise)
136_Construction Sound_[建造音效] 137_Construction Sound Event_[建造音效事件](WW) 138_Transform Sound_[转换音效] 139_Transform Sound Event_[转换音效事件](WWise) 140_Shared Selection/Run Pattern_双击选择行为[运行模式]
141_Interface Kind_[界面类型] 142_Combat Level_[战斗等级] 143_Interaction Mode_[交互模式] 144_Minimap Mode_[小地图模式] 145_Trailing Unit_[尾随单位]
146_Trail Mode_[尾迹模式] 147_Trail Density_[尾迹密度] 148_Projectile Graphic Displacement X_[投射物图形位移 X] 149_Projectile Graphic Displacement Y_[投射物图形位移 Y]
150_Projectile Graphic Displacement Z_[投射物图形位移 Z]
151_Projectile Spawning Area Width_[投射物生成区域宽度] 152_Projectile Spawning Area Length_[投射物生成区域长度] 153_Projectile Spawning Area Randomness_[投射物生成区域随机性]
154_Damage Graphics Entry Mod_[伤害图示条目修改] 155_Damage Graphics Total Num_[伤害图示总数]
156_Damage Graphic Percent_[伤害图示百分比] 157_Damage Graphic Apply Mode_[伤害图示应用模式]
====================================================================================================
◆◆◆◆◆单位指令:
下面`左边的数字是用XS设置时的编号,不用XS的话可以无视,列表见下文XS部分
所有指令新增27`Enabled参数:当该参数未设置(-1)时,指令可用;该参数可设置为一个资源编号,对应资源的值>0时,指令可用,<=0时指令禁用。
10_Fly_飞行指令:
0`Work Value 1:单位漫游(滑翔)时的速度乘数
1`Work Value 2:回避的单位
2`Work Range:漫游时与回避的单位保持的最小距离
4`Search Wait Time:单位改变方向时暂停并播放空闲图像的时间(秒)
5`Unused Flag:为1时,只有属于大地之母时才会漫游
7`Terrain:漫游时的地形限制。如果为-1,则使用单位自身的地形限制表
12`Moving Graphic、13`ProceedingGraphic、14`Working Graphic:随机使用这三者作为单位飞行移动时的图像。当前Working Graphic未设置时由Standing Graphic代替。如果都未设置,使用单位的Walking Graphic
23`Carry Check:在选择新的飞行方向以折返前,单位需要飞行的距离,0为无限制
110_Hunt_狩猎指令:目前已知只要是使用110_Hunt_狩猎指令采集存储了黄金的类鹿、类猪单位尸体,都会即时上交,不会放在采集者身上也不需要去提交点。
对类羊的话没这个特性,是正常上交。对储存了木材、食物、石头的单位的尸体也没这个特性,是正常上交。疑似硬编码。
====================================================================================================
◆◆◆◆◆游戏中:
被军队或建筑击杀的动物的食物现在可以留存并被村民收集
辅助农田放置:选择建造农田时,鼠标悬停在城镇中心、磨坊、农田等建筑上,按住Shift键点击鼠标,可以将农田地基适当地分布在鼠标悬停的建筑周围(非新功能)
正在建造的建筑物现在可以设置聚集点
====================================================================================================
◆◆◆◆◆地编:
新增6个地形(122~127)
新增触发效果:[修改物件属性]、[根据变量修改物件属性],会使对象独立化
新增触发效果:[修改类别属性],类似修改属性,但基于种属
新增触发效果:[研究本地科技],适用于Type 33的科技(例如阿契美尼德城镇独立升级),作用于个别单位或区域
新增触发效果:[添加训练地点],为单位增加训练地点
[更改物体标题]效果现在支持在名称处输入字符,而不是仅限字符串表ID
[修改属性]效果中的一些属性现在支持输入浮点数
在地图编辑器中按Ctrl+空格会进入测试
新增选项:按显示顺序运行触发器和效果
新增功能:重置起始视图
====================================================================================================
◆◆◆◆◆AI:
新增:object-data-attack-delay,返回单位的攻击帧延迟时间,依据单位的Frame Delay属性和攻击动画时长计算得出。
====================================================================================================
◆◆◆◆◆RMS:
PLAYER_SETUP中新增命令:water_definition,用以改变水域外观,参数见random_map.def
以下LAND_GENERATION里的命令允许使用浮点数:land_position、land_percent、left_border、right_border、top_border、bottom_border、circle_radius
ONNECTION_GENERATION中新增命令:create_connect_land_zones
新增LAND属性:set_circular_base,将生成的Land从方形改为圆形
新增LAND属性:land_conformity,接一个-100至100的参数,值越高,由land_percent或number_of_tiles生成的额外土地块就越遵循该土地的base_size,从而不会与原始形状产生更大偏差。负值将更多地阻止此行为
新增LAND属性:generate_mode,用于控制未定义land_position时土地的定位。值为1时土地不再以十字方式生成,而是有机会在地图任何位置生成
新增TERRAIN属性:spacing_to_specific_terrain,用于避开特定地形,每个地形最多可使用四个此属性
新增OBJECTS属性:avoid_other_land_zones,使对象避免在其它LAND上生成,可接一个整数参数为距离,该属性需与set_place_for_every_player或place_on_specific_land_id结合使用才有效
新增命令create_object_group用于随机生成对象组,新增与此命令同时使用的add_object声明
====================================================================================================
◆◆◆◆◆JSON:
自定义战役的*layout.json文件中,新增ExtendedDifficultyList参数,为true时可以在战役中启用最易和传奇难度。
history.json可以设置历史页面的数据
====================================================================================================
◆◆◆◆◆XS:
可以通过设置33号资源调用xs文件夹中的Effects.xs文件里对应数值的函数(EffectFunction<N>,函数参数为玩家ID)
目前Effects.xs中各个数值对应的函数功能为:
1≡印加团队加成 2≡匈奴马随机图像 3≡契丹斡鲁朵骑兵 4≡魏屯田 5≡维京酋长
6≡蜀汉盘蛇阵光环 7≡萨拉森穆斯林诊所光环 8≡凯尔特堡垒光环 9≡格鲁吉亚强化教堂光环 10≡吴赤壁战术
11≡契丹牧民牧羊人加成(已作废) 12≡葡萄牙浆果采集者加成 13≡波兰石矿工加成 14≡勃艮第葡萄园 15≡越南纸币
16≡蜀汉和雅典的伐木工加成
目前要把Effects.xs模组化必须与一个DAT文件放在同一个模组,单独一个Effects.xs文件会报错
另见上文资源33部分
--------------------
新增:void xsResetTaskAmount(),将xsTaskAmount设置的所有指令值重置为默认值,避免无意中应用以前设置的指令属性
完善了xsTaskAmount可设置的指令属性,以下列出列表,也可参阅Constants.xs
0=Work Value1=cTaskAttrWorkValue1 1=Work Value2=cTaskAttrWorkValue2 2=Work Range=cTaskAttrWorkRange
3=Work Flag 2=cTaskAttrWorkFlag2 4=Search Wait Time=cTaskAttrSearchWaitTime 5=Unused flag=cTaskAttrCombatLevelFlag
6=Target diplomacy=cTaskAttrOwnerType 7=Terrain=cTaskAttrTerrain 8=Resource In=cTaskAttrResourceIn
9=Productivity Resource=cTaskAttrProductivityResource 10=Resource Out=cTaskAttrResourceOut 11=Unused Resource=cTaskAttrUnusedResource
12=Moving Graphic=cTaskAttrMovingGraphic 13=Proceeding Graphic=cTaskAttrProceedingGraphic 14=Working Graphic=cTaskAttrWorkingGraphic
15=Carrying Graphic=cTaskAttrCarryingGraphic 16=Resource Gathering Sound=cTaskAttrGatheringSound 17=Resource Gathering Sound Event=cTaskAttrGatheringSoundEvent
18=Resource Gathering Sound Int32=cTaskAttrGatheringSoundInt32 19=Resource Deposit Sound=cTaskAttrDepositSound 20=Resource Deposit Sound Event=cTaskAttrDepositSoundEvent
21=Resource Deposit Sound Int32=cTaskAttrDepositSoundInt32 22=Auto Search=cTaskAttrAutoSearch 23=Carry Check=cTaskAttrCarryCheck
24=Building Pick=cTaskAttrBuildingPick 25=Gather Type=cTaskAttrGatherType 26=Enable Targeting=cTaskAttrEnableTargeting
27=Enabled=cTaskAttrEnabled 28=Task Type=cTaskAttrTaskType 29=cTaskAttrObjectId
30=cTaskAttrObjectClass
--------------------
为xsGetObjectAttribute添加一个可选参数damageClass,可返回指定对象特定护甲类型的攻防属性值。例如:xsGetObjectAttribute(1, 4, cArmor, cDamageClassPierce)
新增以下XS(感兴趣的自行参阅帝国2的UGC页面):
float xsGetUnitAttribute(int unitId, int attribute, int damageClass),返回对应单位的特定属性值。当选择攻防属性时,第三个参数为对应攻防类型
int xsGetTurn(),返回当前轮次。轮次类似于时钟周期,高频率规则会每轮次执行一次
int xsGetPlayerUnitIds(int objectId, int playerId, int xsArrayId),返回指定玩家特定对象的ID列表数组,第三个为可选参数用于设置已存在的数组,而非创建新数组
bool xsDoesUnitExist(int unitId),判断对应ID单位是否存在
int xsGetUnitOwner(int unitId),返回对应ID单位所属的玩家
string xsGetPlayerName(int playerId),返回对应玩家的名称
vector xsGetUnitPosition(int unitId),返回对应ID单位的坐标
string xsGetUnitName(int unitId, bool internalName = false),返回对应ID单位的名称,internalName为true时为内部名,否则为语言名
int xsGetUnitTargetUnitId(int unitId),返回对应单位的目标单位的ID,例如攻击目标等
vector xsGetUnitMoveTarget(int unitId),返回对应单位的移动目的地坐标
int xsGetUnitGroupId(int unitId),返回单位当前的编队ID
vector xsGetGroupMoveTarget(int groupId),返回对应编队的移动目的地坐标
string xsGetObjectName(int objectId, int playerId, bool internalName = false),返回对应对象的名称,internalName为true时为内部名,否则为语言名
bool xsIsObjectAvailable(int objectId, int playerId),判断对应对象可否被训练或建造
string xsGetTechName(int techId, int playerId),返回对应的科技名称
int xsGetTechState(int techId, int playerId),返回指定玩家的对应科技的研发状态,状态值含义见Constants.xs中的"xsTechState Constants"部分
float xsGetUnitHitpoints(int unitId),返回对应单位的当前生命值
bool xsSetUnitHitpoints(int unitId, float value),设置对应单位的当前生命值
float xsGetUnitBuildPoints(int unitId),返回对应建筑的建造点数
bool xsSetUnitBuildPoints(int unitId, float value),设置对应建筑的建造点数
int xsGetUnitObjectId(int unitId),返回对应单位的对象ID
int xsGetUnitCopyId(int unitId),返回对应单位的复制ID
int xsGetObjectCopyId(int playerId, int objectId),返回指定玩家对应对象的复制ID
int xsGetUnitClass(int unitId),返回对应单位的种属
int xsGetObjectClass(int playerId, int objectId),返回指定玩家对应对象的种属
int xsGetUnitType(int unitId),返回对应单位的类型Type
int xsGetObjectType(int playerId, int objectId),返回指定玩家对应对象的类型Type
int xsGetUnitAttributeTypesHeld(int unitId),返回对应单位携带的资源的数值数组,除贸易单位外,大多数单位都只会携带1种资源类型(或未携带)
float xsGetUnitAttributeHeld(int unitId, int attributeId = -1),返回对应单位携带的指定资源数值
bool xsSetUnitAttributeHeld(int unitId, float value, int attributeId = -1),设置对应单位携带的指定资源数值
float xsGetUnitCharge(int unitId),返回对应单位的蓄力值
bool xsSetUnitCharge(int unitId, float value),设置对应单位的蓄力值
float exp(float x),返回自然指数函数,即e^x
float ceil(float x),向上取整
float floor(float x),向下取整
float bitCastToFloat(int number),int转float
int bitCastToInt(float number),float转int
====================================================================================================
◆◆◆◆◆其它:
Graphics图像标签中的Sequence Type属性增加标志位16,可以反向播放动画。(原有的1~8标志位见AGE)
Steam启动参数:KEEP_MODS_AFTER_CRASH:在上个游戏会话崩溃后保持模组处于原来的启用状态
====================================================================================================
by凌果
~~~ |
|