1MOD创作原理
帝国时代3亚洲王朝的MOD现在论坛里还是比较丰富的,但是我这里不是直接给玩家一个MOD,而是让玩家自己学会制作自己的MOD,并且关键在于,这样创作的MOD不修改原始游戏的任何部分,是独立MOD,我们只是进行添加,而不是篡改,并且不是添加一大堆主城卡片来敷衍了事,徒增麻烦,尽量保证不影响原版游戏;另外的,我们的MOD最重要的一条是以最少的添加改动达到最完美的效果,可同时适用于帝国时代3原版+酋长+亚洲王朝!!
1.1、创作一个新的英雄单位
她拥有自己独特的属性和能力
她拥有一个独特的主动技能和一个独特的被动技能
并且经由她可以建造一个独特的建筑物
她可以通过所有文明的城镇中心训练出来,并且只对玩家有效
她可以通过所有主角型战役英雄训练出来
她将默认为跑动(永远都是奔跑)状态
1.2、创作一个独特的建筑物
它拥有自己独特的属性和能力它拥有一个独特的主动技能和一个独特的被动技能它可以通过上述新英雄建造出来它将默认为自动工作(攻击、生产
等)状态
1.3、创造的MOD所能达到的游戏实际效果
1、新的英雄单位
A、属性和能力她可以探索和搜集宝藏她是一个远程火枪攻击型英雄,该攻击对宝藏守护者和敌人的所有物件均有效她近距离仍然用火枪,不会由于
切换剑来近战而浪费时间和降低攻击力在攻击速度保持原版游戏数据的情况下(即不改变攻速),她射击时却不需要装填弹药的动作,始终用火枪射
击她的火枪可以射击建筑物和舰船而不是用火把…可以设定船运集结地
B、技能主动技能效果:造成大面积杀伤的狙击效果被动技能效果:有一定几率造成即死效果,并且会增加周围单位、村民、建筑、舰船的攻击力、
最大生命点数和移动速度的光环效果建造技能:可快速建造贸易站、上述创作的建筑物和城镇中心
2、新的建筑物
A、属性和能力该建筑物拥有反舰攻击和炮轰攻击能力炮轰攻击有溅射效果,并且可以攻击建筑物、宝藏守护者该建筑物增加200的人口地图全亮可
以装载\容纳一定数量的任何我方单位可以设定船运集结地
B、技能主动技能效果:启动后大幅度加快科研和船运的速度被动技能效果:可以全自动同时产生所有资源(包括食物、木材、金币、经验、外
贸),并且在我方单位、建筑、舰船待命(原地不动,不跑动、不攻击、不被攻击等)的状态下,它们可以自动恢复生命点数。
2MOD创作所需准备
2.1、MOD所需文件的准备
要想达到我们此次MOD的独特效果,首先玩家要在游戏目录外暂时创建一个文件夹,MOD的制作都在该文件夹内完成,以免影响原始游戏;其次玩
家需要用AOE3ED这个工具先把我们创作MOD的文件模板制作出来,下面这些文件是必须制作出来的:
ArchiveViewer程序打开Art1.bar文件提取Art\buildings\outpost\ outpost.xml.xmb文件
ArchiveViewer程序打开Data3.bar文件提取Data\ abilities\ abilities.xml.xmb文件
ArchiveViewer程序打开Data3.bar文件提取Data\ abilities \ powers.xml.xmb文件
ArchiveViewer程序打开Data3.bar文件提取Data\tactics\ amelia. tactics.xmb文件
ArchiveViewer程序打开Data3.bar文件提取Data\tactics\ combatBuilding. tactics.xmb文件
ArchiveViewer程序打开Data3.bar文件提取Data\tactics\ towncenter. tactics.xmb文件
ArchiveViewer程序打开SoundXML.bar文件提取Sound \ SPCLizzie_snds.xml.xmb文件
ArchiveViewer程序打开SoundXML.bar文件提取Sound \outpost_snds.xml.xmb文件
直接打开游戏目录在data文件夹内复制protoy.xml文件
直接打开游戏目录在data文件夹内复制stringtabley.xml文件
直接打开游戏目录在data文件夹内复制techtreey.xml文件
文件全部提取\复制到新建文件夹后,用FileConverter程序将所有后缀为.xml.xmb的文件转换为.xml文件,这样所有文件模板都能用记事本\写字板
\Microsoft Office Word直接打开,并且我们将这些文件名改为自己创造的单位名字(根据喜好随意取名)。
例如:
1、新英雄的模板文件名:
amelia. tactics这个文件模板改名为Anelace.tactics
SPCLizzie_snds.xml这个文件模板改名为Anelace_snds.xml
2、新建筑的模板文件名:
outpost.xml这个文件模板改名为BG.xml
combatBuilding. tactics这个文件模板改名为BG. tactics
outpost_snds.xml这个文件模板改名为BG_snds.xml
另外需要自己制作的文件如下:
用ACDSEE软件自己制作8张.tga格式的图片(原图旋转180度切记)来生成游戏里的图标,2张用于新英雄,大小分别为64X64和128X128,2张用
于新建筑,大小分别为64X64和128X128,3张用于新技能,大小为64X64。之后这些文件的文件名(根据喜好随意取名)末尾要加上.(0,0,4,1)。例
如:
2张用于新英雄的图标文件名:
Anelace_icon_64x64.(0,0,4,1).tga
Anelace_igc_icon.(0,0,4,1).tga
2张用于新建筑的图标文件名:
BG_icon_64x64.(0,0,4,1).tga
BG_portrait.(0,0,4,1).tga
3张用于新技能的图标文件名:
tech_BG.(0,0,4,1).tga
tech_passive_Anelace_aura.(0,0,4,1).tga
tech_passive_BG_aura.(0,0,4,1).tga
完成后用FileConverter程序转换为.dds文件
2.2、MOD所需文件的布置
将上述所有文件放入自行创建的如下几个文件夹下:
Anelace_icon_64x64.dds
Anelace_igc_icon.dds
tech_passive_Anelace_aura.dds
放入:新建文件夹\Art\Anelace
BG.xml
tech_BG.dds
tech_passive_BG_aura.dds
放入:新建文件夹\Art\BG
Anelace_snds.xml
BG_snds.xml
放入:新建文件夹\Sound
abilities.xml
powers.xml
放入:新建文件夹\data\ abilities \
Anelace.tactics
BG. Tactics
towncenter. tactics
放入:新建文件夹\data\tactics\
protoy.xml
stringtabley.xml
techtreey.xml
放入:新建文件夹\data\
2.3、MOD创作前的校核
最后,请检查你的上述步骤是否有所错误或者疏漏,我们新建的文件夹下一共有3个根文件夹(Art、data、Sound)和2个子文件夹(\data\ abilities
\、\data\tactics\)
里面包含16个我们这次MOD需要用到的文件,如下:
Anelace_icon_64x64.dds
Anelace_igc_icon.dds
tech_passive_Anelace_aura.dds
BG.xml
tech_BG.dds
tech_passive_BG_aura.dds
Anelace_snds.xml
BG_snds.xml
abilities.xml
powers.xml
Anelace.tactics
BG. tactics
towncenter. tactics
protoy.xml
stringtabley.xml
techtreey.xml
核对无误后,即可正式开始我们的MOD之旅!!
3MOD创作方法
3.1、新单位在游戏中的文字介绍
打开:新建文件夹\data\ stringtabley.xml
在文本末尾处添加紫色代码后效果如下:(蓝色为代码翻译说明,相同含义或者非关键的代码不重复翻译说明,玩家勿添加,下同)
<String _locID="70523">精锐葡萄牙散兵</String>
<String _locID="70524">INF 葡萄牙散兵</String>
<String _locID="200000">亚妮拉丝·艾尔菲德</String>
这些文字按个人喜好而更改
<String _locID="200001">可爱的游击士</String>
<String _locID="200002">来自空之轨迹的女主角,她喜欢一切可爱的东西喔!!</String>
<String _locID="200003">极其可爱活泼的女孩,看上去无懈可击...</String>
<String _locID="200004">莱恩哈特之魂</String>
<String _locID="200005">被动能力: 亚妮拉丝蕴藏着的莱恩哈特之魂可以大幅度提高周围单位的能力。</String>
<String _locID="200006">游击士协会</String>
<String _locID="200007">来自空之轨迹的利贝尔王国柏斯市游击士协会,为人民服务是她们的宗旨。</String>
<String _locID="200008">极其威严宏伟的建筑,看上去无坚不摧...</String>
<String _locID="200009">梅贝尔的魅力</String>
<String _locID="200010">被动能力: 柏斯市长梅贝尔的魅力足以富可敌国-随时间获得源源不断的资源。</String>
<String _locID="200011">导力革命</String>
<String _locID="200012">利贝尔王国带来的导力技术,启动这个先进的技术将带来超速的科技发展...</String>
<String _locID="200013">八叶灭杀</String>
<String _locID="200014">亚妮拉丝精准的狙击,可一次消灭大股敌军...</String>
</Language>
</StringTable>
如此,即可完成我们创作的新英雄、建筑、技能等在游戏中的文字说明。
3.2、新单位的添加和属性的编辑
打开:新建文件夹\data\ protoy.xml
在末尾处添加紫色代码后效果如下:
<ProtoAction>
<Name>Build</Name>
<Rate type ='WarHut'>2.000000</Rate>
<Rate type ='Blockhouse'>2.000000</Rate>
<Rate type ='Outpost'>2.000000</Rate>
<Rate type ='YPOutpostAsian'>2.000000</Rate>
</ProtoAction>
</Unit>
<Unit id ='2000' name ='Anelace'>
新英雄代码与名字--亚妮拉丝,按个人喜好而更改
<DBID>2001</DBID>
<DisplayNameID>200000</DisplayNameID>
游戏中显示的名字,代码对应stringtabley.xml
<EditorNameID>200001</EditorNameID>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Body</FormationCategory>
<MaxVelocity>6.0000</MaxVelocity>
<MaxRunVelocity>8.0000</MaxRunVelocity>
奔跑速度,建议不要太高,6~8之间较为真实
<MovementType>land</MovementType>
移动类型,你也可以改成,air可以飞行或者water可以航行,除非你新建的是飞行生物或者舰船否则不建议这么做
<TurnRate>18.0000</TurnRate>
<AnimFile>units\spc\amelia_black\spc_amelia_black.xml</AnimFile>
模型,这里套用战役英雄埃米莉亚·布莱克
<ImpactType>Flesh</ImpactType>
<Icon>Anelace\Anelace_icon_64x64</Icon>
单位小图标文件
<PortraitIcon>Anelace\Anelace_igc_icon</PortraitIcon>
单位大图标文件
<RolloverTextID>200002</RolloverTextID>
游戏中显示的单位详细描述,代码对应stringtabley.xml
<ShortRolloverTextID>200003</ShortRolloverTextID>
游戏中显示的单位简短描述,代码对应stringtabley.xml
<InitialHitpoints>1850.0000</InitialHitpoints>
单位初始生命点数
<MaxHitpoints>1850.0000</MaxHitpoints>
单位最大生命点数
<LOS>40.0000</LOS>
单位视野
<AutoAttackRange>32.0000</AutoAttackRange>
单位自动攻击范围
<UnitAIType>RangedCombative</UnitAIType>
单位类型AI,这里是远程作战
<TrainPoints>1.0000</TrainPoints>
训练时间,建议1秒
<BuildLimit>1</BuildLimit>
单位建造限制,为了体现该新增英雄的独特性,因此这里只建议1,即玩家只能建造一个该英雄
<Cost resourcetype ='Food'>0.0000</Cost>
单位成本,这里是免费
<AllowedAge>0</AllowedAge>
单位可诞生的时代,建议0,即不限制时代
<Armor type ='Hand' value ='1.0000'></Armor>
单位抵抗攻击的护甲,这里是对近战武器攻击免疫,玩家也可以改成Ranged、Siege、All来分别实现火枪、火炮免疫和无敌
<UnitType>LogicalTypeHealed</UnitType>
<UnitType>LogicalTypeNeededForVictory</UnitType>
<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeLandMilitary</UnitType>
<UnitType>LogicalTypeScout</UnitType>
<UnitType>LogicalTypeValidSPCUnitsDeadCondition</UnitType>
<UnitType>LogicalTypeGarrisonInShips</UnitType>
<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
<UnitType>AbstractRangedInfantry</UnitType>
<UnitType>AbstractInfantry</UnitType>
<UnitType>ConvertsHerds</UnitType>
<UnitType>AbstractCavalryInfantry</UnitType>
<UnitType>Unit</UnitType>
<UnitType>Military</UnitType>
<UnitType>UnitClass</UnitType>
<UnitType>Hero</UnitType>
英雄单位
<UnitType>HasBountyValue</UnitType>
<UnitType>Ranged</UnitType>
<Train row ='0' page ='6' column ='2'>TownCenter</Train>
可建造城镇中心
<Train row ='0' page ='6' column ='0'>TradingPost</Train>
可建造贸易站
<Train row ='0' page ='6' column ='1'>BG</Train>
可建造新建筑,游击士协会
<Flag>CollidesWithProjectiles</Flag>
<Flag>ApplyHandicapTraining</Flag>
<Flag>CorpseDecays</Flag>
<Flag>ShowGarrisonButton</Flag>
<Flag>DontRotateObstruction</Flag>
<Flag>ObscuredByUnits</Flag>
<Flag>NotDeleteable</Flag>
单位无法自杀\毁
<Flag>KnockoutDeath</Flag>
单位无法死亡,濒死的时候,可由我方\友方救护,或者在城镇中心救赎 <Flag>RotateInPlace</Flag> <Flag>Tracked</Flag>
<Command page ='1' column ='1'>SetUnitAsHomeCityGatherPoint</Command>
可设定主城\船运集结点 <Command page ='10' column ='0'>Garrison</Command> <Command page ='11' column
='0'>Abilities</Command>
开启技能界面 <Command page ='10' column ='2'>Stop</Command>
<Tactics>Anelace.tactics</Tactics>
单位战术AI文件,下文会编辑这个极其重要的文件 <ProtoAction>
单位能力 <Name>Build</Name>
建造 <Rate type ='TownCenter'>20.000000</Rate>
建造城镇中心的速度提高20倍 <Rate type ='TradingPost'>20.000000</Rate> <Rate type ='BG'>20.000000</Rate> </ProtoAction>
<ProtoAction>
<Name>DoubleBarrelAttack</Name> 八叶灭杀 <Damage>10000.000000</Damage>
伤害 <DamageType>Ranged</DamageType>
伤害类型 <MaxRange>32.000000</MaxRange>
射程
<ROF>3.000000</ROF>
攻击间隔(不是冷却时间,如果冷却时间太长,3秒后无法再发动该技能,冷却时间在下文会编辑修改)
<DamageArea>4.000000</DamageArea>
溅射范围 <DamageFlags>GAIAEnemy</DamageFlags>
</ProtoAction> <ProtoAction>
<Name>MusketAttack</Name>
<Damage>100.000000</Damage>
<DamageType>Ranged</DamageType>
<MaxRange>32.000000</MaxRange>
<ROF>1.000000</ROF>
<HitPercent>20.000000</HitPercent>
攻击造成的即死效果几率
<DamageMultiplier>100.000000</DamageMultiplier>
触发即死效果时伤害加成 <HitPercentType>CriticalAttack</HitPercentType>
</ProtoAction> </Unit> <Unit id ='2002' name ='BG'>
新建筑代码与名字--游击士协会 <DBID>2003</DBID>
<DisplayNameID>200006</DisplayNameID>
<PopulationCapAddition>200</PopulationCapAddition>
增加200的人口
<ObstructionRadiusX>2.0000</ObstructionRadiusX>
<ObstructionRadiusZ>2.0000</ObstructionRadiusZ>
<MaxVelocity>0.0000</MaxVelocity>
<MovementType>land</MovementType>
<AnimFile>BG\BG.xml</AnimFile>
模型--套用3级帝国炮塔
<DeadReplacement>BuildingRubble2x2</DeadReplacement>
<DeadReplacementLifespan>15</DeadReplacementLifespan>
<ImpactType>Wood</ImpactType>
<PhysicsInfo>house</PhysicsInfo>
<PlacementFile>buildingsmall.xml</PlacementFile>
<Icon>BG\BG_icon_64x64</Icon>
<PortraitIcon>BG\BG_portrait</PortraitIcon>
<RolloverTextID>200007</RolloverTextID>
<ShortRolloverTextID>200008</ShortRolloverTextID>
<InitialHitpoints>12000.0000</InitialHitpoints>
<MaxHitpoints>12000.0000</MaxHitpoints>
<LOS>1000.0000</LOS>
地图全亮
<ProjectileProtoUnit>Arrow</ProjectileProtoUnit><UnitAIType>RangedCombative</UnitAIType>
<BuildPoints>50.0000</BuildPoints>
<Cost resourcetype ='Wood'>0.0000</Cost>
<BuildingWorkRate>1.0000</BuildingWorkRate>
<MaxContained>20</MaxContained>
最大装载\容纳20个单位
<AllowedAge>0</AllowedAge>
<Armor type ='Siege' value ='1.0000'></Armor>
对火炮免疫
<UnitType>LogicalTypeValidSabotage</UnitType>
<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeBuildingsNotWalls</UnitType>
<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeShipsAndBuildings</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>LogicalTypeBuildingsNotWallsOrGroves</UnitType>
<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
<UnitType>Building</UnitType>
<UnitType>BuildingClass</UnitType>
<UnitType>MilitaryBuilding</UnitType>
<UnitType>HasBountyValue</UnitType>
<UnitType>AbstractFort</UnitType>
<UnitType>CountsTowardMilitaryScore</UnitType>
<UnitType>ConvertsHerds</UnitType>
<Tech row ='0' page ='1' column ='0'>DLGM</Tech>
主动技能--导力革命
<Flag>AllowAutoGarrison</Flag>
<Flag>CollidesWithProjectiles</Flag>
<Flag>StartsAtFullEfficiency</Flag>
<Flag>Immoveable</Flag>
<Flag>NoBloodOnDeath</Flag>
<Flag>ObscuresUnits</Flag>
<Flag>NonAutoFormedUnit</Flag>
<Flag>Doppled</Flag>
<Flag>SelectWithObstruction</Flag>
<Flag>PaintTextureWhenPlacing</Flag>
<Flag>FlattenGround</Flag>
<Flag>HasGatherPoint</Flag>
<Flag>Tracked</Flag>
<Contain>All</Contain>
可装载\容纳所有种类的单位
<Command page ='11' column ='0'>Abilities</Command>
开启技能界面
<Command page ='1' column ='1'>SetUnitAsHomeCityGatherPoint</Command>
<Command page ='10' column ='3'>Delete</Command>
<Command>CancelNativeDance</Command>
<Command>StartNativeDance</Command>
<Command page ='10' column ='2'>Eject</Command>
<Command page ='10' column ='1'>SetGatherPointEconomy</Command>
<Command page ='10' column ='0'>SetGatherPointMilitary</Command>
<Tactics>BG.tactics</Tactics>
<ProtoAction> <Name>AntiShipAttack</Name>
反舰攻击
<Damage>10000.000000</Damage>
<DamageType>Siege</DamageType>
<MinRange>0.000000</MinRange>
<MaxRange>40.000000</MaxRange>
</ProtoAction> <ProtoAction>
<Name>CannonAttack</Name>
炮轰攻击
<Damage>6000.000000</Damage>
<action>
<name stringid="38133">RangedAttack</name>
<type>Attack</type>
<attackaction>1</attackaction>
…
…
<tactic>
Normal
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
<action>MBE</action>
别看漏了,这个要加!!
<action priority="100">AntiShipAttack</action>
…
…
</tactic>
</tactics>
这样就达到了新英雄始终跑动状态的效果。
之后打开Anelace. tactics文件进行新英雄技能的赋予,清空该文件全部文本内容并添加如下内容后保存:
<?xml version="1.0" encoding="utf-8"?>
<tactics>
<action>
<name stringid="69148">Discover</name>
探索宝藏
<type>Discover</type>
<anim>Pickup</anim>
<maxrange>0.2</maxrange>
<rate type="AbstractNugget">1.0</rate>
可搜集宝藏
</action>
<action>
<name stringid="69147">Build</name>
建造建筑
<type>Build</type>
<anim>Build</anim>
<maxrange>0.2</maxrange>
<rate type="Building">1.0</rate>
可建造建筑
</action>
<action>
<name stringid="38133">MusketAttack</name>
火枪攻击且无装填弹药动作的代码如下
<type>Attack</type>
<attackaction>1</attackaction>
<rangedlogic>1</rangedlogic>
<anim>RangedAttack</anim>
<maxheight>0</maxheight>
<accuracy>1.0</accuracy>
<accuracyreductionfactor>0.5</accuracyreductionfactor>
<aimbonus>0</aimbonus>
<maxspread>5</maxspread>
<spreadfactor>0.25</spreadfactor>
<trackrating>12</trackrating>
<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
<projectile>InvisibleProjectile</projectile>
<impacteffect>effects\impacts\gun</impacteffect>
<minrange>1</minrange>
<rate type="All">1.0 </rate>
可攻击所有敌方目标,包括建筑物和舰船
<instantballistics>1</instantballistics>
</action>
<action>
<name stringid="38120">DoubleBarrelAttack</name>
八叶灭杀
<type>Attack</type>
<attackaction>1</attackaction>
<rangedlogic>1</rangedlogic>
<anim>RangedAttackSharpshoot</anim>
<idleanim>SharpshootIdle</idleanim>
<boredanim>SharpshootIdle</boredanim>
<maxheight>0</maxheight>
<accuracy>1.0</accuracy>
<accuracyreductionfactor>0.001</accuracyreductionfactor>
<aimbonus>5</aimbonus>
<trackrating>12</trackrating>
<rate type="All">1.0 </rate>
可攻击所有敌方目标,包括建筑物和舰船和村民
<impacteffect>effects\impacts\gun</impacteffect>
<projectile>InvisibleProjectile</projectile>
<rof>1.000000</rof>
<targetground>1</targetground>
<basedamagecap>1</basedamagecap>
<areasortmode>Directional</areasortmode>
<throw>1</throw>
</action>
<action>
<name stringid="200004">JFS</name>
伤害光环代码如下
<type>AutoRangedModify</type>
<modifyabstracttype>All</modifyabstracttype>
<active>1</active>
<maxrange>1000</maxrange>
<persistent>1</persistent>
<modifytype>Damage</modifytype>
<modifymultiplier>1.5</modifymultiplier>
<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
</action>
<action>
<name stringid="200004">FHZ</name>
生命光环代码如下
<type>AutoRangedModify</type>
<modifyabstracttype>All</modifyabstracttype>
<active>1</active>
<maxrange>1000</maxrange>
<persistent>1</persistent>
<modifytype>MaxHP</modifytype>
<modifymultiplier>1.5</modifymultiplier>
<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
</action>
<action>
<name stringid="200004">LY</name>
速度光环代码如下
<type>AutoRangedModify</type>
<modifyabstracttype>All</modifyabstracttype>
<active>1</active>
<maxrange>1000</maxrange>
<persistent>1</persistent>
<modifytype>Speed</modifytype>
<modifymultiplier>1.5</modifymultiplier>
<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
</action>
<tactic>
Volley
<speedmodifier>1.0</speedmodifier>
<action>JFS</action>
<action>FHZ</action>
<action>LY</action>
<action priority="100">MusketAttack</action>
<action priority="75">DoubleBarrelAttack</action>
<action>Build</action>
<action>Discover</action>
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
<runaway>0</runaway>
<idleanim>Idle</idleanim>
<boredanim>Bored</boredanim>
<deathanim>Death</deathanim>
<walkanim>Walk</walkanim>
<joganim>Jog</joganim>
<runanim>Run</runanim>
</tactic>
<tactic>
Defend
<speedmodifier>1.0</speedmodifier>
<action>JFS</action>
<action>FHZ</action>
<action>LY</action>
<action priority="100">MusketAttack</action>
<action priority="75">DoubleBarrelAttack</action>
<action>Build</action>
<action>Discover</action>
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
<runaway>0</runaway>
<idleanim>Idle</idleanim>
<boredanim>Bored</boredanim>
<deathanim>Death</deathanim>
<walkanim>Walk</walkanim>
<joganim>Jog</joganim>
<runanim>Run</runanim>
</tactic>
<tactic>
Stagger
<speedmodifier>1.0</speedmodifier>
<action>JFS</action>
<action>FHZ</action>
<action>LY</action>
<action priority="100">MusketAttack</action>
<action priority="75">DoubleBarrelAttack</action>
<action>Build</action>
<action>Discover</action>
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
<runaway>0</runaway>
<idleanim>Idle</idleanim>
<boredanim>Bored</boredanim>
<deathanim>Death</deathanim>
<walkanim>Walk</walkanim>
<joganim>Jog</joganim>
<runanim>Run</runanim>
</tactic>
</tactics>
这样,新英雄的技能就全部完成呐!!
最后我们再打开BG. tactics文件进行新建筑技能的赋予,清空该文件全部文本内容并添加如下内容后保存:
<?xml version="1.0" encoding="utf-8"?>
<tactics>
<action>
<name stringid="38119">CannonAttack</name>
<type>Attack</type>
<attackaction>1</attackaction>
<rangedlogic>1</rangedlogic>
<anim>RangedAttackShip</anim>
<maxheight>0</maxheight>
<accuracy>1.0</accuracy>
<aimbonus>0</aimbonus>
<maxspread>5</maxspread>
<spreadfactor>0.25</spreadfactor>
<trackrating>12</trackrating>
<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
<projectile>Cannonball</projectile>
<impacteffect>effects\impacts\cannon</impacteffect>
<rate type="Unit">1.0 </rate>
<active>0</active>
<throw>1</throw>
<outerdamageareadistance>.25</outerdamageareadistance>
<outerdamageareafactor>.20</outerdamageareafactor>
<areasortmode>Directional</areasortmode>
<perfectaccuracy>1</perfectaccuracy>
<targetground>1</targetground>
<numberbounces>1</numberbounces>
<basedamagecap>1</basedamagecap>
</action>
<action>
<name stringid="38121">AntiShipAttack</name>
<type>Attack</type>
<attackaction>1</attackaction>
<rangedlogic>1</rangedlogic>
<anim>RangedAttackShip</anim>
<maxheight>0</maxheight>
<accuracy>1.0</accuracy>
<aimbonus>0</aimbonus>
<maxspread>5</maxspread>
<spreadfactor>0.25</spreadfactor>
<trackrating>12</trackrating>
<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
<projectile>Cannonball</projectile>
<impacteffect>effects\impacts\cannon</impacteffect>
<perfectaccuracy>1</perfectaccuracy>
<rate type="AbstractWarship">1.0 </rate>
</action>
<action>
<name stringid="70488">Heal</name>
治疗光环代码如下
<type>Heal</type>
<maxrange>1000</maxrange>
<rate type="All">10.0 </rate>
<active>1</active>
<anim>Heal</anim>
</action>
<action>
<name stringid="43019">AutoGather</name>
资源光环代码如下
<type>AutoGather</type>
<persistent>1</persistent>
</action>
<tactic>
Normal
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
<action priority="100">AntiShipAttack</action>
<action priority="75">CannonAttack</action>
<action>Spawn</action>
<action>Heal</action>
<action>AutoGather</action>
</tactic>
</tactics>
于是,我们把新建筑的技能也赋予完毕了,剩下的任务已经不多了,赶紧进入下一章吧!!
4MOD实现方法
4.1、让我们的新单位在游戏里生效
打开:新建文件夹\data\ techtreey.xml
在文本末尾处添加紫色代码如下:
… …
<RolloverTextID>70512</RolloverTextID>
<Flag>HomeCity</Flag>
<Effects>
<Effect type ='Data' action ='AutoGather' amount ='0.40' subtype ='WorkRate' unittype ='XP' relativity ='Absolute'>
<Target type ='ProtoUnit'>Church</Target></Effect></Effects>
</Tech>
<Tech name ='LionCat' type ='Normal'>
以我自己的名字为代码的一个科技,游戏中将不会显示出来,但是效果一进游戏即生效,仅对玩家有效
<DBID>20000</DBID>
<ResearchPoints>0.0000</ResearchPoints>
<Status>OBTAINABLE</Status>
<Flag>Shadow</Flag>
<Effects>
<Effect type ='Data' amount ='1' subtype ='Enable' relativity ='Absolute'>
启动亚妮拉丝为可训练状态
<Target type ='ProtoUnit'>Anelace</Target></Effect>
<Effect type ='Data' amount ='1' subtype ='Enable' relativity ='Absolute'> 启动游击士协会为可建造状态
<Target type ='ProtoUnit'>BG</Target></Effect>
<Effect type ='Data' action ='CannonAttack' amount ='1.00' subtype ='ActionEnable' relativity ='Absolute'>
游击士协会启动炮轰攻击模式
<Target type ='ProtoUnit'>BG</Target></Effect>
</Effects>
</Tech>
<Tech name ='DLGM' type ='Normal'>
游击士协会的主动技能导力革命
<DBID>20001</DBID>
<DisplayNameID>200011</DisplayNameID>
<Cost resourcetype ='Gold'>0.0000</Cost>
<ResearchPoints>1.0000</ResearchPoints>
<Status>OBTAINABLE</Status>
<Icon>BG\tech_BG</Icon>
<RolloverTextID>200012</RolloverTextID>
<Flag>CountsTowardMilitaryScore</Flag>
<Effects>
<Effect type ='Data' amount ='0.01' subtype ='ResearchPoints' relativity ='Percent'>
科研和船运的速度加快100倍
<Target type ='techAll'></Target></Effect>
</Effects>
</Tech>
</TechTree>
那么,现在游戏里我们的新单位就能出现了,她在城镇中心里训练出来,后续效果皆可生效!!
4.2、在帝国时代3+酋长+亚洲王朝里“安装\卸载”我们的MOD
首先请玩家一定备份好原始游戏data\目录下的
protoy.xml
stringtabley.xml
techtreey.xml
这3个文件。
1、安装MOD
将我们的新建文件夹下的所有文件复制到游戏目录下即可。
2、卸载MOD
删除安装MOD时在游戏目录下生成的所有文件,复制以下
protoy.xml
stringtabley.xml
techtreey.xml
之前备份的这3个文件到游戏目录\data\下即可。
5MOD总结
我相信能够坚持看到这里的玩家,至少是能知道如何自己创作一个MOD的大致流程了,虽然可能需要依葫芦画瓢多练习练习和温习温习,但是也能有目的有方向的去思考和分析了吧!!
我们可以看到,这个MOD的创作过程虽然比较复杂,但是却很清晰明了的显示了MOD在游戏中诞生的脚印,最关键的是,我们其实仅仅只是在游戏里添加了一个新的英雄单位,就基本可以达到这个游戏你所需要的全部效果,并且拓展性极强。
拓展性强点在于,这个MOD还可以拓展到许多更多更强大的功能,甚至可以创作大型全新的帝国MOD。例如:
MOD中的新英雄可以为她继续添加代码实现训练任意游戏中的单位或者你自创的新单位;
MOD中的新英雄她的一个固定被动技能还能拓展出更多效果,类似降低敌人的攻击力、生命点数、移动速度,瘫痪敌人、躲闪敌人的攻击等等。
MOD中新英雄建造的新建筑的主动技能可以强化出更多效果,类似加快搜集、生产、单位的训练速度等。
因此,我们可以看到,只要你愿意,游戏中一个新英雄即可实现你所有期望的效果!!
你还在等什么,不想创造自己或者自己喜欢的某个东西来打造自己的帝国吗?!
The war has Just begun!! Now, It’s show time!!
6参考文献
【1】【转帖】帝国时代3修改教程 by finalsky
【2】【原创】亚洲王朝一键科技MOD (v1.0 v1.01 v1.01a 全兼容正式版)! by goodren
【3】【原创】亚洲王朝所有单位自动回血快速修改 by Sean_CGOL
【4】AoE3Ed v0.9 - Preview Release by Ykkrosh / Philip Taylor
finalsky goodren Ykkrosh / Philip Taylor的资料和内容,他们严谨的游戏态度和创新的游戏思路是我孜孜不倦学习和研究的动力。