增加建筑物分两个步骤:
- 编写建筑物配置文件;
- 在建造菜章中增加对应建造该建筑物的按钮。
以下分别叙述这两个步骤。
一、编写建筑物配置文件
箭塔配置文件:tower.cfg。文件名可以自定义,以cfg为扩展名就行。
tower.cfg放置位置:文件放在<wok>/data/core/units/building目录的根下。注:这文件可以放在<wok>data/core/units目录下的其它子目录下,例如humans,甚至一个新建目录(如果新建须要在<wok>/data/core/units.cfg写上该目录),但除非特别应用,一般不要那么做。
文件内容:
// 这文件中出现的可翻译字符串定义在wesnoth-wok.mo中
#textdomain wesnoth-wok [unit_type] // 箭塔类型标识,它是物中唯一。当然你也可以不是tower,像tower0,只是一旦定下后其它地方就要多次用到这个标识。 id=tower name= _"tower" race=human // 放置在地图上图像 image="units/building/tower.png" {MAGENTA_IS_THE_TEAM_COLOR} hitpoints=150 alignment=lawful // 造一个箭塔花费70金 cost=70 movement_type=smallfoot movement=0 // 该建筑物可建在它之上的地形。Gg:草原,Rr:道路。 terrains=Gg,Rr [resistance] arcane=80 blade=100 cold=100 fire=80 impact=100 pierce=100 [/resistance] // 和兵种一样,建筑物也是可升级的。 level=1 // 上层物种没了,所以一旦到达最大经验,执行的是ALMA。 advances_to=null {AMLA_DEFAULT} // 升级须要经验 experience=750 [abilities] {ABILITY_STEADFAST} [/abilities] usage=fighter description= _"market0 description"+{SPECIAL_NOTES}+{SPECIAL_NOTES_STEADFAST}+{SPECIAL_NOTES_MAGICAL} die_sound={SOUND_LIST:HUMAN_DIE} [attack] name=staff description= _"staff" icon=attacks/staff-magic.png type=impact range=melee damage=8 number=2 [/attack] [attack] name=lightning description= _"lightning" icon=attacks/lightning.png type=fire range=ranged [specials] {WEAPON_SPECIAL_MAGICAL} [/specials] damage=8 number=2 [/attack] #{DEFENSE_ANIM "units/human-kingdom/zhoushushi-defend.png" "units/human-kingdom/zhoushushi-defend.png" {SOUND_LIST:HUMAN_HIT} } #define DUDU_LIGHTNING DIRECTION_NUMBER [attack_anim] [filter_attack] name=lightning [/filter_attack] {LIGHTNING_BOLT {DIRECTION_NUMBER} } [/attack_anim] #enddef {DUDU_LIGHTNING 1} {DUDU_LIGHTNING 2} {DUDU_LIGHTNING 3} #undef DUDU_LIGHTNING [/unit_type]
二、在建造菜章中增加对应建造该建筑物的按钮
上下文菜单是在主题(theme)中指定,可建造建筑物就在修改<wok>/data/themes/default.cfg。(第三步其实已和default.cfg无关,归类到这里是认为那一步也和按钮有关。)
2.1 定位到建造菜单
建造菜单是id=build的[menu]标签。类似以下这个实例。
[menu] id=build parent=main is_context_menu=true items=build_c:market, build_c:farm ref=middle-bottom-panel rect="=+9,=+5,+72,+72" xanchor=fixed yanchor=bottom [/menu]
2.2 向建造菜单的items键的值增加build_c:tower
对于以上例子就是把items改为:[code]items=build_c:market, build_c:farm, build_c:tower[/code]经过这样改动后,箭塔图标就出现在农场(farm)之后。
注:
1:build_c:tower。build_c,它指出实行的build命令,‘_c’指示执行完这个命令后上下文菜单消失。‘:’指示后面字符串是build命令参数,以上就是tower。tower对应的是tower.cfg中的type键的值。
2.3 向<wok>/data/core/images/buttons目录增加上下文菜单中和“箭塔”按钮相关的三个png文件
这三个文件是建造上文菜单中“箭塔”按钮皮肤用的,它们是:

tower.png:通常情况下显示。

tower-active.png:当玩家鼠标落在“箭塔”按钮上时显示。

tower-pressed.png:当玩家按下“箭塔”按钮后显示。
三个文件的文件名是被约定的。tower和build_c:tower中的tower对应,-active和-pressed是系统要求。
说到图像,有人会联想到建造好箭塔后放置在地图上的箭塔图像。那个图像和以上这三个文件无关,它们是在tower.cfg中指定。