添加攻击技能


给火枪手添加探险家的半蹲射击:
方法:有什么就复制什么。(我给你展示的是制作新技能,tactics的actionname也修改了,如果你要省事,我建议你复制原来的)
探险家有个半蹲射击的技能,好像是叫神枪手,把这个移植到火枪手。注意我上面说的有什么就复制什么。


虽然这个只是复制技能,但是可以让你了解到技能是怎样构成的。




思路:abilities.xml查询探险家的有什么技能调用名,然后去power复制搜索这些技能调用名,在powers.xml得到技能调用名的stringID,去stringtabley.xml搜索查看这些技能叫什么,找到想要复制的神枪手技能后,复制粘贴一份,改名。探险家那个神枪手技能不用去stringtabley.xml查找了,因为那个技能工业时代才会出现(有个工业时代的前提科技),一眼就看出了。
接着去protoy查探险家与火枪手的tacics、与动画xml分别是什么,分别提取这几个tactics、动画xml,顺便把探险家神枪手的攻击数据复制到火枪手里面。



当然你可以先提取文件的。随意吧,你自己喜欢就行。
  protoy.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id ='286' name ='Musketeer'>
		<DBID>3</DBID>
		<DisplayNameID>22805</DisplayNameID>
		<EditorNameID>25023</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Ranged</FormationCategory>
		<MaxVelocity>4.0000</MaxVelocity>
		<MaxRunVelocity>6.0000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>
		
		<!-- 这个文件要提取,去art文件夹的art5.bar提取,没有就去art4.bar寻找,还是没有art3.bar、art2.bar、art1.bar全部找一遍。 -->
		<AnimFile>units\infantry_ranged\musketeer\musketeer.xml</AnimFile>

		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>units\infantry_ranged\musketeer\musketeer_icon_64x64</Icon>
		<PortraitIcon>units\infantry_ranged\musketeer\musketeer_portrait</PortraitIcon>
		<RolloverTextID>22812</RolloverTextID>
		<ShortRolloverTextID>25669</ShortRolloverTextID>
		<InitialHitpoints>150.0000</InitialHitpoints>
		<MaxHitpoints>150.0000</MaxHitpoints>
		<LOS>16.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>30.0000</TrainPoints>
		<Bounty>10.0000</Bounty>
		<BuildBounty>10.0000</BuildBounty>
		<Cost resourcetype ='Food'>75.0000</Cost>
		<Cost resourcetype ='Gold'>25.0000</Cost>
		<AllowedAge>1</AllowedAge>
		<Armor type ='Hand' value ='0.2000'></Armor>
		<UnitType>LogicalTypeHealed</UnitType>
		<UnitType>LogicalTypeValidSharpshoot</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>Unit</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>AbstractInfantry</UnitType>
		<UnitType>AbstractHeavyInfantry</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>AbstractGunpowderTrooper</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>ConvertsHerds</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>ApplyHandicapTraining</Flag>
		<Flag>CorpseDecays</Flag>
		<Flag>ShowGarrisonButton</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>ObscuredByUnits</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>

		<!-- 提取这个,tactics文件去data3.bar提取,没有就去data2.bar寻找,还是没有就去data.bar -->
		<Tactics>musketBayonet.tactics</Tactics>

		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>20.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendRangedAttack</Name>
			<Damage>23.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerRangedAttack</Name>
			<Damage>23.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>23.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
	</Unit>
	<Unit id ='288' name ='Explorer'>
		<DBID>9</DBID>
		<DisplayNameID>22824</DisplayNameID>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Body</FormationCategory>
		<MaxVelocity>4.5000</MaxVelocity>
		<MaxRunVelocity>6.5000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>

		<!-- 提取这个 -->
		<AnimFile>units\explorers\explorer.xml</AnimFile>

		<ImpactType>Flesh</ImpactType>
		<Icon>units\explorers\explorer_portrait</Icon>
		<MinimapIcon>ui\minimap\hero</MinimapIcon>
		<PortraitIcon>units\explorers\explorer_portrait</PortraitIcon>
		<SelectionPriority>5</SelectionPriority>
		<RolloverTextID>22823</RolloverTextID>
		<ShortRolloverTextID>25633</ShortRolloverTextID>
		<InitialHitpoints>400.0000</InitialHitpoints>
		<MaxHitpoints>400.0000</MaxHitpoints>
		<LOS>18.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<AutoAttackRange>16.0000</AutoAttackRange>
		<UnitAIType>RangedCombative</UnitAIType>
		<Bounty>45.0000</Bounty>
		<AllowedAge>0</AllowedAge>
		<Armor type ='Ranged' value ='0.1000'></Armor>
		<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>Unit</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>Hero</UnitType>
		<UnitType>AbstractInfantry</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>AbstractGunpowderTrooper</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>ConvertsHerds</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<UnitType>AbstractCanSeeStealth</UnitType>
		<Train row ='0' page ='6' column ='1'>TradingPost</Train>
		<Train row ='0' page ='6' column ='0'>TownCenter</Train>
		<Train row ='0' page ='6' column ='3'>NatBlowgunAmbusher</Train>
		<Train row ='0' page ='6' column ='2'>WarDog</Train>
		<Train row ='0' page ='6' column ='4'>NatClubmanLoyal</Train>
		<Flag>HeroName2</Flag>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>ApplyHandicapTraining</Flag>
		<Flag>CorpseDecays</Flag>
		<Flag>ShowGarrisonButton</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>ObscuredByUnits</Flag>
		<Flag>KnockoutDeath</Flag>
		<Flag>RotateInPlace</Flag>
		<Flag>NotDeleteable</Flag>
		<Flag>ForceBuildingData</Flag>
		<Flag>Tracked</Flag>
		<Command page ='10' column ='0'>Garrison</Command>
		<Command page ='10' column ='2'>Stop</Command>
		<Command page ='11' column ='0'>Abilities</Command>

		<!-- 提取这个 -->
		<Tactics>explorer.tactics</Tactics>

		<ProtoAction>
			<Name>Build</Name>
			<Rate type ='TradingPost'>3.000000</Rate>
			<Rate type ='TownCenter'>1.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>15.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
			<DamageBonus type ='Building'>1.000000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>CrackshotAttack</Name>
			<Damage>5000.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='MercType2'>0.010000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>HandAttack</Name>
			<Damage>6.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='Guardian'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractVillager'>0.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>Heal</Name>
			<Rate type ='LogicalTypeHealed'>50.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>SharpshooterAttack</Name>
			<Damage>750.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>SwashbucklerAttack</Name>
			<Damage>100.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>2.000000</ROF>
			<DamageCap>200.000000</DamageCap>
			<DamageBonus type ='AbstractVillager'>0.250000</DamageBonus>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
			<DamageBonus type ='MercType2'>0.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>12.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='Guardian'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractVillager'>0.250000</DamageBonus>
		</ProtoAction>
	</Unit>





1.Abilities

  abilities.xml.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<explorer>
		<ability>
			PowerSharpshooter
			<rof>60</rof>
		</ability>
		<ability>
			PowerCrackshot
			<tech>Industrialize</tech>
			<rof>90</rof>
		</ability>
		<ability>
			PowerLOS
			<tech>Age0Portuguese</tech>
			<rof>120</rof>
		</ability>
		<ability>
			PowerHeal
			<tech>HCExplorerFrench</tech>
			<rof>120</rof>
		</ability>
		<ability>
			PowerSwashbuckler
			<tech>HCExplorerBritish</tech>
			<rof>90</rof>
		</ability>
		<ability>
			PowerBalloon
			<tech>HCShipBalloons</tech>
			<rof>240</rof>
		</ability>
	</explorer>
	<!-- 省略其他语句 -->
	<ypspctokugawa>
		<ability>
			ypPowerDivineRight
			<rof>45</rof>
			<castonself>true</castonself>
		</ability>
		<ability>
			ypPowerDivineBlow
			<alwaysdisabledingrid>true</alwaysdisabledingrid>
		</ability>
	</ypspctokugawa>
	<xpironclad2>
		<ability>
			PowerLongRange
			<rof>10</rof>
		</ability>
	</xpironclad2>
	<SPCXPWashington>
		<ability>
			PowerSpeed
			<alwaysdisabledingrid>true</alwaysdisabledingrid>
			<tech>ypVillagePopCapIncrease</tech>
		</ability>
	</SPCXPWashington>
	<KafuuChino>
		<ability>
			PowerBeam
			<rof>60</rof>
		</ability>
		<ability>
			PowerStun
			<rof>60</rof>
		</ability>
		<ability>
			PowerCovert
			<rof>60</rof>
		</ability>
		<ability>
			PowerHealUnit
			<rof>60</rof>
		</ability>
	</KafuuChino>
	<HotoCocoa>
		<ability>
			PowerBeam
			<rof>60</rof>
		</ability>
		<ability>
			PowerStun2
			<rof>60</rof>
		</ability>
		<ability>
			PowerCovert2
			<rof>60</rof>
		</ability>
		<ability>
			PowerHealUnit
			<rof>60</rof>
		</ability>
	</HotoCocoa>
	<Musketeer>
		<ability>
			PowerCrackshot
			<tech>Industrialize</tech>
			<rof>90</rof>
		</ability>
	</Musketeer>






powers.xml

传送门
  powers.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<power name="PowerCrackshot" type="UnitAction">		<!-- 探险家的技能; 往下拉↓,或者点击上面的传送门-->
		<displaynameid>66043</displaynameid>
		<rolloverid>66044</rolloverid>
		<icon>art\ui\abilities\ability_sharpshooter</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeValidSharpshoot</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>WaterGuardian</explicitlyrestrictedattacktargettype>
		<unitaction>CrackshotAttack</unitaction>
	</power>
	<power name="PowerEagleEye" type="UnitAction">
		<displaynameid>45462</displaynameid>
		<rolloverid>45463</rolloverid>
		<icon>art\ui\abilities\eagle_eye</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeValidSharpshoot</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>WaterGuardian</explicitlyrestrictedattacktargettype>
		<unitaction>CrackshotAttack</unitaction>
	</power>
	<power name="PowerSwashbuckler" type="UnitAction">
		<displaynameid>34135</displaynameid>
		<rolloverid>34136</rolloverid>
		<icon>art\ui\abilities\ability_swashbuckler</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>All</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>WaterGuardian</explicitlyrestrictedattacktargettype>
		<unitaction>SwashbucklerAttack</unitaction>
	</power>
	<power name="PowerOberhau" type="UnitAction">
		<displaynameid>37371</displaynameid>
		<rolloverid>37372</rolloverid>
		<icon>art\ui\abilities\ability_swashbuckler</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>Unit</abstractattacktargettype>
		<unitaction>OberhauAttack</unitaction>
	</power>
	<power name="PowerHawkeye" type="UnitAction">
		<displaynameid>37368</displaynameid>
		<rolloverid>37367</rolloverid>
		<icon>art\ui\abilities\hawk_eye</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeValidSharpshoot</abstractattacktargettype>
		<unitaction>HawkeyeAttack</unitaction>
	</power>
	<power name="PowerArrow" type="UnitAction">
		<displaynameid>37369</displaynameid>
		<rolloverid>37370</rolloverid>
		<icon>art\ui\abilities\ability_sharpshooter</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeValidSharpshoot</abstractattacktargettype>
		<unitaction>RedBearArrowAttack</unitaction>
	</power>
	<power name="PowerDoubleBarrel" type="UnitAction">
		<displaynameid>34452</displaynameid>
		<rolloverid>34453</rolloverid>
		<icon>art\ui\abilities\ability_sharpshooter</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeValidSharpshoot</abstractattacktargettype>
		<unitaction>DoubleBarrelAttack</unitaction>
	</power>
	<power name="PowerBroadside" type="UnitAction">
		<displaynameid>32910</displaynameid>
		<rolloverid>32911</rolloverid>
		<icon>art\ui\command\mode_broadside</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>5</activetime>
		<radius>10.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeRangedUnitsAttack</abstractattacktargettype>
		<unitaction>BroadsideAttack</unitaction>
	</power>
	<power name="PowerLongRange" type="UnitAction">
		<displaynameid>34137</displaynameid>
		<rolloverid>34138</rolloverid>
		<icon>art\ui\command\mode_bombard</icon>
		<minimapeventtime sendalertto="all">1</minimapeventtime>
		<activetime>5</activetime>
		<radius>10.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeRangedUnitsAttack</abstractattacktargettype>
		<unitaction>LongRangeAttack</unitaction>
	</power>
	<power name="PowerHeal" type="UnitAction">
		<displaynameid>35605</displaynameid>
		<rolloverid>35604</rolloverid>
		<icon>art\ui\abilities\ability_heal</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>10.0</radius>
		<placement forceonmap="1" ally="">full</placement>
		<abstractattacktargettype>LogicalTypeHealed</abstractattacktargettype>
		<rangeindicatorprotoid radius="10.0" indicatorcount="8" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<unitaction>Heal</unitaction>
		<hitpointstoheal>400</hitpointstoheal>
		<allowduringnorush>1</allowduringnorush>
	</power>
	<power name="PowerBalloon" type="TempUnit">
		<displaynameid>42372</displaynameid>
		<rolloverid>42373</rolloverid>
		<icon>units\balloons\hot_air_balloon</icon>
		<minimapeventtime sendalertto="ally">1</minimapeventtime>
		<activetime>30</activetime>
		<createunit quantity="1" radius="0" delay="0.0">HotAirBalloon</createunit>
		<placement forceonmap="1">LOSDontCare</placement>
		<rangeindicatorprotoid radius="12.0" indicatorcount="16" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<allowduringnorush>1</allowduringnorush>
		<alwaysaddtoplayer>1</alwaysaddtoplayer>
	</power>
	<power name="ypIceCream" type="TempUnit">
		<displaynameid>70471</displaynameid>
		<rolloverid>70472</rolloverid>
		<icon>units\villagers\villager_icon</icon>
		<minimapeventtime sendalertto="ally">1</minimapeventtime>
		<activetime>60</activetime>
		<createunit quantity="10" radius="5" delay="0.0">ypSettlerIceCream</createunit>
		<placement forceonmap="1">LOSDontCare</placement>
		<startsoundset>PowerIceCream</startsoundset>
		<rangeindicatorprotoid radius="12.0" indicatorcount="16" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<allowduringnorush>1</allowduringnorush>
		<alwaysaddtoplayer>1</alwaysaddtoplayer>
	</power>
	<power name="PowerConvertGuardian" type="UnitAction">
		<displaynameid>44595</displaynameid>
		<rolloverid>44596</rolloverid>
		<icon>art\ui\abilities\animal_friendship</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="" gaiaonly="">unit</placement>
		<abstractattacktargettype>Guardian</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>WaterGuardian</explicitlyrestrictedattacktargettype>
		<unitaction>ConvertGuardian</unitaction>
		<allowduringnorush>1</allowduringnorush>
	</power>
	<power name="ypPowerSmokeBomb" type="UnitAction">
		<displaynameid>64300</displaynameid>
		<rolloverid>65734</rolloverid>
		<icon>art\ui\abilities\ability_smoke_bomb</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>4</activetime>
		<radius>1.0</radius>
		<placement forceonmap="1" ally="">full</placement>
		<unitaction>SmokeBomb</unitaction>
		<allowduringnorush>1</allowduringnorush>
		<startsoundset>PowerSmokeBomb</startsoundset>
	</power>
	<power name="PowerCovert" type="swapunit">
		<displaynameid>09975</displaynameid>
		<rolloverid>09977</rolloverid>
		<icon>art\Chino\ability_icon\question</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>0</activetime>
		<radius>20.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">full</placement>
		<rangeindicatorprotoid radius="20.0" indicatorcount="32" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<abstracttype swapto="BuildingRubble3x3">Rubble</abstracttype>
		<abstracttype swapto="BuildingRubble3x3">AbstractWall</abstracttype>
		<abstracttype swapto="BuildingRubble2x2">SPCPathBlock1</abstracttype>
		<abstracttype swapto="BuildingRubble3x3">SPCPathBlock2</abstracttype>
		<abstracttype swapto="BuildingRubble5x3">SPCPathBlock3</abstracttype>
		<abstracttype swapto="ypWildElephant">AbstractElephant</abstracttype>
		<abstracttype swapto="ypGoat">AbstractRangedCavalry</abstracttype>
		<abstracttype swapto="Graves">AbstractCavalry</abstracttype>
		<abstracttype swapto="TreeCarolinaMarsh">AbstractVillager</abstracttype>
		<abstracttype swapto="TreeChristmas">AbstractArtillery</abstracttype>
		<abstracttype swapto="TreeNewEnglandSnow">AbstractNativeWarrior</abstracttype>
		<abstracttype swapto="ypTreeYellowRiver">AbstractRangedInfantry</abstracttype>
		<abstracttype swapto="ypTreeCoastalJapan">AbstractInfantry</abstracttype>
		<abstracttype swapto="BuildingRubble2x2">TradingPost</abstracttype>
		<abstracttype swapto="ypTradingPostCapture">ypTradingPostCapture</abstracttype>
		<abstracttype swapto="ypBuildingRubbleShrineNuggetChinese">AbstractFarm</abstracttype>
		<abstracttype swapto="BuildingRubbleCabinNugget">AbstractFort</abstracttype>
		<abstracttype swapto="ypBuildingRubbleShrineNuggetJapanese">MilitaryBuilding</abstracttype>
		<abstracttype swapto="Rubble">EconomicBuilding</abstracttype>
		<abstracttype swapto="IGCShipwreck">AbstractFishingBoat</abstracttype>
		<abstracttype swapto="IGCShipwreck">Ship</abstracttype>
		<abstracttype swapto="TurkeyScout">Guardian</abstracttype>
		<abstracttype swapto="Rubble">AbstractTownCenter</abstracttype>
		<abstracttype swapto="CrateofWoodLarge">Tree</abstracttype>
		<abstracttype swapto="Rubble">AbstractHouse</abstracttype>
		<abstracttype swapto="Rubble">Bank</abstracttype>
		<abstracttype swapto="Rubble">ypBankAsian</abstracttype>
		<abstracttype swapto="Rubble">Church</abstracttype>
		<abstracttype swapto="Rubble">FieldHospital</abstracttype>
		<abstracttype swapto="Rubble">FirePit</abstracttype>
		<abstracttype swapto="Rubble">Market</abstracttype>
		<abstracttype swapto="Rubble">ypTradeMarketAsian</abstracttype>
		<abstracttype swapto="CrateofCoinLarge">AbstractMine</abstracttype>
		<abstracttype swapto="CrateofFoodLarge">AbstractFruit</abstracttype>
		<abstracttype swapto="ypTreeCoastalJapan">CrateofWoodLarge</abstracttype>
		<abstracttype swapto="ypTreeMongolianFir">AbstractResourceCrate</abstracttype>
		<abstracttype swapto="Rubble">ColonyBuilding</abstracttype>
		<abstracttype swapto="TreeRedwood">AbstractWagon</abstracttype>
		<abstracttype swapto="ypTreeBorneo">Unit</abstracttype>
		<swapdelay>0.0</swapdelay>
		<allowduringnorush>1</allowduringnorush>
		<powerplayerrelation>Enemy</powerplayerrelation>
	</power>
	<power name="PowerBeam" type="UnitAction">
		<displaynameid>09973</displaynameid>
		<rolloverid>09971</rolloverid>
		<icon>art\Chino\ability_icon\Beam</icon>
		<minimapeventtime sendalertto="all">1</minimapeventtime>
		<rangeindicatorprotoid radius="5.0" indicatorcount="8" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<activetime>10</activetime>
		<radius>10.0</radius>
		<placement forceonmap="1">LOSDontCare</placement>
		<abstractattacktargettype>All</abstractattacktargettype>
		<unitaction>MagicBeamAttack</unitaction>
		<allowduringnorush>1</allowduringnorush>
	</power>
	<power name="PowerStun" type="Stun">
		<displaynameid>09976</displaynameid>
		<rolloverid>09961</rolloverid>
		<icon>art\Chino\ability_icon\stun</icon>
		<minimapeventtime sendalertto="all">1</minimapeventtime>
		<activetime>40</activetime>
		<radius>20.0</radius>
		<placement forceonmap="1">LOSDontCare</placement>
		<rangeindicatorprotoid radius="20.0" indicatorcount="32" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<abstractattacktargettype>Unit</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>Ship</explicitlyrestrictedattacktargettype>
		<allowduringnorush>1</allowduringnorush>
		<startsoundset>PowerStun</startsoundset>
	</power>
	<power name="PowerHealUnit" type="UnitAction">
		<displaynameid>09959</displaynameid>
		<rolloverid>09960</rolloverid>
		<icon>art\ui\abilities\ability_heal</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>60</activetime>
		<radius>20.0</radius>
		<placement forceonmap="1" ally="">full</placement>
		<abstractattacktargettype>Unit</abstractattacktargettype>
		<rangeindicatorprotoid radius="20.0" indicatorcount="32" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<unitaction>Heal</unitaction>
		<hitpointstoheal>10000</hitpointstoheal>
		<allowduringnorush>1</allowduringnorush>
		<startsoundset>ChinoHeal</startsoundset>
	</power>
	<power name="PowerCovert2" type="swapunit">
		<displaynameid>09975</displaynameid>
		<rolloverid>09977</rolloverid>
		<icon>art\Chino\ability_icon\question</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>0</activetime>
		<radius>20.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">full</placement>
		<rangeindicatorprotoid radius="20.0" indicatorcount="32" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<abstracttype swapto="BuildingRubble3x3">Rubble</abstracttype>
		<abstracttype swapto="BuildingRubble3x3">AbstractWall</abstracttype>
		<abstracttype swapto="BuildingRubble2x2">SPCPathBlock1</abstracttype>
		<abstracttype swapto="BuildingRubble3x3">SPCPathBlock2</abstracttype>
		<abstracttype swapto="BuildingRubble5x3">SPCPathBlock3</abstracttype>
		<abstracttype swapto="ypWildElephant">AbstractElephant</abstracttype>
		<abstracttype swapto="ypGoat">AbstractRangedCavalry</abstracttype>
		<abstracttype swapto="Graves">AbstractCavalry</abstracttype>
		<abstracttype swapto="TreeCarolinaMarsh">AbstractVillager</abstracttype>
		<abstracttype swapto="TreeChristmas">AbstractArtillery</abstracttype>
		<abstracttype swapto="TreeNewEnglandSnow">AbstractNativeWarrior</abstracttype>
		<abstracttype swapto="ypTreeYellowRiver">AbstractRangedInfantry</abstracttype>
		<abstracttype swapto="ypTreeCoastalJapan">AbstractInfantry</abstracttype>
		<abstracttype swapto="BuildingRubble2x2">TradingPost</abstracttype>
		<abstracttype swapto="ypTradingPostCapture">ypTradingPostCapture</abstracttype>
		<abstracttype swapto="ypBuildingRubbleShrineNuggetChinese">AbstractFarm</abstracttype>
		<abstracttype swapto="BuildingRubbleCabinNugget">AbstractFort</abstracttype>
		<abstracttype swapto="ypBuildingRubbleShrineNuggetJapanese">MilitaryBuilding</abstracttype>
		<abstracttype swapto="Rubble">EconomicBuilding</abstracttype>
		<abstracttype swapto="IGCShipwreck">AbstractFishingBoat</abstracttype>
		<abstracttype swapto="IGCShipwreck">Ship</abstracttype>
		<abstracttype swapto="TurkeyScout">Guardian</abstracttype>
		<abstracttype swapto="Rubble">AbstractTownCenter</abstracttype>
		<abstracttype swapto="CrateofWoodLarge">Tree</abstracttype>
		<abstracttype swapto="Rubble">AbstractHouse</abstracttype>
		<abstracttype swapto="Rubble">Bank</abstracttype>
		<abstracttype swapto="Rubble">ypBankAsian</abstracttype>
		<abstracttype swapto="Rubble">Church</abstracttype>
		<abstracttype swapto="Rubble">FieldHospital</abstracttype>
		<abstracttype swapto="Rubble">FirePit</abstracttype>
		<abstracttype swapto="Rubble">Market</abstracttype>
		<abstracttype swapto="Rubble">ypTradeMarketAsian</abstracttype>
		<abstracttype swapto="CrateofCoinLarge">AbstractMine</abstracttype>
		<abstracttype swapto="CrateofFoodLarge">AbstractFruit</abstracttype>
		<abstracttype swapto="ypTreeCoastalJapan">CrateofWoodLarge</abstracttype>
		<abstracttype swapto="ypTreeMongolianFir">AbstractResourceCrate</abstracttype>
		<abstracttype swapto="Rubble">ColonyBuilding</abstracttype>
		<abstracttype swapto="TreeRedwood">AbstractWagon</abstracttype>
		<abstracttype swapto="ypTreeBorneo">Unit</abstracttype>
		<swapdelay>0.0</swapdelay>
		<allowduringnorush>1</allowduringnorush>
		<powerplayerrelation>Enemy</powerplayerrelation>
	</power>
	<power name="PowerStun2" type="Stun">
		<displaynameid>09976</displaynameid>
		<rolloverid>09961</rolloverid>
		<icon>art\Chino\ability_icon\stun</icon>
		<minimapeventtime sendalertto="all">1</minimapeventtime>
		<activetime>40</activetime>
		<radius>20.0</radius>
		<placement forceonmap="1">LOSDontCare</placement>
		<rangeindicatorprotoid radius="20.0" indicatorcount="32" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<abstractattacktargettype>Unit</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>Ship</explicitlyrestrictedattacktargettype>
		<allowduringnorush>1</allowduringnorush>
		<startsoundset>PowerStun</startsoundset>
	</power>
	<power name="PowerCrackshot2" type="UnitAction">
		<displaynameid>66043</displaynameid>
		<rolloverid>66044</rolloverid>
		<icon>art\ui\abilities\ability_sharpshooter</icon>
		<minimapeventtime sendalertto="player">1</minimapeventtime>
		<activetime>8</activetime>
		<radius>5.0</radius>
		<placement forceonmap="1" enemy="" allowgaia="">unit</placement>
		<abstractattacktargettype>LogicalTypeValidSharpshoot</abstractattacktargettype>
		<explicitlyrestrictedattacktargettype>WaterGuardian</explicitlyrestrictedattacktargettype>
		<unitaction>CrackshotAttack23333</unitaction>
	</power>

留意一下<unitaction>CrackshotAttack23333</unitaction>,这个是对应tactics的actionname的,我在power设定了CrackshotAttack23333,所以tactics也要将actionname修改成CrackshotAttack23333如果从单纯的复制语句来看,这个是多此一举的,我只不过事项让你了解到原来是这样定义而已。



火枪手的musketBayonet.tactics

<anim>RangedAttackSharpshoot</anim>这个是攻击动作,等一下需要去探险家的动画xml将这个动作的语句复制到火枪手那里。至于SharpshootIdle与ReloadSharpshoot在探险家的动画xml找不到,就不用管它了。

别忘了要在底部的tactics定义action
  musketBayonet.tactics - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->

<tactics>
	<action>
		<name stringid="38124">SharpshooterAttack23333</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>RangedAttackSharpshoot</anim>
		<idleanim>SharpshootIdle</idleanim>
		<boredanim>SharpshootIdle</boredanim>
		<reloadanim>ReloadSharpshoot</reloadanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>0.001</accuracyreductionfactor>
		<aimbonus>5</aimbonus>
		<trackrating>12</trackrating>
		<rate type="Guardian">1.0 </rate>
		<impacteffect>effects\impacts\gun</impacteffect>
		<projectile>InvisibleProjectile</projectile>
		<rof>1.000000</rof>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="38127">MusketAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<reloadanim>Volley_standing_reload</reloadanim>
		<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>2</minrange>
		<rate type="Unit">1.0 </rate>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="38130">HandAttack</name>
		<type>Attack</type>
		<maxrange>2</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Volley_melee_attack</anim>
		<idleanim>Volley_melee_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<targetspeedboost>1</targetspeedboost>
	</action>
	<action>
		<name stringid="38118">BuildingAttack</name>
		<type>Attack</type>
		<rangedlogic>1</rangedlogic>
		<maxrange>6</maxrange>
		<rate type="Building">1.0 </rate>
		<attackaction>1</attackaction>
		<speedboost>1</speedboost>
		<anim>Raze_attack</anim>
		<impacteffect>effects\impacts\torch</impacteffect>
		<projectile>TorchProjectile</projectile>
		<targetspeedboost>1</targetspeedboost>
	</action>
	<action>
		<name stringid="38127">VolleyAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<reloadanim>Volley_standing_reload</reloadanim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>0.9</accuracy>
		<accuracyreductionfactor>1.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>2</minrange>
		<rate type="Unit">1.0 </rate>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<damagebonus type="AbstractArtillery">0.500000</damagebonus>
	</action>
	<action>
		<name stringid="38127">VolleyKneelAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_kneeling_ranged_attack</anim>
		<reloadanim>Volley_kneeling_reload</reloadanim>
		<idleanim>Volley_kneeling_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>0.9</accuracy>
		<accuracyreductionfactor>1.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>2</minrange>
		<rate type="Unit">1.0 </rate>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<damagebonus type="AbstractArtillery">0.500000</damagebonus>
	</action>
	<action>
		<name stringid="38137">DefendHandAttack</name>
		<type>Attack</type>
		<maxrange>2</maxrange>
		<rate type="All">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Defend_attack</anim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
		<damagebonus type="AbstractCavalry">1.500000</damagebonus>
		<damagebonus type="AbstractLancer">0.500000</damagebonus>
		<targetspeedboost>1</targetspeedboost>
	</action>
	<action>
		<name stringid="38128">CoverAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Cover_ranged_attack</anim>
		<reloadanim>Cover_reload</reloadanim>
		<idleanim>Cover_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>0.9</accuracy>
		<accuracyreductionfactor>1.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>2</minrange>
		<rate type="Unit">1.0 </rate>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<damagebonus type="AbstractArtillery">0.500000</damagebonus>
	</action>
	<action>
		<name stringid="38135">ChargeAttack</name>
		<type>Attack</type>
		<maxrange>2</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
		<damagebonus type="AbstractCavalry">1.500000</damagebonus>
		<damagebonus type="AbstractLancer">0.500000</damagebonus>
		<targetspeedboost>1</targetspeedboost>
	</action>
	<tactic>
		Normal
		<speedmodifier>1.0</speedmodifier>
		<action priority="100">MusketAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">HandAttack</action>
		<action>SharpshooterAttack23333</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>1</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Volley</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<transition>
			<tactic>KneelVolley</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<deathanim>Death_by_melee</deathanim>
	</tactic>
	<tactic>
		Volley
		<action priority="100">VolleyAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">HandAttack</action>
		<action>SharpshooterAttack23333</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>1</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Normal</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<transition>
			<tactic>KneelVolley</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<idleanim>Volley_standing_idle</idleanim>
		<boredanim>Volley_standing_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Volley_walk</walkanim>
		<joganim>Volley_jog</joganim>
	</tactic>
	<tactic>
		KneelVolley
		<action priority="100">VolleyKneelAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">HandAttack</action>
		<action>SharpshooterAttack23333</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>1</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Normal</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<transition>
			<tactic>Volley</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<idleanim>Volley_kneeling_idle</idleanim>
		<boredanim>Volley_kneeling_bored</boredanim>
		<deathanim>Volley_kneeling_deathByMelee</deathanim>
		<walkanim>Volley_walk</walkanim>
		<joganim>Volley_jog</joganim>
	</tactic>
	<tactic>
		Defend
		<action priority="25">DefendHandAttack</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<action>SharpshooterAttack23333</action>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Normal</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<idleanim>Defend_idle</idleanim>
		<boredanim>Defend_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<joganim>Defend_jog</joganim>
		<walkanim>Defend_walk</walkanim>
	</tactic>
	<tactic>
		Cover
		<action priority="100">CoverAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="25">HandAttack</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<action>SharpshooterAttack23333</action>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Normal</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<idleanim>Cover_idle</idleanim>
		<boredanim>Cover_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Cover_walk</walkanim>
		<joganim>Cover_jog</joganim>
		<runanim>Cover_run</runanim>
	</tactic>
	<tactic>
		Charge
		<action priority="100">ChargeAttack</action>
		<action priority="75">BuildingAttack</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<action>SharpshooterAttack23333</action>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Normal</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<idleanim>Charge_idle</idleanim>
		<boredanim>Charge_bored</boredanim>
		<deathanim>Charge_death_by_melee</deathanim>
		<walkanim>Charge_walk</walkanim>
		<joganim>Charge_jog</joganim>
		<runanim>Charge_run</runanim>
	</tactic>
	<tactic>
		BombardMode
		<action priority="100">MusketAttack</action>
		<action priority="75">HandAttack</action>
		<attacktype>LogicalTypeRangedUnitsAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<action>SharpshooterAttack23333</action>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<transition>
			<tactic>Normal</tactic>
			<length>0</length>
			<exit>1</exit>
		</transition>
		<idleanim>Bombard_ranged_idle</idleanim>
		<boredanim>Bombard_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Bombard_walk</walkanim>
		<joganim>Bombard_jog</joganim>
		<runanim>Bombard_run</runanim>
	</tactic>
</tactics>





动画xml复制神枪手射击的半蹲动作

不知道动画xml是哪个?点这里
因为我先提取了那几个文件,所以是没有按照思路的顺序去做的,目的是让你更好了解技能的构成。

传送门
  musketeer.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<!-- converted from XMB to XML -->

<animfile>
	<definebone>bone_hat</definebone>
	<definebone>Bip01_AttachRt</definebone>
	<definebone>Bip01_AttachLt</definebone>
	<definebone>bone_sword</definebone>
	<definebone>bone_gun</definebone>
	<definebone>Bip01 Prop1</definebone>
	<definebone>Bip01 Prop2</definebone>
	<attachment>
		gun
		<include>units\infantry_ranged\musketeer\musketeer_guns.xml</include>
	</attachment>
	<attachment>
		hats
		<include>units\infantry_ranged\musketeer\musketeer_hats.xml</include>
	</attachment>
	<attachment>
		sword
		<include>units\attachments\sword.xml</include>
	</attachment>
	<attachment>
		torch
		<include>effects\projectiles\torch.xml</include>
	</attachment>
	<attachment>
		measure tape
		<component>
			measure tape
			<assetreference type="GrannyModel">
				<file>units\attachments\measuring_tape</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>measure tape</component>
		</anim>
	</attachment>
	<attachment>
		saw
		<component>
			saw_villager
			<assetreference type="GrannyModel">
				<file>units\attachments\saw_villager</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>saw_villager</component>
		</anim>
	</attachment>
	<attachment>
		hammer
		<component>
			hammer
			<assetreference type="GrannyModel">
				<file>units\attachments\hammer_villager</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>hammer</component>
		</anim>
	</attachment>
	<component>
		ModelComp
		<logic type="Tech">
			<none>
				<logic type="LowPoly">
					<normal>
						<assetreference type="GrannyModel">
							<file>units\infantry_ranged\musketeer\musketeer_2age</file>
						</assetreference>
						<attach a="hats" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>units\infantry_ranged\musketeer\lp_musketeer_2age</file>
						</assetreference>
					</lowpoly>
				</logic>
			</none>
			<veteranmusketeers>
				<logic type="LowPoly">
					<normal>
						<assetreference type="GrannyModel">
							<file>units\infantry_ranged\musketeer\musketeer_3age</file>
						</assetreference>
						<attach a="hats" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>units\infantry_ranged\musketeer\lp_musketeer_3age</file>
						</assetreference>
					</lowpoly>
				</logic>
			</veteranmusketeers>
			<guardmusketeers>
				<logic type="LowPoly">
					<normal>
						<assetreference type="GrannyModel">
							<file>units\infantry_ranged\musketeer\musketeer_4age</file>
						</assetreference>
						<attach a="hats" frombone="bone_hat" tobone="HEAD" syncanims="0"/>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>units\infantry_ranged\musketeer\lp_musketeer_4age</file>
						</assetreference>
					</lowpoly>
				</logic>
			</guardmusketeers>
		</logic>
		<decal>
			<effecttype>default</effecttype>
			<texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture>
			<selectedtexture>shadows_selections\selection_circle_32x32</selectedtexture>
			<width>1.0</width>
			<height>1.0</height>
		</decal>
	</component>
	<anim>
		Death_by_melee
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.51</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_B</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.18</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_C</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.73</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Death_by_range
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\death_by_rangeA</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.50</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\death_by_rangeB</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.55</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\death_by_rangeC</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.45</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Death_by_havoc
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_death</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathD</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Death_havoc_flail
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_flail</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Death_havoc_spin
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_spin</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Cheer
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_B</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_D</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_E</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Recoil
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_E</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_G</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		OpenDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorOpen</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		CloseDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorClose</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Raze_Idle
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throw_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="torch" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Raze_Attack
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throwA</file>
			<tag type="Attack">0.61</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="TorchSwing">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\torch_throwB</file>
			<tag type="Attack">0.56</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="TorchSwing">0.44</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="torch" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Cover_ranged_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Cover_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_bored</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Cover_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.28</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Cover_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.29</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.76</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Cover_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_run</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.68</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_standing_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_standing_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_fire</file>
			<tag type="Attack">0.48</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="MusketShot">0.48</tag>
			<tag type="Particles" particlename="musketshot">0.48</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_standing_reload
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_reload</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_standing_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_boredA</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\march_rifleman</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.62</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.08</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\march_rifleman_run</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.58</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.11</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Volley_run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\march_rifleman_run</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.58</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.11</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Defend_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Defend_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\defend_boredA</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Charge_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleB</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Charge_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_bored</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Charge_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\cacadore_charge_attackA</file>
			<tag type="Attack">0.53</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.42</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\cacadore_charge_attackB</file>
			<tag type="Attack">0.52</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.38</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackA</file>
			<tag type="Attack">0.53</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackB</file>
			<tag type="Attack">0.69</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_attackC</file>
			<tag type="Attack">0.50</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.42</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Charge_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.65</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.06</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Charge_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.65</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.11</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Charge_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_runA</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.66</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		IGC_Pointing
		<assetreference type="GrannyAnim">
			<file>animation_library\range\pointing_rifleman_A</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		NuggetPirate1_Idle
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_diga</file>
			<weight>90</weight>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_dig_boreda</file>
			<weight>10</weight>
		</assetreference>
		<component>ModelComp</component>
		<attach a="shovel" frombone="Bip01 Prop2" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		NuggetPirate2_Idle
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_idleA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_idleB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_idleC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_idleD</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_idleE</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_idleF</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		NuggetPirate3_Idle
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate3_idleA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate3_idleb</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate3_idlec</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate3_idled</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate3_idleE</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		NuggetPirate1_Exit
		<assetreference type="GrannyAnim">
			<file>nuggets\pirates\pirate_draw_gun</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="shovel" frombone="Bip01 Prop2" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		NuggetPirate2_Exit
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_exit</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		kidnap_outlawA_idle
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleA</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleD</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleE</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_idleF</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		kidnap_outlawA_exit
		<assetreference type="GrannyAnim">
			<file>nuggets\outlaw_kidnap\kidnap_outlawA_exit</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="bone_gun" tobone="Bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		BuildLifting
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\BuildLifting</file>
			<weight>90</weight>
			<tag type="Attack">0.66</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Build">0.38</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Build">0.67</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Build">1.00</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\human_build_standing_idlea</file>
			<weight>10</weight>
			<tag type="Attack">0.66</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="hammer" frombone="MASTER" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		BuildSaw
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\human_saw_standing</file>
			<weight>90</weight>
			<tag type="SpecificSoundSet" checkvisible="1" set="BuildSaw">0.09</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="BuildSaw">0.32</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="BuildSaw">0.70</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\human_saw_standing_idlea</file>
			<weight>10</weight>
		</assetreference>
		<component>ModelComp</component>
		<attach a="saw" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		BuildStaking
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\human_saw_a</file>
			<weight>90</weight>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\human_saw_idlea</file>
			<weight>10</weight>
		</assetreference>
		<component>ModelComp</component>
		<attach a="saw" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Build
		<assetreference type="GrannyAnim">
			<file>animation_library\villager\villager_male_build1</file>
			<weight>90</weight>
			<tag type="SpecificSoundSet" checkvisible="1" set="Build">0.36</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Build">0.66</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Build">1.00</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\Build_b</file>
			<weight>10</weight>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\Build_c</file>
			<weight>10</weight>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\Build_d</file>
			<weight>10</weight>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\Build_e</file>
			<weight>10</weight>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\2_leg_task\Build_f</file>
			<weight>10</weight>
		</assetreference>
		<component>ModelComp</component>
		<attach a="measure tape" frombone="MASTER" tobone="Bip01 Prop2" syncanims="0"/>
		<attach a="hammer" frombone="MASTER" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		RangedAttackSharpshoot
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\sharpshooter_fire</file>
			<tag type="Attack">0.41</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RifleShot">0.41</tag>
			<tag type="Particles" particlename="musketshot">0.41</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="gun" frombone="Bip01_AttachRt" tobone="bip01 Prop1" syncanims="0"/>

<!--		从探险家那里复制过来的语句中的muskets要修改成gun,因为火枪手(attach)定义的枪叫gun,不是muskets -->
<!--		<attach a="muskets" frombone="Bip01_AttachRt" tobone="bip01 Prop1" syncanims="0"/>	-->
	</anim>

</animfile>


protoy.xml




记得在protoy.xml添加 <Command page ='11' column ='0'>Abilities</Command>这句,不然不会显示技能的按钮。
  Protoy.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id ='286' name ='Musketeer'>
		<DBID>3</DBID>
		<DisplayNameID>22805</DisplayNameID>
		<EditorNameID>25023</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Ranged</FormationCategory>
		<MaxVelocity>4.0000</MaxVelocity>
		<MaxRunVelocity>6.0000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>
		<AnimFile>units\infantry_ranged\musketeer\musketeer.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>units\infantry_ranged\musketeer\musketeer_icon_64x64</Icon>
		<PortraitIcon>units\infantry_ranged\musketeer\musketeer_portrait</PortraitIcon>
		<RolloverTextID>22812</RolloverTextID>
		<ShortRolloverTextID>25669</ShortRolloverTextID>
		<InitialHitpoints>150.0000</InitialHitpoints>
		<MaxHitpoints>150.0000</MaxHitpoints>
		<LOS>16.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>30.0000</TrainPoints>
		<Bounty>10.0000</Bounty>
		<BuildBounty>10.0000</BuildBounty>
		<Cost resourcetype ='Food'>75.0000</Cost>
		<Cost resourcetype ='Gold'>25.0000</Cost>
		<AllowedAge>1</AllowedAge>
		<Armor type ='Hand' value ='0.2000'></Armor>
		<UnitType>LogicalTypeHealed</UnitType>
		<UnitType>LogicalTypeValidSharpshoot</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>Unit</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>AbstractInfantry</UnitType>
		<UnitType>AbstractHeavyInfantry</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>AbstractGunpowderTrooper</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>ConvertsHerds</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>ApplyHandicapTraining</Flag>
		<Flag>CorpseDecays</Flag>
		<Flag>ShowGarrisonButton</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>ObscuredByUnits</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 ='11' column ='0'>Abilities</Command>
		<Tactics>musketBayonet.tactics</Tactics>
		<ProtoAction>
			<Name>SharpshooterAttack23333</Name>
			<Damage>5000.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='MercType2'>0.010000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>20.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendRangedAttack</Name>
			<Damage>23.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerRangedAttack</Name>
			<Damage>23.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyHandAttack</Name>
			<Damage>13.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>3.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>2.250000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>23.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
	</Unit>

因为我在power定义了动作是SharpshooterAttack23333,所以tactics的action名改成了SharpshooterAttack23333,那么protoy也是需要改成这个的。























说了那么多,都是复制原有的技能,那么有没有一些高级一点的呢?
有。





怎样弄的?这个单位的技能采用了探险家近战攻击动作,发射物修改成了激光熊的激光,激光的动画xml利用延迟写上神火飞鸦与猛火油柜的爆炸,就完成了。
其实我是想命中单位直接爆炸的,但是这个机制我还没弄懂,所以先用延迟代替。
  abilitiea.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<KafuuChino>
		<ability>
			PowerBeam
			<rof>60</rof>
		</ability>
		<ability>
			PowerStun
			<rof>60</rof>
		</ability>
		<ability>
			PowerCovert
			<rof>60</rof>
		</ability>
		<ability>
			PowerHealUnit
			<rof>60</rof>
		</ability>
	</KafuuChino>

  powera.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<power name="PowerBeam" type="UnitAction">
		<displaynameid>09973</displaynameid>
		<rolloverid>09971</rolloverid>
		<icon>art\Chino\ability_icon\Beam</icon>
		<minimapeventtime sendalertto="all">1</minimapeventtime>
		<rangeindicatorprotoid radius="5.0" indicatorcount="8" speed="0.6">PowerRanger</rangeindicatorprotoid>
		<activetime>10</activetime>
		<radius>10.0</radius>
		<placement forceonmap="1">LOSDontCare</placement>
		<abstractattacktargettype>All</abstractattacktargettype>
		<unitaction>MagicBeamAttack</unitaction>
		<allowduringnorush>1</allowduringnorush>
	</power>

  Kafuuchino.tactics - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>

<tactics>
	<action>
		<name stringid="09973">MagicBeamAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Magic_attack</anim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.0</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<numberprojectiles>1</numberprojectiles>
		<Projectile>MagicBeam</Projectile>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>12</trackrating>
		<unintentionaldamagemultiplier>1.0</unintentionaldamagemultiplier>
		<impacteffect>Chino\effects\cannon</impacteffect>
		<minrange>12</minrange>
		<rate type="All">1.0 </rate>
		<throw>1</throw>
		<impactforcemin>500.0f</impactforcemin>
		<impactforcemax>800.0f</impactforcemax>
		<impactlaunchangle>60.0</impactlaunchangle>
		<outerdamageareadistance>.25</outerdamageareadistance>
		<outerdamageareafactor>.20</outerdamageareafactor>
		<basedamagecap>1</basedamagecap>
		<areasortmode>Directional</areasortmode>
		<damage>13.000000</damage>
		<maxrange>24.000000</maxrange>
		<rof>2.000000</rof>
		<perfectaccuracy>1</perfectaccuracy>
	</action>
	<action>
		<name stringid="69148">Discover</name>
		<type>Discover</type>
		<anim>Pickup</anim>
		<maxrange>1.0</maxrange>
		<rate type="AbstractNuggetLand">1.0</rate>
	</action>
	<action>
		<name stringid="69155">Heal</name>
		<type>Heal</type>
		<active>1</active>
		<maxrange>20</maxrange>
		<rate type="Unit">100.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name stringid="48957">ConvertGuardian</name>
		<type>ConvertGuardian</type>
		<active>0</active>
		<maxrange>16</maxrange>
		<anim>AblBeastMaster</anim>
		<rate type="All">1.0</rate>
		<rof>1.000000</rof>
	</action>
	<action>
		<name stringid="38137">HandAttack</name>
		<type>Attack</type>
		<maxrange>2</maxrange>
		<rate type="Unit">1.0 </rate>
		<rate type="Military">1.0 </rate>
		<rate type="Huntable">1.0 </rate>
		<rate type="Economic">1.0 </rate>
		<rate type="Guardian">1.0 </rate>
		<rate type="Herdable">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Grenadier_attack</anim>
		<impacteffect>effects\impacts\melee</impacteffect>
	</action>
	<action>
		<name stringid="38127">VolleyRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Magic_attack</anim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<maxspread>12</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>20</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<Projectile>MagicBeam</Projectile>
		<impacteffect>effects\impacts\gun</impacteffect>
		<minrange>2</minrange>
		<rate type="Military">1.0 </rate>
		<rate type="Huntable">1.0 </rate>
		<rate type="Economic">1.0 </rate>
		<rate type="Guardian">1.0 </rate>
		<rate type="Herdable">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
	</action>
	<action>
		<name stringid="38130">VolleyHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
	</action>
	<action>
		<name stringid="38136">DefendRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.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>2</minrange>
		<rate type="Unit">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="38118">BuildingAttack</name>
		<type>Attack</type>
		<rangedlogic>1</rangedlogic>
		<minrange>11.9</minrange>
		<maxrange>14</maxrange>
		<rate type="LogicalTypeShipsAndBuildings">1.0 </rate>
		<attackaction>1</attackaction>
		<speedboost>1</speedboost>
		<maxheight>0.5</maxheight>
		<anim>Magic_attack</anim>
		<projectile>MagicAttack2</projectile>
		<impacteffect>Chino\effects\magic</impacteffect>
	</action>
	<action>
		<name stringid="09970">MagicRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Magic_attack</anim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<projectile>MagicAttack</projectile>
		<aimbonus>0</aimbonus>
		<maxspread>5</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>12</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<impacteffect>effects\impacts\gun</impacteffect>
		<minrange>2</minrange>
		<rate type="Unit">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
	</action>
	<action>
		<name stringid="38134">SweepDamage</name>
		<type>Attack</type>
		<maxrange>12</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Attack_melee</anim>
		<idleanim>Idle</idleanim>
		<impacteffect>effects\impacts\melee_no_weapon</impacteffect>
		<basedamagecap>1</basedamagecap>
	</action>
	<action>
		<name stringid="38124">Stun</name>
		<type>StunAttack</type>
		<anim>stun_attack</anim>
		<idleanim>Volley_standing_idle</idleanim>
		<rangedlogic>1</rangedlogic>
		<maxrange>16</maxrange>
		<damage>10</damage>
		<impacteffect>effects\impacts\arrow</impacteffect>
		<rate type="Unit">1.0 </rate>
		<rof>1</rof>
		<maxheight>0</maxheight>
		<accuracy>1</accuracy>
		<accuracyreductionfactor>0</accuracyreductionfactor>
		<aimbonus>5</aimbonus>
		<trackrating>12</trackrating>
		<projectile>ypShuriken</projectile>
		<instantballistics>0</instantballistics>
	</action>
	<action>
		<name stringid="38137">DefendHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
	</action>
	<action>
		<name stringid="38129">StaggerRangedAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Volley_standing_attack</anim>
		<reloadanim>Volley_standing_reload</reloadanim>
		<idleanim>Volley_standing_idle</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.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>2</minrange>
		<rate type="Unit">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>12.000000</maxrange>
		<rof>2.000000</rof>
		<instantballistics>1</instantballistics>
	</action>
	<action>
		<name stringid="09958">NatureAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Magic_attack</anim>
		<minrange>12</minrange>
		<maxrange>14</maxrange>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<maxspread>12</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>20</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<Projectile>MagicBeam2</Projectile>
		<impacteffect>Chino\effects\cannon</impacteffect>
		<minrange>2</minrange>
		<rate type="Tree">1.0 </rate>
		<throw>1</throw>
		<damage>150.000000</damage>
		<rof>3.000000</rof>
		<perfectaccuracy>1</perfectaccuracy>
	</action>
	<action>
		<name stringid="09958">NatureAttack2</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Magic_attack</anim>
		<minrange>12</minrange>
		<maxrange>14</maxrange>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<aimbonus>0</aimbonus>
		<maxspread>12</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>20</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<projectile>MagicAttack</projectile>
		<impacteffect>Chino\effects\cannon</impacteffect>
		<minrange>2</minrange>
		<rate type="Tree">1.0 </rate>
		<throw>1</throw>
		<damage>150.000000</damage>
		<rof>3.000000</rof>
		<perfectaccuracy>1</perfectaccuracy>
	</action>
	<action>
		<name stringid="38132">StaggerHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
	</action>
	<action>
		<name stringid="38135">MeleeHandAttack</name>
		<type>Attack</type>
		<maxrange>1.75</maxrange>
		<rate type="Unit">1.0 </rate>
		<attackaction>1</attackaction>
		<handlogic>1</handlogic>
		<speedboost>1</speedboost>
		<anim>Charge_attack</anim>
		<idleanim>Charge_idle</idleanim>
		<impacteffect>effects\impacts\melee</impacteffect>
		<damage>6.5</damage>
		<rof>1.0</rof>
	</action>
	<action>
		<name stringid="69147">Build</name>
		<type>Build</type>
		<anim>Build</anim>
		<active>0</active>
		<maxrange>0.2</maxrange>
		<rate type="Building">2.0</rate>
	</action>
	<action>
		<name stringid="09962">DamageBonus</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>AbstractVillager</modifyabstracttype>
		<active>1</active>
		<maxrange>12</maxrange>
		<persistent>1</persistent>
		<modifytype>Damage</modifytype>
		<modifymultiplier>1.25</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>0</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09963">DamageBonus2</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>AbstractVillager</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Damage</modifytype>
		<modifymultiplier>2.00</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>1</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09964">DamageBonus3</name>
		<type>AutoRangedModify</type>
		<modifyprotoid>AbstractArtillery</modifyprotoid>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Damage</modifytype>
		<modifymultiplier>0.5</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>1</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09963">DamageBonus4</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>LogicalTypeLandMilitary</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Damage</modifytype>
		<modifymultiplier>2.00</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>1</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09963">DamageBonus5</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>LogicalTypeLandMilitary</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Damage</modifytype>
		<modifymultiplier>2.00</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>0</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09965">SpeedBonus</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>AbstractVillager</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Speed</modifytype>
		<modifymultiplier>0.75</modifymultiplier>
		<modelattachment>effects\ypack_auras\frightpower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>1</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09966">SpeedBonus2</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>LogicalTypeLandMilitary</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Speed</modifytype>
		<modifymultiplier>0.75</modifymultiplier>
		<modelattachment>effects\ypack_auras\frightpower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>1</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09967">BountyBonus</name>
		<type>AutoRangedModify</type>
		<modifyprotoid>Unit</modifyprotoid>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>Bounty</modifytype>
		<modifymultiplier>2.0</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>0</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09968">GatherBonus</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>AbstractVillager</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>GatherRate</modifytype>
		<modifymultiplier>1.1</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>0</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name stringid="09969">AutoGatherBonus</name>
		<type>AutoRangedModify</type>
		<modifyabstracttype>AbstractVillager</modifyabstracttype>
		<active>1</active>
		<maxrange>24</maxrange>
		<persistent>1</persistent>
		<modifytype>AutoGatherRate</modifytype>
		<modifymultiplier>1.1</modifymultiplier>
		<modelattachment>effects\ypack_auras\daimyopower.xml</modelattachment>
		<modelattachmentbone>bonethatdoesntexist</modelattachmentbone>
		<targetenemy>0</targetenemy>
		<modifyexclusive>1</modifyexclusive>
	</action>
	<action>
		<name>GoToTC</name>
		<type>EscapeToTC</type>
		<active>1</active>
		<rate type="Unit">1.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name>ConvertGuardian</name>
		<type>ConvertGuardian</type>
		<active>1</active>
		<rate type="Guardian">1.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name stringid="69155">Test1</name>
	<!--	<type>EscapeToTC</type>	-->
		<type>PriestConvert</type>
		<active>1</active>
		<maxrange>20</maxrange>
		<rate type="Unit">1.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name stringid="69155">Test2</name>
		<type>ConvertFinished</type>
		<active>1</active>
		<maxrange>20</maxrange>
		<rate type="Unit">1.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name stringid="69155">Test3</name>
		<type>Convert</type>
		<active>1</active>
		<maxrange>20</maxrange>
		<rate type="Unit">1.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name stringid="69155">Test4</name>
		<type>ConvertGuardian</type>
		<active>1</active>
		<persistent>1</persistent>
		<maxrange>20</maxrange>
		<rate type="Unit">1.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name stringid="69155">Heal</name>
		<type>Heal</type>
		<active>1</active>
		<maxrange>20</maxrange>
		<rate type="Unit">100.0</rate>
		<anim>Heal</anim>
	</action>
	<action>
		<name>Move</name>
		<type>Move</type>
		<persistent>1</persistent>
	</action>
	<action>
		<name stringid="09941">MoveAttack</name>
		<type>Attack</type>
		<attackaction>1</attackaction>
		<rangedlogic>1</rangedlogic>
		<anim>Move_Attack</anim>
		<idleanim>Attack_move</idleanim>
		<maxheight>0</maxheight>
		<accuracy>1.0</accuracy>
		<accuracyreductionfactor>1.5</accuracyreductionfactor>
		<projectile>MagicAttack</projectile>
		<persistent>1</persistent>
		<aimbonus>0</aimbonus>
		<maxspread>5</maxspread>
		<spreadfactor>0.25</spreadfactor>
		<trackrating>12</trackrating>
		<unintentionaldamagemultiplier>0.7</unintentionaldamagemultiplier>
		<impacteffect>Chino\effects\cannon</impacteffect>
		<minrange>2</minrange>
		<rate type="All">1.0 </rate>
		<throw>1</throw>
		<damage>13.000000</damage>
		<maxrange>20.000000</maxrange>
		<rof>2.000000</rof>
	</action>
	<action>
		<name stringid="46491">Stealth</name>
		<type>Stealth</type>
		<maxrange>1.0</maxrange>
		<active>1</active>
		<persistent>1</persistent>
	</action>
	<tactic>
		Volley
		<action priority="100">VolleyRangedAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="60">NatureAttack</action>
		<action priority="25">VolleyHandAttack</action>
		<action>Build</action>
		<action>Stun</action>
		<action>ConvertGuardian</action>
		<action>Heal</action>
		<action>Discover</action>
		<action>MagicBeamAttack</action>
		<action>DamageBonus</action>
		<action>DamageBonus2</action>
		<action>DamageBonus3</action>
		<action>DamageBonus4</action>
		<action>DamageBonus5</action>
		<action>SpeedBonus</action>
		<action>SpeedBonus2</action>
		<action>BountyBonus</action>
		<action>GatherBonus</action>
		<action>AutoGatherBonus</action>
		<attacktype>LogicalTypeVillagersAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>1</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Volley_standing_idle</idleanim>
		<boredanim>Volley_standing_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Volley_walk</walkanim>
		<joganim>Volley_jog</joganim>
		<runanim>Volley_run</runanim>
	</tactic>
	<tactic>
		Stagger
		<action priority="100">MagicRangedAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="60">NatureAttack</action>
		<action priority="25">VolleyHandAttack</action>
		<action>Build</action>
		<action>Heal</action>
		<action>Stun</action>
		<action>ConvertGuardian</action>
		<action>MagicBeamAttack</action>
		<action>Discover</action>
		<action>DamageBonus</action>
		<action>DamageBonus2</action>
		<action>DamageBonus3</action>
		<action>DamageBonus4</action>
		<action>DamageBonus5</action>
		<action>SpeedBonus</action>
		<action>SpeedBonus2</action>
		<action>BountyBonus</action>
		<action>GatherBonus</action>
		<action>AutoGatherBonus</action>
		<attacktype>LogicalTypeVillagersAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Magic_idle</idleanim>
		<boredanim>Magic_standing_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Magic_walk</walkanim>
		<joganim>Magic_jog</joganim>
		<runanim>Magic_run</runanim>
	</tactic>
	<tactic>
		AttackMove
		<action priority="100">MoveAttack</action>
		<action>Build</action>
		<action>Stun</action>
		<action>ConvertGuardian</action>
		<action>Heal</action>
		<action>Discover</action>
		<action>MagicBeamAttack</action>
		<action>Move</action>
		<action>DamageBonus</action>
		<action>DamageBonus2</action>
		<action>DamageBonus3</action>
		<action>DamageBonus4</action>
		<action>DamageBonus5</action>
		<action>SpeedBonus</action>
		<action>SpeedBonus2</action>
		<action>BountyBonus</action>
		<action>GatherBonus</action>
		<action>AutoGatherBonus</action>
		<attacktype>LogicalTypeVillagersAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>1</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Attack_move</idleanim>
		<boredanim>Attack_move</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Attack_move</walkanim>
		<joganim>Attack_move</joganim>
		<runanim>Attack_move</runanim>
	</tactic>
	<tactic>
		Melee
		<action priority="100">BuildingAttack</action>
		<action priority="60">NatureAttack</action>
		<action priority="25">MeleeHandAttack</action>
		<action>Build</action>
		<action>Heal</action>
		<action>Stun</action>
		<action>ConvertGuardian</action>
		<action>Discover</action>
		<action priority="10">MagicBeamAttack</action>
		<action>DamageBonus</action>
		<action>DamageBonus2</action>
		<action>DamageBonus3</action>
		<action>DamageBonus4</action>
		<action>DamageBonus5</action>
		<action>SpeedBonus</action>
		<action>SpeedBonus2</action>
		<action>BountyBonus</action>
		<action>GatherBonus</action>
		<action>AutoGatherBonus</action>
		<attacktype>LogicalTypeVillagersAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Charge_idle</idleanim>
		<boredanim>Charge_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Charge_walk</walkanim>
		<joganim>Charge_jog</joganim>
		<runanim>Charge_run</runanim>
	</tactic>
	<tactic>
		Defend
		<action priority="100">MagicRangedAttack</action>
		<action priority="75">BuildingAttack</action>
		<action priority="60">NatureAttack</action>
		<action priority="25">VolleyHandAttack</action>
		<action>Build</action>
		<action>Heal</action>
		<action>Stun</action>
		<action>ConvertGuardian</action>
		<action>MagicBeamAttack</action>
		<action>Discover</action>
		<action>DamageBonus</action>
		<action>DamageBonus2</action>
		<action>DamageBonus3</action>
		<action>DamageBonus4</action>
		<action>DamageBonus5</action>
		<action>SpeedBonus</action>
		<action>SpeedBonus2</action>
		<action>BountyBonus</action>
		<action>GatherBonus</action>
		<action>AutoGatherBonus</action>
		<attacktype>LogicalTypeVillagersAttack</attacktype>
		<autoattacktype>LogicalTypeRangedUnitsAutoAttack</autoattacktype>
		<attackresponsetype>LogicalTypeRangedUnitsAttack</attackresponsetype>
		<runaway>0</runaway>
		<autoretarget>1</autoretarget>
		<idleanim>Magic_idle</idleanim>
		<boredanim>Magic_standing_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Magic_walk</walkanim>
		<joganim>Magic_jog</joganim>
		<runanim>Magic_run</runanim>
	</tactic>
	<tactic>
		Stealth
		<action>Stealth</action>
		<checkifcanstealth range="1.0">1</checkifcanstealth>
		<speedmodifier>1.0</speedmodifier>
		<attacktype>LogicalTypeHandUnitsAttack</attacktype>
		<active>0</active>
		<action>Heal</action>
		<action>Stun</action>
		<action>ConvertGuardian</action>
		<action>MagicBeamAttack</action>
		<autoretarget>0</autoretarget>
		<idleanim>Magic_idle</idleanim>
		<boredanim>Magic_standing_bored</boredanim>
		<deathanim>Death_by_melee</deathanim>
		<walkanim>Magic_walk</walkanim>
		<joganim>Magic_jog</joganim>
		<runanim>Magic_run</runanim>
	</tactic>

</tactics>

  protoa.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id="1490" name="MagicBeam">
		<DBID>1073</DBID>
		<ObstructionRadiusX>0.1000</ObstructionRadiusX>
		<ObstructionRadiusZ>0.1000</ObstructionRadiusZ>
		<MaxVelocity>60.0000</MaxVelocity>
		<MovementType>air</MovementType>
		<AnimFile>Chino\projectiles\Beam.xml</AnimFile>
		<Lifespan>3.0000</Lifespan>
		<LOS>0.0000</LOS>
		<UnitType>EmbellishmentClass</UnitType>
		<UnitType>Projectile</UnitType>
		<Flag>NoIdleActions</Flag>
		<Flag>NonCollideable</Flag>
		<Flag>DestroyProjectile</Flag>
		<Flag>DoNotCreateUnitGroupAutomatically</Flag>
		<Flag>NoBloodOnDeath</Flag>
		<Flag>NotSearchable</Flag>
		<Flag>Projectile</Flag>
		<Flag>NoTieToGround</Flag>
		<Flag>DoNotShowOnMiniMap</Flag>
		<Flag>NotSelectable</Flag>
		<Flag>DoNotDieAtZeroHitpoints</Flag>
		<Flag>NoHPBar</Flag>
		<Flag>NonAutoFormedUnit</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>AdjustPositionOnTerrainCollision</Flag>
		<Flag>NotPlayerPlaceable</Flag>
		<Flag>Invulnerable</Flag>
		<Flag>InvulnerableIfGaia</Flag>
		<Flag>NoUnitAI</Flag>
		<Tactics>Beam.tactics</Tactics>
	</Unit>
	<Unit id="1491" name="KafuuChino">
		<DBID>42</DBID>
		<DisplayNameID>09945</DisplayNameID>
		<EditorNameID>09944</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Ranged</FormationCategory>
		<MaxVelocity>6.000000</MaxVelocity>
		<MaxRunVelocity>8.0000</MaxRunVelocity>
		<MovementType>air</MovementType>
		<TurnRate>18.0000</TurnRate>
		<AnimFile>Is the order a rabbit\KafuuChino\KafuuChino.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>Is the order a rabbit\KafuuChino\KafuuChino_icon</Icon>
		<PortraitIcon>Is the order a rabbit\KafuuChino\KafuuChino_portrait</PortraitIcon>
		<RolloverTextID>09942</RolloverTextID>
		<ShortRolloverTextID>09943</ShortRolloverTextID>
		<InitialHitpoints>1500.0000</InitialHitpoints>
		<MaxHitpoints>1500.0000</MaxHitpoints>
		<LOS>34.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<ProjectileProtoUnit>Grenade</ProjectileProtoUnit>
		<AutoAttackRange>16.0000</AutoAttackRange>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>33.0000</TrainPoints>
		<Bounty>15000.0000</Bounty>
		<BuildBounty>15000.0000</BuildBounty>
		<Cost resourcetype="Food">20000.0000</Cost>
		<Cost resourcetype="Wood">10000.0000</Cost>
		<Cost resourcetype="Gold">20000.0000</Cost>
		<Cost resourcetype="Fame">50000.0000</Cost>
		<Cost resourcetype="XP">50000.0000</Cost>
		<AllowedAge>0</AllowedAge>
		<Armor type="Ranged" value="0.9900"/>
		<UnitType>LogicalTypeHealed</UnitType>
		<UnitType>LogicalTypeValidSharpshoot</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>ConvertsHerds</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>Unit</UnitType>
		<UnitType>Hero</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>AbstractInfantry</UnitType>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>ApplyHandicapTraining</Flag>
		<Flag>TieToWaterSurface</Flag>
		<Flag>NotDeleteable</Flag>
		<Flag>KnockoutDeath</Flag>
		<Flag>CorpseDecays</Flag>
		<Flag>ShowGarrisonButton</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>ObscuredByUnits</Flag>
		<Flag>OrientUnitWithGround</Flag>
		<Flag>Tracked</Flag>
		<Command page="10" column="2">Delete</Command>
		<Command page="10" column="1">Stop</Command>
		<Command page="10" column="0">Garrison</Command>
		<Command page="11" column="0">Abilities</Command>
		<Tactics>KafuuChino.tactics</Tactics>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Siege</DamageType>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>100.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type="AbstractHeavyInfantry">2.000000</DamageBonus>
			<DamageBonus type="AbstractLightCavalry">2.000000</DamageBonus>
			<DamageBonus type="xpEagleKnight">2.000000</DamageBonus>
			<DamageBonus type="AbstractCavalry">0.750000</DamageBonus>
			<DamageBonus type="xpCoyoteMan">0.750000</DamageBonus>
			<DamageCap>1000.000000</DamageCap>
			<DamageArea>5.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendRangedAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>30.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Unit">2.000000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>GrenadierRangedAttack</Name>
			<Damage>16.000000</Damage>
			<DamageType>Siege</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>12.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageCap>36.000000</DamageCap>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
			<DamageBonus type="AbstractLightCavalry">0.500000</DamageBonus>
			<DamageBonus type="AbstractCavalry">0.50000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>100.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type="AbstractHeavyInfantry">2.000000</DamageBonus>
			<DamageBonus type="AbstractLightCavalry">2.000000</DamageBonus>
			<DamageBonus type="xpEagleKnight">2.000000</DamageBonus>
			<DamageBonus type="xpCoyoteMan">0.750000</DamageBonus>
			<DamageBonus type="AbstractCavalry">0.750000</DamageBonus>
			<DamageCap>1000.000000</DamageCap>
			<DamageArea>5.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerHandAttack</Name>
			<Damage>100.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type="AbstractHeavyInfantry">2.000000</DamageBonus>
			<DamageBonus type="AbstractLightCavalry">2.000000</DamageBonus>
			<DamageBonus type="xpEagleKnight">2.000000</DamageBonus>
			<DamageBonus type="xpCoyoteMan">0.750000</DamageBonus>
			<DamageBonus type="AbstractCavalry">0.750000</DamageBonus>
			<DamageCap>1000.000000</DamageCap>
			<DamageArea>5.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerRangedAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>30.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Unit">2.000000</DamageBonus>
			<DamageCap>500.000000</DamageCap>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>GrenadierHandAttack</Name>
			<Damage>8.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type="AbstractHeavyInfantry">2.000000</DamageBonus>
			<DamageBonus type="AbstractLightCavalry">2.000000</DamageBonus>
			<DamageBonus type="xpEagleKnight">2.000000</DamageBonus>
			<DamageBonus type="AbstractCavalry">0.750000</DamageBonus>
			<DamageBonus type="xpCoyoteMan">0.750000</DamageBonus>
			<DamageCap>36.000000</DamageCap>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyHandAttack</Name>
			<Damage>100.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type="AbstractHeavyInfantry">2.000000</DamageBonus>
			<DamageBonus type="AbstractLightCavalry">2.000000</DamageBonus>
			<DamageBonus type="xpEagleKnight">2.000000</DamageBonus>
			<DamageBonus type="AbstractCavalry">0.750000</DamageBonus>
			<DamageBonus type="xpCoyoteMan">0.750000</DamageBonus>
			<DamageCap>1000.000000</DamageCap>
			<DamageArea>5.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>30.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Unit">2.000000</DamageBonus>
			<DamageCap>500.000000</DamageCap>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>MagicRangedAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>30.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Unit">2.000000</DamageBonus>
			<DamageCap>500.000000</DamageCap>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>MagicBeamAttack</Name>
			<Damage>5000.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>20.000000</MinRange>
			<MaxRange>24.000000</MaxRange>
			<ROF>5.000000</ROF>
			<DamageBonus type="Unit">2.000000</DamageBonus>
			<DamageArea>5.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>NatureAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>12.000000</MinRange>
			<MaxRange>14.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Nature">1.000000</DamageBonus>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>NatureAttack2</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>2.000000</MinRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Nature">1.000000</DamageBonus>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
		<ProtoAction>
			<Name>MoveAttack</Name>
			<Damage>150.000000</Damage>
			<DamageType>Magic</DamageType>
			<MinRange>2.000000</MinRange>
			<ROF>3.000000</ROF>
			<DamageBonus type="Nature">1.000000</DamageBonus>
			<DamageArea>3.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
	</Unit>

  KafuuChino.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>

<animfile>
	<definebone>bone_hat</definebone>
	<definebone>bone_bow</definebone>
	<definebone>bone_quiver</definebone>
	<definebone>BIP01 PROP1</definebone>
	<definebone>Bip01 Prop2</definebone>
	<definebone>bone01</definebone>
	<attachment>
		LearySparkles
		<component>
			learysparkles
			<assetreference type="ParticleSystem">
				<file>effects\animal particles\leary_sparkles.particle</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>learysparkles</component>
		</anim>
	</attachment>
	<attachment>
		HealRays
		<component>
			HealFXEmitter
			<assetreference type="ParticleSystem">
				<file>units\explorers\heal_rays.particle</file>
			</assetreference>
		</component>
		<anim>
			None
			<component>HealFXEmitter</component>
		</anim>
	</attachment>
	<attachment>
		crossbows
		<component>
			crossbows
			<assetreference type="GrannyModel">
				<file>units\asians\chinese\chu_ko_nu\chokonu_bow</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>crossbows</component>
		</anim>
	</attachment>
	<attachment>
		sword
		<component>
			sword
			<assetreference type="GrannyModel">
				<file>Chino\sword\sword</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>sword</component>
		</anim>
	</attachment>
	<attachment>
		sword1
		<component>
			sword
			<assetreference type="GrannyModel">
				<file>Chino\sword\sword1</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>sword</component>
		</anim>
	</attachment>
	<attachment>
		wands
		<component>
			wands
			<assetreference type="GrannyModel">
				<file>Chino\Wands\Wands</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>wands</component>
		</anim>
	</attachment>
	<attachment>
		wands1
		<component>
			wands
			<assetreference type="GrannyModel">
				<file>Chino\Wands\Wands1</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>wands</component>
		</anim>
	</attachment>
	<component>
		ModelComp
		<logic type="Tech">
			<none>
				<logic type="LowPoly">
					<normal>
						<assetreference type="GrannyModel">
							<file>Is the order a rabbit\KafuuChino\KafuuChino</file>
							<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
						</assetreference>
					</normal>
					<lowpoly>
						<assetreference type="GrannyModel">
							<file>Is the order a rabbit\KafuuChino\KafuuChino</file>
							<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
						</assetreference>
					</lowpoly>
				</logic>
			</none>
		</logic>
		<decal>
			<effecttype>default</effecttype>
			<texture isfakeshadow="1">shadows_selections\shadow_circle_32x32</texture>
			<selectedtexture>shadows_selections\selection_circle_32x32</selectedtexture>

			<width>1.0</width>
			<height>1.0</height>
		</decal>
	</component>
	<anim>
		Death_by_melee
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.52</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.18</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.73</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Death_by_range
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.53</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.19</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.73</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Death_by_havoc
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_death</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathB</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathC</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_deathD</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Death_havoc_flail
		<assetreference type="GrannyAnim">
			<file>animation_library\range\havoc_flail</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cheer
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_B</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_D</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\cheer_E</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Recoil
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_A</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_C</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_E</file>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\recoil_G</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		HC_openDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorOpen</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		HC_closeDoor
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\doorClose</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Raze_Idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\crossbow_volley_idle</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Raze_Attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\volley\volley_standing_fire</file>
			<tag type="Attack">0.48</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="flaming_arrow" frombone="bone01" tobone="L HAND" syncanims="0"/>
	</anim>
	<anim>
		Cover_ranged_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_idle</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_crossbow_bored_a</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_Walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_walk</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.28</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_Jog
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_jog</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.29</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.76</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Cover_Run
		<assetreference type="GrannyAnim">
			<file>animation_library\range\cover\cover_run</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.68</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.12</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\villager\generic_idle</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\charge\charge_idleA</file>
			<tag type="Attack">0.45</tag>
			<tag type="Attack">0.30</tag>
			<tag type="Attack">0.15</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_standing_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_crossbow_bored_a</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_walk
		<assetreference type="GrannyAnim">
			<file>animation_library\range\walk_grenadier</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.50</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">1.00</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_jog
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\jog_generic</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.60</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.10</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Volley_run
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\run_generic</file>
			<tag type="FootstepLeft" footprinttype="HumanLeft">0.13</tag>
			<tag type="FootstepRight" footprinttype="HumanRight">0.60</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Magic_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\villager\generic_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Magic_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\human_crossbow_bored_a</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Magic_attack
<!--
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\melee_attack</file>
			<tag type="Attack">0.20</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
		</assetreference>
-->
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\melee_attack</file>
			<tag type="Attack">0.20</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.23</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.57</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands1" frombone="ROOT" tobone="bip01 Prop1" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
	</anim>
	<anim>
		Magic_attack_Buliding
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\melee_attack</file>
			<tag type="Attack">0.20</tag>
			<tag type="Attack">0.45</tag>
			<tag type="Attack">0.80</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.23</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.57</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="RagdollImpact">0.45</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands1" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
	</anim>
	<anim>
		Magic_walk
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\walk_generic</file>
			<tag type="FootstepLeft">0.20</tag>
			<tag type="FootstepRight">0.50</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Magic_jog
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\jog_generic_upper</file>
			<file>animation_library\shared\jog_generic_lower</file>
			<tag type="FootstepLeft">0.30</tag>
			<tag type="FootstepRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Magic_run
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\run_generic_upper</file>
			<file>animation_library\shared\run_generic_lower</file>
			<tag type="FootstepLeft">0.30</tag>
			<tag type="FootstepRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="wands" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_idle
		<assetreference type="GrannyAnim">
			<file>animation_library\villager\generic_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_bored
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\longbow_defend_combat_idle</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\melee_attack</file>
			<tag type="Attack">0.45</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.23</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.57</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword1" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
	</anim>
	<anim>
		Charge_special_attack
		<assetreference type="GrannyAnim">
			<file>animation_library\range\defend\longbow_defend_melee_A</file>
			<tag type="Attack">0.45</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_walk
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\walk_generic</file>
			<tag type="FootstepLeft">0.20</tag>
			<tag type="FootstepRight">0.50</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_jog
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\jog_generic_upper</file>
			<file>animation_library\shared\jog_generic_lower</file>
			<tag type="FootstepLeft">0.30</tag>
			<tag type="FootstepRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_run
		<assetreference type="GrannyAnim">
			<file>animation_library\shared\run_generic_upper</file>
			<file>animation_library\shared\run_generic_lower</file>
			<tag type="FootstepLeft">0.30</tag>
			<tag type="FootstepRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_death_by_melee
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_death_by_range
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Charge_death_by_havoc
		<assetreference type="GrannyAnim">
			<file>animation_library\range\death_standing_rifleman_A</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="ROOT" tobone="bip01 Prop1" syncanims="0"/>
	</anim>
	<anim>
		Swashbuckler
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\swashbuckler</file>
			<tag type="Attack">0.70</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.53</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="MASTER" tobone="Bip01 Prop1" syncanims="1"/>
		<attach a="muskets" frombone="Bip01_AttachRt" tobone="bip01 Prop2" syncanims="0"/>
	</anim>
	<anim>
		Physician
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\physician</file>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Pickup
		<assetreference type="GrannyAnim">
			<file>animation_library\explorer\pickup_explorer_A</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="GatherFruit">0.33</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Heal
		<assetreference type="GrannyAnim">
			<file>animation_library\natives\priest\heal2</file>
		</assetreference>
		<component>ModelComp</component>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="1"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="1"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="1"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="1"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="1"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="L HAND" syncanims="1"/>
		<attach a="HealRays" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="1"/>
	</anim>
	<anim>
		stun_attack
		<assetreference type="GrannyAnim">
			<file>units\asians\natives\chakram\chakram_throwA</file>
			<tag type="Attack">0.44</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
		</assetreference>
		<assetreference type="GrannyAnim">
			<file>units\asians\spc\chen\spc_chen_handattackA</file>
			<tag type="Attack">0.50</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		AblBeastMaster
		<assetreference type="GrannyAnim">
			<file>animation_library\natives\priest\heal2</file>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
		</assetreference>
		<component>ModelComp</component>
	</anim>
	<anim>
		Move_Attack
		<assetreference type="GrannyAnim">
			<file>animation_library\SPC\cooper\ranged_attack</file>
			<tag type="Attack">0.43</tag>
			<tag type="FootstepLeft">0.30</tag>
			<tag type="FootstepRight">0.80</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.23</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="Swoosh">0.57</tag>
			<tag type="SpecificSoundSet" checkvisible="1" set="LearicornExist">0.00</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop3" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanLeft" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="HumanRight" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="L HAND" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop2" syncanims="1"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="bip01 Prop1" syncanims="1"/>
	</anim>
	<anim>
		Attack_move
		<assetreference type="GrannyAnim">
			<file>animation_library\range\walk_grenadier</file>
			<tag type="FootstepLeft">0.30</tag>
			<tag type="FootstepRight">0.80</tag>
		</assetreference>
		<component>ModelComp</component>
		<attach a="sword" frombone="MASTER" tobone="Bip01 Prop1" syncanims="0"/>
	</anim>
</animfile>

爆炸特效在这里(稍微在激光熊的激光加一点东西)

  Beam.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>

<animfile>
	<attachment>
		trail
		<component>
			emitter
			<assetreference type="ParticleSystem">
				<file>Chino\projectiles\Beam.particle</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>emitter</component>
		</anim>
	</attachment>
	<attachment>
		LearySparkles
		<component>
			learysparkles
			<assetreference type="ParticleSystem">
				<file>art\chino\projectiles\sparkles.particle</file>
			</assetreference>
		</component>
		<anim>
			Idle
			<component>learysparkles</component>
		</anim>
	</attachment>
	<component>
		mesh
		<assetreference type="GrannyModel">
			<file>effects\impacts\directional_arrow</file>
		<!--	<file>Chino\projectiles\Beam</file>	-->
		</assetreference>
		<attach a="trail" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
	</component>
	<anim>
		Idle
		<assetreference type="GrannyAnim">
			<file>units\asians\chinese\flame_thrower\flameThrower_cannon_death00</file>
<!--
			<tag type="SpecificSoundSet" set="MortarShot">0.12</tag>
			<tag type="SpecificSoundSet" set="PistolShot">0.12</tag>
			<tag type="Particles" particlename="flyingCrow_explosion">0.12</tag>
-->
			<tag type="SpecificSoundSet" set="MortarShot">0.17</tag>
			<tag type="Particles" particlename="flamethrower_explosion">0.17</tag>
			<tag type="SpecificSoundSet" set="PistolShot">0.17</tag>
			<tag type="Particles" particlename="flyingCrow_explosion">0.17</tag>
			<tag type="Particles" particlename="flamethrower_explosion">0.17</tag>

		</assetreference>
		<component>mesh</component>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
		<attach a="LearySparkles" frombone="ATTACHPOINT" tobone="ATTACHPOINT" syncanims="0"/>
	</anim>
</animfile>



abilitiea.xml、powera.xml、protoa.xml作者你搞错了吧?


没搞错,作为大佬是可以为所欲为的,直接把主程序调用的文件名给改了。