1. 工具说明

本节下的所有内容均存于 tools\ 文件夹下,本文件夹可改名,但是一定要保证下列工具在 data\assets\ 所在路径的再往下一层。

提示

在各编辑器里修改的名称等数据需要保存之后才会在UI中更新。

1.1. 可视化地图编辑器MapDesigner.exe

可视化地图编辑器MapDesigner.exe

这里可以对游戏地图进行绘制。

1.1.1. 事件名称介绍

事件名称介绍

提示

自3.0版本始,事件名称DSL的格式已经更改,目前为更符合观感的“类函数”格式。

可以看到,每个地图上的元素都由事件构成,而事件执行什么内容,会依托事件名,这里提供了几种基础的事件, 如果有更多的需要,可以在 gamedata.cppGameEvent::order() 函数中自己定义。

事件名可以使用 ; (半角)分隔,末尾也需要有该符号,否则无法识别。

代表同一事件执行若干个事件指令,比如执行钥匙盒类型,就是 item(0,1);item(1,1)item(2,1)

可以看出,时间名DSL的格式是类函数格式的,请务必保证括号对齐,否则会出现错误,当然,在使用不需要“参数”的DSL例如墙壁时,可以省略括号。

您也可以点击事件名称右侧的 按钮,会弹出一个编辑框,可以直接编辑事件名称,编辑完之后点击 完成 即可,想具体了解DSL格式的可以参考以下介绍。

事件名称编辑

下面展示目前提供的事件名称:

1.1.1.1. 墙壁类

其实并没有固定的命名格式,因为墙壁仅仅是没有 order 的事件而已,任何不存在于 order() 函数里的名称均可作为墙壁, 不过本框架中约定为 wall ,因为这个名称才可以被破墙镐、地震卷轴等消去。

同理的,岩浆的名字设为 fire ,这样才能被冰冻徽章消去。

1.1.1.2. 怪物类

怪物类的命名方式为 monster(x)x 代表的是怪物编号。

1.1.1.3. 宝石血瓶类

也就是能力值增加的事件,命名方式为: bonus(x,y) ,其中 y 为增加的数值,而 x 代表的内容如下所示:

bonus事件x值对应参考

x

0

1

2

3

4

5

6

代表

生命值

攻击力

防御力

魔防

经验

金币

等级

其中,等级遵循新新魔塔的升级加点,同时会提升 400/5/5 * val 的各维能力。

1.1.1.4. 物品类

命名方式为 item(x,y) ,其中 x 为物品编号, y 为获取数量。

比如 获取1把黄钥匙(0号物品) 的事件名为 item(0,1)

1.1.1.5. 门类

命名方式为 door(x) ,其中x为门的编号, x 代表的内容如下所示:

door事件x值对应参考

x

0

1

2

3

代表

暗墙

黄门

蓝门

红门

提示

“暗墙”不一定是墙,也可以是一推就倒的门,比如类机关门、新新魔塔入口处的铁门,均可用这个事件。

1.1.1.6. 路障类(熔岩)

命名方式为 lava(x) ,其中 x 为造成的伤害。

1.1.1.7. 商店类

命名方式为 shop(w,x,y,z)

其中 w 为商店类型, 0 为金币商店(默认是新新魔塔类商店,可以通过 src\main.cppWindowShop 类进行更改), 1 为经验商店(同样也是默认为新新魔塔类商店)。

x 为商店的选项(增加能力的值),不同的选项之间由 & 连接。

如果是金币商店,默认会读取三个,分别作为生命、攻击、防御进行增加。

如果是经验商店,默认会读取三个,分别作为等级、攻击、防御进行增加。

y 是初始价格,可以用变量指定,如果有多个初始价格,则是用 & 连接,比如经验商店三个初始价格是70、20、20,就写为 70&20&20 , 但是注意,如果你分了多个价格,数量一定要和你的选项数量 完全相同 ,否则将会出错。

z 为涨价幅度,同样,可以用变量指定。

yz 都可以不写,默认为0。

综上举例,新新魔塔的金币商店可以写为 shop(0,500&3&3,[x],1) ,其中 [x] 为指定初始价格的变量,经验商店可写为 shop(1,1&1&2,70&20&20)

24层魔塔的金币商店就更简单了,写为 (shop,0,800&4&4/25) 即可。

1.1.1.8. 上下楼

这个非常简单,就是对应 updown ,其中是含有上下楼动画的,这些您可以自行调整或者取消,上下楼动画为 assets\system\mting.png 文件。

如果你在后面添加信息,比如 up/x/y ,这就会将你传送至楼上的指定xy坐标,否则,将不会变更坐标。

1.1.1.9. 传送

命名方式为 move(m,x,y) ,其中 m 为传送去的地图编号, x,y 为传送到的x,y坐标。

1.1.1.10. NPC

NPC的命名方式为 npc(x) ,会自动寻找数据库里的npc数据完成对话,这一部分的编辑在 对话编辑器 里面可以了解。

1.1.1.11. 修改变量

修改变量的命名方式为 var(x,y) ,会将 x 号变量增加 y ,一般用于内置的其他代码使用,而不用于地图上。

1.1.1.12. 显示图片

显示图片的命名方式为 picon(x,y)x 是图片的编号, y 是图片的文件名,默认状态下会在 assets\pictures\ 文件夹下寻找图片。

1.1.1.13. 消除图片

消除图片的命名方式为 picoff(x)x 是图片的编号。

1.1.1.14. 条件分歧

条件分歧的格式为 condition(x,y,z,p,q)

其中 x 为依托的条件,比如233号变量, x 就是 [233] ,这里和对话类型的替换完全一致。

y 为条件,目前可以填写为 “==”、”>=”、”<=”、”>”、”<”、”!=” ,分别对应等于、大于等于、小于等于、大于、小于、不等于。

z 为比较的值,比如233号变量等于10,那么 z 就是 10

p 为条件成立时的事件,比如233号变量等于10时,执行事件名为 p 的事件,如果是有事件列表,则用 ;区分于 => )分隔。

q 为条件不成立时的事件,比如233号变量不等于10时,执行事件名为 q 的事件,如果是有事件列表,则用 ;区分于 => )分隔。

提示

这里的p和q最末尾不需要额外添加;号,注意区分

1.1.1.15. 转换事件名

转换事件名的命名方式为 switch(x) ,会将本事件的事件名转换成 x

1.1.1.16. 切换BGM

切换BGM的命名方式为 bgmswitch(x) ,会将当前BGM切换成 x ,默认状态下会在 assets\bgm 文件夹下寻找BGM。

1.1.1.17. 播放动画

播放动画的命名方式为 animate(x,y) ,会在 x 号事件的坐标上播放编号为 y 的动画。

1.1.1.18. 播放视频

播放视频的命名方式为 videoplay(x) ,会播放文件名为 x 的视频,默认状态下会在 assets\video\ 文件夹下寻找视频。

1.1.1.19. 消除事件

命名方式为 erase ,会消去 motaTemp.functionEventID 所记录的事件,一般用于对话中。

1.1.1.20. 返回标题

返回标题的指令是 back ,会返回标题画面,一般用于内置的其他代码使用,而不用于地图上。

1.1.1.21. 结局

结局的指令是 ending ,会进入结局画面,显示 end.txt 显示的结局字幕,如果没有 end.txt 将会直接回到标题画面。

1.1.2. 行走图

行走图

这里决定了事件的行走图以及在行走图上对应的位置,行走图素材严格按照128*128的标准,在区域内按下鼠标右键可以选择图片,按下鼠标左键可以选择位置。

选择图片

1.1.3. 出现触发判定

出现触发判定

这里决定的是事件出现或者可以被触发的条件,三个格子分别为类型/编号/值。

其中,类型分为:

出现触发条件第一格对应参考

0

1

2

3

代表

无条件

满足条件出现

满足条件后接触触发

满足条件后自动触发

一般的无条件事件,填写0/0/0即可,也就是默认的条件。

如果您想制作一个击败若干敌人会出现的事件,比如宝物等,例如,6号变量等于7时出现,就要设为 1/6/7

如果您想制作一个机关门,在8号变量等于9时可以打开,那就要设为 2/8/9

1.1.4. 其余设置

1.1.4.1. 地图名

地图名

顾名思义,就是这个地图的名称,一般的魔塔楼层命名规则为 x:yx 是魔塔编号,默认从0开始, y 是楼层数。

满足此规则的将会在状态栏处显示 魔塔y层 (可在 motaName.ini 处自行更改),不满足的将会显示本身设置的地图名,比如密室等。

1.1.4.2. 地图BGM

地图BGM

当前地图使用的BGM文件名,暂时不支持预览模式。

1.1.4.3. 动效

动效

一般用于区分怪物/NPC事件和物品事件,对应RMXP的 停止时动画 ,如果是怪物等,勾选上即可。

1.1.4.4. 穿透

穿透

决定这个事件是否可以被穿过,一般用于扣血路障等事件。

1.1.4.5. 隐藏信息

隐藏信息

勾选可以隐藏在地图编辑器上显示的事件编号,更直观地看到在游戏中的样子。

1.1.4.6. 匹配图像

匹配图像

根据事件名匹配图像及其位置,会自动匹配的有monster、item事件,其余列表可以参考 DesignerReferrence.txt ,您可以按照格式自行更改。

1.1.5. 如何布置事件

1.1.5.1. 添加

添加

可以将左侧的事件信息添加到地图上选中的格子,也可以在 地图上点击 鼠标右键 快速布置。

1.1.5.2. 复制

复制

可以将地图上选中的格子的事件信息复制到左侧事件信息栏,同时也会显示复制的事件号,同时,在 地图上点击 鼠标左键 即可快速复制。

1.1.5.3. 删除

删除

可以将地图上选中的格子的事件进行删除,后面的事件编号将会向前挪一位,也可以 在地图上点击 鼠标中键 快速删除。

1.1.5.4. 移动

移动

可以将复制事件号对应的事件移动到地图上选中格子的位置。

1.1.5.5. 覆盖

覆盖

将选中的格子上的事件信息更改为左侧事件信息栏的内容。

1.1.5.6. 保存

保存

会保存 当前页面 的地图,保存成功后会弹出一个提示窗口。

1.1.5.7. 新增地图 & 设为空白地图

新增地图&设为空白地图
1.1.5.7.1. 新增地图

会在列表中新增一个地图,默认按照当前的空白地图模板 blankmap.dat 进行初始化。

1.1.5.7.2. 设为空白地图

会将当前地图的信息整合起来存入 blankmap.dat

1.2. 动画编辑器AnimationDesigner.exe

这里可以对游戏动画进行绘制,支持的动画 单个图片 规格的动画素材(需要是透明底图)。

保存

使用方法和RMXP的动画编辑器类似,不过极大简化了,每一帧的动画通过右上角按钮设置,默认的原点坐标都在中心点。

1.3. RMXP动画素材分离器AnimationSeparator.exe

这里可以对RMXP规格的动画素材分离成若干192 * 192的素材,并保存在原路径中。

保存

使用方法也很简单,导入 -> 点击分离,即可,在点击分离之后会自动将分离的素材放置到原路径中,文件名为 原文件名_xx 为下标,表示顺序。

提示

由于原RMXP的动画素材未必会填充满整行,所以可能出现保存了几个透明的空图片的情况,这种时候自行删除多余图片即可。

1.4. 物品辑器ItemDesigner.exe

物品编辑器

顾名思义,是用来编辑物品的工具,选择图片的操作方式参考地图编辑器。

1.5. NPC对话编辑器NPCDesigner.exe

这里可以对游戏内NPC的对话内容进行设置。

保存

选择项单起一行,在最前面加上 [s] ,代码就会识别出来这是选择项了,并且会出现光标矩形。

添加选择项

例如:

1你好,你要选择什么?
2[s]1攻击
3[s]1防御

本框架所有事件指令均依托于事件名,在选择项内容描述完之后加上 => ,多个事件用多个 => 分隔, 然后写上需要执行的事件名,之后就会创建一个“临时事件”的列表并执行相关指令。

选择项指令

例如:

1你好,你要选择什么?
2[s]1攻击=>bonus(1,2)
3[s]1防御=>bonus(2,2)

演示效果如下:

演示

举最简单的例子,所有的汉字和中文标点为 全角 ,一般情况下的英文和数字字符为 半角 字符。

一般的输入法,全半角转换的快捷键为 shift+space ,微软拼音输入法打开快捷键的方法为:

找到任务栏 中/英 字样 -> 右键点击 选择设置 -> 按键 -> 全/半角切换

1.5.1. 禁用词

不允许在文字框内填写 none ,因为这个是占位用的,出现后会立刻跳出提示,对话框不允许在半角方括号 [] 内插入数字和英文字母 s 以外的文本。

1.5.2. 事件编号

为本段对话中说话的对象编号,用来确认头像,当前主角说话为 -1 ,当前触发事件为 -2 ,这两项均可用按钮确认,会自动填写,其余情况为地图上对应的事件编号。

1.5.3. 在对话中插入当前游戏某变量的值

在对话中插入 x 号变量的方法为写成 [vx] ,代码会自动识别半角方括号里的内容,并读取当前变量的值进行替换,例如12号变量就是 [v12]

在对话中插入当前游戏某物品的数量的方法为写成 [ix] ,代码会自动识别半角方括号里的内容,并读取当前物品的数量进行替换,例如12号物品就是 [i12]

在对话中插入角色各项能力数值的方法写成 [能力名称] ,列表如下所示:

能力名称对应参考

能力名称

生命值

攻击力

防御力

魔防

经验

金币

等级

代表

[hp]

[atk]

[def]

[mdef]

[exp]

[gold]

[lv]

插入变量

效果演示如下:

插入变量演示

1.6. 魔塔怪物编辑器EnemyDesigner.exe

这里可以对游戏内怪物的能力以及属性进行设置。

怪物编辑器

1.6.1. 怪物名称格式

带有buff属性的怪物名称必须要以 / 分割,例如 绿史莱姆/1/ 后面的内容代表buff的效果。

下面列出几种常见的buff效果及其命名格式:

效果

命名格式

中毒

整数,代表增加易伤的百分数

衰弱

整数,代表削减攻防的值

吸血

小数,代表吸血的百分比

再生

整数,代表复活成为的怪物编号

1.6.2. 怪物属性

勾选想要赋予的属性即可,点击相对应栏可以查看其描述,直接在描述框修改描述即可。

对于带有数值的属性描述,比如 战斗后,会附加若干点衰弱效果 ,这个 若干点 要替换为 [v] , 在游戏中会按怪物属性从上到下读取,需要 [v] 的地方会读取怪物名称 / 分隔后第二个开始往后的数值。

比如怪物名设置为 红衣魔王/1/2 ,拥有中毒和衰弱两个属性,属性描述均带有 [v] ,游戏中会自动将 1 设为中毒的 [v]2 设为衰弱的 [v]

1.7. 打包工具Packager.exe

这个可以将你的工程打包为一个rar文件,要打包的项目可以在 package.txt 里面进行设置。

其中,文件夹需要以 \ 结尾,文件则无要求。