这个是城门开门与锁门的教程,像帝国时代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>