From 917ef0cd39fea1089ecb1dd8806ab42cad5a24dc Mon Sep 17 00:00:00 2001 From: lizhuoyuan <2820814112@qq.com> Date: Fri, 3 Jan 2025 14:21:48 +0800 Subject: [PATCH] =?UTF-8?q?cleanup:=E6=B8=85=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=A5=BC=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/floors/MT0.js | 4 +- project/floors/sample0.js | 259 ---------------- project/floors/sample1.js | 630 -------------------------------------- project/floors/sample2.js | 90 ------ 4 files changed, 3 insertions(+), 980 deletions(-) delete mode 100644 project/floors/sample0.js delete mode 100644 project/floors/sample1.js delete mode 100644 project/floors/sample2.js diff --git a/project/floors/MT0.js b/project/floors/MT0.js index 454a01b2..97626f3e 100644 --- a/project/floors/MT0.js +++ b/project/floors/MT0.js @@ -41,5 +41,7 @@ main.floors.MT0= ], "width": 13, "height": 13, - "autoEvent": {} + "autoEvent": {}, + "beforeBattle": {}, + "cannotMoveIn": {} } \ No newline at end of file diff --git a/project/floors/sample0.js b/project/floors/sample0.js deleted file mode 100644 index 7ffc7566..00000000 --- a/project/floors/sample0.js +++ /dev/null @@ -1,259 +0,0 @@ -main.floors.sample0= -{ - "floorId": "sample0", - "title": "样板 0 层", - "name": "0", - "canFlyTo": true, - "canFlyFrom": true, - "canUseQuickShop": true, - "defaultGround": "ground", - "images": [], - "bgm": "bgm.mp3", - "ratio": 1, - "map": [ - [ 0, 0,220, 0, 0, 20, 87, 3, 58, 59, 60, 61, 64], - [ 0,246, 0,246, 0, 20, 0, 3, 57, 72, 63, 43, 44], - [219, 0, 0, 0,219, 20, 0, 3, 53, 54, 55, 56, 69], - [ 20, 20,125, 20, 20, 20, 0, 3, 49, 50, 51, 52, 68], - [251,247,256,234,248, 6, 0, 3, 35, 36, 46, 47, 48], - [ 6, 6,125, 6, 6, 6, 0, 3, 0, 0, 0, 0, 0], - [208,227,212,216,278, 5, 0, 1, 1, 1,319, 1, 1], - [201,205,217,215,224, 5, 0, 1, 27, 28, 29, 30, 31], - [ 5, 5,125, 5, 5, 5, 0, 1, 21, 22, 23, 24, 26], - [ 0, 0,263, 0, 0, 0, 45, 1, 1, 1,121, 1, 1], - [ 4, 4,133, 4, 4, 4, 0, 0, 0, 0, 0, 85,124], - [ 87, 11, 12, 13, 14, 4, 4, 2, 2,122, 2, 2, 2], - [ 88, 89, 90, 91, 92, 93, 94, 2, 81, 82, 83, 84, 86] -], - "firstArrive": [ - { - "type": "setText", - "background": "winskin.png", - "time": 0 - }, - "\t[样板提示]首次到达某层可以触发 firstArrive 事件,该事件可类似于RMXP中的“自动执行脚本”。\n\n本事件支持一切的事件类型,常常用来触发对话,例如:", - "\t[hero]\b[up,hero]我是谁?我从哪来?我又要到哪去?", - "\t[仙子,fairy]你问我...?我也不知道啊...", - "本层主要对道具、门、怪物等进行介绍,有关事件的各种信息在下一层会有更为详细的说明。" - ], - "events": { - "2,10": [ - "\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]\b[this]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。", - { - "type": "hide", - "time": 500 - } - ], - "2,3": [ - "\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]\b[this]只有楼上启用事件后,才能看到我并可以和我对话来触发事件。", - { - "type": "hide", - "time": 500 - } - ] - }, - "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": "hide", - "time": 500 - } - ], - "9,11": [ - "\t[老人,trader]\b[this]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。", - "\t[老人,trader]\b[this]开门后可触发 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": "hide", - "time": 500 - } - ] - }, - "changeFloor": { - "6,0": { - "floorId": "sample1", - "stair": "downFloor" - }, - "0,11": { - "floorId": "sample0", - "loc": [ - 0, - 12 - ] - }, - "0,12": { - "floorId": "sample0", - "stair": "upFloor" - }, - "1,12": { - "floorId": "sample0", - "loc": [ - 1, - 12 - ] - }, - "2,12": { - "floorId": "sample0", - "loc": [ - 2, - 12 - ] - }, - "3,12": { - "floorId": "sample0", - "loc": [ - 6, - 1 - ], - "direction": "up" - }, - "4,12": { - "floorId": "sample0", - "loc": [ - 0, - 9 - ], - "direction": "left", - "time": 1000 - }, - "5,12": { - "floorId": "sample0", - "loc": [ - 6, - 10 - ], - "time": 0, - "portalWithoutTrigger": false - }, - "6,12": { - "floorId": "sample0", - "loc": [ - 10, - 10 - ], - "direction": "left", - "time": 1000 - } - }, - "afterBattle": { - "2,6": [ - "\t[ghostSoldier]\b[this]不可能,你怎么可能打败我!\n(一个打败怪物触发的事件)" - ], - "0,9": [ - "这是一个高度为 48 个像素而非 32 个像素的敌人。\n高敌人的素材存放在 materials 文件夹中 enemy48.png 的部分。" - ] - }, - "afterGetItem": { - "9,1": [ - "技能的支持需要依赖状态栏的“魔力”以及脚本编辑的“按键处理”,详见帮助文档“个性化”一节。" - ], - "12,2": [ - "跳跃靴和支援怪的跳跃音效是用脚本额外添加的,\n如果想为任意跳跃指令添加音效,请查阅帮助文档中的“脚本——复写函数”章节。" - ], - "8,3": [ - "炸弹是只能炸面前的怪物还是四个甚至八个方向的怪物,\n由其图块属性(快捷键C)中的“使用效果”决定。\n不能被炸的怪物请直接在该怪物的图块属性中勾选“不可炸”,\n可参见样板里黑衣魔王和黑暗大法师的写法。\nV2.8.1起,炸弹炸怪可以添加获得金经/触发战后事件,详见其使用效果中的注释。" - ], - "10,3": [ - "“上楼”和“下楼”的目标层由全塔属性(快捷键B)的“楼层列表”顺序所决定。" - ], - "12,3": [ - "如果想制作类似于生命魔杖等可以被批量使用的道具,请参照生命魔杖图块属性(快捷键B)中\n useItemEvent 的写法。\n其基本原理就是使用【接受用户输入】让玩家在弹窗中输入想要使用的物品数量,再判断玩家的输入是否合法,如果输入合法就扣减相应数量的物品并结算物品效果。\n要注意的是,在使用物品时会先消耗一个物品,所以记得在编辑 useItemEvent 时先用 core.addItem 恢复一个物品。" - ], - "8,4": [ - "剑盾的道具类别设为equips才可以装备,\n如果设为items则会直接增加属性。", - "在全塔属性(快捷键B)的系统开关中设置是否启用装备栏按钮。\n如果启用则装备栏按钮会替代楼传按钮。\n无论是否启用,玩家都可以双击道具栏按钮呼出装备栏。" - ], - "9,4": [ - "装备的种类由全塔属性(快捷键B)中的“装备孔”决定。\n每件装备的“类型”就是在“装备孔”中的索引,例如默认情况下 0 代表武器。\n同时,只有第一个装备孔中的装备,其“普攻动画”属性才会生效。" - ], - "10,4": [ - "每层楼的“可楼传”勾选框决定了该楼层能否被飞到。\n\n勇士在不能被飞到的楼层也无法使用楼层传送器。", - "飞行的楼层顺序由全塔属性(快捷键B)中的“楼层列表”所决定。\n\n是否必须在楼梯边使用楼传器由全塔属性中的系统开关所决定。" - ], - "11,4": [ - "破墙镐是破面前的墙壁还是四个方向的墙壁,由其图块属性(快捷键C)的“使用效果”决定。\n哪些图块(怪物和道具除外)可以被破震,由该图块的图块属性中的“可破震”决定。" - ], - "12,4": [ - "在 2.8.1 版更新后,能够被破冰镐摧毁的冰块被移动到了 animates 下。\n如果想制作一个可以以特定触发器的方式移除特定图块的道具,可以参照破冰镐物品图块属性中\n useItemEffect 和 canUseItemEffect 的写法。" - ], - "11,8": [ - "由于状态栏放不下,铁门钥匙(根据全塔属性的系统开关勾选与否,可能还有绿钥匙)会被放入道具栏中。\n碰到绿门和铁门时仍然会自动使用钥匙开门。" - ], - "12,8": [ - "该道具默认是大黄门钥匙,如需改为钥匙盒直接修改其图块属性(快捷键C)的“道具类别”为items即可。" - ], - "8,7": [ - "如需修改消耗品的效果,请前往全塔属性(快捷键B),找到并修改values(全局数值)内对应的具体数值即可。\n如果有高级的需求(如每个区域宝石数值变化),请修改楼层属性(快捷键V)最下方的“宝石血瓶效果”。\n如果有更高级的需求,请查阅帮助文档。" - ], - "11,7": [ - "与大黄门钥匙类似的是,如果将黄宝石的图块属性设为 items ,那么黄宝石将在被拾取触发 itemEffect 效果。\n\n注意:触碰或使用事件(useItemEvent)对 items、tools、constants 都有效。\n这意味着,如果黄宝石的图块属性为 items ,那么在拾取黄宝石时,黄宝石不会进入背包,并且其“即捡即用”和“触碰或使用事件”都会被触发。" - ], - "12,7": [ - "由于吸血、夹击、净化等属性值的存在,玩家可能希望自动寻路时能尽量绕开血瓶和绿宝石。\n他们可以自行在游戏设置中开关这一功能。" - ] - }, - "afterOpenDoor": { - "11,12": [ - "你打开了一扇绿门,触发了一个 afterOpenDoor 事件。" - ], - "10,6": [ - "这是一扇高度为 48 个像素而非 32 个像素的门。\n高门和高NPC的素材存放在 materials 文件夹中 npc48.png 的部分。" - ] - }, - "cannotMove": {}, - "bgmap": [ - -], - "fgmap": [ - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10169, 0,10177, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10170, 0,10185, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10169, 0,10179, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10172, 0,10180, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10186, 0,10181, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10187, 0,10182, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,10188, 0,10183, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] -], - "width": 13, - "height": 13, - "autoEvent": {}, - "beforeBattle": {}, - "cannotMoveIn": {} -} \ No newline at end of file diff --git a/project/floors/sample1.js b/project/floors/sample1.js deleted file mode 100644 index 2d3f74a0..00000000 --- a/project/floors/sample1.js +++ /dev/null @@ -1,630 +0,0 @@ -main.floors.sample1= -{ - "floorId": "sample1", - "title": "样板 1 层", - "name": "1", - "canFlyTo": true, - "canFlyFrom": true, - "canUseQuickShop": true, - "defaultGround": "grass", - "images": [ - { - "name": "bg.jpg", - "canvas": "bg", - "x": 0, - "y": 0 - } - ], - "weather": [ - "snow", - 6 - ], - "ratio": 1, - "map": [ - [ 7,131, 8,152, 9,130, 10,152,166,165,132,165,166], - [ 0, 0, 0, 0, 0, 0, 0,152,165,164, 0,162,165], - [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, 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, 0, 0, 0, 0, 0, 0, 0] -], - "firstArrive": [], - "events": { - "1,7": [ - { - "type": "setBlock", - "number": "redKing", - "loc": [ - [ - 1, - 5 - ] - ], - "time": 1500 - }, - { - "type": "sleep", - "time": 500 - }, - "\t[redKing]\b[this,1,5]欢迎来到魔塔,你是第一百位挑战者。\n若你能打败我所有的手下,我就与你一对一的决斗。\n现在你必须接受我的安排。", - { - "type": "setBlock", - "number": "blueKing", - "loc": [ - [ - 1, - 6 - ], - [ - 0, - 7 - ], - [ - 1, - 8 - ], - [ - 2, - 7 - ] - ], - "time": 500 - }, - "\t[hero]\b[hero]什么?", - { - "type": "animate", - "name": "hand", - "loc": "hero" - }, - { - "type": "setValue", - "name": "status:atk", - "operator": "/=", - "value": "10" - }, - { - "type": "setValue", - "name": "status:def", - "operator": "/=", - "value": "10" - }, - { - "type": "hide", - "loc": [ - [ - 1, - 6 - ], - [ - 0, - 7 - ], - [ - 2, - 7 - ], - [ - 1, - 8 - ] - ], - "time": 500 - }, - { - "type": "hide", - "loc": [ - [ - 1, - 5 - ] - ], - "time": 500 - }, - { - "type": "hide" - }, - { - "type": "setCurtain", - "color": [ - 0, - 0, - 0 - ], - "time": 1250 - }, - { - "type": "sleep", - "time": 700 - }, - { - "type": "changeFloor", - "floorId": "sample1", - "loc": [ - 1, - 11 - ], - "direction": "right", - "time": 1000 - }, - { - "type": "trigger", - "loc": [ - 2, - 11 - ] - } - ], - "2,11": [ - "\t[杰克,thief]\b[this]喂!醒醒!快醒醒!", - { - "type": "setCurtain", - "time": 1500 - }, - "\t[hero]\b[hero]额,我这是在什么地方?", - "\t[杰克,thief]\b[this]你被魔王抓了起来扔进了监狱,和我关在了一起,但是幸运的是我在昨天刚刚挖好一条越狱的暗道!", - { - "type": "openDoor", - "loc": [ - 3, - 11 - ] - }, - { - "type": "comment", - "text": "{type: openDoor} 不止可以开“门”,也可以用来开墙等等" - }, - { - "type": "sleep", - "time": 300 - }, - "\t[杰克,thief]\b[this]我先走了,祝你好运!", - { - "type": "move", - "time": 750, - "steps": [ - "right:2", - "down:1" - ] - }, - "上面是个move事件,可以对NPC等进行移动。\n详见样板中小偷事件的写法。", - "\t[hero]\b[hero]怎么跑的这么快..." - ], - "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": "hide", - "time": 500 - } - ], - "1,0": [ - { - "type": "openShop", - "id": "shop1", - "open": true - } - ], - "5,0": [ - { - "type": "openShop", - "id": "shop2", - "open": true - } - ], - "7,7": [ - "\t[老人,man]\b[this]这是一个典型的杀怪开门、强制战斗事件。", - "\t[老人,man]\b[this]下面的那四个箭头表示单向通行,画在任何一个图层都有效。", - { - "type": "hide", - "time": 500 - } - ], - "9,7": [ - { - "type": "closeDoor", - "id": "specialDoor", - "loc": [ - 8, - 7 - ] - }, - { - "type": "hide" - } - ], - "10,4": [ - "\t[blackKing]\b[this]你终于还是来了。", - "\t[hero]\b[hero]放开我们的公主!", - "\t[blackKing]\b[this]如果我不愿意呢?", - "\t[hero]\b[hero]无需多说,拔剑吧!", - { - "type": "battle", - "loc": [ - 10, - 2 - ] - }, - { - "type": "openDoor", - "loc": [ - 8, - 7 - ] - }, - "\t[blackKing]没想到你已经变得这么强大了... 算你厉害。\n公主就交给你了,请好好对她。", - { - "type": "hide" - } - ], - "10,0": [ - "\t[hero]\b[hero]公主,我来救你了~", - "\t[公主,princess]\b[this]快救我出去!我受够这里了!", - "\t[hero]\b[hero]公主别怕,我们走吧~", - { - "type": "win", - "reason": "救出公主" - } - ], - "6,11": [ - "\t[仙子,fairy]\b[this]通过调用 {\"type\": \"closeDoor\"} 可以在空地关上一扇门或墙。\n比如我下面这个机关门。", - { - "type": "closeDoor", - "id": "steelDoor", - "loc": [ - 6, - 12 - ] - }, - "\t[仙子,fairy]\b[this]通过调用 {\"type\": \"openDoor\"} 可以无需钥匙打开一扇门或暗墙。", - { - "type": "openDoor", - "loc": [ - 6, - 12 - ] - }, - "\t[仙子,fairy]\b[this]同时,也可以对其它层进行操作,比如楼下的机关门,现在已经为你打开了。", - { - "type": "openDoor", - "loc": [ - 11, - 10 - ], - "floorId": "sample0" - }, - "\t[仙子,fairy]\b[this]如果当前楼层的 show 或 hide 指定了 time 参数,则以动画效果显示,指定的参数作为淡入淡出时间(毫秒)来计算。", - "\t[仙子,fairy]\b[this]现在到楼下来找我吧~", - { - "type": "show", - "loc": [ - [ - 12, - 10 - ] - ], - "floorId": "sample0" - }, - { - "type": "hide", - "time": 500 - } - ], - "8,11": [ - { - "type": "setValue", - "name": "flag:man_times", - "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": "setValue", - "name": "status:atk", - "operator": "*=", - "value": "1.5" - }, - { - "type": "setValue", - "name": "status:def", - "operator": "*=", - "value": "1.5" - }, - { - "type": "setValue", - "name": "status:hp", - "operator": "+=", - "value": "10*(status:atk+status:def)" - }, - "\t[老人,man]\b[this]再送你500金币,1000经验,1破2炸3飞!", - { - "type": "setValue", - "name": "status:money", - "operator": "+=", - "value": "500" - }, - { - "type": "setValue", - "name": "status:exp", - "operator": "+=", - "value": "1000" - }, - { - "type": "setValue", - "name": "item:pickaxe", - "operator": "+=", - "value": "1" - }, - { - "type": "setValue", - "name": "item:bomb", - "operator": "+=", - "value": "2" - }, - { - "type": "setValue", - "name": "item:centerFly", - "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]你现在可以重新和我进行对话,进一步看到属性值的改变。" - ], - "10,11": [ - { - "type": "while", - "condition": "true", - "data": [ - { - "type": "switch", - "condition": "flag:woman_times", - "caseList": [ - { - "case": "0", - "action": [ - "\t[老人,trader]这是个很复杂的例子,它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。", - "\t[老人,trader]第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后,将送你一把大黄门钥匙,并消失不再出现。", - "\t[老人,trader]这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。" - ] - }, - { - "case": "8", - "action": [ - "\t[老人,trader]你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。", - "\t[老人,trader]看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。", - { - "type": "setValue", - "name": "item:bigKey", - "operator": "+=", - "value": "1" - }, - "\t[老人,trader]我先走了,拜拜~", - { - "type": "hide", - "time": 500 - }, - { - "type": "exit" - } - ] - }, - { - "case": "default", - "action": [ - { - "type": "choices", - "text": "\t[老人,trader]少年,你需要钥匙吗?\n我这里有大把的!", - "choices": [ - { - "text": "黄钥匙(${9+flag:woman_times}金币)", - "action": [ - { - "type": "if", - "condition": "status:money>=9+flag:woman_times", - "true": [ - { - "type": "setValue", - "name": "status:money", - "operator": "-=", - "value": "9+flag:woman_times" - }, - { - "type": "setValue", - "name": "item:yellowKey", - "operator": "+=", - "value": "1" - } - ], - "false": [ - "\t[老人,trader]你的金钱不足!", - { - "type": "continue" - } - ] - } - ] - }, - { - "text": "蓝钥匙(${18+2*flag:woman_times}金币)", - "action": [ - { - "type": "if", - "condition": "status:money>=18+2*flag:woman_times", - "true": [ - { - "type": "setValue", - "name": "status:money", - "operator": "-=", - "value": "18+2*flag:woman_times" - }, - { - "type": "setValue", - "name": "item:blueKey", - "operator": "+=", - "value": "1" - } - ], - "false": [ - "\t[老人,trader]你的金钱不足!", - { - "type": "continue" - } - ] - } - ] - }, - { - "text": "红钥匙(${36+4*flag:woman_times}金币)", - "action": [ - { - "type": "if", - "condition": "status:money>=36+4*flag:woman_times", - "true": [ - { - "type": "setValue", - "name": "status:money", - "operator": "-=", - "value": "36+4*flag:woman_times" - }, - { - "type": "setValue", - "name": "item:redKey", - "operator": "+=", - "value": "1" - } - ], - "false": [ - "\t[老人,trader]你的金钱不足!", - { - "type": "continue" - } - ] - } - ] - }, - { - "text": "离开", - "action": [ - { - "type": "exit" - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "setValue", - "name": "flag:woman_times", - "operator": "+=", - "value": "1" - } - ] - } - ], - "12,11": [ - "\t[老人,recluse]\b[this]使用 {\"type\":\"input\"} 可以弹窗请求玩家输入数字", - "\t[老人,recluse]\b[this]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。", - { - "type": "input", - "text": "请输入你要加攻击力的数值:" - }, - { - "type": "if", - "condition": "(flag:input>0)", - "true": [ - { - "type": "setValue", - "name": "status:atk", - "operator": "+=", - "value": "flag:input" - }, - { - "type": "tip", - "text": "操作成功,攻击+${flag:input}" - }, - "操作成功,攻击+${flag:input}" - ], - "false": [] - }, - "\t[老人,recluse]\b[this]具体可参见样板中本事件的写法。" - ] - }, - "changeFloor": { - "4,12": { - "floorId": "sample0", - "loc": [ - 6, - 0 - ] - }, - "5,5": { - "floorId": "sample2", - "stair": "downFloor", - "direction": "up" - }, - "10,12": null - }, - "afterBattle": { - "9,6": [ - { - "type": "setValue", - "name": "flag:door", - "operator": "+=", - "value": "1" - } - ], - "11,6": [ - { - "type": "setValue", - "name": "flag:door", - "operator": "+=", - "value": "1" - } - ] - }, - "afterGetItem": {}, - "afterOpenDoor": {}, - "cannotMove": {}, - "bgmap": [ - -], - "fgmap": [ - -], - "autoEvent": { - "10,5": { - "0": { - "condition": "flag:door==2", - "currentFloor": true, - "priority": 0, - "delayExecute": false, - "multiExecute": false, - "data": [ - { - "type": "openDoor" - } - ] - }, - "1": null - } - }, - "width": 13, - "height": 13, - "beforeBattle": {} -} \ No newline at end of file diff --git a/project/floors/sample2.js b/project/floors/sample2.js deleted file mode 100644 index fcff416d..00000000 --- a/project/floors/sample2.js +++ /dev/null @@ -1,90 +0,0 @@ -main.floors.sample2= -{ - "floorId": "sample2", - "title": "样板 2 层", - "name": "2", - "canFlyTo": true, - "canFlyFrom": true, - "canUseQuickShop": true, - "cannotViewMap": false, - "defaultGround": "ground", - "images": [], - "ratio": 1, - "map": [ - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 1, 27, 28, 29, 1, 0,202, 1, 27, 28, 29, 1, 0, 0, 0, 1, 0, 0, 0,202, 0, 0, 0, 0, 0, 0], - [ 1, 31, 32, 33, 1, 0, 0, 1, 31, 32, 33, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 1, 21,258, 22, 1, 0, 0, 1, 21,257, 22, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 1, 1, 82, 1, 1, 0, 0, 1, 1, 81, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 22, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 45, 0, 1, 0,202,202, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0,202,202, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0], - [ 0,327, 0, 0, 0, 0, 88, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,202, 0, 0, 0, 0,328, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 87, 0, 0, 0, 0,122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0,329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0,330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,202, 0, 0, 0, 0, 0, 0], - [ 0, 0, 1, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0], - [ 0, 0, 0, 0, 1, 1, 0, 0, 1, 0,202,202, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0,202,202, 0], - [ 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,202, 0, 0, 0, 0, 0, 0, 0], - [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] -], - "width": 26, - "height": 26, - "firstArrive": [], - "events": { - "12,12": [ - "234" - ], - "10,11": { - "trigger": "action", - "enable": true, - "noPass": null, - "displayDamage": true, - "opacity": 1, - "filter": { - "blur": 0, - "hue": 0, - "grayscale": 0, - "invert": false, - "shadow": 0 - }, - "data": [ - "\t[小妖精,bearRight]欢迎使用事件编辑器(双击方块可直接预览)" - ] - } - }, - "changeFloor": { - "6,10": { - "floorId": "sample1", - "stair": "upFloor" - }, - "7,12": { - "floorId": "sample2", - "stair": "downFloor" - } - }, - "afterBattle": {}, - "afterGetItem": {}, - "afterOpenDoor": {}, - "cannotMove": {}, - "upFloor": null, - "bgmap": [ - -], - "fgmap": [ - -], - "autoEvent": {}, - "beforeBattle": {}, - "cannotMoveIn": {} -} \ No newline at end of file