迫击炮攻击单位
1.打开你的AOE3ED,提取迫击炮的tactics文件。(一般在游戏data3.bar提取,data3.bar找不到就找data2.bar)
2.打开mortar.tactics,把<rate type="LogicalTypeShipsAndBuildings">1.0</rate>修改成<rate type="All">1.0</rate>
3.就这样,完成了,记得将修改好的文件放到游戏目录\data\tactics文件夹里面。
为了保留平衡性,应该添加
<DamageBonus type ='AbstractVillager'>0.200000</DamageBonus>
<DamageBonus type ='AbstractInfantry'>0.200000</DamageBonus>
<DamageBonus type ='AbstractCavalry'>0.100000</DamageBonus>
<DamageBonus type ='Guardian'>0.100000</DamageBonus>
<DamageBonus type ='AbstractArtillery'>0.200000</DamageBonus> 来降低对单位的伤害。我是直接在tactics添加的,你也可以回去protoy.xml添加。
之前说过Protoy.xml中<ProtoAction>XXXX</Protoction>之间的语句是与
tactics通用的,优先读取protoy,再读取tactics。所以这里可以直接添加protoy攻击加成的语句。
mortar.tactics - 记事本
____
□
X
文件(F) 编辑(E) 格式(O) 查看(V) 帮助(H)
<!-- converted from XMB to XML -->
<tactics>
<action>
<name stringid="38119">CannonAttack</name>
<reloadanim>Bombard_reload</reloadanim>
<type>Attack</type>
<attackaction>1</attackaction>
<rangedlogic>1</rangedlogic>
<anim>Bombard_ranged_attack</anim>
<idleanim>Bombard_ranged_idle</idleanim>
<boredanim>Bombard_bored</boredanim>
<accuracy>1.0</accuracy>
<aimbonus>0</aimbonus>
<maxspread>5</maxspread>
<spreadfactor>0.25</spreadfactor>
<trackrating>2</trackrating>
<unintentionaldamagemultiplier>1.0</unintentionaldamagemultiplier>
<projectile>MortarShell</projectile>
<impacteffect>effects\impacts\mortar</impacteffect>
<rate type="All ">1.0 </rate>
<areasortmode>Radial</areasortmode>
<perfectaccuracy>1</perfectaccuracy>
<targetground>1</targetground>
<basedamagecap>1</basedamagecap>
<DamageBonus type ='AbstractVillager'>0.200000</DamageBonus>
<DamageBonus type ='AbstractInfantry'>0.200000</DamageBonus>
<DamageBonus type ='AbstractCavalry'>0.100000</DamageBonus>
<DamageBonus type ='Guardian'>0.100000</DamageBonus>
<DamageBonus type ='AbstractArtillery'>0.200000</DamageBonus>
</action>
<tactic>
Limber
<speedmodifier>1.0</speedmodifier>
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<transition>
<tactic>Bombard</tactic>
<action>Limber</action>
<anim>Bombard_unlimber</anim>
<length>4</length>
<exit>1</exit>
<commandautomatic>1</commandautomatic>
<automatic>1</automatic>
</transition>
<deathanim>Death_by_melee</deathanim>
</tactic>
<tactic>
Bombard
<speedmodifier>0.4</speedmodifier>
<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
<exclusive>1</exclusive>
<action>CannonAttack</action>
<transition>
<tactic>Limber</tactic>
<action>Limber</action>
<anim>Bombard_limber</anim>
<length>6</length>
<exit>1</exit>
</transition>
<idleanim>Bombard_ranged_idle</idleanim>
<boredanim>Bombard_bored</boredanim>
<walkanim>Bombard_Walk</walkanim>
<joganim>Bombard_Jog</joganim>
<runanim>Bombard_Run</runanim>
<throw>1</throw>
<deathanim>Death_by_melee</deathanim>
</tactic>
</tactics>
用回Protoy.xml修改: 在protoy. xm1添加语句,连tactics文件都不用提取了。。。。。。。。。。。。。
优先读取protoy. xm1的语句,读取了protoy.xml的语句,就不会读取tactics相同类型的语句,不过要注意添加<rate
type=" All">1.0</rate>是叠加,而不是跳过tactics的语句。
例如protoy.xml添加的<rate type="All">1.0</rate>不等于tactics里面<rate type="LogicalTypeShipsAndBuildings">1.0</rate>,为叠加效果,两个语句都起作用。
protoy.xml - 记事本
____
□
X
文件(F) 编辑(E) 格式(O) 查看(V) 帮助(H)
<Unit id ='318' name ='Mortar'>
<DBID>51</DBID>
<DisplayNameID>22975</DisplayNameID>
<EditorNameID>25022</EditorNameID>
<PopulationCount>4</PopulationCount>
<ObstructionRadiusX>0.9900</ObstructionRadiusX>
<ObstructionRadiusZ>0.9900</ObstructionRadiusZ>
<FormationCategory>Protected</FormationCategory>
<MaxVelocity>3.0000</MaxVelocity>
<MaxRunVelocity>5.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>5.0000</TurnRate>
<AnimFile>units\artillery\mortar\mortar.xml</AnimFile>
<ImpactType>Wood</ImpactType>
<Icon>units\artillery\mortar\mortar_icon_64x64</Icon>
<PortraitIcon>units\artillery\mortar\mortar_portrait</PortraitIcon>
<RolloverTextID>22974</RolloverTextID>
<ShortRolloverTextID>25668</ShortRolloverTextID>
<InitialHitpoints>300.0000</InitialHitpoints>
<MaxHitpoints>300.0000</MaxHitpoints>
<LOS>44.0000</LOS>
<ProjectileProtoUnit>MortarShell</ProjectileProtoUnit>
<UnitAIType>RangedCombative</UnitAIType>
<TrainPoints>45.0000</TrainPoints>
<Bounty>45.0000</Bounty>
<BuildBounty>45.0000</BuildBounty>
<Cost resourcetype ='Wood'>100.0000</Cost>
<Cost resourcetype ='Gold'>350.0000</Cost>
<AllowedAge>3</AllowedAge>
<Armor type ='Ranged' value ='0.7500'></Armor>
<UnitType>LogicalTypeHealed</UnitType>
<UnitType>LogicalTypeNeededForVictory</UnitType>
<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeLandMilitary</UnitType>
<UnitType>LogicalTypeValidSPCUnitsDeadCondition</UnitType>
<UnitType>LogicalTypeGarrisonInShips</UnitType>
<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
<UnitType>HasBountyValue</UnitType>
<UnitType>Ranged</UnitType>
<UnitType>CountsTowardMilitaryScore</UnitType>
<UnitType>ConvertsHerds</UnitType>
<UnitType>AbstractArtillery</UnitType>
<UnitType>Unit</UnitType>
<UnitType>UnitClass</UnitType>
<UnitType>Military</UnitType>
<Flag>CollidesWithProjectiles</Flag>
<Flag>ApplyHandicapTraining</Flag>
<Flag>CorpseDecays</Flag>
<Flag>ShowGarrisonButton</Flag>
<Flag>DontRotateObstruction</Flag>
<Flag>ObscuredByUnits</Flag>
<Flag>RotateInPlace</Flag>
<Flag>ConstrainOrientation</Flag>
<Flag>OrientUnitWithGround</Flag>
<Flag>Tracked</Flag>
<Command page ='10' column ='1'>Stop</Command>
<Command page ='10' column ='0'>Garrison</Command>
<Command page ='10' column ='2'>Delete</Command>
<Command page ='9' column ='1'>Tactic3</Command>
<Command page ='9' column ='0'>Tactic4</Command>
<Tactics>mortar.tactics</Tactics>
<ProtoAction>
<Name>CannonAttack</Name>
<Damage>500.000000</Damage>
<DamageType>Siege</DamageType>
<MinRange>4.000000</MinRange>
<MaxRange>40.000000</MaxRange>
<ROF>6.000000</ROF>
<DamageCap>1000.000000</DamageCap>
<rate type="All">1.0 </rate>
<DamageBonus type ='AbstractVillager'>0.200000</DamageBonus>
<DamageBonus type ='AbstractInfantry'>0.200000</DamageBonus>
<DamageBonus type ='AbstractCavalry'>0.100000</DamageBonus>
<DamageBonus type ='Guardian'>0.100000</DamageBonus>
<DamageBonus type ='AbstractArtillery'>0.200000</DamageBonus>
<DamageBonus type ='Ship'>0.500000</DamageBonus>
<DamageArea>1.000000</DamageArea>
<DamageFlags>GAIAEnemy</DamageFlags>
</ProtoAction>
</Unit>