SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 6054|回复: 2
打印 上一主题 下一主题

[MOD] 实例:增加一种实时可建造建筑物,箭塔

[复制链接]

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
跳转到指定楼层
楼主
发表于 2020-11-29 11:20:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

增加建筑物分两个步骤:

1)编写建筑物配置文件;

2)在建造菜章中增加对应建造该建筑物的按钮。

以下分别叙述这两个步骤。
回复

使用道具 举报

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
沙发
 楼主| 发表于 2020-11-29 11:21:23 | 只看该作者

编写建筑物配置文件

箭塔配置文件:tower.cfg。文件名可以自定义,以cfg为扩展名就行。

tower.cfg放置位置:文件放在<wok>/data/core/units/building目录的根下。注:这文件可以放在<wok>data/core/units目录下的其它子目录下,例如humans,甚至一个新建目录(如果新建须要在<wok>/data/core/units.cfg写上该目录),但除非特别应用,一般不要那么做。

文件内容:
  1. // 这文件中出现的可翻译字符串定义在wesnoth-wok.mo中
  2. #textdomain wesnoth-wok
  3. [unit_type]
  4.         // 箭塔类型标识,它是物中唯一。当然你也可以不是tower,像tower0,只是一旦定下后其它地方就要多次用到这个标识。
  5.         id=tower
  6.         name= _"tower"
  7.         race=human
  8.         // 放置在地图上图像
  9.         image="units/building/tower.png"
  10.         {MAGENTA_IS_THE_TEAM_COLOR}
  11.         hitpoints=150
  12.         alignment=lawful
  13.         // 造一个箭塔花费70金
  14.         cost=70
  15.         movement_type=smallfoot
  16.         movement=0
  17.         // 该建筑物可建在它之上的地形。Gg:草原,Rr:道路。
  18.         terrains=Gg,Rr
  19.         [resistance]
  20.                 arcane=80
  21.                 blade=100
  22.                 cold=100
  23.                 fire=80
  24.                 impact=100
  25.                 pierce=100
  26.         [/resistance]
  27.         // 和兵种一样,建筑物也是可升级的。
  28.         level=1
  29.         // 上层物种没了,所以一旦到达最大经验,执行的是ALMA。
  30.         advances_to=null
  31.         {AMLA_DEFAULT}
  32.         // 升级须要经验
  33.         experience=750
  34.         [abilities]
  35.                 {ABILITY_STEADFAST}
  36.         [/abilities]
  37.         usage=fighter
  38.         description= _"market0 description"+{SPECIAL_NOTES}+{SPECIAL_NOTES_STEADFAST}+{SPECIAL_NOTES_MAGICAL}
  39.         die_sound={SOUND_LIST:HUMAN_DIE}
  40.         [attack]
  41.                 name=staff
  42.                 description= _"staff"
  43.                 icon=attacks/staff-magic.png
  44.                 type=impact
  45.                 range=melee
  46.                 damage=8
  47.                 number=2
  48.         [/attack]
  49.         [attack]
  50.                 name=lightning
  51.                 description= _"lightning"
  52.                 icon=attacks/lightning.png
  53.                 type=fire
  54.                 range=ranged
  55.                 [specials]
  56.                         {WEAPON_SPECIAL_MAGICAL}
  57.                 [/specials]
  58.                 damage=8
  59.                 number=2
  60.         [/attack]
  61.    
  62.         #{DEFENSE_ANIM "units/human-kingdom/zhoushushi-defend.png" "units/human-kingdom/zhoushushi-defend.png" {SOUND_LIST:HUMAN_HIT} }

  63. #define DUDU_LIGHTNING DIRECTION_NUMBER
  64.         [attack_anim]
  65.         [filter_attack]
  66.                 name=lightning
  67.         [/filter_attack]

  68.         {LIGHTNING_BOLT {DIRECTION_NUMBER} }

  69.         [/attack_anim]
  70. #enddef

  71.         {DUDU_LIGHTNING 1}
  72.         {DUDU_LIGHTNING 2}
  73.         {DUDU_LIGHTNING 3}
  74.        
  75. #undef DUDU_LIGHTNING
  76.    
  77. [/unit_type]
复制代码
回复 支持 反对

使用道具 举报

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
板凳
 楼主| 发表于 2020-11-29 11:22:22 | 只看该作者

在建造菜章中增加对应建造该建筑物的按钮

上下文菜单是在主题(theme)中指定,可建造建筑物就在修改<wok>/data/themes/default.cfg。(第三步其实已和default.cfg无关,归类到这里是认为那一步也和按钮有关。)

一、定位到建造菜单
建造菜单是id=build的[menu]标签。类似以下这个实例。
  1. [menu]
  2.         id=build
  3.         parent=main
  4.         is_context_menu=true
  5.         items=build_c:market, build_c:farm
  6.         ref=middle-bottom-panel
  7.         rect="=+9,=+5,+72,+72"
  8.         xanchor=fixed
  9.         yanchor=bottom
  10. [/menu]
复制代码
二、向建造菜单的items键的值增加build_c:tower
对于以上例子就是把items改为:
  1. items=build_c:market, build_c:farm, build_c:tower
复制代码
经过这样改动后,箭塔图标就出现在农场(farm)之后。

注:
1:build_c:tower。build_c,它指出实行的build命令,‘_c’指示执行完这个命令后上下文菜单消失。‘:’指示后面字符串是build命令参数,以上就是tower。tower对应的是tower.cfg中的type键的值。

三、向<wok>/data/core/images/buttons目录增加上下文菜单中和“箭塔”按钮相关的三个png文件
这三个文件是建造上文菜单中“箭塔”按钮皮肤用的,它们是:
tower.png:通常情况下显示。
tower-active.png:当玩家鼠标落在“箭塔”按钮上时显示。
tower-pressed.png:当玩家按下“箭塔”按钮后显示。

三个文件的文件名是被约定的。tower和build_c:tower中的tower对应,-active和-pressed是系统要求。

说到图像,有人会联想到建造好箭塔后放置在地图上的箭塔图像。那个图像和以上这三个文件无关,它们是在tower.cfg中指定。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-1 22:40 , Processed in 0.061551 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表