chore: 样板层对话事件适配

This commit is contained in:
unanmed 2025-10-11 13:40:16 +08:00
parent 5dfeabb3bf
commit eeb0583678
5 changed files with 592 additions and 107 deletions

View File

@ -202,8 +202,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"hp": 500,
"manamax": -1,
"mana": 0,
"atk": 7,
"def": 5,
"atk": 100,
"def": 100,
"mdef": 20,
"money": 0,
"exp": 0,

View File

@ -1,7 +1,7 @@
main.floors.empty=
{
"floorId": "empty",
"title": "样板 0 层",
"title": "本层不可删除",
"name": "0",
"width": 13,
"height": 13,

View File

@ -28,34 +28,87 @@ main.floors.sample0=
"firstArrive": [
{
"type": "setText",
"background": "winskin.png",
"time": 0
"textbox": "main-textbox"
},
"\t[样板提示]首次到达某层可以触发 firstArrive 事件该事件可类似于RMXP中的“自动执行脚本”。\n\n本事件支持一切的事件类型常常用来触发对话例如",
"\t[hero]\b[up,hero]我是谁?我从哪来?我又要到哪去?",
"\t[仙子,fairy]你问我...?我也不知道啊...",
"本层主要对道具、门、怪物等进行介绍,有关事件的各种信息在下一层会有更为详细的说明。"
{
"type": "text",
"title": "样板提示",
"text": "首次到达某层可以触发 firstArrive 事件该事件可类似于RMXP中的“自动执行脚本”。\n\n本事件支持一切的事件类型常常用来触发对话例如"
},
{
"type": "text",
"title": "勇士",
"text": "我是谁?我从哪来?我又要到哪去?"
},
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "你问我...?我也不知道啊..."
},
{
"type": "text",
"text": "本层主要对道具、门、怪物等进行介绍,有关事件的各种信息在下一层会有更为详细的说明。"
},
{
"type": "text",
"text": "由于一些原因,该版本对话框图标暂时不能设置为勇士,将会在 2.B.1 或 2.B.2 中修复。"
},
{
"type": "text",
"text": "除此之外还有一些因为各种原因在 2.B 中暂时删除的功能,将会在之后的版本中逐步重新添加。"
}
],
"events": {
"2,10": [
"\t[少女,npc0]\b[this]这些是路障、楼梯、传送门。",
"\t[少女,npc1]\b[this]血网的伤害数值、中毒后每步伤害数值、衰弱时攻防下降的数值都在全塔属性快捷键B的全局数值values内定义。\n\n路障同样会尽量被自动寻路绕过。",
"\t[少女,npc2]\b[this]楼梯和传送门需要在地图选点快捷键X的“楼层转换”中定义目标楼层和位置可参见样板里已有的的写法。",
{
"type": "text",
"title": "少女",
"icon": "npc0",
"text": "这些是路障、楼梯、传送门。"
},
{
"type": "text",
"title": "少女",
"icon": "npc0",
"text": "血网的伤害数值、中毒后每步伤害数值、衰弱时攻防下降的数值都在全塔属性快捷键B的全局数值values内定义。\n\n路障同样会尽量被自动寻路绕过。"
},
{
"type": "text",
"title": "少女",
"icon": "npc0",
"text": "楼梯和传送门需要在地图选点快捷键X的“楼层转换”中定义目标楼层和位置可参见样板里已有的的写法。"
},
{
"type": "hide",
"time": 500
}
],
"2,5": [
"\t[老人,wizard]\b[this]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值可参见样板中黑暗大法师的写法。",
{
"type": "text",
"title": "老人",
"icon": "wizard",
"text": "模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值可参见样板中黑暗大法师的写法。"
},
{
"type": "hide",
"time": 500
}
],
"2,3": [
"\t[老人,wizard]\b[this]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。",
"\t[老人,wizard]\b[this]当领域、阻击、激光和夹击同时发生时,先计算领域、阻击、激光(同时计算),再计算夹击。\n自动寻路同样会尽量绕过这些区域。",
{
"type": "text",
"title": "老人",
"icon": "wizard",
"text": "领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。"
},
{
"type": "text",
"title": "老人",
"icon": "wizard",
"text": "当领域、阻击、激光和夹击同时发生时,先计算领域、阻击、激光(同时计算),再计算夹击。\n自动寻路同样会尽量绕过这些区域。"
},
{
"type": "hide",
"time": 500
@ -66,8 +119,21 @@ main.floors.sample0=
"enable": false,
"noPass": null,
"displayDamage": true,
"opacity": 1,
"filter": {
"blur": 0,
"hue": 0,
"grayscale": 0,
"invert": false,
"shadow": 0
},
"data": [
"\t[仙子,fairy]\b[this]只有楼上启用事件后,才能看到我并可以和我对话来触发事件。",
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "只有楼上启用事件后,才能看到我并可以和我对话来触发事件。"
},
{
"type": "hide",
"time": 500
@ -75,26 +141,71 @@ main.floors.sample0=
]
},
"2,8": [
"\t[老人,wizard]\b[this]这些都是各种各样的怪物,所有怪物的数据都在 project 文件夹的 enemys.js 中设置。\n注意是 enemys而非 enemies",
"\t[老人,wizard]\b[this]这批怪物分别为:\n\\i[greenSlime]普通、\\i[bat]先攻、\\i[bluePriest]魔攻、\\i[rock]坚固、\\i[swordsman]2连击、\\i[vampire]多连击、\\i[redKnight]破甲、\\i[ghostSoldier]反击、\\i[slimeman]净化。",
"\t[老人,wizard]\b[this]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
{
"type": "text",
"title": "老人",
"icon": "wizard",
"text": "这些都是各种各样的怪物,所有怪物的数据都在 project 文件夹的 enemys.js 中设置。\n注意是 enemys而非 enemies"
},
{
"type": "text",
"title": "老人",
"icon": "wizard",
"text": "这批怪物分别为:\n\\i[greenSlime]普通、\\i[bat]先攻、\\i[bluePriest]魔攻、\\i[rock]坚固、\\i[swordsman]2连击、\\i[vampire]多连击、\\i[redKnight]破甲、\\i[ghostSoldier]反击、\\i[slimeman]净化。"
},
{
"type": "text",
"title": "老人",
"icon": "wizard",
"text": "打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。"
},
{
"type": "hide",
"time": 500
}
],
"9,11": [
"\t[老人,trader]\b[this]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。",
"\t[老人,trader]\b[this]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。"
},
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。"
},
{
"type": "hide",
"time": 500
}
],
"10,9": [
"\t[老人,man]\b[down,null]这些是部分本样板支持的道具。\n\n道具分为 items、constants、tools、equips 四类。\nitems 为即捡即用类道具,例如宝石、血瓶等。\nconstants 为永久道具,例如怪物手册、楼层传送器、幸运金币等。\ntools 为消耗类道具,例如破墙镐、炸弹、中心对称飞行器等。\nequips 为装备,例如剑盾等。",
"\t[老人,man]\b[up]有关道具效果定义在project文件夹的items.js中。\n目前大多数道具已有默认行为如有自定义的需求请修改道具的图块属性。",
"\t[老人,man]\b[up]拾取道具结束后可触发 afterGetItem 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "这些是部分本样板支持的道具。\n道具分为 items、constants、tools、equips 四类。"
},
{
"type": "text",
"icon": "man",
"text": "items 为即捡即用类道具,例如宝石、血瓶等。\nconstants 为永久道具,例如怪物手册、楼层传送器、幸运金币等。\ntools 为消耗类道具,例如破墙镐、炸弹、中心对称飞行器等。\nequips 为装备,例如剑盾等。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "有关道具效果定义在project文件夹的items.js中。\n目前大多数道具已有默认行为如有自定义的需求请修改道具的图块属性。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "拾取道具结束后可触发 afterGetItem 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。"
},
{
"type": "hide",
"time": 500
@ -169,67 +280,135 @@ main.floors.sample0=
},
"afterBattle": {
"2,6": [
"\t[ghostSoldier]\b[this]不可能,你怎么可能打败我!\n一个打败怪物触发的事件"
{
"type": "text",
"icon": "ghostSoldier",
"text": "不可能,你怎么可能打败我!\n一个打败怪物触发的事件"
}
],
"0,9": [
"这是一个高度为 48 个像素而非 32 个像素的敌人。\n高敌人的素材存放在 materials 文件夹中 enemy48.png 的部分。"
{
"type": "text",
"text": "这是一个高度为 48 个像素而非 32 个像素的敌人。\n高敌人的素材存放在 materials 文件夹中 enemy48.png 的部分。"
}
]
},
"afterGetItem": {
"9,1": [
"技能的支持需要依赖状态栏的“魔力”以及脚本编辑的“按键处理”,详见帮助文档“个性化”一节。"
{
"type": "text",
"text": "技能的支持需要依赖状态栏的“魔力”以及脚本编辑的“按键处理”,详见帮助文档“个性化”一节。"
}
],
"12,2": [
"跳跃靴和支援怪的跳跃音效是用脚本额外添加的,\n如果想为任意跳跃指令添加音效请查阅帮助文档中的“脚本——复写函数”章节。"
{
"type": "text",
"text": "跳跃靴和支援怪的跳跃音效是用脚本额外添加的,\n如果想为任意跳跃指令添加音效请查阅帮助文档中的“脚本——复写函数”章节。"
}
],
"8,3": [
"炸弹是只能炸面前的怪物还是四个甚至八个方向的怪物,\n由其图块属性快捷键C中的“使用效果”决定。\n不能被炸的怪物请直接在该怪物的图块属性中勾选“不可炸”\n可参见样板里黑衣魔王和黑暗大法师的写法。\nV2.8.1起,炸弹炸怪可以添加获得金经/触发战后事件,详见其使用效果中的注释。"
{
"type": "text",
"text": "炸弹是只能炸面前的怪物还是四个甚至八个方向的怪物,\n由其图块属性快捷键C中的“使用效果”决定。\n不能被炸的怪物请直接在该怪物的图块属性中勾选“不可炸”\n可参见样板里黑衣魔王和黑暗大法师的写法。\nV2.8.1起,炸弹炸怪可以添加获得金经/触发战后事件,详见其使用效果中的注释。"
}
],
"10,3": [
"“上楼”和“下楼”的目标层由全塔属性快捷键B的“楼层列表”顺序所决定。"
{
"type": "text",
"text": "“上楼”和“下楼”的目标层由全塔属性快捷键B的“楼层列表”顺序所决定。"
}
],
"12,3": [
"如果想制作类似于生命魔杖等可以被批量使用的道具请参照生命魔杖图块属性快捷键B中\n useItemEvent 的写法。\n其基本原理就是使用【接受用户输入】让玩家在弹窗中输入想要使用的物品数量再判断玩家的输入是否合法如果输入合法就扣减相应数量的物品并结算物品效果。\n要注意的是在使用物品时会先消耗一个物品所以记得在编辑 useItemEvent 时先用 core.addItem 恢复一个物品。"
{
"type": "text",
"text": "如果想制作类似于生命魔杖等可以被批量使用的道具请参照生命魔杖图块属性快捷键B中\n useItemEvent 的写法。"
},
{
"type": "text",
"text": "其基本原理就是使用【接受用户输入】让玩家在弹窗中输入想要使用的物品数量,再判断玩家的输入是否合法,如果输入合法就扣减相应数量的物品并结算物品效果。\n要注意的是在使用物品时会先消耗一个物品所以记得在编辑 useItemEvent 时先用 core.addItem 恢复一个物品。"
}
],
"8,4": [
"剑盾的道具类别设为equips才可以装备\n如果设为items则会直接增加属性。",
"在全塔属性快捷键B的系统开关中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。\n无论是否启用玩家都可以双击道具栏按钮呼出装备栏。"
{
"type": "text",
"text": "剑盾的道具类别设为equips才可以装备\n如果设为items则会直接增加属性。"
},
{
"type": "text",
"text": "在全塔属性快捷键B的系统开关中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。\n无论是否启用玩家都可以双击道具栏按钮呼出装备栏。"
}
],
"9,4": [
"装备的种类由全塔属性快捷键B中的“装备孔”决定。\n每件装备的“类型”就是在“装备孔”中的索引例如默认情况下 0 代表武器。\n同时只有第一个装备孔中的装备其“普攻动画”属性才会生效。"
{
"type": "text",
"text": "装备的种类由全塔属性快捷键B中的“装备孔”决定。\n每件装备的“类型”就是在“装备孔”中的索引例如默认情况下 0 代表武器。\n同时只有第一个装备孔中的装备其“普攻动画”属性才会生效。"
}
],
"10,4": [
"每层楼的“可楼传”勾选框决定了该楼层能否被飞到。\n\n勇士在不能被飞到的楼层也无法使用楼层传送器。",
"飞行的楼层顺序由全塔属性快捷键B中的“楼层列表”所决定。\n\n是否必须在楼梯边使用楼传器由全塔属性中的系统开关所决定。"
{
"type": "text",
"text": "每层楼的“可楼传”勾选框决定了该楼层能否被飞到。\n\n勇士在不能被飞到的楼层也无法使用楼层传送器。"
},
{
"type": "text",
"text": "飞行的楼层顺序由全塔属性快捷键B中的“楼层列表”所决定。\n\n是否必须在楼梯边使用楼传器由全塔属性中的系统开关所决定。"
}
],
"11,4": [
"破墙镐是破面前的墙壁还是四个方向的墙壁由其图块属性快捷键C的“使用效果”决定。\n哪些图块怪物和道具除外可以被破震由该图块的图块属性中的“可破震”决定。"
{
"type": "text",
"text": "破墙镐是破面前的墙壁还是四个方向的墙壁由其图块属性快捷键C的“使用效果”决定。\n哪些图块怪物和道具除外可以被破震由该图块的图块属性中的“可破震”决定。"
}
],
"12,4": [
"在 2.8.1 版更新后,能够被破冰镐摧毁的冰块被移动到了 animates 下。\n如果想制作一个可以以特定触发器的方式移除特定图块的道具可以参照破冰镐物品图块属性中\n useItemEffect 和 canUseItemEffect 的写法。"
{
"type": "text",
"text": "在 2.8.1 版更新后,能够被破冰镐摧毁的冰块被移动到了 animates 下。\n如果想制作一个可以以特定触发器的方式移除特定图块的道具可以参照破冰镐物品图块属性中\n useItemEffect 和 canUseItemEffect 的写法。"
}
],
"11,8": [
"由于状态栏放不下,铁门钥匙(根据全塔属性的系统开关勾选与否,可能还有绿钥匙)会被放入道具栏中。\n碰到绿门和铁门时仍然会自动使用钥匙开门。"
{
"type": "text",
"text": "铁门钥匙(根据全塔属性的系统开关勾选与否,可能还有绿钥匙)会被放入道具栏中。\n碰到绿门和铁门时仍然会自动使用钥匙开门。"
}
],
"12,8": [
"该道具默认是大黄门钥匙如需改为钥匙盒直接修改其图块属性快捷键C的“道具类别”为items即可。"
{
"type": "text",
"text": "该道具默认是大黄门钥匙如需改为钥匙盒直接修改其图块属性快捷键C的“道具类别”为items即可。"
}
],
"8,7": [
"如需修改消耗品的效果请前往全塔属性快捷键B找到并修改values全局数值内对应的具体数值即可。\n如果有高级的需求如每个区域宝石数值变化请修改楼层属性快捷键V最下方的“宝石血瓶效果”。\n如果有更高级的需求请查阅帮助文档。"
{
"type": "text",
"text": "如需修改消耗品的效果请前往全塔属性快捷键B找到并修改values全局数值内对应的具体数值即可。\n如果有高级的需求如每个区域宝石数值变化请修改楼层属性快捷键V最下方的“宝石血瓶效果”。\n如果有更高级的需求请查阅帮助文档。"
}
],
"11,7": [
"与大黄门钥匙类似的是,如果将黄宝石的图块属性设为 items ,那么黄宝石将在被拾取触发 itemEffect 效果。\n\n注意触碰或使用事件useItemEvent对 items、tools、constants 都有效。\n这意味着如果黄宝石的图块属性为 items ,那么在拾取黄宝石时,黄宝石不会进入背包,并且其“即捡即用”和“触碰或使用事件”都会被触发。"
{
"type": "text",
"text": "与大黄门钥匙类似的是,如果将黄宝石的图块属性设为 items ,那么黄宝石将在被拾取触发 itemEffect 效果。\n注意触碰或使用事件useItemEvent对 items、tools、constants 都有效。\n这意味着如果黄宝石的图块属性为 items ,那么在拾取黄宝石时,黄宝石不会进入背包,并且其“即捡即用”和“触碰或使用事件”都会被触发。"
}
],
"12,7": [
"由于吸血、夹击、净化等属性值的存在,玩家可能希望自动寻路时能尽量绕开血瓶和绿宝石。\n他们可以自行在游戏设置中开关这一功能。"
{
"type": "text",
"text": "由于吸血、夹击、净化等属性值的存在,玩家可能希望自动寻路时能尽量绕开血瓶和绿宝石。\n他们可以自行在游戏设置中开关这一功能。"
}
]
},
"afterOpenDoor": {
"11,12": [
"你打开了一扇绿门,触发了一个 afterOpenDoor 事件。"
{
"type": "text",
"text": "你打开了一扇绿门,触发了一个 afterOpenDoor 事件。"
}
],
"10,6": [
"这是一扇高度为 48 个像素而非 32 个像素的门。\n高门和高NPC的素材存放在 materials 文件夹中 npc48.png 的部分。"
{
"type": "text",
"text": "这是一扇高度为 48 个像素而非 32 个像素的门。\n高门和高NPC的素材存放在 materials 文件夹中 npc48.png 的部分。"
}
]
},
"cannotMove": {},

View File

@ -53,7 +53,11 @@ main.floors.sample1=
"type": "sleep",
"time": 500
},
"\t[redKing]\b[this,1,5]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下我就与你一对一的决斗。\n现在你必须接受我的安排。",
{
"type": "text",
"icon": "redKing",
"text": "欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下我就与你一对一的决斗。\n现在你必须接受我的安排。"
},
{
"type": "setBlock",
"number": "blueKing",
@ -77,7 +81,11 @@ main.floors.sample1=
],
"time": 500
},
"\t[hero]\b[hero]什么?",
{
"type": "text",
"title": "勇士",
"text": "什么?"
},
{
"type": "animate",
"name": "hand",
@ -162,13 +170,27 @@ main.floors.sample1=
}
],
"2,11": [
"\t[杰克,thief]\b[this]喂!醒醒!快醒醒!",
{
"type": "text",
"title": "杰克",
"icon": "thief",
"text": "喂!醒醒!快醒醒!"
},
{
"type": "setCurtain",
"time": 1500
},
"\t[hero]\b[hero]额,我这是在什么地方?",
"\t[杰克,thief]\b[this]你被魔王抓了起来扔进了监狱,和我关在了一起,但是幸运的是我在昨天刚刚挖好一条越狱的暗道!",
{
"type": "text",
"title": "勇士",
"text": "额,我这是在什么地方?"
},
{
"type": "text",
"title": "杰克",
"icon": "thief",
"text": "你被魔王抓了起来扔进了监狱,和我关在了一起,但是幸运的是我在昨天刚刚挖好一条越狱的暗道!"
},
{
"type": "openDoor",
"loc": [
@ -184,7 +206,12 @@ main.floors.sample1=
"type": "sleep",
"time": 300
},
"\t[杰克,thief]\b[this]我先走了,祝你好运!",
{
"type": "text",
"title": "杰克",
"icon": "thief",
"text": "我先走了,祝你好运!"
},
{
"type": "move",
"time": 750,
@ -193,15 +220,47 @@ main.floors.sample1=
"down:1"
]
},
"上面是个move事件可以对NPC等进行移动。\n详见样板中小偷事件的写法。",
"\t[hero]\b[hero]怎么跑的这么快..."
{
"type": "text",
"text": "上面是个move事件可以对NPC等进行移动。\n详见样板中小偷事件的写法。"
},
{
"type": "text",
"title": "勇士",
"text": "怎么跑的这么快..."
}
],
"4,2": [
"\t[老人,man]\b[this]本塔的商店有两类,全局商店和非全局商店。\n\n所谓非全局商店就类似于右下角那个卖钥匙的老人一样一定要碰到才能触发事件。\n\n而全局商店则能在快捷商店中直接使用。",
"\t[老人,man]\b[this]要注册一个全局商店,你需要在全塔属性中,找到“全局商店”,并在内添加你的商店信息。",
"\t[老人,man]\b[this]商店信息添加后,可以在需要的事件处调用{\"type\": \"openShop\"}来打开你添加的全局商店。",
"\t[老人,man]\b[this]在上面的例子里左边是一个仿51层的金币商店右边是一个仿24层的经验商店。\n\n商店被访问后即可在快捷商店中进行使用。",
"\t[老人,man]\b[this]如果你需要在某层禁用快捷商店,可以在其楼层属性中设置“快捷商店”。\n如果需要永久禁用商店直到重新通过触碰NPC打开请使用{\"type\":\"disableShop\"}",
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "本塔的商店有两类,全局商店和非全局商店。\n\n所谓非全局商店就类似于右下角那个卖钥匙的老人一样一定要碰到才能触发事件。\n\n而全局商店则能在快捷商店中直接使用。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "要注册一个全局商店,你需要在全塔属性中,找到“全局商店”,并在内添加你的商店信息。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "商店信息添加后,可以在需要的事件处调用启用并开启商店来打开你添加的全局商店。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "在上面的例子里左边是一个仿51层的金币商店右边是一个仿24层的经验商店。\n\n商店被访问后即可在快捷商店中进行使用。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "如果你需要在某层禁用快捷商店,可以在其楼层属性中设置“快捷商店”。\n如果需要永久禁用商店直到重新通过触碰NPC打开请使用禁用商店事件。"
},
{
"type": "hide",
"time": 500
@ -222,8 +281,18 @@ main.floors.sample1=
}
],
"7,7": [
"\t[老人,man]\b[this]这是一个典型的杀怪开门、强制战斗事件。",
"\t[老人,man]\b[this]下面的那四个箭头表示单向通行,画在任何一个图层都有效。",
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "这是一个典型的杀怪开门、强制战斗事件。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "下面的那四个箭头表示单向通行,画在任何一个图层都有效。"
},
{
"type": "hide",
"time": 500
@ -243,10 +312,28 @@ main.floors.sample1=
}
],
"10,4": [
"\t[blackKing]\b[this]你终于还是来了。",
"\t[hero]\b[hero]放开我们的公主!",
"\t[blackKing]\b[this]如果我不愿意呢?",
"\t[hero]\b[hero]无需多说,拔剑吧!",
{
"type": "text",
"title": "魔王",
"icon": "blackKing",
"text": "你终于还是来了。"
},
{
"type": "text",
"title": "勇士",
"text": "放开我们的公主!"
},
{
"type": "text",
"title": "魔王",
"icon": "blackKing",
"text": "如果我不愿意呢?"
},
{
"type": "text",
"title": "勇士",
"text": "无需多说,拔剑吧!"
},
{
"type": "battle",
"loc": [
@ -261,22 +348,45 @@ main.floors.sample1=
7
]
},
"\t[blackKing]没想到你已经变得这么强大了... 算你厉害。\n公主就交给你了请好好对她。",
{
"type": "text",
"title": "魔王",
"icon": "blackKing",
"text": "没想到你已经变得这么强大了... 算你厉害。\n公主就交给你了请好好对她。"
},
{
"type": "hide"
}
],
"10,0": [
"\t[hero]\b[hero]公主,我来救你了~",
"\t[公主,princess]\b[this]快救我出去!我受够这里了!",
"\t[hero]\b[hero]公主别怕,我们走吧~",
{
"type": "text",
"title": "勇士",
"text": "公主,我来救你了~"
},
{
"type": "text",
"title": "公主",
"icon": "princess",
"text": "快救我出去!我受够这里了!"
},
{
"type": "text",
"title": "勇士",
"text": "公主别怕,我们走吧~"
},
{
"type": "win",
"reason": "救出公主"
}
],
"6,11": [
"\t[仙子,fairy]\b[this]通过调用 {\"type\": \"closeDoor\"} 可以在空地关上一扇门或墙。\n比如我下面这个机关门。",
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "通过调用关门事件可以在空地关上一扇门或墙。\n比如我下面这个机关门。"
},
{
"type": "closeDoor",
"id": "steelDoor",
@ -285,7 +395,12 @@ main.floors.sample1=
12
]
},
"\t[仙子,fairy]\b[this]通过调用 {\"type\": \"openDoor\"} 可以无需钥匙打开一扇门或暗墙。",
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "通过调用开门事件可以无需钥匙打开一扇门或暗墙。"
},
{
"type": "openDoor",
"loc": [
@ -293,7 +408,12 @@ main.floors.sample1=
12
]
},
"\t[仙子,fairy]\b[this]同时,也可以对其它层进行操作,比如楼下的机关门,现在已经为你打开了。",
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "同时,也可以对其它层进行操作,比如楼下的机关门,现在已经为你打开了。"
},
{
"type": "openDoor",
"loc": [
@ -302,8 +422,18 @@ main.floors.sample1=
],
"floorId": "sample0"
},
"\t[仙子,fairy]\b[this]如果当前楼层的 show 或 hide 指定了 time 参数,则以动画效果显示,指定的参数作为淡入淡出时间(毫秒)来计算。",
"\t[仙子,fairy]\b[this]现在到楼下来找我吧~",
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "如果当前楼层的 show 或 hide 指定了 time 参数,则以动画效果显示,指定的参数作为淡入淡出时间(毫秒)来计算。"
},
{
"type": "text",
"title": "仙子",
"icon": "fairy",
"text": "现在到楼下来找我吧~"
},
{
"type": "show",
"loc": [
@ -326,10 +456,36 @@ main.floors.sample1=
"operator": "+=",
"value": "1"
},
"\t[老人,man]\b[this]在文字中使用$+{}可以计算并显示一个表达式的结果。\n",
"\t[老人,man]\b[this]例如:\n你的当前攻击力是${status:atk},防御力是${status:def}。\n攻防和的十倍是${10*(status:atk+status:def)},攻防之积是${status:atk*status:def}。\n你有${item:yellowKey}把黄钥匙,${item:blueKey}把蓝钥匙,${item:redKey}把红钥匙。\n你有${item:pickaxe}个破,${item:bomb}个炸,${item:centerFly}个飞。\n这是你第${flag:man_times}次和我对话。",
"\t[老人,man]\b[this]同时,你也可以通过{\"type\": \"setValue\"}来设置一个勇士的属性、道具或某个Flag。",
"\t[老人,man]\b[this]例如:\n现在我将让你的攻防提升50%,再将攻防和的十倍加到生命值上。",
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "在文字中使用$+{}可以计算并显示一个表达式的结果。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "例如:\n你的当前攻击力是${status:atk},防御力是${status:def}。\n攻防和的十倍是${10*(status:atk+status:def)},攻防之积是${status:atk*status:def}。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "你有${item:yellowKey}把黄钥匙,${item:blueKey}把蓝钥匙,${item:redKey}把红钥匙。\n你有${item:pickaxe}个破,${item:bomb}个炸,${item:centerFly}个飞。\n这是你第${flag:man_times}次和我对话。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "同时你也可以通过数值操作事件来设置一个勇士的属性、道具或某个Flag。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "例如:\n现在我将让你的攻防提升50%,再将攻防和的十倍加到生命值上。"
},
{
"type": "setValue",
"name": "status:atk",
@ -348,7 +504,12 @@ main.floors.sample1=
"operator": "+=",
"value": "10*(status:atk+status:def)"
},
"\t[老人,man]\b[this]再送你500金币1000经验1破2炸3飞",
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "再送你500金币1000经验1破2炸3飞"
},
{
"type": "setValue",
"name": "status:money",
@ -379,8 +540,30 @@ main.floors.sample1=
"operator": "+=",
"value": "3"
},
"\t[老人,man]\b[this]status:xxx 代表勇士的某个属性。\n其中xxx可取生命、攻击、防御、护盾、金币、经验等很多项。\n\nitem:xxx 代表勇士的某个道具的个数。\nxxx为道具ID具体可参见items.js中的定义。\n\nflag:xxx 代表某个自定义Flag或变量。\nxxx为Flag/变量名,可以自行定义,由字母、数字和下划线甚至中文组成。\n未定义过而直接取用的Flag默认值为0.",
"\t[老人,man]\b[this]你现在可以重新和我进行对话,进一步看到属性值的改变。"
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "status:xxx 代表勇士的某个属性。\n其中xxx可取生命、攻击、防御、护盾、金币、经验等很多项。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "item:xxx 代表勇士的某个道具的个数。\nxxx为道具ID具体可参见items.js中的定义。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "flag:xxx 代表某个自定义Flag或变量。\nxxx为Flag/变量名,可以自行定义,由字母、数字和下划线甚至中文组成。\n未定义过而直接取用的Flag默认值为0。"
},
{
"type": "text",
"title": "老人",
"icon": "man",
"text": "你现在可以重新和我进行对话,进一步看到属性值的改变。"
}
],
"10,11": [
{
@ -394,23 +577,53 @@ main.floors.sample1=
{
"case": "0",
"action": [
"\t[老人,trader]这是个很复杂的例子它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。",
"\t[老人,trader]第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后将送你一把大黄门钥匙并消失不再出现。",
"\t[老人,trader]这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。"
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "这是个很复杂的例子它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。"
},
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后将送你一把大黄门钥匙并消失不再出现。"
},
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。"
}
]
},
{
"case": "8",
"action": [
"\t[老人,trader]你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。",
"\t[老人,trader]看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。",
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。"
},
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。"
},
{
"type": "setValue",
"name": "item:bigKey",
"operator": "+=",
"value": "1"
},
"\t[老人,trader]我先走了,拜拜~",
{
"type": "text",
"title": "老人",
"icon": "trader",
"text": "我先走了,拜拜~"
},
{
"type": "hide",
"time": 500
@ -425,14 +638,16 @@ main.floors.sample1=
"action": [
{
"type": "choices",
"text": "\t[老人,trader]少年,你需要钥匙吗?\n我这里有大把的",
"title": "老人",
"icon": "trader",
"text": "少年,你需要钥匙吗?\n我这里有大把的",
"choices": [
{
"text": "黄钥匙(${9+flag:woman_times}金币)",
"action": [
{
"type": "if",
"condition": "status:money>=9+flag:woman_times",
"condition": "(status:money>=9+flag:woman_times)",
"true": [
{
"type": "setValue",
@ -448,9 +663,15 @@ main.floors.sample1=
}
],
"false": [
"\t[老人,trader]你的金钱不足!",
{
"type": "continue"
"type": "text",
"title": "老人",
"icon": "trader",
"text": "你的金钱不足!"
},
{
"type": "continue",
"n": 1
}
]
}
@ -461,7 +682,7 @@ main.floors.sample1=
"action": [
{
"type": "if",
"condition": "status:money>=18+2*flag:woman_times",
"condition": "(status:money>=18+2*flag:woman_times)",
"true": [
{
"type": "setValue",
@ -477,9 +698,15 @@ main.floors.sample1=
}
],
"false": [
"\t[老人,trader]你的金钱不足!",
{
"type": "continue"
"type": "text",
"title": "老人",
"icon": "trader",
"text": "你的金钱不足!"
},
{
"type": "continue",
"n": 1
}
]
}
@ -490,7 +717,7 @@ main.floors.sample1=
"action": [
{
"type": "if",
"condition": "status:money>=36+4*flag:woman_times",
"condition": "(status:money>=36+4*flag:woman_times)",
"true": [
{
"type": "setValue",
@ -506,9 +733,15 @@ main.floors.sample1=
}
],
"false": [
"\t[老人,trader]你的金钱不足!",
{
"type": "continue"
"type": "text",
"title": "老人",
"icon": "trader",
"text": "你的金钱不足!"
},
{
"type": "continue",
"n": 1
}
]
}
@ -538,8 +771,18 @@ main.floors.sample1=
}
],
"12,11": [
"\t[老人,recluse]\b[this]使用 {\"type\":\"input\"} 可以弹窗请求玩家输入数字",
"\t[老人,recluse]\b[this]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。",
{
"type": "text",
"title": "老人",
"icon": "recluse",
"text": "使用接受用户输入数字事件可以弹窗请求玩家输入数字"
},
{
"type": "text",
"title": "老人",
"icon": "recluse",
"text": "例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。"
},
{
"type": "input",
"text": "请输入你要加攻击力的数值:"
@ -558,11 +801,21 @@ main.floors.sample1=
"type": "tip",
"text": "操作成功,攻击+${flag:input}"
},
"操作成功,攻击+${flag:input}"
{
"type": "text",
"title": "老人",
"icon": "recluse",
"text": "操作成功,攻击+${flag:input}"
}
],
"false": []
},
"\t[老人,recluse]\b[this]具体可参见样板中本事件的写法。"
{
"type": "text",
"title": "老人",
"icon": "recluse",
"text": "具体可参见样板中本事件的写法。"
}
]
},
"changeFloor": {
@ -626,5 +879,12 @@ main.floors.sample1=
},
"width": 13,
"height": 13,
"beforeBattle": {}
"beforeBattle": {},
"cannotMoveIn": {},
"bg2map": [
],
"fg2map": [
]
}

View File

@ -42,10 +42,7 @@ main.floors.sample2=
"height": 26,
"firstArrive": [],
"events": {
"12,12": [
"234"
],
"10,11": {
"1,10": {
"trigger": "action",
"enable": true,
"noPass": null,
@ -59,7 +56,50 @@ main.floors.sample2=
"shadow": 0
},
"data": [
"\t[小妖精,bearRight]欢迎使用事件编辑器(双击方块可直接预览)"
{
"type": "text",
"text": "大怪物在 2.B 版本暂不可用,将会在 2.B.1 或 2.B.2 中更新。"
}
]
},
"2,5": {
"trigger": "action",
"enable": true,
"noPass": null,
"displayDamage": true,
"opacity": 1,
"filter": {
"blur": 0,
"hue": 0,
"grayscale": 0,
"invert": false,
"shadow": 0
},
"data": [
{
"type": "text",
"text": "大怪物在 2.B 版本暂不可用,将会在 2.B.1 或 2.B.2 中更新。"
}
]
},
"9,5": {
"trigger": "action",
"enable": true,
"noPass": null,
"displayDamage": true,
"opacity": 1,
"filter": {
"blur": 0,
"hue": 0,
"grayscale": 0,
"invert": false,
"shadow": 0
},
"data": [
{
"type": "text",
"text": "大怪物在 2.B 版本暂不可用,将会在 2.B.1 或 2.B.2 中更新。"
}
]
}
},
@ -86,5 +126,11 @@ main.floors.sample2=
],
"autoEvent": {},
"beforeBattle": {},
"cannotMoveIn": {}
"cannotMoveIn": {},
"bg2map": [
],
"fg2map": [
]
}