基础知识


主要学习修改三个文件,分别是data文件夹里面的protoy.xml、techtreey.xml与stringtabley.xml。

protoy可以修改单位各种属性与建造按钮,例如生命值、速度、视野、图标、建造单位按钮等。

techtreey可以修改科技、卡片的效果,例如增加可训练单位、增加或减少生命值、运送单位等。

stringtabley是语言文件,作用是其他文件的5个数字会转变成这个文件与那5个数字相对应的文字。
刚入门的萌新请务必看完本页面,谢谢。

如果你还没下载单位手册,请点击此处下载帝国时代3亚洲王朝1.03版单位手册终极版.exe。



注意:在本教程中中间的X是数值或路径,后面或下一行的文字是对整行效果的解释。如果你问我X是什么,我保证我不会从网线爬过去打你。

图片的<PopulationCapAddition>X</PopulationCapAddition>为可容纳人口数,把X改成100,那么该单位/建筑就能容纳100人口。
把<MaxVelocity>X</MaxVelocity>中间的X改成10,那么该单位移动速度变成10

像军营那种单位没有可容纳人口数量的语句怎么办?
鉴于你是刚入门,我不欺负你:没有就自己将语句添加进军营就可以了。 PS:随意伸手会受到惩罚,甚至是受到-2147483647点暴击伤害。

萌新(LV1):!@#¥%……&怎样修改?
萌新(LV2):^&*(!@#$)_*&怎样修改?
萌新(LV3):/*-+23456^%
萌新(LV4):~!@#$%~``#%;怎样修改?
小羽(LV??)向萌新(LV4)发动攻击,造成了-2147483648点致命伤害。


小羽(LV??):最不喜欢那些自己不思考却又总是伸手的人了。不把你直接炸成灰已经算是对你手下留情了。
另一个萌新(LV1)看见此状况在瑟瑟发抖。



本教程一些术语(xml属性值、函数参数):

protoname为Protoy.xml的单位调用名
techname为Techtreey.xml的科技调用名
protoPowerName为Protounitcommands.xml的调用名



什么是单位调用名?


什么是调用名?
凡是name = 'XXXX'都是调用名。
protoy.xml - 记事本
	<Unit id ='909' name ='ypChuKoNu'>
		<DBID>1333</DBID>
		<DisplayNameID>60152</DisplayNameID>
		<EditorNameID>60153</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>

上图的单位调用名为ypChuKoNu,然后在Stringtabley.xml搜索60152,查到该单位为诸葛弩。你可能看见了一张假截图;注:这里其实是V3.2版本的遗留下来的梗;因为3.0版本的图片占用空间太大,3.2版本将所有截图全部删掉,然后用html仿写了一个看上去跟截图差不多的win10记事本。3.7版本之后使用了代码高亮,所以就很明显不是截图了。


techtreey.xml - 记事本
	<Tech name ='HCShipCrossbowmen3German' type ='Normal'>
		<DBID>2474</DBID>
		<DisplayNameID>36423</DisplayNameID>
		<Cost resourcetype ='Ships'>1.0000</Cost>
		<ResearchPoints>40.0000</ResearchPoints>
		<Status>UNOBTAINABLE</Status>
		<Icon>units\infantry_ranged\crossbow\crossbow_icon_64x64</Icon>

上图中的科技调用名为HCShipCrossbowmen3,在Stringtabley搜索42201,查到该科技为运送21个弩手的卡片。








此处非常重要
怎样修改单位人口啊?

.看圣典

怎样让村民建造工厂啊?

..看圣典

怎样让中国训练火枪手啊?

...看圣典

怎样建造剧情里面的英雄啊?

....

圣典我看了,就是不会。

.....

你就教教我呗

......我还能说些什么?不是你不会,而是你想不劳而获。要么你就是猪。






请记住以下语句:
techtreey.xml - 记事本
		启用科技
		<Effect type ='TechStatus' status ='obtainable'>Techname</Effect>


	禁用科技
		<Effect type ='TechStatus' status ='unobtainable'>Techname</Effect>


	直接改良科技
		<Effect type ='TechStatus' status ='active'>Techname</Effect>


	停用单位(0是停用,1是启用,-1是停用。)
		<Effect type ='Data' amount ='0' subtype ='Enable' relativity ='Absolute'>
			<Target type ='ProtoUnit'>Protoname</Target></Effect>


	启用单位(0是停用,1是启用,-1是停用。)
		<Effect type ='Data' amount ='1' subtype ='Enable' relativity ='Absolute'>
			<Target type ='ProtoUnit'>Protoname</Target></Effect>



protoy.xml - 记事本
		<PopulationCount>X.0000</PopulationCount>
		每个该类单位所占人口。
		注意:俄国军队不能改为0,否则俄国不能出兵的。
		(如果要改为0需要在civs.xml删除沙俄的捆绑出兵方式的语句,具体请打开4-5 捆绑-->旗军)

		<Train row ='0' page ='X' column ='Y'>A</Train>
		此单位/建筑可以生产的单位。采用三个参数:row 、page 、column 。尽管游戏始终会设置和处理row参数,但该参数实际上并未使用。

		<Tech row ='0' page ='X' column ='Y'>A</Tech>
		此单位/建筑可以研究的科技。采用三个参数:row 、page 、column 。尽管游戏始终会设置和处理row参数,但该参数实际上并未使用。
		Y是X行的第几个,protoname是单位调用名,techname是科技调用名;X的显示值看下表
='0' 训练 ='12' 英国人
='1' 改良 ='13' 法国人
='2' 步兵 ='14' 俄罗斯人
='3' 奇观 ='15' 荷兰人
='4' 骑兵 ='16' 西班牙领事馆
='5' 炮兵 ='17' 葡萄牙人
='6' 建造 ='18' 选择盟友
='7' 购买 ='19' 军队
='8' 出售 ='20' (领事馆的解约科技大按钮)
='9' 战术 ='21' 购买
='10' 命令 ='22' (空白)
='11' 能力(Abilities)












怎样修改单位人口?
很简单的,例如修改诸葛弩:
打开protoy.xml,搜索ypchukonu(ypchukonu是诸葛弩的单位调用名,自己看单位手册或者圣典的单位调用名,自己在stringtabley.xml寻找也行)
然后会看到<Unit id ='909' name ='ypChuKoNu'>
接下来把 <PopulationCount>1</PopulationCount>中间的1修改成0,那么诸葛弩占用人口就变成0了,修改成100,占用人口就变成100。
无标题 - 记事本
		<Unit id ='909' name ='ypChuKoNu'>
			<DBID>1333</DBID>
			<DisplayNameID>60152</DisplayNameID>
			<EditorNameID>60153</EditorNameID>
			<PopulationCount>1</PopulationCount>
			<ObstructionRadiusX>0.4900</ObstructionRadiusX>
			<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
			<FormationCategory>Ranged</FormationCategory>
			<MaxVelocity>4.5000</MaxVelocity>
			<MaxRunVelocity>6.0000</MaxRunVelocity>
			<MovementType>land</MovementType>
			<TurnRate>18.0000</TurnRate>
			<AnimFile>units\Mods\ming\crossbow\crossbow.xml</AnimFile>
			<ImpactType>Flesh</ImpactType>
			<PhysicsInfo>dude</PhysicsInfo>
			<Icon>icon\mingcrossbow_icon_64</Icon>
			<PortraitIcon>icon\mingcrossbow_icon_portrait</PortraitIcon>
			<RolloverTextID>60151</RolloverTextID>
			<ShortRolloverTextID>60150</ShortRolloverTextID>
			<InitialHitpoints>90.0000</InitialHitpoints>
			<MaxHitpoints>90.0000</MaxHitpoints>
			<LOS>20.0000</LOS>
			<ProjectileProtoUnit>Arrow</ProjectileProtoUnit>
			<AutoAttackRange>16.0000</AutoAttackRange>
			<UnitAIType>RangedCombative</UnitAIType>
			<TrainPoints>24.0000</TrainPoints>
			<Bounty>9.0000</Bounty>
			<BuildBounty>9.0000</BuildBounty>
			<Cost resourcetype ='Food'>85.0000</Cost>
			<AllowedAge>1</AllowedAge>
			<Armor type ='Ranged' value ='0.2000'></Armor>
			<UnitType>LogicalTypeHealed</UnitType>
			<UnitType>LogicalTypeValidSharpshoot</UnitType>



自己来试一遍,点击下面的(假)记事本文本框,然后按ctrl+F搜索ypchukonu
把PopulationCount的1改成0,或100,按保存。。。这个记事本是假的,不能保存,自己到外面去打开protoy.xml修改后再保存。
protoy.xml - 记事本
	<Unit id ='908' name ='ypMonkIndian'>
		<DBID>1332</DBID>
		<DisplayNameID>60148</DisplayNameID>
		<EditorNameID>60149</EditorNameID>
		<ObstructionRadiusX>0.7900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.7900</ObstructionRadiusZ>
		<FormationCategory>Mobile</FormationCategory>
		<MaxVelocity>5.0000</MaxVelocity>
		<MaxRunVelocity>7.0000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>
		<AnimFile>units\asians\indians\monk\monk_elephant.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<Icon>units\asians\indians\monk\indian_monk_icon_64</Icon>
		<MinimapIcon>ui\minimap\hero</MinimapIcon>
		<PortraitIcon>units\asians\indians\monk\indian_monk_icon_portrait</PortraitIcon>
		<SelectionPriority>5</SelectionPriority>
		<RolloverTextID>60147</RolloverTextID>
		<ShortRolloverTextID>60146</ShortRolloverTextID>
		<InitialHitpoints>250.0000</InitialHitpoints>
		<MaxHitpoints>250.0000</MaxHitpoints>
		<LOS>18.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<AutoAttackRange>16.0000</AutoAttackRange>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>20.0000</TrainPoints>
		<BuildLimit>1</BuildLimit>
		<Bounty>45.0000</Bounty>
		<Cost resourcetype ='Gold'>175.0000</Cost>
		<RechargeTime>10.0000</RechargeTime>
		<AllowedAge>0</AllowedAge>
		<Armor type ='Ranged' value ='0.2000'></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>Hero</UnitType>
		<UnitType>AbstractCavalry</UnitType>
		<UnitType>AbstractElephant</UnitType>
		<UnitType>Unit</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>AbstractCanSeeStealth</UnitType>
		<UnitType>AbstractHandCavalry</UnitType>
		<UnitType>ConvertsHerds</UnitType>
		<UnitType>AbstractMonk</UnitType>
		<UnitType>AbstractIndianMonk</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>
		<Train row ='0' page ='6' column ='2'>PetCoyote</Train>
		<Train row ='0' page ='6' column ='2'>YPPetTiger</Train>
		<Train row ='0' page ='6' column ='5'>YPPetRhino</Train>
		<Train row ='0' page ='6' column ='4'>YPPetWhiteTiger</Train>
		<Train row ='0' page ='6' column ='3'>ypPetLion</Train>
		<Flag>CollidesWithProjectiles</Flag>
		<Flag>ApplyHandicapTraining</Flag>
		<Flag>CorpseDecays</Flag>
		<Flag>ShowGarrisonButton</Flag>
		<Flag>DontRotateObstruction</Flag>
		<Flag>ObscuredByUnits</Flag>
		<Flag>HeroName2</Flag>
		<Flag>RotateInPlace</Flag>
		<Flag>ForceBuildingData</Flag>
		<Flag>NotDeleteable</Flag>
		<Flag>KnockoutDeath</Flag>
		<Flag>CanAutoHeal</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>
		<Command page ='9' column ='0'>ToggleStealth</Command>
		<Tactics>ypindianmonk.tactics</Tactics>
		<ProtoAction>
			<Name>AutoGatherWood</Name>
			<Type>AutoGather</Type>
			<Rate type ='Wood'>0.100000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>Build</Name>
			<Rate type ='TradingPost'>3.000000</Rate>
			<Rate type ='TownCenter'>1.000000</Rate>
			<Rate type ='WarHut'>1.000000</Rate>
			<Rate type ='ArtilleryDepot'>1.000000</Rate>
			<Rate type ='Corral'>1.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>10.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
			<DamageBonus type ='Building'>1.000000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>GuardianAttack</Name>
			<Damage>4.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageCap>40.000000</DamageCap>
			<DamageBonus type ='Guardian'>3.000000</DamageBonus>
			<DamageArea>2.000000</DamageArea>
			<DamageFlags>GAIAEnemy</DamageFlags>
			<HitPercent>10.000000</HitPercent>
			<HitPercentType>Sweep</HitPercentType>
		</ProtoAction>
		<ProtoAction>
			<Name>HandAttack</Name>
			<Damage>4.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageCap>40.000000</DamageCap>
			<DamageBonus type ='Guardian'>3.000000</DamageBonus>
			<DamageArea>2.000000</DamageArea>
			<DamageFlags>Enemy</DamageFlags>
			<HitPercent>10.000000</HitPercent>
			<HitPercentType>Sweep</HitPercentType>
			<DamageBonus type ='AbstractVillager'>0.250000</DamageBonus>
			<DamageBonus type ='Hero'>0.500000</DamageBonus>
			<DamageBonus type ='AbstractArtillery'>1.000000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>Heal</Name>
			<Type>Heal</Type>
			<Rate type ='LogicalTypeHealed'>4.000000</Rate>
		</ProtoAction>
		<ProtoAction>
			<Name>Stun</Name>
			<Damage>30.000000</Damage>
			<DamageType>Hand</DamageType>
			<MaxRange>2.000000</MaxRange>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>sweepDamage</Name>
			<Damage>5.000000</Damage>
			<DamageType>Hand</DamageType>
			<DamageFlags>GAIAEnemy</DamageFlags>
		</ProtoAction>
	</Unit>
	<Unit id ='909' name ='ypChuKoNu'>
		<DBID>1333</DBID>
		<DisplayNameID>60152</DisplayNameID>
		<EditorNameID>60153</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Ranged</FormationCategory>
		<MaxVelocity>4.5000</MaxVelocity>
		<MaxRunVelocity>6.0000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>
		<AnimFile>units\Mods\ming\crossbow\crossbow.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>icon\mingcrossbow_icon_64</Icon>
		<PortraitIcon>icon\mingcrossbow_icon_portrait</PortraitIcon>
		<RolloverTextID>60151</RolloverTextID>
		<ShortRolloverTextID>60150</ShortRolloverTextID>
		<InitialHitpoints>90.0000</InitialHitpoints>
		<MaxHitpoints>90.0000</MaxHitpoints>
		<LOS>20.0000</LOS>
		<ProjectileProtoUnit>Arrow</ProjectileProtoUnit>
		<AutoAttackRange>16.0000</AutoAttackRange>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>24.0000</TrainPoints>
		<Bounty>9.0000</Bounty>
		<BuildBounty>9.0000</BuildBounty>
		<Cost resourcetype ='Food'>85.0000</Cost>
		<AllowedAge>1</AllowedAge>
		<Armor type ='Ranged' 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>ConvertsHerds</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>Unit</UnitType>
		<UnitType>AbstractArcher</UnitType>
		<UnitType>AbstractInfantry</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>chukonu.tactics</Tactics>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>3.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>6.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendRangedAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>6.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerHandAttack</Name>
			<Damage>6.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerRangedAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyHandAttack</Name>
			<Damage>6.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MinRange>2.000000</MinRange>
			<MaxRange>16.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
	</Unit>
	<Unit id ='910' name ='ypArquebusier'>
		<DBID>1334</DBID>
		<DisplayNameID>60156</DisplayNameID>
		<EditorNameID>60157</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\Mods\ming\master\master.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>icon\mingmaster_icon_64</Icon>
		<PortraitIcon>icon\mingmaster_icon_portrait</PortraitIcon>
		<RolloverTextID>60155</RolloverTextID>
		<ShortRolloverTextID>60154</ShortRolloverTextID>
		<InitialHitpoints>105.0000</InitialHitpoints>
		<MaxHitpoints>105.0000</MaxHitpoints>
		<LOS>24.0000</LOS>
		<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
		<AutoAttackRange>16.0000</AutoAttackRange>
		<UnitAIType>RangedCombative</UnitAIType>
		<TrainPoints>27.0000</TrainPoints>
		<Bounty>9.0000</Bounty>
		<BuildBounty>9.0000</BuildBounty>
		<Cost resourcetype ='Gold'>85.0000</Cost>
		<AllowedAge>2</AllowedAge>
		<Armor type ='Ranged' value ='0.3000'></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>AbstractInfantry</UnitType>
		<UnitType>Unit</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>Ranged</UnitType>
		<UnitType>AbstractGunpowderTrooper</UnitType>
		<UnitType>AbstractRangedInfantry</UnitType>
		<UnitType>ConvertsHerds</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>musketBayonet.tactics</Tactics>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>9.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendRangedAttack</Name>
			<Damage>14.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>20.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerHandAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>StaggerRangedAttack</Name>
			<Damage>14.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>20.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyHandAttack</Name>
			<Damage>5.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>VolleyRangedAttack</Name>
			<Damage>14.000000</Damage>
			<DamageType>Ranged</DamageType>
			<MaxRange>20.000000</MaxRange>
			<ROF>3.000000</ROF>
			<DamageBonus type ='AbstractLightCavalry'>2.000000</DamageBonus>
			<DamageBonus type ='AbstractHeavyInfantry'>2.000000</DamageBonus>
			<DamageBonus type ='xpEagleKnight'>2.000000</DamageBonus>
			<DamageBonus type ='xpCoyoteMan'>0.750000</DamageBonus>
			<DamageBonus type ='AbstractCavalry'>0.750000</DamageBonus>
		</ProtoAction>
	</Unit>
	<Unit id ='911' name ='ypQiangPikeman'>
		<DBID>1335</DBID>
		<DisplayNameID>60160</DisplayNameID>
		<EditorNameID>60161</EditorNameID>
		<PopulationCount>1</PopulationCount>
		<ObstructionRadiusX>0.4900</ObstructionRadiusX>
		<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
		<FormationCategory>Body</FormationCategory>
		<MaxVelocity>5.0000</MaxVelocity>
		<MaxRunVelocity>7.0000</MaxRunVelocity>
		<MovementType>land</MovementType>
		<TurnRate>18.0000</TurnRate>
		<AnimFile>units\Mods\ming\pikeman\pikeman.xml</AnimFile>
		<ImpactType>Flesh</ImpactType>
		<PhysicsInfo>dude</PhysicsInfo>
		<Icon>icon\mingpikeman_icon_64</Icon>
		<PortraitIcon>icon\mingpikeman_icon_portrait</PortraitIcon>
		<SelectionPriority>20</SelectionPriority>
		<RolloverTextID>60159</RolloverTextID>
		<ShortRolloverTextID>60158</ShortRolloverTextID>
		<InitialHitpoints>110.0000</InitialHitpoints>
		<MaxHitpoints>110.0000</MaxHitpoints>
		<LOS>12.0000</LOS>
		<UnitAIType>HandCombative</UnitAIType>
		<TrainPoints>24.0000</TrainPoints>
		<Bounty>7.0000</Bounty>
		<BuildBounty>7.0000</BuildBounty>
		<Cost resourcetype ='Wood'>60.0000</Cost>
		<AllowedAge>1</AllowedAge>
		<Armor type ='Hand' value ='0.1000'></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>ConvertsHerds</UnitType>
		<UnitType>AbstractHandInfantry</UnitType>
		<UnitType>AbstractPikeman</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>AbstractCavalryInfantry</UnitType>
		<UnitType>CountsTowardMilitaryScore</UnitType>
		<UnitType>UnitClass</UnitType>
		<UnitType>Military</UnitType>
		<UnitType>Unit</UnitType>
		<UnitType>AbstractInfantry</UnitType>
		<UnitType>AbstractHeavyInfantry</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>pikeman.tactics</Tactics>
		<ProtoAction>
			<Name>BuildingAttack</Name>
			<Damage>30.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>CoverBuildingAttack</Name>
			<Damage>15.000000</Damage>
			<DamageType>Siege</DamageType>
			<ROF>3.000000</ROF>
		</ProtoAction>
		<ProtoAction>
			<Name>CoverHandAttack</Name>
			<Damage>3.500000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>5.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>3.000000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>DefendHandAttack</Name>
			<Damage>7.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>5.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>3.000000</DamageBonus>
		</ProtoAction>
		<ProtoAction>
			<Name>MeleeHandAttack</Name>
			<Damage>7.000000</Damage>
			<DamageType>Hand</DamageType>
			<ROF>1.500000</ROF>
			<DamageBonus type ='AbstractCavalry'>5.000000</DamageBonus>
			<DamageBonus type ='AbstractLightInfantry'>3.000000</DamageBonus>
		</ProtoAction>
	</Unit>







其他的使用方法看1-6初始科技