迫击炮攻击单位
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>