限制建筑只能在某单位(地基)上建造


类似贸易站那种只能建造在贸易站地点那种效果,将建筑物放置在指定单位或建筑物上面,然后建造好原有的单位或建筑物(地基)就会消失,当建筑物被摧毁后,地基重新出现;制作这个很简单,只需要改一下protoy.xml添加3个语句;不过一般人弄不出来这种效果,因为这个是几个flag与某个特殊语句一起混用的,不用几个小时慢慢删减、慢慢增加语句去测试的话根本找不出来。
设定地基需要满足下列三个条件:

  1. 建筑物添加<SocketUnitType>xxxxxx</SocketUnitType>;其中xxxxxx为地基的调用名
  2. 建筑物添加因环境自动旋转;即为添加<Flag>SnapPlacement</Flag>
  3. 地基强制设定为大自然,即为添加<Flag>ForceToGaia</Flag>




以下面两个建筑为例,将SkyPassage改成地基,LightHouse必须建造在SkyPassage上面。

(SkyPassage添加<Flag>ForceToGaia</Flag>
  protoy.xml - 记事本 ---(SkyPassage) ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id='293' name='SkyPassage'>
		<DBID>15</DBID>
		<DisplayNameID>09924</DisplayNameID>
		<EditorNameID>09923</EditorNameID>
		<ObstructionRadiusX>2.8000</ObstructionRadiusX>
		<ObstructionRadiusZ>2.8000</ObstructionRadiusZ>
		<MaxVelocity>0.0000</MaxVelocity>
		<MovementType>land</MovementType>
		<AnimFile>Age of Mythology\Building\SkyPassage\SkyPassage.xml</AnimFile>
		<ImpactType>Wood</ImpactType>
		<PhysicsInfo>house</PhysicsInfo>
		<PlacementFile>buildingsmall.xml</PlacementFile>
		<Icon>Age of Mythology\Building\SkyPassage\SkyPassage_icon_64</Icon>
		<PortraitIcon>Age of Mythology\Building\SkyPassage\SkyPassage_icon_128</PortraitIcon>
		<RolloverTextID>09923</RolloverTextID>
		<ShortRolloverTextID>09922</ShortRolloverTextID>
		<InitialHitpoints>3000.0000</InitialHitpoints>
		<MaxHitpoints>3000.0000</MaxHitpoints>
		<LOS>12.0000</LOS>
		<BuildPoints>60.0000</BuildPoints>
		<BuildLimit>20</BuildLimit>
		<Flag>ForceToGaia</Flag>
		<Bounty>60.0000</Bounty>
		<BuildBounty>0.0000</BuildBounty>
		<Cost resourcetype='Wood'>200.0000</Cost>
		<Cost resourcetype='Gold'>150.0000</Cost>
		<Cost resourcetype='Fame'>3.0000</Cost>
		<BuildingWorkRate>1.0000</BuildingWorkRate>
		<AllowedAge>0</AllowedAge>
		<Armor type='Siege' value='0.5000'/>
		<BuilderLimit>8</BuilderLimit>
		<Contain>Unit</Contain>
		<MaxContained>100.0000</MaxContained>
		<UnitType>LogicalTypeValidSabotage</UnitType>
		<UnitType>LogicalTypeMinimapFilterEconomic</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>ConvertsHerds</UnitType>
		<UnitType>CountsTowardEconomicScore</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>ColonyBuilding</UnitType>
		<UnitType>BuildingClass</UnitType>
		<UnitType>TestClass</UnitType>
		<UnitType>Building</UnitType>
		<UnitType>SpecialPowers</UnitType>
		<flag>AnnounceDestruction</flag>
		<Flag>PlaceAnywhere</Flag>
		<Flag>AllowAutoGarrison</Flag>
		<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>ColonyBuilding</Flag>
		<Flag>ColonyPlacementL</Flag>
		<Flag>HideGarrisonFlag</Flag>
		<Flag>HasGatherPoint</Flag>
		<Flag>Tracked</Flag>
		<Command page='1' column='1'>SetUnitAsHomeCityGatherPoint</Command>
		<Command page='10' column='3'>Delete</Command>
		<Command page='10' column='2'>Eject</Command>
		<Command page='10' column='1'>SetGatherPointEconomy</Command>
		<Command page='10' column='0'>SetGatherPointMilitary</Command>
	</Unit>


(LightHouse添加<SocketUnitType>SkyPassage</SocketUnitType><Flag>SnapPlacement</Flag>)
  protoy.xml - 记事本 ---(LightHouse) ____ X
文件(F)  编辑(E)  格式(O)  查看(V)  帮助(H)
	<Unit id='293' name='LightHouse'>
		<DBID>15</DBID>
		<DisplayNameID>00899</DisplayNameID>
		<EditorNameID>00898</EditorNameID>
		<ObstructionRadiusX>3.0000</ObstructionRadiusX>
		<ObstructionRadiusZ>3.0000</ObstructionRadiusZ>
		<MaxVelocity>0.0000</MaxVelocity>
		<MovementType>land</MovementType>
		<AnimFile>Age of Mythology\Building\lighthouse\lighthouse.xml</AnimFile>
		<ImpactType>Wood</ImpactType>
		<PhysicsInfo>house</PhysicsInfo>
		<PlacementFile>buildingsmall.xml</PlacementFile>
		<Icon>Age of Mythology\Building\lighthouse\lighthouse_64</Icon>
		<PortraitIcon>Age of Mythology\Building\lighthouse\lighthouse_128</PortraitIcon>
		<RolloverTextID>00896</RolloverTextID>
		<ShortRolloverTextID>00895</ShortRolloverTextID>
		<InitialHitpoints>2500.0000</InitialHitpoints>
		<MaxHitpoints>2500.0000</MaxHitpoints>
		<LOS>72.0000</LOS>
		<SocketUnitType>SkyPassage</SocketUnitType>
		<Flag>SnapPlacement</Flag>
		<BuildPoints>120.0000</BuildPoints>
		<Bounty>100.0000</Bounty>
		<BuildBounty>50.0000</BuildBounty>
		<Cost resourcetype='Wood'>200.0000</Cost>
		<Cost resourcetype='Gold'>300.0000</Cost>
		<BuildingWorkRate>1.0000</BuildingWorkRate>
		<AllowedAge>0</AllowedAge>
		<Armor type='Siege' value='0.5000'/>
		<BuilderLimit>8</BuilderLimit>
		<Contain>Unit</Contain>
		<MaxContained>20.0000</MaxContained>
		<UnitType>LogicalTypeValidSabotage</UnitType>
		<UnitType>LogicalTypeMinimapFilterEconomic</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>ConvertsHerds</UnitType>
		<UnitType>CountsTowardEconomicScore</UnitType>
		<UnitType>HasBountyValue</UnitType>
		<UnitType>ColonyBuilding</UnitType>
		<UnitType>BuildingClass</UnitType>
		<UnitType>TestClass</UnitType>
		<UnitType>Building</UnitType>
		<UnitType>SpecialPowers</UnitType>
		<Flag>AllowAutoGarrison</Flag>
		<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>ColonyBuilding</Flag>
		<Flag>ColonyPlacementL</Flag>
		<Flag>HideGarrisonFlag</Flag>
		<Flag>HasGatherPoint</Flag>
		<Flag>Tracked</Flag>
		<Command page='22' column='1'>SetUnitAsHomeCityGatherPoint</Command>
		<Command page='11' column='0'>Abilities</Command>
		<Command page='10' column='3'>Delete</Command>
		<Command page='10' column='2'>Eject</Command>
		<Command page='10' column='1'>SetGatherPointEconomy</Command>
		<Command page='10' column='0'>SetGatherPointMilitary</Command>
	</Unit>




上述修改效果如图所示: