使用cache后带来的副作用 A:第一次生成*.bin中包含“空”值attribute,之后生成却没有这些attribute? Q:第一次生成*.bin时,它没有对应cache文件,直接由WML生成,这个生成的config直接存入文件,这时存入的config是容许有“空”值attribute。 程序会以这个config生成cache文件,在生成时,“空”值attribute会被丢弃。 第二次或接下次生成对应的*.bin时,它检测到有cache文件,不从WML生成而这读对应cache文件以生成config,这时cache文件中已是没了“空”值attribute,由它生成的config自然不再包含这些attribute。致使以这个config生成的*.bin也不会有“空”值attribute。 处理这个问题方法,程序认为空值attribute等同该attribute不存在。 |
编写mod分为编辑和转换两个步骤。 编辑 选择一种自己喜欢文本编辑器,像Visutal Studio,UlterEdit,按WML语法生成相应文件。 要制作一个战役,一般要生成的文件。 场景:用于描述战役。它定义了战斗目标,使用的音乐,阵营及阵营中单位,要触发事件,总之可说是所有事情。除了*.cfg,场景还需要至少一张地图。wesnoth提供了专门地图编辑器以生成地图。 功能上说,只要编写出场景就可做完一个mod了。 兵种:系统自带了不少兵种,但如果你希望有自己兵种,那就需要生成那个兵种的*.cfg文件。 除了场景和兵种,你还可以做很多很多,像地形(显示出来的图像,抗性等等),界面布局,AI特色,系统默认参数。 对于多人对战mod,和单机mod区别不大。 编辑后将生成*.cfg和地图文件,它们默认放在<kingdom>\data\core目录下。这些文件被提供”转换”输入,运行时不需要。 转换 转换是把由编辑生成的*.cfg(包括战场地图)转换为*.bin。 当前转换是由可执行程序kingdom.exe完成,是的,它和主程序kingdom.exe是同一个,只是它们使用的命令行参数不一样而已。 转换后将生成若干*.bin,它们默认放在运行时要求的<kingdom>\xml目录下。 以上生成的mod只支持英文。如果要支持多国语言,像中文,除了编辑和转换还需要编写*.pot和*.po,然后用小软件,像Poedit,生成相应的*.mo文件。运行时*.mo要被放在<kingdom>\translations目录下。 |