样板层文案;关门音效
This commit is contained in:
parent
2994378c87
commit
8409bb13ed
@ -1495,7 +1495,7 @@ tooltip : closeDoor: 关门事件,需要该点本身无事件
|
||||
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=opendoor%EF%BC%9A%E5%BC%80%E9%97%A8
|
||||
default : ["","","yellowDoor",false]
|
||||
selectPoint : ["PosString_0", "PosString_1"]
|
||||
allIds : ['IdString_0']
|
||||
allDoors : ['IdString_0']
|
||||
colour : this.mapColor
|
||||
var floorstr = '';
|
||||
if (PosString_0 && PosString_1) {
|
||||
|
||||
@ -519,6 +519,10 @@ editor_blockly = function () {
|
||||
namesObj.allColors = ["aqua(青色)", "black(黑色)", "blue(蓝色)", "fuchsia(品红色)", "gray(灰色)", "green(深绿色)", "lime(绿色)",
|
||||
"maroon(深红色)", "navy(深蓝色)", "gold(金色)", "olive(黄褐色)", "orange(橙色)", "purple(品红色)",
|
||||
"red(红色)", "silver(淡灰色)", "teal(深青色)", "white(白色)", "yellow(黄色)"];
|
||||
namesObj.allDoors = ["this"].concat(Object.keys(maps_90f36752_8815_4be8_b32b_d7fad1d0542e)
|
||||
.map(function (key) { return maps_90f36752_8815_4be8_b32b_d7fad1d0542e[key]; })
|
||||
.filter(function (one) { return one.doorInfo != null; })
|
||||
.map(function (one) { return one.id; }));
|
||||
var filter = function (list, content) {
|
||||
return list.filter(function (one) {
|
||||
return one != content && one.startsWith(content);
|
||||
@ -534,7 +538,7 @@ editor_blockly = function () {
|
||||
// 对音效进行补全
|
||||
// 对全局商店进行补全
|
||||
// 对楼层名进行补全
|
||||
for(var ii=0,names;names=['allIds','allEnemys','allItems','allImages','allAnimates','allBgms','allSounds','allShops','allFloorIds'][ii];ii++){
|
||||
for(var ii=0,names;names=['allIds','allEnemys','allItems','allImages','allAnimates','allBgms','allSounds','allShops','allFloorIds','allDoors'][ii];ii++){
|
||||
if (MotaActionBlocks[type][names] && eval(MotaActionBlocks[type][names]).indexOf(name)!==-1) {
|
||||
return filter(namesObj[names], content);
|
||||
}
|
||||
|
||||
@ -2643,7 +2643,7 @@ events.prototype.closeDoor = function (x, y, id, callback) {
|
||||
}
|
||||
|
||||
// 关门动画
|
||||
core.playSound(doorInfo.closeDoor);
|
||||
core.playSound(doorInfo.closeSound);
|
||||
var blockInfo = core.getBlockInfo(id);
|
||||
var image = blockInfo.image, posY = blockInfo.posY, height = blockInfo.height;
|
||||
|
||||
|
||||
@ -30,6 +30,11 @@ main.floors.sample0=
|
||||
"background": "winskin.png",
|
||||
"time": 0
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:animate",
|
||||
"value": "true"
|
||||
},
|
||||
"\t[样板提示]首次到达某层可以触发 firstArrive 事件,该事件可类似于RMXP中的“自动执行脚本”。\n\n本事件支持一切的事件类型,常常用来触发对话,例如:",
|
||||
"\t[hero]\b[up,hero]我是谁?我从哪来?我又要到哪去?",
|
||||
"\t[仙子,fairy]你问我...?我也不知道啊...",
|
||||
@ -37,8 +42,8 @@ main.floors.sample0=
|
||||
],
|
||||
"events": {
|
||||
"10,9": [
|
||||
"\t[老人,man]这些是本样板支持的所有的道具。\n\n道具分为四类:items, constants, tools,equips。\nitems 为即捡即用类道具,例如宝石、血瓶、剑盾等。\nconstants 为永久道具,例如怪物手册、楼层传送器、幸运金币等。\ntools 为消耗类道具,例如破墙镐、炸弹、中心对称飞行器等。\nequips 为装备,例如剑盾等。",
|
||||
"\t[老人,man]\b[up]有关道具效果,定义在items.js中。\n目前大多数道具已有默认行为,如有自定义的需求则需在items.js中修改代码。",
|
||||
"\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": "hide",
|
||||
@ -46,56 +51,59 @@ main.floors.sample0=
|
||||
}
|
||||
],
|
||||
"10,11": [
|
||||
"\t[老人,trader]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。",
|
||||
"\t[老人,trader]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
|
||||
"\t[老人,trader]\b[this]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。",
|
||||
"\t[老人,trader]\b[this]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
],
|
||||
"2,10": [
|
||||
"\t[少女,npc0]这些是路障、楼梯、传送门。",
|
||||
"\t[少女,npc0]血网的伤害数值、中毒后每步伤害数值、衰弱时攻防下降的数值,都在 data.js 内定义。\n\n路障同样会尽量被自动寻路绕过。",
|
||||
"\t[少女,npc0]楼梯和传送门需要在changeFloor中定义目标楼层和位置,可参见样板里已有的的写法。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
],
|
||||
"2,8": [
|
||||
"\t[老人,wizard]这些都是各种各样的怪物,所有怪物的数据都在enemys.js中设置。",
|
||||
"\t[老人,wizard]这批怪物分别为:普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。",
|
||||
"\t[老人,wizard]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
|
||||
"\t[少女,npc0]\b[this]这些是路障、楼梯、传送门。",
|
||||
"\t[少女,npc1]\b[this]血网的伤害数值、中毒后每步伤害数值、衰弱时攻防下降的数值,都在全塔属性(快捷键B)的全局数值(values)内定义。\n\n路障同样会尽量被自动寻路绕过。",
|
||||
"\t[少女,npc2]\b[this]楼梯和传送门需要在地图选点(快捷键X)的“楼层转换”中定义目标楼层和位置,可参见样板里已有的的写法。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
],
|
||||
"2,5": [
|
||||
"\t[老人,wizard]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。",
|
||||
"\t[老人,wizard]\b[this]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
],
|
||||
"2,3": [
|
||||
"\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。",
|
||||
"\t[老人,wizard]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。",
|
||||
"\t[老人,wizard]\b[this]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。",
|
||||
"\t[老人,wizard]\b[this]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
],
|
||||
"12,10": {
|
||||
"trigger": null,
|
||||
"enable": false,
|
||||
"noPass": null,
|
||||
"displayDamage": true,
|
||||
"data": [
|
||||
"\t[仙子,fairy]只有楼上启用事件后,才能看到我并可以和我对话来触发事件。",
|
||||
"\t[仙子,fairy]\b[this]只有楼上启用事件后,才能看到我并可以和我对话来触发事件。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"2,8": [
|
||||
"\t[老人,wizard]\b[this]这些都是各种各样的怪物,所有怪物的数据都在project文件夹的enemys.js中设置。",
|
||||
"\t[老人,wizard]\b[this]这批怪物分别为:普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。",
|
||||
"\t[老人,wizard]\b[this]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
|
||||
{
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"6,0": {
|
||||
@ -165,46 +173,46 @@ main.floors.sample0=
|
||||
},
|
||||
"afterBattle": {
|
||||
"2,6": [
|
||||
"\t[ghostSkeleton]不可能,你怎么可能打败我!\n(一个打败怪物触发的事件)"
|
||||
"\t[ghostSoldier]\b[this]不可能,你怎么可能打败我!\n(一个打败怪物触发的事件)"
|
||||
]
|
||||
},
|
||||
"afterGetItem": {
|
||||
"11,8": [
|
||||
"由于状态栏放不下,绿钥匙和铁门钥匙均视为tools,放入工具栏中。\n碰到绿门和铁门仍然会自动使用开门。"
|
||||
"由于状态栏放不下,铁门钥匙(根据全塔属性的系统开关勾选与否,可能还有绿钥匙)会被放入道具栏中。\n碰到绿门和铁门仍然会自动使用钥匙(根据全塔属性的系统开关勾选与否,铁门可能不需要钥匙)开门。"
|
||||
],
|
||||
"8,6": [
|
||||
"由于吸血和夹击等的存在,血瓶默认自动被绕路。\n你可以修改data.js中的系统Flag来设置这一项。"
|
||||
"由于吸血、夹击和净化等的存在,玩家可能希望自动寻路能尽量绕开血瓶和绿宝石,\n他们可以自行在游戏设置中开关这一功能。"
|
||||
],
|
||||
"8,7": [
|
||||
"如需修改消耗品的效果,请前往 data.js ,找到并修改values内对应的具体数值即可。\n如果有更高级的需求(如每个区域宝石数值变化),详见doc文档内的做法说明。"
|
||||
"如需修改消耗品的效果,请前往全塔属性(快捷键B),找到并修改values(全局数值)内对应的具体数值即可。\n如果有高级的需求(如每个区域宝石数值变化),请修改楼层属性(快捷键V)最下方的“宝石血瓶效果”。\n如果有更高级的需求,请阅读帮助文档。"
|
||||
],
|
||||
"9,5": [
|
||||
"每层楼的 canFlyTo 决定了该楼层能否被飞到。\n\n不能被飞到的楼层也无法使用楼层传送器。",
|
||||
"飞行的楼层顺序由 main.js 中 floorIds 加载顺序所决定。\n\n是否必须在楼梯边使用楼传器由 data.js 中的系统Flag所决定。"
|
||||
"每层楼的“可楼传”勾选框决定了该楼层能否被飞到。\n\n勇士在不能被飞到的楼层也无法使用楼层传送器。",
|
||||
"飞行的楼层顺序由全塔属性(快捷键B)中的“楼层列表”所决定。\n\n是否必须在楼梯边使用楼传器由全塔属性中的系统开关所决定。"
|
||||
],
|
||||
"10,5": [
|
||||
"破墙镐是破面前的墙壁还是四个方向的墙壁,由data.js中的系统Flag所决定。"
|
||||
"破墙镐是破面前的墙壁还是四个方向的墙壁,由其图块属性(快捷键C)的“使用效果”决定。\n哪些图块(怪物和道具除外)可以被破震,由该图块的图块属性中的“可破震”决定。"
|
||||
],
|
||||
"8,4": [
|
||||
"炸弹是只能炸面前的怪物还是四个方向的怪物,由data.js中的系统Flag所决定。\n如只能炸前方怪物则和上面的圣锤等价。\n不能被炸的怪物在enemys中可以定义,可参见样板里黑衣魔王和黑暗大法师的写法。"
|
||||
"炸弹是只能炸面前的怪物还是四个方向的怪物,由其图块属性(快捷键C)中的“使用效果”决定。\n不能被炸的怪物请直接在该怪物的图块属性中勾选“不可炸”,可参见样板里黑衣魔王和黑暗大法师的写法。"
|
||||
],
|
||||
"10,4": [
|
||||
"“上楼”和“下楼”的目标层由 main.js 的 floorIds顺序所决定。"
|
||||
"“上楼”和“下楼”的目标层由全塔属性(快捷键B)的“楼层列表”顺序所决定。"
|
||||
],
|
||||
"9,2": [
|
||||
"该道具默认是大黄门钥匙,如需改为钥匙盒直接修改 data.js 中的系统Flag即可。"
|
||||
"该道具默认是大黄门钥匙,如需改为钥匙盒直接修改其图块属性(快捷键C)的“道具类别”为items即可。"
|
||||
],
|
||||
"10,2": [
|
||||
"屠龙匕首目前未被定义,可能需要自行实现功能。\n有关如何实现一个道具功能参见doc文档。"
|
||||
"屠龙匕首目前未被定义,可能需要自行实现功能。\n有关如何实现一个道具功能参见帮助文档。"
|
||||
],
|
||||
"12,7": [
|
||||
"在 data.js 的系统Flag中设置是否启用装备栏。\n如果不启用则装备会直接增加属性。"
|
||||
"剑盾的道具类别设为equips才可以装备,\n如果设为items则会直接增加属性。"
|
||||
],
|
||||
"12,6": [
|
||||
"在 data.js 的系统Flag中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。"
|
||||
"在全塔属性(快捷键B)的系统开关中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。\n无论是否启用,玩家都可以双击道具栏按钮呼出装备栏。"
|
||||
],
|
||||
"12,5": [
|
||||
"装备的种类由全塔属性中的equipName决定,type的值就是该类型在equipName中的位次,例如默认情况下equiptype为0代表武器,同时只有type为0的装备的animate属性生效"
|
||||
"装备的种类由全塔属性(快捷键B)中的“装备孔”决定,每件装备的“类型”就是在“装备孔”中的索引,\n例如默认情况下0代表武器。同时,只有第一个装备孔中的装备,其“普攻动画”属性才会生效。"
|
||||
]
|
||||
},
|
||||
"afterOpenDoor": {
|
||||
|
||||
@ -27,54 +27,37 @@ main.floors.sample1=
|
||||
[152,152,152,152,121,152,152,152, 0, 0,229, 0, 0],
|
||||
[ 43, 33, 44,151, 0, 0, 0,152,165,161, 0,163,165],
|
||||
[ 21, 22, 21,151, 0, 0, 0,152,166,165, 0,165,166],
|
||||
[151,245,151,151, 0, 87, 0,152,152,152, 85,153,153],
|
||||
[ 0,246, 0,151, 0, 0, 0,152,152,221, 0,221,153],
|
||||
[246, 0,246,151, 0, 0, 0,121, 85, 0, 0, 0,153],
|
||||
[151,246,151,151, 0,153,153,153,153,153,153,153,153],
|
||||
[151, 0,151,151, 0, 87, 0,152,152,152, 85,153,153],
|
||||
[ 0, 0, 0,151, 0, 0, 0,152,152,221, 0,221,153],
|
||||
[ 0, 0, 0,151, 0, 0, 0,121, 0, 0, 0, 0,153],
|
||||
[151, 0,151,151, 0,153,153,153,153,153,153,153,153],
|
||||
[ 0, 0, 0, 0, 0, 0, 0,164, 0, 0,163, 0, 0],
|
||||
[ 1, 1, 1, 1, 0, 20, 0, 0, 0,162, 0,161, 0],
|
||||
[ 1, 0,123, 1, 0, 20,124, 0,121, 0,122, 0,126],
|
||||
[ 1, 0, 0, 1, 88, 20, 86, 0, 0, 0, 0, 0, 0]
|
||||
[ 1, 0, 0, 1, 88, 20, 0, 0, 0, 0, 0, 0, 0]
|
||||
],
|
||||
"firstArrive": [],
|
||||
"events": {
|
||||
"4,10": [
|
||||
"\t[样板提示]本层楼将会对各类事件进行介绍。",
|
||||
"左边是一个仿50层的陷阱做法,上方是商店、快捷商店的使用方法,右上是一个典型的杀怪开门的例子,右下是各类可能的NPC事件。",
|
||||
"左边是一个仿51层的陷阱做法,上方是商店、快捷商店的使用方法,右上是一个典型的杀怪开门的例子,右下是各类可能的NPC事件。",
|
||||
"本样板目前支持的事件列表大致有:\ntext: 显示一段文字(比如你现在正在看到的)\ntip: 左上角显示提示\nshow: 使一个事件有效(可见、可被交互)\nhide: 使一个事件失效(不可见、不可被交互)\ntrigger: 触发另一个地点的事件\nanimate: 显示动画\nbattle: 强制和某怪物战斗\nopenDoor: 无需钥匙开门(例如机关门、暗墙)",
|
||||
"openShop: 打开一个全局商店\ndisableShop: 禁用一个全局商店\nchangeFloor: 传送勇士到某层某位置\nchangePos: 传送勇士到当层某位置;转向\nshowImage: 显示图片\nsetFg: 更改画面色调\nsetWeather: 更改天气\nmove: 移动事件效果\nmoveHero: 移动勇士效果\nplayBgm: 播放某个背景音乐\npauseBgm: 暂停背景音乐\nresumeBgm: 恢复背景音乐的播放\nplaySound: 播放某个音频",
|
||||
"openShop: 打开一个全局商店\ndisableShop: 禁用一个全局商店\nchangeFloor: 传送勇士到某层某位置\nchangePos: 传送勇士到当层某位置;转向\nshowImage: 显示图片\nsetCurtain: 更改画面色调\nsetWeather: 更改天气\nmove: 移动事件效果\nmoveHero: 移动勇士效果\nplayBgm: 播放某个背景音乐\npauseBgm: 暂停背景音乐\nresumeBgm: 恢复背景音乐的播放\nplaySound: 播放某个音频",
|
||||
"if: 条件判断\nchoices: 提供选项\nsetValue: 设置勇士属性道具,或某个变量/flag\nupdate: 更新状态栏和地图显伤\nwin: 获得胜利(游戏通关)\nlose: 游戏失败\nsleep: 等待多少毫秒\nexit: 立刻结束当前事件\nfunction: 自定义JS脚本\n\n更多支持的事件还在编写中,欢迎您宝贵的意见。",
|
||||
"有关各事件的样例,可参见本层一些NPC的写法。\n所有事件样例本层都有介绍。\n\n一个自定义事件处理完后,需要调用{\"type\": \"hide\"}该事件才不会再次出现。",
|
||||
{
|
||||
"type": "hide"
|
||||
}
|
||||
],
|
||||
"1,5": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"1,6": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"0,7": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"2,7": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"1,8": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"1,7": [
|
||||
{
|
||||
"type": "show",
|
||||
"type": "setBlock",
|
||||
"number": "redMS",
|
||||
"loc": [
|
||||
1,
|
||||
5
|
||||
[
|
||||
1,
|
||||
5
|
||||
]
|
||||
],
|
||||
"time": 1500
|
||||
},
|
||||
@ -82,9 +65,10 @@ main.floors.sample1=
|
||||
"type": "sleep",
|
||||
"time": 500
|
||||
},
|
||||
"\t[redKing]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下,我就与你一对一的决斗。\n现在你必须接受我的安排。",
|
||||
"\t[redMS]\b[this,1,5]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下,我就与你一对一的决斗。\n现在你必须接受我的安排。",
|
||||
{
|
||||
"type": "show",
|
||||
"type": "setBlock",
|
||||
"number": "blueMS",
|
||||
"loc": [
|
||||
[
|
||||
1,
|
||||
@ -105,10 +89,11 @@ main.floors.sample1=
|
||||
],
|
||||
"time": 500
|
||||
},
|
||||
"\t[hero]什么?",
|
||||
"\t[hero]\b[hero]什么?",
|
||||
{
|
||||
"type": "playSound",
|
||||
"name": "attack.mp3"
|
||||
"type": "animate",
|
||||
"name": "hand",
|
||||
"loc": "hero"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
@ -141,13 +126,16 @@ main.floors.sample1=
|
||||
1,
|
||||
8
|
||||
]
|
||||
]
|
||||
],
|
||||
"time": 500
|
||||
},
|
||||
{
|
||||
"type": "hide",
|
||||
"loc": [
|
||||
1,
|
||||
5
|
||||
[
|
||||
1,
|
||||
5
|
||||
]
|
||||
],
|
||||
"time": 500
|
||||
},
|
||||
@ -186,13 +174,13 @@ main.floors.sample1=
|
||||
}
|
||||
],
|
||||
"2,11": [
|
||||
"\t[杰克,thief]喂!醒醒!快醒醒!",
|
||||
"\t[杰克,thief]\b[this]喂!醒醒!快醒醒!",
|
||||
{
|
||||
"type": "setCurtain",
|
||||
"time": 1500
|
||||
},
|
||||
"\t[hero]额,我这是在什么地方?",
|
||||
"\t[杰克,thief]你被魔王抓了起来扔进了监狱,和我关在了一起,但是幸运的是我在昨天刚刚挖好一条越狱的暗道!",
|
||||
"\t[hero]\b[hero]额,我这是在什么地方?",
|
||||
"\t[杰克,thief]\b[this]你被魔王抓了起来扔进了监狱,和我关在了一起,但是幸运的是我在昨天刚刚挖好一条越狱的暗道!",
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
@ -204,7 +192,7 @@ main.floors.sample1=
|
||||
"type": "sleep",
|
||||
"time": 300
|
||||
},
|
||||
"\t[杰克,thief]我先走了,祝你好运!",
|
||||
"\t[杰克,thief]\b[this]我先走了,祝你好运!",
|
||||
{
|
||||
"type": "move",
|
||||
"time": 750,
|
||||
@ -215,14 +203,14 @@ main.floors.sample1=
|
||||
]
|
||||
},
|
||||
"上面是个move事件,可以对NPC等进行移动。\n详见样板中小偷事件的写法。",
|
||||
"\t[hero]怎么跑的这么快..."
|
||||
"\t[hero]\b[hero]怎么跑的这么快..."
|
||||
],
|
||||
"4,2": [
|
||||
"\t[老人,man]本塔的商店有两类,全局商店和非全局商店。\n\n所谓非全局商店,就类似于右下角那个卖钥匙的老人一样,一定要碰到才能触发事件。\n\n而全局商店,则能在快捷商店中直接使用。",
|
||||
"\t[老人,man]要注册一个全局商店,你需要在 data.js 中,找到 shops,并在内添加你的商店信息。",
|
||||
"\t[老人,man]商店信息添加后,可以在需要的事件处调用{\"type\": \"openShop\"}来打开你添加的全局商店。",
|
||||
"\t[老人,man]在上面的例子里,左边是一个仿50层的金币商店,右边是一个仿24层的经验商店。\n\n商店被访问后即可在快捷商店中进行使用。",
|
||||
"\t[老人,man]如果你需要在某层暂时禁用快捷商店,可以在data.js中设置cannotUseQuickShop。\n如果需要永久禁用商店,请使用{\"type\":\"disableShop\"}",
|
||||
"\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": "hide",
|
||||
"time": 500
|
||||
@ -243,18 +231,17 @@ main.floors.sample1=
|
||||
}
|
||||
],
|
||||
"7,7": [
|
||||
"\t[老人,man]这是一个典型的杀怪开门、强制战斗事件。",
|
||||
"\t[老人,man]\b[this]这是一个典型的杀怪开门、强制战斗事件。",
|
||||
"\t[老人,man]\b[this]下面的那四个箭头表示单向通行,画在任何一个图层都有效。",
|
||||
{
|
||||
"type": "hide"
|
||||
"type": "hide",
|
||||
"time": 500
|
||||
}
|
||||
],
|
||||
"8,7": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"9,7": [
|
||||
{
|
||||
"type": "show",
|
||||
"type": "closeDoor",
|
||||
"id": "specialDoor",
|
||||
"loc": [
|
||||
8,
|
||||
7
|
||||
@ -265,16 +252,12 @@ main.floors.sample1=
|
||||
}
|
||||
],
|
||||
"10,4": [
|
||||
"\t[blackMS]你终于还是来了。",
|
||||
"\t[hero]放开我们的公主!",
|
||||
"\t[blackMS]如果我不愿意呢?",
|
||||
"\t[hero]无需多说,拔剑吧!",
|
||||
"\t[blackMS]\b[this]你终于还是来了。",
|
||||
"\t[hero]\b[hero]放开我们的公主!",
|
||||
"\t[blackMS]\b[this]如果我不愿意呢?",
|
||||
"\t[hero]\b[hero]无需多说,拔剑吧!",
|
||||
{
|
||||
"type": "battle",
|
||||
"id": "blackMS"
|
||||
},
|
||||
{
|
||||
"type": "hide",
|
||||
"loc": [
|
||||
10,
|
||||
2
|
||||
@ -293,28 +276,25 @@ main.floors.sample1=
|
||||
}
|
||||
],
|
||||
"10,0": [
|
||||
"\t[hero]公主,我来救你了~",
|
||||
"\t[公主,princess]快救我出去!我受够这里了!",
|
||||
"\t[hero]公主别怕,我们走吧~",
|
||||
"\t[hero]\b[hero]公主,我来救你了~",
|
||||
"\t[公主,princess]\b[this]快救我出去!我受够这里了!",
|
||||
"\t[hero]\b[hero]公主别怕,我们走吧~",
|
||||
{
|
||||
"type": "win",
|
||||
"reason": "救出公主"
|
||||
}
|
||||
],
|
||||
"6,12": {
|
||||
"enable": false,
|
||||
"data": []
|
||||
},
|
||||
"6,11": [
|
||||
"\t[仙子,fairy]通过调用 {\"type\": \"show\"} 可以使隐藏的事件显示出来。\n比如我下面这个机关门。",
|
||||
"\t[仙子,fairy]\b[this]通过调用 {\"type\": \"closeDoor\"} 可以在空地关上一扇门或墙。\n比如我下面这个机关门。",
|
||||
{
|
||||
"type": "show",
|
||||
"type": "closeDoor",
|
||||
"id": "steelDoor",
|
||||
"loc": [
|
||||
6,
|
||||
12
|
||||
]
|
||||
},
|
||||
"\t[仙子,fairy]通过调用 {\"type\": \"openDoor\"} 可以无需钥匙打开一扇门或暗墙。",
|
||||
"\t[仙子,fairy]\b[this]通过调用 {\"type\": \"openDoor\"} 可以无需钥匙打开一扇门或暗墙。",
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
@ -322,7 +302,7 @@ main.floors.sample1=
|
||||
12
|
||||
]
|
||||
},
|
||||
"\t[仙子,fairy]同时,也可以对其它层进行操作,比如楼下的机关门,现在已经为你打开了。",
|
||||
"\t[仙子,fairy]\b[this]同时,也可以对其它层进行操作,比如楼下的机关门,现在已经为你打开了。",
|
||||
{
|
||||
"type": "openDoor",
|
||||
"loc": [
|
||||
@ -331,13 +311,15 @@ main.floors.sample1=
|
||||
],
|
||||
"floorId": "sample0"
|
||||
},
|
||||
"\t[仙子,fairy]如果 show 或 hide 指定了 time 参数,则以动画效果显示,指定的参数作为消失时间(毫秒)来计算。",
|
||||
"\t[仙子,fairy]现在到楼下来找我吧~",
|
||||
"\t[仙子,fairy]\b[this]如果当前楼层的 show 或 hide 指定了 time 参数,则以动画效果显示,指定的参数作为淡入淡出时间(毫秒)来计算。",
|
||||
"\t[仙子,fairy]\b[this]现在到楼下来找我吧~",
|
||||
{
|
||||
"type": "show",
|
||||
"loc": [
|
||||
12,
|
||||
10
|
||||
[
|
||||
12,
|
||||
10
|
||||
]
|
||||
],
|
||||
"floorId": "sample0"
|
||||
},
|
||||
@ -353,10 +335,10 @@ main.floors.sample1=
|
||||
"operator": "+=",
|
||||
"value": "1"
|
||||
},
|
||||
"\t[老人,man]在文字中使用$+{}可以计算并显示一个表达式的结果。\n",
|
||||
"\t[老人,man]例如:\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]同时,你也可以通过{\"type\": \"setValue\"}来设置一个勇士的属性、道具,或某个Flag。",
|
||||
"\t[老人,man]例如:\n现在我将让你的攻防提升50%,再将攻防和的十倍加到生命值上。",
|
||||
"\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": "setValue",
|
||||
"name": "status:atk",
|
||||
@ -375,7 +357,7 @@ main.floors.sample1=
|
||||
"operator": "+=",
|
||||
"value": "10*(status:atk+status:def)"
|
||||
},
|
||||
"\t[老人,man]再送你500金币,1000经验,1破2炸3飞!",
|
||||
"\t[老人,man]\b[this]再送你500金币,1000经验,1破2炸3飞!",
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:money",
|
||||
@ -406,8 +388,8 @@ main.floors.sample1=
|
||||
"operator": "+=",
|
||||
"value": "3"
|
||||
},
|
||||
"\t[老人,man]status:xxx 代表勇士的某个属性。\n其中xxx可取hp, atk, def, mdef, money,exp这几项。\n\nitem:xxx 代表勇士的某个道具的个数。\nxxx为道具ID,具体可参见items.js中的定义。\n\nflag:xxx 代表某个自定义Flag或变量。\nxxx为Flag/变量名,可以自行定义,由字母、数字和下划线组成。\n未定义过而直接取用的Flag默认值为false。",
|
||||
"\t[老人,man]你现在可以重新和我进行对话,进一步看到属性值的改变。"
|
||||
"\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]你现在可以重新和我进行对话,进一步看到属性值的改变。"
|
||||
],
|
||||
"10,11": [
|
||||
{
|
||||
@ -562,15 +544,15 @@ main.floors.sample1=
|
||||
}
|
||||
],
|
||||
"12,11": [
|
||||
"\t[老人,recluse]使用 {\"type\":\"function\"} 可以写自定义的JS脚本。\n本塔支持的所有主要API会在doc文档内给出。",
|
||||
"\t[老人,recluse]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。",
|
||||
"\t[老人,recluse]\b[this]使用 {\"type\":\"input\"} 可以弹窗请求玩家输入数字",
|
||||
"\t[老人,recluse]\b[this]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。",
|
||||
{
|
||||
"type": "input",
|
||||
"text": "请输入你要加攻击力的数值:"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "flag:input>0",
|
||||
"condition": "(flag:input>0)",
|
||||
"true": [
|
||||
{
|
||||
"type": "setValue",
|
||||
@ -586,7 +568,7 @@ main.floors.sample1=
|
||||
],
|
||||
"false": []
|
||||
},
|
||||
"\t[老人,recluse]具体可参见样板中本事件的写法。"
|
||||
"\t[老人,recluse]\b[this]具体可参见样板中本事件的写法。"
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
@ -644,7 +626,8 @@ main.floors.sample1=
|
||||
"type": "openDoor"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"1": null
|
||||
}
|
||||
},
|
||||
"width": 13,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user