帝国时代3搬运偷盗移值MOD单位




这个教程教那些不会独立去研究帝国3(又或者说无论怎样去研究都没有结果)的萌新怎样去将一个MOD的单位偷盗移植到另一个MOD。


另外,我不会告诉你在2.2版本升级3.0版本的时候,我懒得去重制,所以就从3.0删掉了。





1. 打开protoy.xml找到你想要偷盗移植的单位,从开头<Unit id复制到末尾</Unit>,然后粘贴到你的protoy.xml


别人的mod不一定是protoy.xml,例如作者就是修改了主程序,所以一直修改在最后一个字母为a的xml,在这个教程可以算是两个不同MOD,这样就很好区分到底是从哪里复制到哪里了。
例如我要将下面的UPxpColonialMilitiaChinaNewArmy单位复制到另一个MOD的protoy.xml中,要复制的语句就是蓝色背景的语句。
  protoa.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id="1465" name="UPxpColonialMilitiaChinaNewArmy">
<DBID>2144</DBID>
<DisplayNameID>200038</DisplayNameID>
<EditorNameID>200040</EditorNameID>
<PopulationCount>1</PopulationCount>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Ranged</FormationCategory>
<MaxVelocity>5.0000</MaxVelocity>
<MaxRunVelocity>7.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>18.0000</TurnRate>
<AnimFile>units\infantry_ranged\colonial_militia\colonial_militia.xml</AnimFile>
<ImpactType>Flesh</ImpactType>
<PhysicsInfo>dude</PhysicsInfo>
<Icon>units\infantry_ranged\colonial_militia\UPyp_china_new_army_icon</Icon>
<PortraitIcon>units\infantry_ranged\colonial_militia\UPyp_china_new_army_portrait</PortraitIcon>
<RolloverTextID>200041</RolloverTextID>
<ShortRolloverTextID>200042</ShortRolloverTextID>
<InitialHitpoints>200.0000</InitialHitpoints>
<MaxHitpoints>200.0000</MaxHitpoints>
<LOS>18.0000</LOS>
<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
<AutoAttackRange>16.0000</AutoAttackRange>
<UnitAIType>RangedCombative</UnitAIType>
<TrainPoints>30.0000</TrainPoints>
<Bounty>10.0000</Bounty>
<BuildBounty>10.0000</BuildBounty>
<Cost resourcetype="Food">100.0000</Cost>
<AllowedAge>2</AllowedAge>
<Armor type="Hand" value="0.3000"/>
<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>AbstractHeavyInfantry</UnitType>
<UnitType>AbstractInfantry</UnitType>
<UnitType>Unit</UnitType>
<UnitType>Military</UnitType>
<UnitType>UnitClass</UnitType>
<UnitType>Ranged</UnitType>
<UnitType>AbstractGunpowderTrooper</UnitType>
<UnitType>HasBountyValue</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>NewArmy.tactics</Tactics>
<ProtoAction>
<Name>BuildingAttack</Name>
<Damage>20.000000</Damage>
<DamageType>Siege</DamageType>
<ROF>3.000000</ROF>
</ProtoAction>
<ProtoAction>
<Name>DefendHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>DefendRangedAttack</Name>
<Damage>24.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>MeleeHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>StaggerHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>StaggerRangedAttack</Name>
<Damage>24.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>VolleyHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>VolleyRangedAttack</Name>
<Damage>24.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
</Unit>

<Unit id="1466" name="FlagBearer">
<DBID>887</DBID>
<DisplayNameID>00600</DisplayNameID>
<EditorNameID>00601</EditorNameID>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Body</FormationCategory>
<PopulationCount>0</PopulationCount>
<MaxVelocity>5.50000</MaxVelocity>
<MaxRunVelocity>7.50000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>18.0000</TurnRate>
<AnimFile>mods\Flag\FlagBearer.xml</AnimFile>
<ImpactType>Flesh</ImpactType>
<Icon>units\squad\flag_bearer\flag_bearer_icon</Icon>
<PortraitIcon>units\squad\flag_bearer\flag_bearer_portrait</PortraitIcon>
<InitialHitpoints>300.0000</InitialHitpoints>
<MaxHitpoints>300.0000</MaxHitpoints>
<LOS>14.0000</LOS>
<UnitAIType>HandCombative</UnitAIType>
<BuildLimit>10</BuildLimit>
<TrainPoints>40.0000</TrainPoints>
<RolloverTextID>00616</RolloverTextID>
<ShortRolloverTextID>00317</ShortRolloverTextID>
<Bounty>20.0000</Bounty>
<BuildBounty>20.0000</BuildBounty>
<Cost resourcetype="Gold">200.0000</Cost>
<Armor type="Ranged" value="0.3000"/>
<AllowedAge>1</AllowedAge>
<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>AbstractGunpowderTrooper</UnitType>
<UnitType>AbstractHeavyInfantry</UnitType>
<UnitType>HasBountyValue</UnitType>
<Flag>CollidesWithProjectiles</Flag>
<Flag>ApplyHandicapTraining</Flag>
<Flag>CorpseDecays</Flag>
<Flag>ShowGarrisonButton</Flag>
<Flag>DontRotateObstruction</Flag>
<Flag>ObscuredByUnits</Flag>
<Flag>Tracked</Flag>
<Command page="0" column="1">SetUnitAsHomeCityGatherPoint</Command>
<Command page="10" column="1">Stop</Command>
<Command page="10" column="0">Garrison</Command>
<Command page="10" column="2">Delete</Command>
<Tactics>FlagBearer.tactics</Tactics>
<ProtoAction>
<Name>BuildingAttack</Name>
<Damage>15.000000</Damage>
<DamageType>Siege</DamageType>
<MaxRange>6.000000</MaxRange>
<ROF>3.000000</ROF>
</ProtoAction>
<ProtoAction>
<Name>DefendHandAttack</Name>
<HitPercentType>CriticalAttack</HitPercentType>
<HitPercent>8.000000</HitPercent>
<DamageMultiplier>10.000000</DamageMultiplier>
<HitPercentType>CriticalAttack</HitPercentType>
<HitPercent>8.000000</HitPercent>
<DamageMultiplier>10.000000</DamageMultiplier>
<Damage>15.000000</Damage>
<DamageType>Hand</DamageType>
<DamageBonus type="AbstractVillager">0.100000</DamageBonus>
<ROF>1.500000</ROF>
</ProtoAction>
<ProtoAction>
<Name>MeleeHandAttack</Name>
<HitPercentType>CriticalAttack</HitPercentType>
<HitPercent>8.000000</HitPercent>
<DamageMultiplier>10.000000</DamageMultiplier>
<Damage>15.000000</Damage>
<DamageType>Hand</DamageType>
<DamageBonus type="AbstractVillager">0.100000</DamageBonus>
<ROF>1.500000</ROF>
</ProtoAction>
</Unit>


↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

这是官方版本的protoy.xml底部↓(你自己复制到你的protoy.xml底部),上面protoa.xml的单位复制到下面的protoy.xml如红色字所示
  protoy.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id="1461" name="ypSettlerIceCream">
<DBID>2138</DBID>
<DisplayNameID>70460</DisplayNameID>
<EditorNameID>70461</EditorNameID>
<PopulationCount>1</PopulationCount>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Protected</FormationCategory>
<MaxVelocity>4.0000</MaxVelocity>
<MaxRunVelocity>6.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>18.0000</TurnRate>
<AnimFile>units\villagers\ice_cream_villager.xml</AnimFile>
<ImpactType>Flesh</ImpactType>
<PhysicsInfo>dude</PhysicsInfo>
<Icon>units\asians\shared\villager\peasant_icon</Icon>
<PortraitIcon>units\asians\shared\villager\peasant_icon_portrait</PortraitIcon>
<SelectionPriority>10</SelectionPriority>
<RolloverTextID>70459</RolloverTextID>
<ShortRolloverTextID>70458</ShortRolloverTextID>
<InitialHitpoints>150.0000</InitialHitpoints>
<MaxHitpoints>150.0000</MaxHitpoints>
<LOS>14.0000</LOS>
<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
<UnitAIType>Civilian</UnitAIType>
<TrainPoints>25.0000</TrainPoints>
<BuildLimit>99</BuildLimit>
<Bounty>10.0000</Bounty>
<BuildBounty>10.0000</BuildBounty>
<Cost resourcetype="Food">100.0000</Cost>
<CarryCapacity resourcetype="Food">1.0000</CarryCapacity>
<CarryCapacity resourcetype="Wood">1.0000</CarryCapacity>
<CarryCapacity resourcetype="Gold">1.0000</CarryCapacity>
<AllowedAge>0</AllowedAge>
<Armor type="Hand" value="0.2000"/>
<UnitType>LogicalTypeMinimapFilterEconomic</UnitType>
<UnitType>LogicalTypeEasySelectAvoid</UnitType>
<UnitType>LogicalTypeHealed</UnitType>
<UnitType>LogicalTypeNeededForVictory</UnitType>
<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeValidSPCUnitsDeadCondition</UnitType>
<UnitType>LogicalTypeGarrisonInShips</UnitType>
<UnitType>LogicalTypeAffectedByTownBell</UnitType>
<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>Unit</UnitType>
<UnitType>UnitClass</UnitType>
<UnitType>AbstractVillager</UnitType>
<UnitType>Economic</UnitType>
<UnitType>ValidIdleVillager</UnitType>
<UnitType>CountsTowardEconomicScore</UnitType>
<UnitType>HasBountyValue</UnitType>
<UnitType>Ranged</UnitType>
<UnitType>CannotConvertHill</UnitType>
<UnitType>ConvertsHerds</UnitType>
<UnitType>AffectedByTownBell</UnitType>
<Train row="0" page="255" column="0">ypWJGiantBuddha4</Train>
<Train row="0" page="255" column="0">ypWJGiantBuddha5</Train>
<Train row="0" page="6" column="0">House</Train>
<Train row="0" page="255" column="1">WallStraight2</Train>
<Train row="0" page="255" column="1">WallStraight5</Train>
<Train row="0" page="6" column="0">Manor</Train>
<Train row="0" page="6" column="0">FirePit</Train>
<Train row="0" page="6" column="0">FirePit</Train>
<Train row="0" page="6" column="0">HouseEast</Train>
<Train row="0" page="6" column="0">HouseMed</Train>
<Train row="0" page="6" column="3">Farm</Train>
<Train row="0" page="6" column="3">Farm</Train>
<Train row="0" page="6" column="3">Farm</Train>
<Train row="0" page="6" column="3">Mill</Train>
<Train row="0" page="6" column="4">LivestockPen</Train>
<Train row="0" page="6" column="5">Dock</Train>
<Train row="0" page="6" column="5">Dock</Train>
<Train row="0" page="6" column="8">WallConnector</Train>
<Train row="0" page="6" column="8">WallConnector</Train>
<Train row="0" page="6" column="13">ArtilleryDepot</Train>
<Train row="0" page="6" column="13">ArtilleryDepot</Train>
<Train row="0">Outpost</Train>
<Train row="0" page="6" column="4">ypSacredField</Train>
<Train row="0" page="6" column="0">ypHouseIndian</Train>
<Train row="0" page="6" column="12">ypStableJapanese</Train>
<Train row="0" page="6" column="11">ypBarracksJapanese</Train>
<Train row="0" page="6" column="12">ypCaravanserai</Train>
<Train row="0" page="6" column="0">ypVillage</Train>
<Train row="0" page="6" column="10">ypMonastery</Train>
<Train row="0" page="6" column="11">YPBarracksIndian</Train>
<Train row="0" page="6" column="5">YPDockAsian</Train>
<Train row="0" page="6" column="0">ypShrineJapanese</Train>
<Train row="0" page="6" column="4">YPLivestockPenAsian</Train>
<Train row="0" page="6" column="6">ypCastle</Train>
<Train row="0" page="6" column="14">ypConsulate</Train>
<Train row="0" page="6" column="3">ypRicePaddy</Train>
<Train row="0" page="255" column="0">ypWJToshoguShrine2</Train>
<Train row="0" page="255" column="0">ypWJGoldenPavillion2</Train>
<Train row="0" page="255" column="0">ypWJGiantBuddha2</Train>
<Train row="0" page="255" column="0">ypWJToshoguShrine5</Train>
<Train row="0" page="255" column="0">ypWJToshoguShrine4</Train>
<Train row="0" page="255" column="0">ypWJToshoguShrine3</Train>
<Train row="0" page="255" column="0">ypWJToriiGates5</Train>
<Train row="0" page="255" column="0">ypWJToriiGates4</Train>
<Train row="0" page="255" column="0">ypWJToriiGates3</Train>
<Train row="0" page="255" column="0">ypWJToriiGates2</Train>
<Train row="0" page="255" column="0">ypWJShogunate4</Train>
<Train row="0" page="255" column="0">ypWJShogunate5</Train>
<Train row="0" page="255" column="0">ypWJShogunate3</Train>
<Train row="0" page="255" column="0">ypWJShogunate2</Train>
<Train row="0" page="255" column="0">ypWJGoldenPavillion3</Train>
<Train row="0" page="255" column="0">ypWJGoldenPavillion4</Train>
<Train row="0" page="255" column="0">ypWJGoldenPavillion5</Train>
<Train row="0" page="255" column="0">ypWJGiantBuddha3</Train>
<Train row="0" page="255" column="0">ypWCWhitePagoda2</Train>
<Train row="0" page="255" column="0">ypWCWhitePagoda3</Train>
<Train row="0" page="255" column="0">ypWCWhitePagoda4</Train>
<Train row="0" page="255" column="0">ypWCWhitePagoda5</Train>
<Train row="0" page="255" column="0">ypWCTempleOfHeaven2</Train>
<Train row="0" page="255" column="0">ypWCTempleOfHeaven3</Train>
<Train row="0" page="255" column="0">ypWCTempleOfHeaven4</Train>
<Train row="0" page="255" column="0">ypWCTempleOfHeaven5</Train>
<Train row="0" page="255" column="0">ypWCSummerPalace2</Train>
<Train row="0" page="255" column="0">ypWCSummerPalace3</Train>
<Train row="0" page="255" column="0">ypWCSummerPalace4</Train>
<Train row="0" page="255" column="0">ypWCSummerPalace5</Train>
<Train row="0" page="255" column="0">ypWCPorcelainTower2</Train>
<Train row="0" page="255" column="0">ypWCPorcelainTower3</Train>
<Train row="0" page="255" column="0">ypWCPorcelainTower4</Train>
<Train row="0" page="255" column="0">ypWCPorcelainTower5</Train>
<Train row="0" page="255" column="0">ypWCConfucianAcademy2</Train>
<Train row="0" page="255" column="0">ypWCConfucianAcademy3</Train>
<Train row="0" page="255" column="0">ypWCConfucianAcademy4</Train>
<Train row="0" page="255" column="0">ypWCConfucianAcademy5</Train>
<Train row="0" page="255" column="0">ypWITowerOfVictory5</Train>
<Train row="0" page="255" column="0">ypWITowerOfVictory4</Train>
<Train row="0" page="255" column="0">ypWITowerOfVictory3</Train>
<Train row="0" page="255" column="0">ypWITowerOfVictory2</Train>
<Train row="0" page="255" column="0">ypWITajMahal5</Train>
<Train row="0" page="255" column="0">ypWITajMahal4</Train>
<Train row="0" page="255" column="0">ypWITajMahal3</Train>
<Train row="0" page="255" column="0">ypWITajMahal2</Train>
<Train row="0" page="255" column="0">ypWIKarniMata5</Train>
<Train row="0" page="255" column="0">ypWIKarniMata4</Train>
<Train row="0" page="255" column="0">ypWIKarniMata3</Train>
<Train row="0" page="255" column="0">ypWIKarniMata2</Train>
<Train row="0" page="255" column="0">ypWICharminarGate5</Train>
<Train row="0" page="255" column="0">ypWICharminarGate4</Train>
<Train row="0" page="255" column="0">ypWICharminarGate3</Train>
<Train row="0" page="255" column="0">ypWICharminarGate2</Train>
<Train row="0" page="255" column="0">ypWIAgraFort5</Train>
<Train row="0" page="255" column="0">ypWIAgraFort4</Train>
<Train row="0" page="255" column="0">ypWIAgraFort3</Train>
<Train row="0" page="255" column="0">ypWIAgraFort2</Train>
<Train row="0" page="6" column="2">ypTradeMarketAsian</Train>
<Train row="0" page="1" column="4">TradingPost</Train>
<Train row="0" page="1" column="4">TradingPost</Train>
<Train row="0" page="1" column="4">TradingPost</Train>
<Train row="0" page="1" column="3">TownCenter</Train>
<Train row="0" page="1" column="3">TownCenter</Train>
<Train row="0" page="6" column="11">ypWarAcademy</Train>
<Train row="0" page="6" column="11">ypWarAcademy</Train>
<Train row="0" page="6" column="11">ypWarAcademy</Train>
<Tech row="0" page="1" column="0">YPWonderChineseWhitePagoda2</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseWhitePagoda3</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseWhitePagoda4</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseTempleOfHeaven2</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseTempleOfHeaven3</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseTempleOfHeaven4</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseTempleOfHeaven5</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseSummerPalace3</Tech>
<Tech row="0" page="1" column="0">YPWonderChinesePorcelainTower3</Tech>
<Tech row="0" page="1" column="0">YPWonderChinesePorcelainTower4</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseConfucianAcademy2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianAgra2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianAgra3</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianAgra4</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianCharminar2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianKarniMata2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianKarniMata4</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianKarniMata5</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTajMahal2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTajMahal3</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTowerOfVictory5</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseWhitePagoda5</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseSummerPalace5</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseSummerPalace4</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseSummerPalace2</Tech>
<Tech row="0" page="1" column="0">YPWonderChinesePorcelainTower2</Tech>
<Tech row="0" page="1" column="0">YPWonderChinesePorcelainTower5</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseConfucianAcademy3</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseConfucianAcademy4</Tech>
<Tech row="0" page="1" column="0">YPWonderChineseConfucianAcademy5</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToshoguShrine3</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToriiGates4</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseShogunate3</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToshoguShrine4</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToriiGates5</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToriiGates2</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseShogunate4</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseShogunate5</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGiantBuddha2</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGiantBuddha3</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGiantBuddha4</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGiantBuddha5</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGoldenPavillion2</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGoldenPavillion3</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGoldenPavillion4</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseGoldenPavillion5</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToshoguShrine5</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToshoguShrine2</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseToriiGates3</Tech>
<Tech row="0" page="1" column="0">YPWonderJapaneseShogunate2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianAgra5</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianCharminar3</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianCharminar4</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianCharminar5</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianKarniMata3</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTajMahal4</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTajMahal5</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTowerOfVictory2</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTowerOfVictory4</Tech>
<Tech row="0" page="1" column="0">YPWonderIndianTowerOfVictory3</Tech>
<Flag>CollidesWithProjectiles</Flag>
<Flag>ApplyHandicapTraining</Flag>
<Flag>CorpseDecays</Flag>
<Flag>ShowGarrisonButton</Flag>
<Flag>DontRotateObstruction</Flag>
<Flag>ObscuredByUnits</Flag>
<Flag>DeadReplacementWhenDestroyed</Flag>
<Flag>VisibleUnderFogIfGaia</Flag>
<Flag>Tracked</Flag>
<Command page="10" column="0">Garrison</Command>
<Command page="10" column="1">Stop</Command>
<Command page="10" column="2">Delete</Command>
<Tactics>settler.tactics</Tactics>
<ProtoAction>
<Name>AutoGatherTrade</Name>
<Type>AutoGather</Type>
<Rate type="Trade">0.030000</Rate>
</ProtoAction>
<ProtoAction>
<Name>BlunderbussAttack</Name>
<Damage>3.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="Huntable">4.000000</DamageBonus>
<DamageBonus type="AbstractPet">2.000000</DamageBonus>
<DamageBonus type="AbstractArtillery">2.000000</DamageBonus>
<DamageBonus type="AbstractVillager">0.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>Build</Name>
<Rate type="Building">1.000000</Rate>
<Rate type="Manor">1.000000</Rate>
<Rate type="FirePit">1.000000</Rate>
<Rate type="House">1.000000</Rate>
<Rate type="ypMonastery">1.000000</Rate>
<Rate type="AbstractWonder">1.000000</Rate>
</ProtoAction>
<ProtoAction>
<Name>BuildingAttack</Name>
<Damage>5.000000</Damage>
<DamageType>Siege</DamageType>
<ROF>3.000000</ROF>
</ProtoAction>
<ProtoAction>
<Name>ChopAttack</Name>
<Damage>8.000000</Damage>
<DamageType>Hand</DamageType>
</ProtoAction>
<ProtoAction>
<Name>CrateGather</Name>
<Rate type="AbstractResourceCrate">8.000000</Rate>
</ProtoAction>
<ProtoAction>
<Name>Gather</Name>
<Rate type="ypRicePaddy" resource="Gold">0.340000</Rate>
<Rate type="ypBerryBuilding">0.670000</Rate>
<Rate type="ypGroveBuilding">0.500000</Rate>
<Rate type="Tree">0.500000</Rate>
<Rate type="Farm">0.500000</Rate>
<Rate type="Plantation">0.500000</Rate>
<Rate type="Herdable">2.000000</Rate>
<Rate type="Huntable">0.840000</Rate>
<Rate type="AbstractMine">0.600000</Rate>
<Rate type="BerryBush">0.670000</Rate>
<Rate type="FirePit">0.100000</Rate>
<Rate type="Mill">0.670000</Rate>
<Rate type="ypRicePaddy" resource="Food">0.500000</Rate>
</ProtoAction>
<ProtoAction>
<Name>HandAttack</Name>
<Damage>10.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
</ProtoAction>
<ProtoAction>
<Name>Hunting</Name>
<Rate type="Herdable">1.000000</Rate>
<Rate type="Huntable">1.000000</Rate>
<Rate type="Tree">1.000000</Rate>
</ProtoAction>
</Unit>
<Unit id="1462" name="ypBlockhouseWagon">
<DBID>2141</DBID>
<DisplayNameID>70486</DisplayNameID>
<EditorNameID>70487</EditorNameID>
<ObstructionRadiusX>0.9900</ObstructionRadiusX>
<ObstructionRadiusZ>0.9900</ObstructionRadiusZ>
<FormationCategory>Protected</FormationCategory>
<MaxVelocity>4.0000</MaxVelocity>
<MaxRunVelocity>6.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>5.0000</TurnRate>
<AnimFile>units\trade\supply_cart\supply_cart_outpost.xml</AnimFile>
<ImpactType>Wood</ImpactType>
<Icon>units\trade\outpost_wagon_icon_64x64</Icon>
<PortraitIcon>units\trade\outpost_wagon_portrait</PortraitIcon>
<RolloverTextID>70485</RolloverTextID>
<ShortRolloverTextID>70484</ShortRolloverTextID>
<InitialHitpoints>250.0000</InitialHitpoints>
<MaxHitpoints>250.0000</MaxHitpoints>
<LOS>18.0000</LOS>
<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
<UnitAIType>Civilian</UnitAIType>
<TrainPoints>60.0000</TrainPoints>
<Bounty>60.0000</Bounty>
<CarryCapacity resourcetype="Food">1.0000</CarryCapacity>
<CarryCapacity resourcetype="Wood">1.0000</CarryCapacity>
<CarryCapacity resourcetype="Gold">1.0000</CarryCapacity>
<AllowedAge>0</AllowedAge>
<Armor type="Siege" value="0.2000"/>
<UnitType>LogicalTypeMinimapFilterEconomic</UnitType>
<UnitType>LogicalTypeHealed</UnitType>
<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeGarrisonInShips</UnitType>
<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>AbstractWagon</UnitType>
<UnitType>ConvertsHerds</UnitType>
<UnitType>CannotConvertHill</UnitType>
<UnitType>HasBountyValue</UnitType>
<UnitType>CountsTowardEconomicScore</UnitType>
<UnitType>ValidIdleVillager</UnitType>
<UnitType>Economic</UnitType>
<UnitType>UnitClass</UnitType>
<UnitType>Unit</UnitType>
<Train row="0" page="6" column="0">Blockhouse</Train>
<Flag>CollidesWithProjectiles</Flag>
<Flag>ApplyHandicapTraining</Flag>
<Flag>CorpseDecays</Flag>
<Flag>ShowGarrisonButton</Flag>
<Flag>DontRotateObstruction</Flag>
<Flag>ObscuredByUnits</Flag>
<Flag>DeadReplacementWhenDestroyed</Flag>
<Flag>ConstrainOrientation</Flag>
<Flag>OrientUnitWithGround</Flag>
<Flag>Tracked</Flag>
<Command page="10" column="0">Garrison</Command>
<Command page="10" column="1">Stop</Command>
<Command page="10" column="2">Delete</Command>
<Tactics>coveredwagon.tactics</Tactics>
<ProtoAction>
<Name>Build</Name>
<Rate type="WarHut">2.000000</Rate>
<Rate type="Blockhouse">2.000000</Rate>
<Rate type="Outpost">2.000000</Rate>
<Rate type="YPOutpostAsian">2.000000</Rate>
</ProtoAction>
</Unit>
<Unit id="1463" name="UPxpColonialMilitiaChinaNewArmy">
<DBID>2144</DBID>
<DisplayNameID>200038</DisplayNameID>
<EditorNameID>200040</EditorNameID>
<PopulationCount>1</PopulationCount>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Ranged</FormationCategory>
<MaxVelocity>5.0000</MaxVelocity>
<MaxRunVelocity>7.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>18.0000</TurnRate>
<AnimFile>units\infantry_ranged\colonial_militia\colonial_militia.xml</AnimFile>
<ImpactType>Flesh</ImpactType>
<PhysicsInfo>dude</PhysicsInfo>
<Icon>units\infantry_ranged\colonial_militia\UPyp_china_new_army_icon</Icon>
<PortraitIcon>units\infantry_ranged\colonial_militia\UPyp_china_new_army_portrait</PortraitIcon>
<RolloverTextID>200041</RolloverTextID>
<ShortRolloverTextID>200042</ShortRolloverTextID>
<InitialHitpoints>200.0000</InitialHitpoints>
<MaxHitpoints>200.0000</MaxHitpoints>
<LOS>18.0000</LOS>
<ProjectileProtoUnit>InvisibleProjectile</ProjectileProtoUnit>
<AutoAttackRange>16.0000</AutoAttackRange>
<UnitAIType>RangedCombative</UnitAIType>
<TrainPoints>30.0000</TrainPoints>
<Bounty>10.0000</Bounty>
<BuildBounty>10.0000</BuildBounty>
<Cost resourcetype="Food">100.0000</Cost>
<AllowedAge>2</AllowedAge>
<Armor type="Hand" value="0.3000"/>
<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>AbstractHeavyInfantry</UnitType>
<UnitType>AbstractInfantry</UnitType>
<UnitType>Unit</UnitType>
<UnitType>Military</UnitType>
<UnitType>UnitClass</UnitType>
<UnitType>Ranged</UnitType>
<UnitType>AbstractGunpowderTrooper</UnitType>
<UnitType>HasBountyValue</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>NewArmy.tactics</Tactics>
<ProtoAction>
<Name>BuildingAttack</Name>
<Damage>20.000000</Damage>
<DamageType>Siege</DamageType>
<ROF>3.000000</ROF>
</ProtoAction>
<ProtoAction>
<Name>DefendHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>DefendRangedAttack</Name>
<Damage>24.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>MeleeHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>StaggerHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>StaggerRangedAttack</Name>
<Damage>24.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>VolleyHandAttack</Name>
<Damage>12.000000</Damage>
<DamageType>Hand</DamageType>
<ROF>1.500000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
<ProtoAction>
<Name>VolleyRangedAttack</Name>
<Damage>24.000000</Damage>
<DamageType>Ranged</DamageType>
<MinRange>2.000000</MinRange>
<MaxRange>12.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageBonus type="AbstractCavalry">2.000000</DamageBonus>
<DamageBonus type="AbstractLightInfantry">1.500000</DamageBonus>
</ProtoAction>
</Unit>
</Proto>





2.如果这个单位是MOD作者使用了新的tactics文件,就先把这个tactics文件移植过去,在data文件夹中的tactics文件夹寻找对应的tactics文件,复制到你的MOD。


在别人的mod文件中找不到?自己去用AOE3ED去Bar文件提取,找不到的都是打包到bar文件里面了。
  protoy.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)

<UnitType>AbstractGunpowderTrooper</UnitType>
<UnitType>HasBountyValue</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>NewArmy.tactics</Tactics>
<ProtoAction>
<Name>BuildingAttack</Name>
<Damage>20.000000</Damage>
<DamageType>Siege</DamageType>
<ROF>3.000000</ROF>
</ProtoAction>








3.把图标也搬过去。还有AnimFile那个动画xml文件也照搬。



  protoy.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id="1463" name="UPxpColonialMilitiaChinaNewArmy">
<DBID>2144</DBID>
<DisplayNameID>200038</DisplayNameID>
<EditorNameID>200040</EditorNameID>
<PopulationCount>1</PopulationCount>
<ObstructionRadiusX>0.4900</ObstructionRadiusX>
<ObstructionRadiusZ>0.4900</ObstructionRadiusZ>
<FormationCategory>Ranged</FormationCategory>
<MaxVelocity>5.0000</MaxVelocity>
<MaxRunVelocity>7.0000</MaxRunVelocity>
<MovementType>land</MovementType>
<TurnRate>18.0000</TurnRate>
<AnimFile>units\infantry_ranged\colonial_militia\colonial_militia.xml</AnimFile>
<ImpactType>Flesh</ImpactType>
<PhysicsInfo>dude</PhysicsInfo>
<Icon>units\infantry_ranged\colonial_militia\UPyp_china_new_army_icon</Icon>
<PortraitIcon>units\infantry_ranged\colonial_militia\UPyp_china_new_army_portrait</PortraitIcon>
<RolloverTextID>200041</RolloverTextID>
<ShortRolloverTextID>200042</ShortRolloverTextID>
<InitialHitpoints>200.0000</InitialHitpoints>






4.打开动画xml文件,寻找改动过的东西,自己慢慢理解吧,(如果你发现移植过去了,武器不见了,你就寻找这个武器,帽子没有了就寻找帽子)。旧技术一般使用replacetexture更换贴图,现在一般都会把gr2文件修改了,如果没有replacetexture语句那么那个贴图路径就只能在gr2文件里面寻找了。








移植replacetextrue贴图文件我就不截图了,你自己照搬就可以。

因为帽子是定义了新的gr2文件,所以搬走的时候,也要打开这个gr2文件,查贴图路径,然后搬走这个贴图。









移植单位大概就是这样的步骤。像语音这种文件你自己去sound文件夹寻找吧,找不到就去bar寻找:一般的单位用单位调用名加_snds去命名语音文件。



自己判断有没有定义新的语音,有的话你自己去soundsets.xml、soundsetsx.xml、soundsetsy.xml,把新语音的定义以及wav文件全部搬走。

下面这个xml没有任何修改过的痕迹,都是用帝国3原有的语音设定,所以只把这个xml文件复制过去就行了。
  UPxpColonialMilitiaChinaNewArmy_snds.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>
<protounitsounddef>
<protounit name="UPxpColonialMilitiaChinaNewArmy">
<soundtype name="Select">
<civlogic>
<choice name="Nature"/>
<choice name="Chinese">
<soundset name="ChineseVillagerM_Select"/>
</choice>
<choice name="SPCChinese">
<soundset name="ChineseVillagerM_Select"/>
</choice>
<choice name="Spanish">
<soundset name="SpanishSettlerMaleSelect"/>
</choice>
<choice name="British">
<soundset name="BritishSettlerMaleSelect"/>
</choice>
<choice name="French">
<soundset name="FrenchSettlerMaleSelect"/>
</choice>
<choice name="Portuguese">
<soundset name="PortugueseSettlerMaleSelect"/>
</choice>
<choice name="Dutch">
<soundset name="DutchSettlerMaleSelect"/>
</choice>
<choice name="Russians">
<soundset name="RussianSettlerMaleSelect"/>
</choice>
<choice name="Germans">
<soundset name="GermanSettlerMaleSelect"/>
</choice>
<choice name="Ottomans">
<soundset name="OttomanSettlerMaleSelect"/>
</choice>
<choice name="SPCAct1"/>
<choice name="SPCAct2"/>
<choice name="SPCAct3"/>
<choice name="Pirate"/>
<choice name="TheCircle"/>
<choice name="NativeAmerican"/>
<choice name="XPIroquois"/>
<choice name="XPSioux"/>
<choice name="XPAztec"/>
<choice name="XPSPC">
<soundset name="SPCMilitiaSelect"/>
</choice>
<choice name="Aztecs"/>
<choice name="Caribs"/>
<choice name="Cherokee"/>
<choice name="Comanche"/>
<choice name="Cree"/>
<choice name="Incas"/>
<choice name="Iroquois"/>
<choice name="Lakota"/>
<choice name="Maya"/>
<choice name="Nootka"/>
<choice name="Seminoles"/>
<choice name="Tupi"/>
<choice name="Zapotec"/>
<choice name="Huron"/>
<choice name="Cheyenne"/>
<choice name="Klamath"/>
<choice name="Mapuche"/>
<choice name="Navajo"/>
<choice name="Apache"/>
</civlogic>
</soundtype>
<soundtype name="Grunt">
<soundset name="GenericMaleGrunt"/>
</soundtype>
<soundtype name="Death">
<soundset name="GenericMaleDeath"/>
</soundtype>
<soundtype name="Creation">
<soundset name="MilitaryBirth"/>
</soundtype>
<soundtype name="Acknowledge">
<civlogic>
<choice name="Nature">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Chinese">
<targetlogic>
<choice name="default">
<soundset name="ChineseVillagerM_Acknowledge"/>
</choice>
<choice name="enemy">
<soundset name="ChineseVillagerM_Attack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="SPCChinese">
<targetlogic>
<choice name="default">
<soundset name="ChineseVillagerM_Acknowledge"/>
</choice>
<choice name="enemy">
<soundset name="ChineseVillagerM_Attack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Spanish">
<targetlogic>
<choice name="default">
<soundset name="SpanishSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="SpanishSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="British">
<targetlogic>
<choice name="default">
<soundset name="BritishSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="BritishSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="French">
<targetlogic>
<choice name="default">
<soundset name="FrenchSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="FrenchSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Portuguese">
<targetlogic>
<choice name="default">
<soundset name="PortugueseSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="PortugueseSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Dutch">
<targetlogic>
<choice name="default">
<soundset name="DutchSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="DutchSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Russians">
<targetlogic>
<choice name="default">
<soundset name="RussianSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="RussianSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Germans">
<targetlogic>
<choice name="default">
<soundset name="GermanSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="GermanSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Ottomans">
<targetlogic>
<choice name="default">
<soundset name="OttomanSettlerMaleAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="OttomanSettlerMaleAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="SPCAct1">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="SPCAct2">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="SPCAct3">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Pirate">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="TheCircle">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="NativeAmerican">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="XPIroquois">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="XPSioux">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="XPAztec">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="XPSPC">
<targetlogic>
<choice name="default">
<soundset name="SPCMilitiaAcknowledge"/>
</choice>
<choice name="enemy">
<soundset name="SPCMilitiaAttack"/>
</choice>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Aztecs">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Caribs">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Cherokee">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Comanche">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Cree">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Incas">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Iroquois">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Lakota">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Maya">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Nootka">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Seminoles">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Tupi">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Zapotec">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Huron">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Cheyenne">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Klamath">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Mapuche">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Navajo">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
<choice name="Apache">
<targetlogic>
<choice name="default"/>
<choice name="enemy"/>
<choice name="build"/>
<choice name="Huntable"/>
<choice name="Tree"/>
<choice name="AbstractMine"/>
<choice name="AbstractFarm"/>
<choice name="AbstractResourceCrate"/>
<choice name="AbstractFruit"/>
</targetlogic>
</choice>
</civlogic>
</soundtype>
</protounit>
</protounitsounddef>


这些文件都被搬到你的MOD也差不多了,有的单位如果有技能的话,在abilities\abilities.xml寻找这个单位的调用名,还是那句话,将语句搬走,然后在abilities\power.xml搜索那个技能,将相关语句也全部搬走(别忘了power.xml定义的技能图标)。至于单位名字、介绍就不用我说了吧,自己在stringtabley.xml或randommapstringsy.xml寻找。





教程结束。






说一种比较特殊的情况,有的单位的武器只是在动画xml引用武器文件,实际上是另外开xml文件定义的。



例如这种:

  FlagBearer.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>
<animfile>
<definebone>bone_gun</definebone>
<definebone>bone_hat</definebone>
<definebone>BIP01 PROP1</definebone>
<attachment>
torch
<include>effects\projectiles\torch.xml</include>
</attachment>
<attachment>
pike
<include>mods\flag\flag.xml</include>
</attachment>


  flag.xml - 记事本 ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
<?xml version="1.0" encoding="utf-8"?>
<animfile>
<definebone>bone_flag_bottom</definebone>
<attachment>
flag
<component>
flag
<assetreference type="ClothFlag">
<flag>
<blending>alphatest_color</blending>
<specialtexture/>
<width>2.00</width>
<height>1.25</height>
</flag>
</assetreference>
</component>
<anim>
Idle
<component>flag</component>
</anim>
</attachment>
<component>
pikes
<logic type="Tech">
<none>
<assetreference type="GrannyModel">
<file>mods\flag\flagpole</file><!-- 搬走 -->
</assetreference>
<attach a="flag" frombone="flag" tobone="bone_flag_bottom" syncanims="0"/>
</none>
</logic>
</component>
<anim>
Idle
<component>pikes</component>
</anim>
</animfile>





像骑兵这些单位,你在protoy.xml查找到的都是马的xml文件,而骑手都是在马的xml里面用<include>xxxxxx.xml</include>去引用骑手,就像上面那个flag.xml一样,你自己看情况搬文件吧。
有的单位xml可能定义了新的特殊音效,例如开枪声音,开炮声音,你自己留意下,有的话去soundsetsy.xml、soundsetsx.xml、soundsets.xml搬语句以及wav音乐文件。









另外偷别人制作的模型是不道德的,自己玩还好,如果要公开发布希望你能先联系MOD作者取得同意,再去发布。
如果你直接复制整个art文件夹,我会鄙视你的。






为什么我移植了别人MOD的单位,但是在剧情编辑器找不到?




①无图。
②没人知道你是怎样弄的。
③无图的情况下,差不多有10种可能性:
1.粗心大意,路径弄错了
2.粗心大意,没有正确搬运文件
3.智商问题,应该搬运的,你没有去搬运
4.改了protoy.xml的animfile路径,你却将anim那个xml文件按照原路径放回
5.改了anim那个xml里面调用gr2文件的路径,你却将gr2按照原路径放回
6.没在protoy.xml添加单位
7.protoy.xml在单位那里添加了<Flag>NotPlayerPlaceable</Flag>
8.你修改的protoy.xml可能没有被调用到,例如怕出错然后备份到这么,你修改了桌面那个xml
9.缺少文件(gr2模型、anim Xml没有复制到帝国3的art文件夹里面)
10.【不常见】安装了两个帝国3,修改了没有被注册表调用到的xml文件。
11.【不常见】安装了两个帝国3,gr2模型、anim Xml被搬到那个没有被调用的帝国3art文件夹里面。
12.人品问题(智商问题)


解决办法:
①自己检查。 成功几率:看人品。
②自己检查。 成功几率:看智商。
③自己检查。 成功几率:看运气。
④自己检查。 成功几率:看逻辑能力。
⑤自己检查。 成功几率:看思维能力。
⑥大喊三声咒语“我真笨”。 成功几率:0.1%
⑦大喊三声咒语“我是猪”。 成功几率:0.2%
⑧大喊三声咒语“我是傻逼”。 成功几率:0.3%
⑨付费,然后让大佬帮你解决。 成功几率:99.0%
⑩砸电脑。 成功几率:0.0%


不付费寻找大佬:


没钱?没钱可以用劳动获取,类似这里:99-13Untrustworthy.htm







我想应该没有人会傻成这样吧?