这个是城门开门与锁门的教程,像帝国时代2那样,城门可以根据玩家需要开门或锁门,只可惜敌人不能穿过打开的城门。
方法:
1.在protounitcommands.xml将开城门按钮的语句复制,顺便把那个图标提取出来
2.随便找一个游戏内没有出现过的按钮,然后修改。(怎样判断游戏内没有这个按钮?去protoy.xml搜索按钮调用名,搜索不出就是游戏内没有的。)
将截图所说的语句替换到你修改的按钮,我随便找了一个没有用上Stance1按钮修改前:
<protounitcommand>
<name>Stance1</name>
<icon>art\ui\command\stance_aggresive_on</icon>
<command>unitSetStanceAggressive</command>
<rollovertextid>19143</rollovertextid>
<helptopic>stances</helptopic>
</protounitcommand>
修改后:
<protounitcommand>
<name>Stance1</name>
<icon>art\ui\command\close</icon>
<command>uiTransformSelectedUnit("CWallGate2")</command>
<rollovertextid>00301</rollovertextid>
</protounitcommand>
(原有的)城门
<Unit id ='482' name ='CWallGate'>
<DBID>523</DBID>
<DisplayNameID>29634</DisplayNameID>
<ObstructionRadiusX>5.0000</ObstructionRadiusX>
<ObstructionRadiusZ>1.0000</ObstructionRadiusZ>
<MaxVelocity>0.0000</MaxVelocity>
<MovementType>land</MovementType>
<AnimFile>buildings\wall\wall_gate.xml</AnimFile>
<AllowedHeightVariance>4.0000</AllowedHeightVariance>
<ImpactType>Stone</ImpactType>
<Icon>buildings\wall\wall_portrait</Icon>
<PortraitIcon>buildings\wall\gate_portrait</PortraitIcon>
<RolloverTextID>29633</RolloverTextID>
<ShortRolloverTextID>29632</ShortRolloverTextID>
<InitialHitpoints>3000.0000</InitialHitpoints>
<MaxHitpoints>3000.0000</MaxHitpoints>
<LOS>7.0000</LOS>
<BuildPoints>15.0000</BuildPoints>
<Cost resourcetype ='Wood'>0.0000</Cost> <!-- 建造成本改成0或删掉 -->
<BuildingWorkRate>1.0000</BuildingWorkRate>
<AllowedAge>0</AllowedAge>
<Decay delay ='0.0000' duration ='0.0000'></Decay>
<Armor type ='Siege' value ='0.0000'></Armor>
<UnitType>LogicalTypeValidSabotage</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeShipsAndBuildings</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
<UnitType>BuildingClass</UnitType>
<UnitType>ColonyBuilding</UnitType>
<UnitType>AbstractWall</UnitType>
<UnitType>MilitaryBuilding</UnitType>
<UnitType>Building</UnitType>
<UnitType>CountsTowardMilitaryScore</UnitType>
<UnitType>HasBountyValue</UnitType>
<Flag>CollidesWithProjectiles</Flag>
<Flag>Doppled</Flag>
<Flag>Immoveable</Flag>
<Flag>NoBloodOnDeath</Flag>
<Flag>NonAutoFormedUnit</Flag>
<Flag>ObscuresUnits</Flag>
<Flag>PlayerOwnsObstruction</Flag>
<Flag>SelectWithObstruction</Flag>
<Flag>UseAlignedObstructionOnMinimap</Flag>
<Flag>wallBuild</Flag>
<Flag>ColonyBuilding</Flag>
<Flag>Tracked</Flag>
<Command page ='10' column ='1'>Delete</Command>
<Command page ='6' column ='1'>Stance1</Command> <!-- 把按钮加上去 -->
</Unit>
(新增的)已关闭的城门
<Unit id ='1482' name ='CWallGate2'>
<DBID>523</DBID>
<DisplayNameID>00300</DisplayNameID>
<ObstructionRadiusX>5.0000</ObstructionRadiusX>
<ObstructionRadiusZ>1.0000</ObstructionRadiusZ>
<MaxVelocity>0.0000</MaxVelocity>
<MovementType>land</MovementType>
<AnimFile>buildings\wall\wall_gate.xml</AnimFile>
<AllowedHeightVariance>0.0000</AllowedHeightVariance> <!-- 4.0修改成0.0 -->
<ImpactType>Stone</ImpactType>
<Icon>buildings\wall\wall_portrait</Icon>
<PortraitIcon>buildings\wall\gate_portrait</PortraitIcon>
<RolloverTextID>29633</RolloverTextID>
<ShortRolloverTextID>29632</ShortRolloverTextID>
<InitialHitpoints>3000.0000</InitialHitpoints>
<MaxHitpoints>3000.0000</MaxHitpoints>
<LOS>7.0000</LOS>
<BuildPoints>15.0000</BuildPoints>
<Cost resourcetype ='Wood'>0.0000</Cost> <!-- 建造成本改成0或删掉-->
<BuildingWorkRate>1.0000</BuildingWorkRate>
<AllowedAge>0</AllowedAge>
<Decay delay ='0.0000' duration ='0.0000'></Decay>
<Armor type ='Siege' value ='0.0000'></Armor>
<UnitType>LogicalTypeValidSabotage</UnitType>
<UnitType>LogicalTypeVillagersAttack</UnitType>
<UnitType>LogicalTypeHandUnitsAttack</UnitType>
<UnitType>LogicalTypeShipsAndBuildings</UnitType>
<UnitType>LogicalTypeRangedUnitsAttack</UnitType>
<UnitType>LogicalTypeMinimapFilterMilitary</UnitType>
<UnitType>BuildingClass</UnitType>
<UnitType>ColonyBuilding</UnitType>
<UnitType>AbstractWall</UnitType>
<UnitType>MilitaryBuilding</UnitType>
<UnitType>Building</UnitType>
<UnitType>CountsTowardMilitaryScore</UnitType>
<UnitType>HasBountyValue</UnitType>
<Flag>CollidesWithProjectiles</Flag>
<Flag>Doppled</Flag>
<Flag>Immoveable</Flag>
<Flag>NoBloodOnDeath</Flag>
<Flag>NonAutoFormedUnit</Flag>
<Flag>ObscuresUnits</Flag>
<Flag>ShowTactics</Flag> <!-- 添加<Flag>ShowTactics</Flag> --> <!-- <Flag>PlayerOwnsObstruction</Flag> --> <!-- 删掉<Flag>PlayerOwnsObstruction</Flag> -->
<Flag>SelectWithObstruction</Flag>
<Flag>UseAlignedObstructionOnMinimap</Flag>
<Flag>wallBuild</Flag>
<Flag>ColonyBuilding</Flag>
<Flag>Tracked</Flag>
<Command page ='10' column ='1'>Delete</Command>
<Command page ='6' column ='1'>Transform</Command> <!-- 将开城门的按钮加上去 -->
</Unit>
把名称与按钮的介绍写上:
<String _locID="00300">已关闭的城门</String>
<String _locID="00301">关闭这座城门,任何人均不能通过这座城门。</String>
4.添加声音,最简单的办法是在Sound文件夹的SoundXML.bar提取原有的城门的文件(CWallGate_snds),然后直接把调用名修改了,放到sound文件夹。
CWallGate2_snds.xml
<?xml version="1.0" encoding="utf-8"?>
<protounitsounddef>
<protounit name="CWallGate2">
<soundtype name="Select">
<soundset name="UI_Building_Economic"/>
</soundtype>
<soundtype name="Death">
<soundset name="BuildingDestruction"/>
</soundtype>
<soundtype name="Creation">
<soundset name="UI_Building_Economic"/>
</soundtype>
</protounit>
</protounitsounddef>