在protoy.xml中,城镇中心、堡垒、哨所等建筑都有这样几个语句: <Contain>XXX</Contain>XXX是可驻守单位类型(可以用单位调用名或标签) <MaxContained>X</MaxContained>这个是驻守单位数量上限 <Flag>AllowAutoGarrison</Flag>这个是允许单位按右键自动驻守 <Command page ='10' column ='x'>Eject</Command>放出驻守单位 <Command page ='10' column ='x'>SetGatherPointMilitary</Command>设定集合点实际上渔船也能驻守单位,不过因为没有<Flag>AllowAutoGarrison</Flag>所以不能通过右键驻守,只能通过右下角的才能让单位驻守进去。(复制用)模板: <Contain>XXX</Contain> <MaxContained>X</MaxContained> <Flag>AllowAutoGarrison</Flag> <Command page ='10' column ='x'>Eject</Command> <Command page ='10' column ='x'>SetGatherPointMilitary</Command>
<Contain>Unit</Contain>Unit指所有单位(实际上是所有带有unit标签的单位)。
<Unit id ='391' name ='FortFrontier'>
<DBID>212</DBID>
<DisplayNameID>25270</DisplayNameID>
<ObstructionRadiusX>6.0000</ObstructionRadiusX>
<ObstructionRadiusZ>6.0000</ObstructionRadiusZ>
<MaxVelocity>0.0000</MaxVelocity>
<MovementType>land</MovementType>
<AnimFile>buildings\fort\fort.xml</AnimFile>
<DeadReplacement>BuildingRubble6x6</DeadReplacement>
<ImpactType>Stone</ImpactType>
<PhysicsInfo>house</PhysicsInfo>
<PlacementFile>buildinglarge.xml</PlacementFile>
<Icon>buildings\fort\fort_icon</Icon>
<MinimapIcon>ui\minimap\fort_star_16x16</MinimapIcon>
<PortraitIcon>buildings\fort\fort_portrait</PortraitIcon>
<RolloverTextID>25269</RolloverTextID>
<ShortRolloverTextID>25639</ShortRolloverTextID>
<InitialHitpoints>8500.0000</InitialHitpoints>
<MaxHitpoints>8500.0000</MaxHitpoints>
<LOS>26.0000</LOS>
<ProjectileProtoUnit>Cannonball</ProjectileProtoUnit>
<UnitAIType>RangedCombative</UnitAIType>
<BuildPoints>150.0000</BuildPoints>
<BuildLimit>1</BuildLimit>
<Bounty>440.0000</Bounty>
<BuildBounty>0.0000</BuildBounty>
<Cost resourcetype ='Wood'>600.0000</Cost>
<Cost resourcetype ='Gold'>500.0000</Cost>
<BuildingWorkRate>1.0000</BuildingWorkRate>
<MaxContained>50</MaxContained>
<AllowedAge>2</AllowedAge>
<Armor type ='Siege' value ='0.0000'></Armor>
<BuilderLimit>8</BuilderLimit>
<UnitType>LogicalTypeValidSabotage</UnitType>
<UnitType>LogicalTypeHandUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeBuildingsNotWalls</UnitType>
<UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeShipsAndBuildings</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>LogicalTypeBuildingsNotWallsOrGroves</UnitType>
<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
<UnitType>Building</UnitType>
<UnitType>MilitaryBuilding</UnitType>
<UnitType>BuildingClass</UnitType>
<UnitType>ConvertsHerds</UnitType>
<UnitType>AbstractCanSeeStealth</UnitType>
<UnitType>CountsTowardMilitaryScore</UnitType>
<UnitType>HasBountyValue</UnitType>
<UnitType>AbstractFort</UnitType>
<Train row ='0' page ='0' column ='3'>Skirmisher</Train>
<Train row ='0' page ='0' column ='3'>Skirmisher</Train>
<Train row ='0' page ='0' column ='3'>Cacadore</Train>
<Train row ='0' page ='0' column ='3'>Cacadore</Train>
<Train row ='0' page ='0' column ='5'>Hussar</Train>
<Train row ='0' page ='0' column ='6'>Ruyter</Train>
<Train row ='0' page ='0' column ='6'>Lancer</Train>
<Train row ='0' page ='0' column ='6'>Cuirassier</Train>
<Train row ='0' page ='0' column ='6'>Oprichnik</Train>
<Train row ='0' page ='0' column ='7'>WarWagon</Train>
<Train row ='0' page ='0' column ='3'>Strelet</Train>
<Train row ='0' page ='0' column ='3'>Strelet</Train>
<Train row ='0' page ='0' column ='2'>Janissary</Train>
<Train row ='0' page ='0' column ='2'>Janissary</Train>
<Train row ='0' page ='0' column ='2'>Janissary</Train>
<Train row ='0' page ='0' column ='2'>Janissary</Train>
<Train row ='0' page ='0' column ='2'>Musketeer</Train>
<Train row ='0' page ='0' column ='2'>Musketeer</Train>
<Train row ='0' page ='0' column ='2'>Musketeer</Train>
<Train row ='0' page ='0' column ='2'>Musketeer</Train>
<Train row ='0' page ='0' column ='1'>Pikeman</Train>
<Train row ='0' page ='0' column ='1'>Pikeman</Train>
<Train row ='0' page ='0' column ='1'>Pikeman</Train>
<Train row ='0' page ='0' column ='1'>Pikeman</Train>
<Train row ='0' page ='0' column ='5'>Cossack</Train>
<Train row ='0' page ='0' column ='5'>Cossack</Train>
<Train row ='0' page ='0' column ='5'>Uhlan</Train>
<Train row ='0' page ='0' column ='5'>Uhlan</Train>
<Train row ='0' page ='0' column ='7'>CavalryArcher</Train>
<Train row ='0' page ='0' column ='7'>CavalryArcher</Train>
<Train row ='0' page ='0' column ='7'>Dragoon</Train>
<Train row ='0' page ='0' column ='7'>Dragoon</Train>
<Train row ='0' page ='0' column ='8'>Grenadier</Train>
<Train row ='0' page ='0' column ='8'>Grenadier</Train>
<Train row ='0' page ='0' column ='8'>Grenadier</Train>
<Train row ='0' page ='0' column ='8'>Grenadier</Train>
<Train row ='0' page ='0' column ='9'>AbusGun</Train>
<Train row ='0' page ='0' column ='9'>AbusGun</Train>
<Train row ='0' page ='0' column ='0'>Crossbowman</Train>
<Train row ='0' page ='0' column ='0'>Crossbowman</Train>
<Train row ='0' page ='0' column ='0'>Crossbowman</Train>
<Train row ='0' page ='0' column ='0'>Crossbowman</Train>
<Train row ='0' page ='0' column ='0'>Longbowman</Train>
<Train row ='0' page ='0' column ='0'>Longbowman</Train>
<Train row ='0' page ='0' column ='0'>Longbowman</Train>
<Train row ='0' page ='0' column ='0'>Longbowman</Train>
<Train row ='0' page ='0' column ='4'>Halberdier</Train>
<Train row ='0' page ='0' column ='4'>Halberdier</Train>
<Train row ='0' page ='0' column ='4'>Halberdier</Train>
<Train row ='0' page ='0' column ='4'>Halberdier</Train>
<Train row ='0' page ='0' column ='4'>Rodelero</Train>
<Train row ='0' page ='0' column ='4'>Rodelero</Train>
<Train row ='0' page ='0' column ='4'>Rodelero</Train>
<Train row ='0' page ='0' column ='4'>Rodelero</Train>
<Train row ='0' page ='0' column ='4'>Dopplesoldner</Train>
<Train row ='0' page ='0' column ='4'>Dopplesoldner</Train>
<Train row ='0' page ='0' column ='4'>Dopplesoldner</Train>
<Train row ='0' page ='0' column ='4'>Dopplesoldner</Train>
<Train row ='0' page ='0' column ='0'>ypOldHanArmy</Train>
<Train row ='0' page ='0' column ='1'>ypStandardArmy</Train>
<Train row ='0' page ='0' column ='2'>ypMingArmy</Train>
<Train row ='0' page ='0' column ='3'>ypTerritorialArmy</Train>
<Train row ='0' page ='0' column ='4'>ypForbiddenArmy</Train>
<Train row ='0' page ='0' column ='5'>ypImperialArmy</Train>
<Train row ='0' page ='0' column ='0'>ypRajput</Train>
<Train row ='0' page ='0' column ='1'>ypSepoy</Train>
<Train row ='0' page ='0' column ='2'>ypNatMercGurkha</Train>
<Train row ='0' page ='0' column ='3'>ypSowar</Train>
<Train row ='0' page ='0' column ='4'>ypZamburak</Train>
<Train row ='0' page ='0' column ='5'>ypMahout</Train>
<Train row ='0' page ='0' column ='6'>ypHowdah</Train>
<Tech row ='0' page ='1' column ='0'>Revetment</Tech>
<Tech row ='0' page ='1' column ='1'>StarFort</Tech>
<Flag>CollidesWithProjectiles</Flag>
<Flag>StartsAtFullEfficiency</Flag>
<Flag>Immoveable</Flag>
<Flag>NoBloodOnDeath</Flag>
<Flag>ObscuresUnits</Flag>
<Flag>NonAutoFormedUnit</Flag>
<Flag>Doppled</Flag>
<Flag>SelectWithObstruction</Flag>
<Flag>PaintTextureWhenPlacing</Flag>
<Flag>FlattenGround</Flag>
<Flag>HasGatherPoint</Flag>
<Flag>HeroName2</Flag>
<Flag>AllowAutoGarrison</Flag>
<Flag>Tracked</Flag>
<Contain>Unit</Contain>
<Contain>Imam</Contain>
<Contain>NatMedicineMan</Contain>
<Contain>AbstractVillager</Contain>
<Contain>Missionary</Contain>
<Contain>Priest</Contain>
<Contain>xpMedicineMan</Contain>
<Contain>Surgeon</Contain>
<Contain>xpMedicineManAztec</Contain>
<Contain>ypDaimyoRegicide</Contain>
<Command page ='10' column ='2'>Delete</Command>
<Command page ='1' column ='2'>SetUnitAsHomeCityGatherPoint</Command>
<Command page ='10' column ='1'>SetGatherPointEconomy</Command>
<Command page ='10' column ='1'>Eject</Command>
<Command page ='10' column ='0'>SetGatherPointMilitary</Command>
<Tactics>fort.tactics</Tactics>
<ProtoAction>
<Name>AntiShipAttack</Name>
<Damage>300.000000</Damage>
<DamageType>Siege</DamageType>
<MaxRange>40.000000</MaxRange>
<ROF>3.000000</ROF>
<Projectile>Cannonball</Projectile>
</ProtoAction>
<ProtoAction>
<Name>CannonAttack</Name>
<Damage>150.000000</Damage>
<DamageType>Ranged</DamageType>
<MaxRange>26.000000</MaxRange>
<ROF>3.000000</ROF>
<DamageCap>300.000000</DamageCap>
<DamageBonus type ='AbstractSiegeTrooper'>0.500000</DamageBonus>
<DamageArea>3.000000</DamageArea>
<DamageFlags>GAIAEnemy</DamageFlags>
<Projectile>Cannonball</Projectile>
<DamageBonus type ='AbstractArtillery'>0.750000</DamageBonus>
</ProtoAction>
</Unit>
<MaxContained>20</MaxContained> <Flag>AllowAutoGarrison</Flag> <Contain>AbstractInfantry</Contain> <Command page ='10' column ='2'>Eject</Command>
<Unit id ='296' name ='Barracks'> <DBID>18</DBID> <DisplayNameID>22847</DisplayNameID> <ObstructionRadiusX>4.0000</ObstructionRadiusX> <ObstructionRadiusZ>4.0000</ObstructionRadiusZ> <MaxVelocity>0.0000</MaxVelocity> <MovementType>land</MovementType> <AnimFile>buildings\barracks\barracks.xml</AnimFile> <DeadReplacement>BuildingRubble4x4</DeadReplacement> <DeadReplacementLifespan>15</DeadReplacementLifespan> <ImpactType>Wood</ImpactType> <PhysicsInfo>barracks</PhysicsInfo> <PlacementFile>buildinglarge.xml</PlacementFile> <Icon>buildings\barracks\barracks_icon</Icon> <PortraitIcon>buildings\barracks\barracks_portraits</PortraitIcon> <RolloverTextID>22846</RolloverTextID> <ShortRolloverTextID>25610</ShortRolloverTextID> <InitialHitpoints>2500.0000</InitialHitpoints> <MaxHitpoints>2500.0000</MaxHitpoints> <LOS>12.0000</LOS> <BuildPoints>30.0000</BuildPoints> <Bounty>40.0000</Bounty> <BuildBounty>20.0000</BuildBounty> <Cost resourcetype ='Food'>0.0000</Cost> <Cost resourcetype ='Wood'>200.0000</Cost> <BuildingWorkRate>1.0000</BuildingWorkRate> <AllowedAge>1</AllowedAge> <Armor type ='Siege' value ='0.0000'></Armor> <BuilderLimit>8</BuilderLimit> <MaxContained>20</MaxContained> <UnitType>LogicalTypeValidSabotage</UnitType> <UnitType>LogicalTypeHandUnitsAutoAttack</UnitType> <UnitType>LogicalTypeBuildingsNotWalls</UnitType> <UnitType>LogicalTypeRangedUnitsAutoAttack</UnitType> <UnitType>LogicalTypeVillagersAttack</UnitType> <UnitType>LogicalTypeHandUnitsAttack</UnitType> <UnitType>LogicalTypeShipsAndBuildings</UnitType> <UnitType>LogicalTypeRangedUnitsAttack</UnitType> <UnitType>LogicalTypeBuildingsNotWallsOrGroves</UnitType> <UnitType>LogicalTypeMinimapFilterMilitary</UnitType> <UnitType>Building</UnitType> <UnitType>MilitaryBuilding</UnitType> <UnitType>BuildingClass</UnitType> <UnitType>ConvertsHerds</UnitType> <UnitType>AbstractBarracks2</UnitType> <UnitType>CountsTowardMilitaryScore</UnitType> <UnitType>HasBountyValue</UnitType> <Train row ='0' page ='0' column ='0'>Crossbowman</Train> <Train row ='0' page ='0' column ='0'>Longbowman</Train> <Train row ='0' page ='0' column ='4'>Musketeer</Train> <Train row ='0' page ='0' column ='4'>Janissary</Train> <Train row ='0' page ='0' column ='5'>Cacadore</Train> <Train row ='0' page ='0' column ='5'>Skirmisher</Train> <Train row ='0' page ='0' column ='1'>Pikeman</Train> <Train row ='0' page ='0' column ='2'>Halberdier</Train> <Train row ='0' page ='0' column ='2'>Rodelero</Train> <Train row ='0' page ='0' column ='2'>Dopplesoldner</Train> <Train row ='0' page ='0' column ='2'>Boneguard</Train> <Train row ='0' page ='0' column ='2'>BoneguardAge2</Train> <Tech row ='0' page ='1' column ='2'>ImperialNassauers</Tech> <Tech row ='0' page ='1' column ='4'>ImperialRedcoat</Tech> <Tech row ='0' page ='1' column ='4'>GuardMusketeers</Tech> <Tech row ='0' page ='1' column ='0'>GuardLongbowmen</Tech> <Tech row ='0' page ='1' column ='2'>VeteranDopplesoldners</Tech> <Tech row ='0' page ='1' column ='4'>VeteranJanissaries</Tech> <Tech row ='0' page ='1' column ='2'>VeteranRodeleros</Tech> <Tech row ='0' page ='1' column ='1'>VeteranPikemen</Tech> <Tech row ='0' page ='1' column ='2'>GuardHalberdiers</Tech> <Tech row ='0' page ='1' column ='2'>ImperialEspada</Tech> <Tech row ='0' page ='1' column ='4'>VeteranMusketeers</Tech> <Tech row ='0' page ='1' column ='5'>ImperialNeedleGun</Tech> <Tech row ='0' page ='1' column ='5'>GuardSkirmishers</Tech> <Tech row ='0' page ='1' column ='0'>VeteranCrossbowmen</Tech> <Tech row ='0' page ='1' column ='2'>RGNassausLinearTactics</Tech> <Tech row ='0' page ='1' column ='5'>GuardCacadores</Tech> <Tech row ='0' page ='1' column ='5'>RGVoltigeur</Tech> <Tech row ='0' page ='1' column ='2'>GuardRodeleros</Tech> <Tech row ='0' page ='1' column ='1'>RGTercio</Tech> <Tech row ='0' page ='1' column ='4'>RGRedcoats</Tech> <Tech row ='0' page ='1' column ='2'>ImperialDopplesoldner</Tech> <Tech row ='0' page ='1' column ='2'>ImperialHalberdiers</Tech> <Tech row ='0' page ='1' column ='4'>ImperialJanissaries</Tech> <Tech row ='0' page ='1' column ='0'>ImperialLongbowmen</Tech> <Tech row ='0' page ='1' column ='5'>ImperialSkirmishers</Tech> <Tech row ='0' page ='1' column ='5'>ImperialVoltigeur</Tech> <Tech row ='0' page ='1' column ='5'>RGPrussianNeedleGun</Tech> <Tech row ='0' page ='1' column ='4'>GuardJanissaries</Tech> <Tech row ='0' page ='1' column ='0'>VeteranLongbowmen</Tech> <Tech row ='0' page ='1' column ='2'>RGEspadachins</Tech> <Tech row ='0' page ='1' column ='1'>ImperialTercio</Tech> <Tech row ='0' page ='1' column ='4'>RGGuerreiros</Tech> <Tech row ='0' page ='1' column ='5'>ImperialCacadores</Tech> <Tech row ='0' page ='1' column ='4'>ImperialMusketeers</Tech> <Tech row ='0' page ='1' column ='2'>GuardDopplesoldners</Tech> <Tech row ='0' page ='1' column ='4'>ImperialGuerreiros</Tech> <Flag>CollidesWithProjectiles</Flag> <Flag>StartsAtFullEfficiency</Flag> <Flag>Immoveable</Flag> <Flag>NoBloodOnDeath</Flag> <Flag>ObscuresUnits</Flag> <Flag>NoIdleActions</Flag> <Flag>NonAutoFormedUnit</Flag> <Flag>Doppled</Flag> <Flag>SelectWithObstruction</Flag> <Flag>PaintTextureWhenPlacing</Flag> <Flag>FlattenGround</Flag> <Flag>HasGatherPoint</Flag> <Flag>InitialGarrisonOnly</Flag> <Flag>Tracked</Flag> <Flag>AllowAutoGarrison</Flag> <Contain>AbstractInfantry</Contain> <Command page ='10' column ='2'>Eject</Command> <Command page ='10' column ='0'>SetGatherPointMilitary</Command> <Command page ='10' column ='1'>Delete</Command> <Tactics>barracks.tactics</Tactics> </Unit>