帝国时代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
我想应该没有人会傻成这样吧?