迫击炮攻击单位



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>