大量修改ID和翻译

This commit is contained in:
ckcz123 2020-05-18 23:11:17 +08:00
parent 9d1fc95dd4
commit 969bd0de12
31 changed files with 169 additions and 172 deletions

View File

@ -139,7 +139,7 @@ N连击怪物的special是6且我们可以为它定义n代表实际连击数
领域怪还可以设置`range`选项代表该领域怪的范围不写则默认为1。
<br>**将 `flags.no_zone` 设置为 `true` 可以免疫领域效果。**<br>
阻击怪同样需要设置value代表阻击伤害的数值。如果勇士生命值扣减到0则直接死亡触发lose事件。
<br>**将`flags.no_snipe`设置为true可以免疫阻击效果包括伤害和移动。**<br>
<br>**将`flags.no_repluse`设置为true可以免疫阻击效果包括伤害和移动。**<br>
!> 阻击怪后退的地点不能有任何事件存在,即使是已经被禁用的红绿事件或重生怪!(会导致此事件意外被重新启用)<br>
激光怪同样需要设置value代表激光伤害的数值。
<br>请注意如果吸血、领域、阻击、生命光环中任何两个同时存在,则 `value` 会冲突。**因此请勿将吸血、领域、阻击或激光放置在同一个怪物身上。退化和攻防光环同理!<br>**

View File

@ -2174,7 +2174,7 @@ if (core.flags.enableAddPoint && point > 0) {
``` json
"shops": [{
"id": "shop1",
"text": "\t[贪婪之神,blueShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:",
"text": "\t[贪婪之神,moneyShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:",
"textInList": "1F金币商店",
"mustEnable": false,
"disablePreview": false,

View File

@ -254,7 +254,7 @@ ID必须由数字字母下划线组成数字在1000以内且均不能和
``` js
// ratio为楼层的item_ratio值可以进行翻倍宝石属性
core.status.hero.atk += core.values.redJewel * ratio
core.status.hero.atk += core.values.redGem * ratio
```
这里我们可以直接写ratio来取用该楼层中定义的`item_ratio`的值。
@ -263,7 +263,7 @@ core.status.hero.atk += core.values.redJewel * ratio
``` js
// 一个二倍线性增加的例子
core.status.hero.atk += core.values.redJewel + 2*ratio
core.status.hero.atk += core.values.redGem + 2*ratio
```
### 消耗类道具cls: tools永久类道具cls: constants
@ -308,11 +308,11 @@ function (enemy, hero_hp, hero_atk, hero_def, hero_mdef, x, y, floorId) {
[ // 写在获得道具后事件
// 设置不同的flag可以分别无视对应的阻激夹域效果
{"type": "setValue", "name": "flag:no_zone", "value": "true"}, // 免疫领域
{"type": "setValue", "name": "flag:no_snipe", "value": "true"}, // 免疫阻击
{"type": "setValue", "name": "flag:no_repluse", "value": "true"}, // 免疫阻击
{"type": "setValue", "name": "flag:no_laser", "value": "true"}, // 免疫激光
{"type": "setValue", "name": "flag:no_betweenAttack", "value": "true"}, // 免疫夹击
{"type": "setValue", "name": "flag:no_ambush", "value": "true"}, // 免疫捕捉
{"type": "setValue", "name": "item:shoes", "value": "1"} // 免疫路障
{"type": "setValue", "name": "item:amulet", "value": "1"} // 免疫路障
]
```
4. 如果有更高的需求,例如想让吸血效果变成一半,则还是在上面这些地方进行对应的修改即可。
@ -666,7 +666,7 @@ if (core.flags.statusBarItems.indexOf('enableSkill')>=0) {
- **`flag:hard`**: 当前的难度标志此flag变量在setInitData中被定义可以直接取用来判定当前难度分歧。上传成绩时将根据此flag来对不同难度进行排序。
- **`flag:posion`**, **`flag:weak`**, **`flag:curse`**: 中毒、衰弱、诅咒状态。
- **`flag:no_zone`**, **`flag:no_snipe`**, **`flag:no_laser`**, **`flag:no_betweenAttack`**: 是否分别免疫领域、阻击、激光、夹击效果。
- **`flag:no_zone`**, **`flag:no_repluse`**, **`flag:no_laser`**, **`flag:no_betweenAttack`**: 是否分别免疫领域、阻击、激光、夹击效果。
- **`flag:hatred`**: 当前的仇恨数值。
- **`flag:commonTimes`**: 全局商店共用次数时的访问次数。
- **`flag:input`**: 接受用户输入的事件后,存放用户输入的结果。

View File

@ -109,7 +109,7 @@ shopsub
/* shopsub
tooltip : 全局商店
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=%e5%85%a8%e5%b1%80%e5%95%86%e5%ba%97
default : ["shop1","贪婪之神","blueShop","勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:","金币商店",false,false]
default : ["shop1","贪婪之神","moneyShop","勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:","金币商店",false,false]
var title='';
if (EvalString_0==''){
if (IdString_1=='') title='';
@ -1887,7 +1887,7 @@ choices_s
/* choices_s
tooltip : choices: 给用户提供选项
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=choices%EF%BC%9A%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E9%80%89%E9%A1%B9
default : ["","流浪者","woman",0]
default : ["","流浪者","trader",0]
var title='';
if (EvalString_1==''){
if (IdString_0=='')title='';
@ -2813,7 +2813,7 @@ Global_Attribute_List
Global_Value_List
: '血网伤害'|'中毒伤害'|'衰弱效果'|'红宝石效果'|'蓝宝石效果'|'绿宝石效果'|'红血瓶效果'|'蓝血瓶效果'|'黄血瓶效果'|'绿血瓶效果'|'破甲比例'|'反击比例'|'净化比例'|'仇恨增加值'|'动画时间'
/*Global_Value_List ['lavaDamage','poisonDamage','weakValue', 'redJewel', 'blueJewel', 'greenJewel', 'redPotion', 'bluePotion', 'yellowPotion', 'greenPotion', 'breakArmor', 'counterAttack', 'purify', 'hatred', 'animateSpeed']*/;
/*Global_Value_List ['lavaDamage','poisonDamage','weakValue', 'redGem', 'blueGem', 'greenGem', 'redPotion', 'bluePotion', 'yellowPotion', 'greenPotion', 'breakArmor', 'counterAttack', 'purify', 'hatred', 'animateSpeed']*/;
Global_Flag_List

View File

@ -1191,10 +1191,10 @@ MotaActionFunctions.pattern.replaceItemList = [
["yellowKey", "黄钥匙"],
["blueKey", "蓝钥匙"],
["redKey", "红钥匙"],
["redJewel", "红宝石"],
["blueJewel", "蓝宝石"],
["greenJewel", "绿宝石"],
["yellowJewel", "黄宝石"],
["redGem", "红宝石"],
["blueGem", "蓝宝石"],
["greenGem", "绿宝石"],
["yellowGem", "黄宝石"],
["redPotion", "红血瓶"],
["bluePotion", "蓝血瓶"],
["yellowPotion", "黄血瓶"],
@ -1210,14 +1210,14 @@ MotaActionFunctions.pattern.replaceItemList = [
["shield4", "圣盾"],
["shield5", "神圣盾"],
["superPotion", "圣水"],
["moneyPocket", "金钱袋"],
["silverCoin", "银币"],
["book", "怪物手册"],
["fly", "楼层传送器"],
["coin", "幸运金币"],
["snow", "冰冻徽章"],
["freezeBadge", "冰冻徽章"],
["cross", "十字架"],
["knife", "屠龙匕首"],
["shoes", "绿鞋"],
["dagger", "屠龙匕首"],
["amulet", "护符"],
["bigKey", "大黄门钥匙"],
["greenKey", "绿钥匙"],
["steelKey", "铁门钥匙"],

View File

@ -39,7 +39,7 @@ editor_blockly = function () {
MotaActionBlocks['changeFloor_m'].xmlText(),
MotaActionFunctions.actionParser.parse([{
"id": "shop1",
"text": "\t[贪婪之神,blueShop]勇敢的武士啊, 给我\${20+2*flag:shop1}金币就可以:",
"text": "\t[贪婪之神,moneyShop]勇敢的武士啊, 给我\${20+2*flag:shop1}金币就可以:",
"textInList": "1F金币商店",
"choices": [
{"text": "生命+800", "need": "status:money>=20+2*flag:shop1", "action": [

View File

@ -499,7 +499,7 @@ editor_file = function (editor, callback) {
/*actionList:[
["change","['items']['name']","红宝石的新名字"],
["add","['items']['新的和name同级的属性']",123],
["change","['itemEffectTip']","',攻击力+'+editor.core.values.redJewel"],
["change","['itemEffectTip']","',攻击力+'+editor.core.values.redGem"],
]
[]时只查询不修改
*/
@ -574,7 +574,7 @@ editor_file = function (editor, callback) {
editor.file.editMapBlocksInfo = function (idnum, actionList, callback) {
/*actionList:[
["change","['events']",["\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。"]],
["change","['events']",["\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。"]],
["change","['afterBattle']",null],
]
[]时只查询不修改
@ -618,7 +618,7 @@ editor_file = function (editor, callback) {
editor.file.editLoc = function (x, y, actionList, callback) {
/*actionList:[
["change","['events']",["\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。"]],
["change","['events']",["\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。"]],
["change","['afterBattle']",null],
]
[]时只查询不修改

View File

@ -456,19 +456,19 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_docs": "衰弱效果",
"_data": "衰弱状态下攻防减少的数值\n如果此项不小于1则作为实际下降的数值比如10就是攻防各下降10\n如果在0到1之间则为下降的比例比如0.3就是下降30%的攻防)"
},
"redJewel": {
"redGem": {
"_leaf": true,
"_type": "textarea",
"_docs": "红宝石效果",
"_data": "红宝石加攻击的数值"
},
"blueJewel": {
"blueGem": {
"_leaf": true,
"_type": "textarea",
"_docs": "蓝宝石效果",
"_data": "蓝宝石加防御的数值"
},
"greenJewel": {
"greenGem": {
"_leaf": true,
"_type": "textarea",
"_docs": "绿宝石效果",

View File

@ -8,7 +8,7 @@ function dynamicMapEditor() {
// 所有显示的ID
this.displayIds = [
'none', 'yellowWall', 'blueWall', 'whiteWall', 'yellowDoor', 'blueDoor', 'redDoor', 'star', 'lava', 'lavaNet',
'yellowKey', 'blueKey', 'redKey', 'redJewel', 'blueJewel', 'greenJewel', 'yellowJewel',
'yellowKey', 'blueKey', 'redKey', 'redGem', 'blueGem', 'greenGem', 'yellowGem',
'redPotion', 'bluePotion', 'yellowPotion', 'greenPotion', 'pickaxe', 'bomb', 'centerFly',
'cls:autotile', 'cls:enemys', 'cls:enemy48'
];

View File

@ -984,7 +984,7 @@ control.prototype.checkBlock = function () {
core.updateStatusBar();
}
}
this._checkBlock_snipe(core.status.checkBlock.snipe[loc]);
this._checkBlock_repluse(core.status.checkBlock.repluse[loc]);
this._checkBlock_ambush(core.status.checkBlock.ambush[loc]);
}
@ -998,10 +998,10 @@ control.prototype._checkBlock_disableQuickShop = function () {
}
////// 阻击 //////
control.prototype._checkBlock_snipe = function (snipe) {
if (!snipe || snipe.length == 0) return;
control.prototype._checkBlock_repluse = function (repluse) {
if (!repluse || repluse.length == 0) return;
var actions = [];
snipe.forEach(function (t) {
repluse.forEach(function (t) {
actions.push({"type": "move", "loc": [t[0],t[1]], "steps": [t[3]], "time": 250, "keep": true, "async": true});
});
actions.push({"type": "waitAsync"});

View File

@ -688,7 +688,7 @@ maps.prototype._automaticRoute_deepAdd = function (x, y) {
// 绕过路障
if (id.endsWith("Net")) deepAdd += 100;
// 绕过血瓶和绿宝石
if (core.hasFlag('__potionNoRouting__') && (id.endsWith("Potion") || id == 'greenJewel')) deepAdd += 100;
if (core.hasFlag('__potionNoRouting__') && (id.endsWith("Potion") || id == 'greenGem')) deepAdd += 100;
// 绕过传送点
// if (block.block.event.trigger == 'changeFloor') deepAdd+=10;
}

View File

@ -1149,7 +1149,7 @@ utils.prototype._export = function (floorIds) {
})
// values
content += ["redJewel", "blueJewel", "greenJewel", "redPotion", "bluePotion",
content += ["redGem", "blueGem", "greenGem", "redPotion", "bluePotion",
"yellowPotion", "greenPotion", "sword1", "shield1"].map(function (x) {
return core.values[x] || 0;
}).join(" ") + "\n\n";

View File

@ -303,7 +303,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"shops": [
{
"id": "shop1",
"text": "\t[贪婪之神,blueShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:",
"text": "\t[贪婪之神,moneyShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:",
"textInList": "1F金币商店",
"mustEnable": false,
"disablePreview": false,
@ -368,7 +368,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
},
{
"id": "shop2",
"text": "\t[贪婪之神,pinkShop]勇敢的武士啊, 给我一定经验就可以:",
"text": "\t[贪婪之神,expShop]勇敢的武士啊, 给我一定经验就可以:",
"textInList": "1F经验商店",
"mustEnable": false,
"disablePreview": true,
@ -465,9 +465,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"lavaDamage": 100,
"poisonDamage": 10,
"weakValue": 20,
"redJewel": 3,
"blueJewel": 3,
"greenJewel": 5,
"redGem": 3,
"blueGem": 3,
"greenGem": 5,
"redPotion": 100,
"bluePotion": 250,
"yellowPotion": 500,

View File

@ -36,7 +36,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"redSwordsman": {"name":"剑王","hp":100,"atk":120,"def":0,"money":7,"experience":0,"point":0,"special":6,"n":8},
"poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"experience":0,"point":0,"special":12},
"octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"princessEnemy": {"name":"假公主","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"steelGuard": {"name":"铁守卫","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":18,"value":20},
@ -70,7 +70,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"evilFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"blueRock": {"name":"鬼邪石","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"skeletonLite": {"name":"骷髅精英","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"blueSkeleton": {"name":"蓝骷髅","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"bowman": {"name":"弓兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"liteBowman": {"name":"精锐弓兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"crismonZombie": {"name":"红兽人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
@ -80,9 +80,5 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
"grayPriest": {"name":"混沌法师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"greenGT": {"name":"卫兵队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"ghostSoldier": {"name":"冥队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"goldBat": {"name":"金蝙蝠","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"pinkSoldier": {"name":"红战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"pinkGhostSoldier": {"name":"红队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"greenSoldier": {"name":"青战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0},
"greenGhostSoldier": {"name":"青队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}
"frostBat": {"name":"寒蝙蝠","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}
}

View File

@ -175,7 +175,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
"data": [
{
"type": "choices",
"text": "\t[商人,woman]你有多余的钥匙想要出售吗?",
"text": "\t[商人,trader]你有多余的钥匙想要出售吗?",
"choices": [
{
"text": "黄钥匙10金币",
@ -204,7 +204,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
}
],
"false": [
"\t[商人,woman]你没有黄钥匙!"
"\t[商人,trader]你没有黄钥匙!"
]
}
]
@ -236,7 +236,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
}
],
"false": [
"\t[商人,woman]你没有蓝钥匙!"
"\t[商人,trader]你没有蓝钥匙!"
]
}
]

View File

@ -46,8 +46,8 @@ main.floors.sample0=
}
],
"10,11": [
"\t[老人,woman]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。",
"\t[老人,woman]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
"\t[老人,trader]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。",
"\t[老人,trader]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
{
"type": "hide",
"time": 500
@ -63,24 +63,24 @@ main.floors.sample0=
}
],
"2,8": [
"\t[老人,magician]这些都是各种各样的怪物所有怪物的数据都在enemys.js中设置。",
"\t[老人,magician]这批怪物分别为普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。",
"\t[老人,magician]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
"\t[老人,wizard]这些都是各种各样的怪物所有怪物的数据都在enemys.js中设置。",
"\t[老人,wizard]这批怪物分别为普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。",
"\t[老人,wizard]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。",
{
"type": "hide",
"time": 500
}
],
"2,5": [
"\t[老人,magician]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值可参见样板中黑暗大法师的写法。",
"\t[老人,wizard]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值可参见样板中黑暗大法师的写法。",
{
"type": "hide",
"time": 500
}
],
"2,3": [
"\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。",
"\t[老人,magician]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。",
"\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值可参见样板中初级巫师的写法。",
"\t[老人,wizard]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。",
{
"type": "hide",
"time": 500

View File

@ -419,23 +419,23 @@ main.floors.sample1=
{
"case": "0",
"action": [
"\t[老人,woman]这是个很复杂的例子它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。",
"\t[老人,woman]第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后将送你一把大黄门钥匙并消失不再出现。",
"\t[老人,woman]这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。"
"\t[老人,trader]这是个很复杂的例子它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。",
"\t[老人,trader]第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后将送你一把大黄门钥匙并消失不再出现。",
"\t[老人,trader]这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。"
]
},
{
"case": "8",
"action": [
"\t[老人,woman]你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。",
"\t[老人,woman]看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。",
"\t[老人,trader]你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。",
"\t[老人,trader]看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。",
{
"type": "setValue",
"name": "item:bigKey",
"operator": "+=",
"value": "1"
},
"\t[老人,woman]我先走了,拜拜~",
"\t[老人,trader]我先走了,拜拜~",
{
"type": "hide",
"time": 500
@ -450,7 +450,7 @@ main.floors.sample1=
"action": [
{
"type": "choices",
"text": "\t[老人,woman]少年,你需要钥匙吗?\n我这里有大把的",
"text": "\t[老人,trader]少年,你需要钥匙吗?\n我这里有大把的",
"choices": [
{
"text": "黄钥匙(${9+flag:woman_times}金币)",
@ -473,7 +473,7 @@ main.floors.sample1=
}
],
"false": [
"\t[老人,woman]你的金钱不足!"
"\t[老人,trader]你的金钱不足!"
]
}
]
@ -502,7 +502,7 @@ main.floors.sample1=
}
],
"false": [
"\t[老人,woman]你的金钱不足!"
"\t[老人,trader]你的金钱不足!"
]
}
]
@ -528,7 +528,7 @@ main.floors.sample1=
}
],
"false": [
"\t[老人,woman]你的金钱不足!",
"\t[老人,trader]你的金钱不足!",
{
"type": "continue"
}
@ -560,8 +560,8 @@ main.floors.sample1=
}
],
"12,11": [
"\t[老人,womanMagician]使用 {\"type\":\"function\"} 可以写自定义的JS脚本。\n本塔支持的所有主要API会在doc文档内给出。",
"\t[老人,womanMagician]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。",
"\t[老人,recluse]使用 {\"type\":\"function\"} 可以写自定义的JS脚本。\n本塔支持的所有主要API会在doc文档内给出。",
"\t[老人,recluse]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。",
{
"type": "input",
"text": "请输入你要加攻击力的数值:"
@ -584,7 +584,7 @@ main.floors.sample1=
],
"false": []
},
"\t[老人,womanMagician]具体可参见样板中本事件的写法。"
"\t[老人,recluse]具体可参见样板中本事件的写法。"
]
},
"changeFloor": {

View File

@ -871,7 +871,7 @@ main.floors.sample3=
"\t[hero]好温暖……",
{
"type": "setValue",
"name": "item:yellowJewel",
"name": "item:yellowGem",
"value": "1"
},
{

View File

@ -432,7 +432,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
return [
[1, "先攻", "怪物首先攻击"],
[2, "魔攻", "怪物无视勇士的防御"],
[3, "坚固", "勇士每回合最多只能对怪物造成1点伤害"],
[3, "坚固", "怪物防御不小于勇士攻击-1"],
[4, "2连击", "怪物每回合攻击2次"],
[5, "3连击", "怪物每回合攻击3次"],
[6, function (enemy) { return (enemy.n || '') + "连击"; }, function (enemy) { return "怪物每回合攻击" + (enemy.n || 4) + "次"; }],
@ -833,7 +833,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
break;
case 52: // 快捷键4破冰/冰冻/地震/上下楼器/... 其他道具依次判断
{
var list = ["icePickaxe", "snow", "earthquake", "upFly", "downFly", "jumpShoes", "lifeWand", "poisonWine", "weakWine", "curseWine", "superWine"];
var list = ["icePickaxe", "freezeBadge", "earthquake", "upFly", "downFly", "jumpShoes", "lifeWand", "poisonWine", "weakWine", "curseWine", "superWine"];
for (var i = 0; i < list.length; i++) {
var itemId = list[i];
if (core.canUseItem(itemId)) {
@ -1051,7 +1051,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
var damage = {}, // 每个点的伤害值
type = {}, // 每个点的伤害类型
snipe = {}, // 每个点的阻击怪信息
repluse = {}, // 每个点的阻击怪信息
ambush = {}; // 每个点的捕捉信息
// 计算血网和领域、阻击、激光的伤害,计算捕捉信息
@ -1065,7 +1065,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
type[loc] = type[loc] || {};
// 血网
if (id == 'lavaNet' && !core.hasItem('shoes')) {
if (id == 'lavaNet' && !core.hasItem('amulet')) {
damage[loc] = (damage[loc] || 0) + core.values.lavaDamage;
type[loc]["血网伤害"] = true;
}
@ -1096,8 +1096,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
// 阻击
// 如果要防止阻击伤害,可以直接简单的将 flag:no_snipe 设为true
if (enemy && core.hasSpecial(enemy.special, 18) && !core.hasFlag('no_snipe')) {
// 如果要防止阻击伤害,可以直接简单的将 flag:no_repluse 设为true
if (enemy && core.hasSpecial(enemy.special, 18) && !core.hasFlag('no_repluse')) {
for (var dir in core.utils.scan) {
var nx = x + core.utils.scan[dir].x,
ny = y + core.utils.scan[dir].y,
@ -1112,7 +1112,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
var rnx = x + core.utils.scan[rdir].x,
rny = y + core.utils.scan[rdir].y;
if (rnx >= 0 && rnx < width && rny >= 0 && rny < height && core.getBlock(rnx, rny, floorId) == null) {
snipe[currloc] = (snipe[currloc] || []).concat([
repluse[currloc] = (repluse[currloc] || []).concat([
[x, y, id, rdir]
]);
}
@ -1207,7 +1207,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.status.checkBlock = {
damage: damage,
type: type,
snipe: snipe,
repluse: repluse,
ambush: ambush,
cache: {} // clear cache
};
@ -1391,9 +1391,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
return [
'yellowDoor', 'blueDoor', 'redDoor', 'greenDoor', 'steelDoor',
'yellowKey', 'blueKey', 'redKey', 'greenKey', 'steelKey',
'redJewel', 'blueJewel', 'greenJewel', 'yellowJewel',
'redGem', 'blueGem', 'greenGem', 'yellowGem',
'redPotion', 'bluePotion', 'greenPotion', 'yellowPotion', 'superPotion',
'pickaxe', 'bomb', 'centerFly', 'icePickaxe', 'snow',
'pickaxe', 'bomb', 'centerFly', 'icePickaxe', 'freezeBadge',
'earthquake', 'upFly', 'downFly', 'jumpShoes', 'lifeWand',
'poisonWine', 'weakWine', 'curseWine', 'superWine',
'sword1', 'sword2', 'sword3', 'sword4', 'sword5',

View File

@ -97,23 +97,26 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"steelDoor2": 27,
"steelDoor3": 28,
"iceDoor": 29,
"iceDoor2": 30
"iceDoor2": 30,
"magentaWall": 31
},
"npcs": {
"man": 0,
"woman": 1,
"trader": 1,
"thief": 2,
"fairy": 3,
"magician": 4,
"womanMagician": 5,
"oldMan": 6,
"child": 7,
"wood": 8,
"pinkShop": 9,
"blueShop": 10,
"wizard": 4,
"recluse": 5,
"king": 6,
"youngMan": 7,
"sign": 8,
"expShop": 9,
"moneyShop": 10,
"princess": 11,
"man2": 28,
"woman2": 29,
"greenMan": 28,
"blueTrader": 29,
"redMSNpc": 30,
"blackTrader": 31,
"octopusLeftTop": 12,
"octopusTop": 13,
"octopusRightTop": 14,
@ -173,7 +176,7 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"redSwordsman": 53,
"poisonZombie": 55,
"octopus": 57,
"greenKnight": 59,
"princessEnemy": 59,
"skeletonWarrior": 9,
"frozenSkeleton": 69,
"silverSlimelord": 60,
@ -202,20 +205,16 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"evilFairy": 51,
"blueRock": 63,
"skeletonLite": 64,
"blueSkeleton": 65,
"greenKnight": 65,
"bowman": 66,
"liteBowman": 67,
"crismonZombie": 68,
"watcherSlime": 70,
"mutantSlimeman": 71,
"goldBat": 72,
"frostBat": 72,
"devilKnight": 73,
"grayPriest": 74,
"greenGT": 75,
"pinkGhostSoldier": 77,
"greenSoldier": 78,
"greenGhostSoldier": 79,
"pinkSoldier": 76,
"ghostSoldier": 11,
"evilHero": 40
},
@ -232,10 +231,10 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"greenKey": 3,
"steelKey": 4,
"bigKey": 6,
"redJewel": 16,
"blueJewel": 17,
"greenJewel": 18,
"yellowJewel": 19,
"redGem": 16,
"blueGem": 17,
"greenGem": 18,
"yellowGem": 19,
"redPotion": 20,
"bluePotion": 21,
"greenPotion": 22,
@ -262,7 +261,7 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"upFly": 15,
"downFly": 14,
"coin": 11,
"snow": 41,
"freezeBadge": 41,
"cross": 40,
"superPotion": 29,
"earthquake": 8,
@ -270,9 +269,9 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
"weakWine": 25,
"curseWine": 27,
"superWine": 28,
"knife": 42,
"moneyPocket": 46,
"shoes": 47,
"dagger": 42,
"silverCoin": 46,
"amulet": 47,
"hammer": 48,
"jumpShoes": 49,
"skill1": 30,

View File

@ -19,22 +19,22 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"text": "可以打开一扇红门",
"hideInToolbox": true
},
"redJewel": {
"redGem": {
"cls": "items",
"name": "红宝石",
"text": "',攻击+${core.values.redJewel}'"
"text": "',攻击+${core.values.redGem}'"
},
"blueJewel": {
"blueGem": {
"cls": "items",
"name": "蓝宝石",
"text": "',防御+${core.values.blueJewel}'"
"text": "',防御+${core.values.blueGem}'"
},
"greenJewel": {
"greenGem": {
"cls": "items",
"name": "绿宝石",
"text": "',护盾+${core.values.greenJewel}'"
"text": "',护盾+${core.values.greenGem}'"
},
"yellowJewel": {
"yellowGem": {
"cls": "items",
"name": "黄宝石",
"text": "可以进行加点"
@ -178,9 +178,9 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"cls": "items",
"name": "圣水"
},
"moneyPocket": {
"silverCoin": {
"cls": "items",
"name": "金钱袋"
"name": "银币"
},
"book": {
"cls": "constants",
@ -200,7 +200,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"name": "幸运金币",
"text": "持有时打败怪物可得双倍金币"
},
"snow": {
"freezeBadge": {
"cls": "constants",
"name": "冰冻徽章",
"text": "可以将面前的熔岩变成平地"
@ -210,14 +210,14 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"name": "十字架",
"text": "持有后无视怪物的无敌属性"
},
"knife": {
"dagger": {
"cls": "constants",
"name": "屠龙匕首",
"text": "该道具尚未被定义"
},
"shoes": {
"amulet": {
"cls": "constants",
"name": "绿鞋",
"name": "护符",
"text": "持有时无视负面地形"
},
"bigKey": {
@ -317,10 +317,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
}
},
"itemEffect": {
"redJewel": "core.status.hero.atk += core.values.redJewel * ratio",
"blueJewel": "core.status.hero.def += core.values.blueJewel * ratio",
"greenJewel": "core.status.hero.mdef += core.values.greenJewel * ratio",
"yellowJewel": "core.status.hero.hp+=1000;core.status.hero.atk+=6;core.status.hero.def+=6;core.status.hero.mdef+=10;",
"redGem": "core.status.hero.atk += core.values.redGem * ratio",
"blueGem": "core.status.hero.def += core.values.blueGem * ratio",
"greenGem": "core.status.hero.mdef += core.values.greenGem * ratio",
"yellowGem": "core.status.hero.hp+=1000;core.status.hero.atk+=6;core.status.hero.def+=6;core.status.hero.mdef+=10;",
"redPotion": "core.status.hero.hp += core.values.redPotion * ratio",
"bluePotion": "core.status.hero.hp += core.values.bluePotion * ratio",
"yellowPotion": "core.status.hero.hp += core.values.yellowPotion * ratio",
@ -339,13 +339,13 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"shield5": "core.status.hero.def += 100;core.status.hero.mdef += 100",
"bigKey": "core.status.hero.items.keys.yellowKey++;core.status.hero.items.keys.blueKey++;core.status.hero.items.keys.redKey++;",
"superPotion": "core.status.hero.hp *= 2",
"moneyPocket": "core.status.hero.money += 500"
"silverCoin": "core.status.hero.money += 500"
},
"itemEffectTip": {
"redJewel": "',攻击+'+core.values.redJewel * ratio",
"blueJewel": "',防御+'+core.values.blueJewel * ratio",
"greenJewel": "',护盾+'+core.values.greenJewel * ratio",
"yellowJewel": "',全属性提升'",
"redGem": "',攻击+'+core.values.redGem * ratio",
"blueGem": "',防御+'+core.values.blueGem * ratio",
"greenGem": "',护盾+'+core.values.greenGem * ratio",
"yellowGem": "',全属性提升'",
"redPotion": "',生命+'+core.values.redPotion * ratio",
"bluePotion": "',生命+'+core.values.bluePotion * ratio",
"yellowPotion": "',生命+'+core.values.yellowPotion * ratio",
@ -364,7 +364,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"shield5": "',防御+100护盾+100'",
"bigKey": "',全钥匙+1'",
"superPotion": "',生命值翻倍'",
"moneyPocket": "',金币+500'"
"silverCoin": "',金币+500'"
},
"useItemEffect": {
"book": "core.ui.drawBook(0);",
@ -372,7 +372,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"earthquake": "(function () {\n\tvar indexes = [];\n\tfor (var index in core.status.thisMap.blocks) {\n\t\tvar block = core.status.thisMap.blocks[index];\n\t\tif (!block.disable && block.event.canBreak) {\n\t\t\tindexes.push(index);\n\t\t}\n\t}\n\tcore.removeBlockByIndexes(indexes);\n\tcore.drawMap(core.status.floorId, function () {\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t});\n})();",
"pickaxe": "(function () {\n\tvar canBreak = function (x, y) {\n\t\tvar block = core.getBlock(x, y);\n\t\tif (block == null || block.block.disable) return false;\n\t\treturn block.block.event.canBreak;\n\t};\n\n\tvar success = false;\n\tvar pickaxeFourDirections = false; // 是否四方向破如果是将其改成true\n\tif (pickaxeFourDirections) {\n\t\t// 四方向破\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (canBreak(nx, ny)) {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// 仅破当前\n\t\tif (canBreak(core.nextX(), core.nextY())) {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.playSound('pickaxe.mp3');\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\t// 无法使用\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();",
"icePickaxe": "(function () {\n\tcore.removeBlock(core.nextX(), core.nextY());\n\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n})();",
"snow": "(function () {\n\tvar success = false;\n\n\tvar snowFourDirections = false; // 是否四方向雪花如果是将其改成true\n\tif (snowFourDirections) {\n\t\t// 四方向雪花\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (core.getBlockId(nx, ny) == 'lava') {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (core.getBlockId(core.nextX(), core.nextY()) == 'lava') {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();",
"freezeBadge": "(function () {\n\tvar success = false;\n\n\tvar snowFourDirections = false; // 是否四方向雪花如果是将其改成true\n\tif (snowFourDirections) {\n\t\t// 四方向雪花\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (core.getBlockId(nx, ny) == 'lava') {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (core.getBlockId(core.nextX(), core.nextY()) == 'lava') {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();",
"bigKey": "(function () {\n\tvar actions = core.searchBlock(\"yellowDoor\").map(function (block) {\n\t\treturn { \"type\": \"openDoor\", \"loc\": [block.x, block.y], \"async\": true };\n\t});\n\tactions.push({ \"type\": \"waitAsync\" });\n\tactions.push({ \"type\": \"tip\", \"text\": core.material.items[itemId].name + \"使用成功\" });\n\tcore.insertAction(actions);\n})();",
"bomb": "(function () {\n\tvar canBomb = function (x, y) {\n\t\tvar block = core.getBlock(x, y);\n\t\tif (block == null || block.block.disable || block.block.event.cls.indexOf('enemy') != 0) return false;\n\t\tvar enemy = core.material.enemys[block.block.event.id];\n\t\treturn enemy && !enemy.notBomb;\n\t};\n\n\tvar bombList = []; // 炸掉的怪物坐标列表\n\tvar bombFourDirections = false; // 是否四方向可炸如果是将其改成true。\n\tif (bombFourDirections) {\n\t\t// 四方向炸\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (canBomb(nx, ny)) {\n\t\t\t\tbombList.push([nx, ny]);\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// 仅炸当前\n\t\tif (canBomb(core.nextX(), core.nextY())) {\n\t\t\tbombList.push([core.nextX(), core.nextY()]);\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t}\n\t}\n\n\tif (bombList.length > 0) {\n\t\tcore.playSound('bomb.mp3');\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\tcore.drawTip('当前无法使用' + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n\n\t// 炸弹后事件\n\t// 这是一个使用炸弹也能开门的例子\n\t/*\n\tif (core.status.floorId=='xxx' && core.terrainExists(x0,y0,'specialDoor') // 某个楼层,该机关门存在\n\t\t&& !core.enemyExists(x1,y1) && !core.enemyExists(x2,y2)) // 且守门的怪物都不存在\n\t{\n\t\tcore.insertAction([ // 插入事件\n\t\t\t{\"type\": \"openDoor\", \"loc\": [x0,y0]} // 开门\n\t\t])\n\t}\n\t*/\n})();",
"centerFly": "core.playSound('centerFly.mp3');\ncore.clearMap('hero');\ncore.setHeroLoc('x', core.bigmap.width - 1 - core.getHeroLoc('x'));\ncore.setHeroLoc('y', core.bigmap.height - 1 - core.getHeroLoc('y'));\ncore.drawHero();\ncore.drawTip(core.material.items[itemId].name + '使用成功');",
@ -388,10 +388,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"bluePotion": "core.status.hero.hp += core.values.bluePotion",
"greenPotion": "core.status.hero.hp += core.values.greenPotion",
"yellowPotion": "core.status.hero.hp += core.values.yellowPotion",
"redJewel": "core.status.hero.atk += core.values.redJewel",
"blueJewel": "core.status.hero.def += core.values.blueJewel",
"greenJewel": "core.status.hero.mdef += core.values.greenJewel",
"yellowJewel": null,
"redGem": "core.status.hero.atk += core.values.redGem",
"blueGem": "core.status.hero.def += core.values.blueGem",
"greenGem": "core.status.hero.mdef += core.values.greenGem",
"yellowGem": null,
"skill1": "// 二倍斩的flag:skill为1\nif (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能\n\tif (core.getStatus('mana')>=5) { // 这里要写当前能否开技能的条件判断,比如魔力值至少要多少\n\t\tcore.setFlag('skill', 1); // 开技能1\n\t\tcore.setFlag('skillName', '二倍斩'); // 设置技能名\n\t}\n\telse {\n\t\tcore.drawTip(\"魔力不足,无法开启技能\");\n\t}\n}\nelse { // 关闭技能\n\tcore.setFlag('skill', 0); // 关闭技能状态\n\tcore.setFlag('skillName', '无');\n}"
},
"canUseItemEffect": {
@ -404,7 +404,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"centerFly": "(function () {\n\tvar toX = core.bigmap.width - 1 - core.getHeroLoc('x'),\n\t\ttoY = core.bigmap.height - 1 - core.getHeroLoc('y');\n\tvar id = core.getBlockId(toX, toY);\n\treturn id == null;\n})();",
"upFly": "(function () {\n\tvar floorId = core.status.floorId,\n\t\tindex = core.floorIds.indexOf(floorId);\n\tif (index < core.floorIds.length - 1) {\n\t\tvar toId = core.floorIds[index + 1],\n\t\t\ttoX = core.getHeroLoc('x'),\n\t\t\ttoY = core.getHeroLoc('y');\n\t\tvar mw = core.floors[toId].width,\n\t\t\tmh = core.floors[toId].height;\n\t\tif (toX >= 0 && toX < mw && toY >= 0 && toY < mh && core.getBlock(toX, toY, toId) == null) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n})();",
"downFly": "(function () {\n\tvar floorId = core.status.floorId,\n\t\tindex = core.floorIds.indexOf(floorId);\n\tif (index > 0) {\n\t\tvar toId = core.floorIds[index - 1],\n\t\t\ttoX = core.getHeroLoc('x'),\n\t\t\ttoY = core.getHeroLoc('y');\n\t\tvar mw = core.floors[toId].width,\n\t\t\tmh = core.floors[toId].height;\n\t\tif (toX >= 0 && toX < mw && toY >= 0 && toY < mh && core.getBlock(toX, toY, toId) == null) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n})();",
"snow": "true",
"freezeBadge": "true",
"bigKey": "(function () {\n\treturn core.searchBlock('yellowDoor').length > 0;\n})();",
"poisonWine": "core.hasFlag('poison');",
"weakWine": "core.hasFlag('weak');",
@ -416,15 +416,15 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"bluePotion": "true",
"greenPotion": "true",
"yellowPotion": "true",
"redJewel": "true",
"blueJewel": "true",
"greenJewel": "true",
"yellowJewel": "true",
"redGem": "true",
"blueGem": "true",
"greenGem": "true",
"yellowGem": "true",
"skill1": "true"
},
"equipCondition": {},
"useItemEvent": {
"yellowJewel": [
"yellowGem": [
{
"type": "choices",
"choices": [

View File

@ -11,9 +11,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"9": {"cls":"terrains","id":"pinkShopLeft"},
"10": {"cls":"terrains","id":"pinkShopRight"},
"11": {"cls":"animates","id":"lavaNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 血网的伤害效果移动到 checkBlock 中处理\n\n\t// 如果要做一次性血网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})();","name":"血网"},
"12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行毒处理\n\tif (!core.hasItem('shoes')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [0] });\n\t}\n\n\t// 如果要做一次性毒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"毒网"},
"13": {"cls":"animates","id":"weakNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行衰处理\n\tif (!core.hasItem('shoes')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [1] });\n\t}\n\n\t// 如果要做一次性衰网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"衰网"},
"14": {"cls":"animates","id":"curseNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行咒处理\n\tif (!core.hasItem('shoes')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [2] });\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"咒网"},
"12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行毒处理\n\tif (!core.hasItem('amulet')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [0] });\n\t}\n\n\t// 如果要做一次性毒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"毒网"},
"13": {"cls":"animates","id":"weakNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行衰处理\n\tif (!core.hasItem('amulet')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [1] });\n\t}\n\n\t// 如果要做一次性衰网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"衰网"},
"14": {"cls":"animates","id":"curseNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行咒处理\n\tif (!core.hasItem('amulet')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [2] });\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"咒网"},
"15": {"cls":"animates","id":"blueWater"},
"16": {"cls":"animates","id":"water"},
"20": {"cls":"autotile","id":"autotile"},
@ -23,10 +23,10 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"24": {"cls":"items","id":"greenKey"},
"25": {"cls":"items","id":"steelKey"},
"26": {"cls":"items","id":"bigKey"},
"27": {"cls":"items","id":"redJewel"},
"28": {"cls":"items","id":"blueJewel"},
"29": {"cls":"items","id":"greenJewel"},
"30": {"cls":"items","id":"yellowJewel"},
"27": {"cls":"items","id":"redGem"},
"28": {"cls":"items","id":"blueGem"},
"29": {"cls":"items","id":"greenGem"},
"30": {"cls":"items","id":"yellowGem"},
"31": {"cls":"items","id":"redPotion"},
"32": {"cls":"items","id":"bluePotion"},
"33": {"cls":"items","id":"greenPotion"},
@ -50,7 +50,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"51": {"cls":"items","id":"upFly"},
"52": {"cls":"items","id":"downFly"},
"53": {"cls":"items","id":"coin"},
"54": {"cls":"items","id":"snow"},
"54": {"cls":"items","id":"freezeBadge"},
"55": {"cls":"items","id":"cross"},
"56": {"cls":"items","id":"superPotion"},
"57": {"cls":"items","id":"earthquake"},
@ -58,9 +58,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"59": {"cls":"items","id":"weakWine"},
"60": {"cls":"items","id":"curseWine"},
"61": {"cls":"items","id":"superWine"},
"62": {"cls":"items","id":"knife"},
"63": {"cls":"items","id":"moneyPocket"},
"64": {"cls":"items","id":"shoes"},
"62": {"cls":"items","id":"dagger"},
"63": {"cls":"items","id":"silverCoin"},
"64": {"cls":"items","id":"amulet"},
"65": {"cls":"items","id":"hammer"},
"68": {"cls":"items","id":"lifeWand"},
"69": {"cls":"items","id":"jumpShoes"},
@ -90,22 +90,27 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"106": {"cls":"animates","id":"steelDoor3","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
"107": {"cls":"animates","id":"iceDoor","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
"108": {"cls":"animates","id":"iceDoor2","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"},
"109": {"cls":"animates","id":"magentaWall","canBreak":true,"animate":1,"doorInfo":[null,"door.mp3","door.mp3"]},
"121": {"cls":"npcs","id":"man"},
"122": {"cls":"npcs","id":"woman"},
"122": {"cls":"npcs","id":"trader"},
"123": {"cls":"npcs","id":"thief"},
"124": {"cls":"npcs","id":"fairy"},
"125": {"cls":"npcs","id":"magician"},
"126": {"cls":"npcs","id":"womanMagician"},
"127": {"cls":"npcs","id":"oldMan"},
"128": {"cls":"npcs","id":"child"},
"129": {"cls":"npcs","id":"wood"},
"130": {"cls":"npcs","id":"pinkShop"},
"131": {"cls":"npcs","id":"blueShop"},
"125": {"cls":"npcs","id":"wizard"},
"126": {"cls":"npcs","id":"recluse"},
"127": {"cls":"npcs","id":"king"},
"128": {"cls":"npcs","id":"youngMan"},
"129": {"cls":"npcs","id":"sign"},
"130": {"cls":"npcs","id":"expShop"},
"131": {"cls":"npcs","id":"moneyShop"},
"132": {"cls":"npcs","id":"princess"},
"133": {"cls":"npc48","id":"npc0","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}},
"134": {"cls":"npc48","id":"npc1","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}},
"135": {"cls":"npc48","id":"npc2","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}},
"136": {"cls":"npc48","id":"npc3","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}},
"137": {"cls":"npcs","id":"greenMan"},
"138": {"cls":"npcs","id":"blueTrader"},
"139": {"cls":"npcs","id":"redMSNpc"},
"140": {"cls":"npcs","id":"blackTrader"},
"151": {"cls":"autotile","id":"autotile1"},
"152": {"cls":"autotile","id":"autotile2"},
"153": {"cls":"autotile","id":"autotile3"},
@ -135,8 +140,6 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"194": {"cls":"npcs","id":"dragonRight"},
"195": {"cls":"npcs","id":"dragonLeftBottom"},
"196": {"cls":"npcs","id":"dragonRightBottom"},
"197": {"cls":"npcs","id":"man2"},
"198": {"cls":"npcs","id":"woman2"},
"201": {"cls":"enemys","id":"greenSlime"},
"202": {"cls":"enemys","id":"redSlime"},
"203": {"cls":"enemys","id":"blackSlime"},
@ -196,7 +199,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"257": {"cls":"enemys","id":"dragon"},
"258": {"cls":"enemys","id":"octopus"},
"259": {"cls":"enemys","id":"fairyEnemy"},
"260": {"cls":"enemys","id":"greenKnight"},
"260": {"cls":"enemys","id":"princessEnemy"},
"261": {"cls":"enemy48","id":"angel"},
"262": {"cls":"enemy48","id":"elemental"},
"263": {"cls":"enemy48","id":"steelGuard"},
@ -206,21 +209,17 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
"267": {"cls":"enemys","id":"grayRock"},
"268": {"cls":"enemys","id":"blueRock"},
"269": {"cls":"enemys","id":"skeletonLite"},
"270": {"cls":"enemys","id":"blueSkeleton"},
"270": {"cls":"enemys","id":"greenKnight"},
"271": {"cls":"enemys","id":"bowman"},
"272": {"cls":"enemys","id":"liteBowman"},
"273": {"cls":"enemys","id":"crismonZombie"},
"274": {"cls":"enemys","id":"frozenSkeleton"},
"275": {"cls":"enemys","id":"watcherSlime"},
"276": {"cls":"enemys","id":"mutantSlimeman"},
"277": {"cls":"enemys","id":"goldBat"},
"277": {"cls":"enemys","id":"frostBat"},
"278": {"cls":"enemys","id":"devilKnight"},
"279": {"cls":"enemys","id":"grayPriest"},
"280": {"cls":"enemys","id":"greenGT"},
"281": {"cls":"enemys","id":"pinkSoldier"},
"282": {"cls":"enemys","id":"pinkGhostSoldier"},
"283": {"cls":"enemys","id":"greenSoldier"},
"284": {"cls":"enemys","id":"greenGhostSoldier"},
"300": {"cls":"terrains","id":"ground"},
"301": {"cls":"terrains","id":"grass"},
"302": {"cls":"terrains","id":"grass2"},

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 600 B

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 20 KiB

2
runtime.d.ts vendored
View File

@ -1542,7 +1542,7 @@ declare class utils {
/**
* 适用于global:xxx
* @example if (core.getGlobal('一周目已通关', false) === true) core.getItem('knife'); // 二周目游戏进行到此处时会获得一把屠龙匕首
* @example if (core.getGlobal('一周目已通关', false) === true) core.getItem('dagger'); // 二周目游戏进行到此处时会获得一把屠龙匕首
* @param key
* @param defaultValue nullundefined时
* @returns

View File

@ -57,10 +57,12 @@
(已完成!) 增加fonts目录全塔属性增加fonts引用
(已完成!) 右边框输入完后解析按钮高亮
32x48的门
难度分歧的图块颜色含SL界面
装备同时加属性和比例
-------------
(不处理) 0. 部分文案的修改,如“地图编辑器”(启动服务.exe中、“enemys”、“snipe”
(不处理) 0. 部分文案的修改,如“地图编辑器”(启动服务.exe中、“enemys”、“repluse”
(造塔工具相关都给鹿神) 1. 便捷PS工具希望加入自定义单位宽高功能希望把“白底转透明”增强为“纯色底转透明”弹窗由作者输入RGB或RGBA值
(已修复) 2. 请求修复如果还没修复新建单张空白地图无法自定义宽高的bug
(文档相关给秋橙) 3. 希望给M键“追加素材”功能写个更详细的说明在线文档中没有所以离线文档中也没写成

View File

@ -41,7 +41,7 @@ V2.6.6 -> V2.7 接档说明:
5. 使用VSCode分别打开接档后的V2.7和纯净的V2.7的【project/items.js】并执行以下操作
- 将三色钥匙的cls从"keys"改成"tools",并新增 "hideInToolbox": true
- 如下道具的【useItemEffect】和【canUseItemEffect】有所改变请直接从纯净的V2.7覆盖到你要接档的V2.7
- earthquake, pickaxe, icePickaxe, snow, bigKey, bomb, upFly, downFly
- earthquake, pickaxe, icePickaxe, freezeBadge, bigKey, bomb, upFly, downFly
- 如果确认你的塔不会使用该道具,可忽略
- 黄宝石和生命魔杖增加了【useItemEvent】如需使用请进行复制
@ -49,7 +49,7 @@ V2.6.6 -> V2.7 接档说明:
- 找到【terrains】中的三色墙和六色门删除对应的这几行
- yellowWall, blueWall, whiteWall, yellowDoor, blueDoor, redDoor, greenDoor, specialDoor, steelDoor
- 在V2.7中terrains不再保留门的引用门效果仅由animates决定
- 将【terrains】中的 blueShop-left, blueShop-right, pinkShop-left, pinkShop-right 分别重命名为
- 将【terrains】中的 moneyShop-left, moneyShop-right, expShop-left, expShop-right 分别重命名为
blueShopLeft, blueShopRight, pinkShopLeft, pinkShopRight
7. 使用VSCode分别打开接档后的V2.7和纯净的V2.7的【project/maps.js】并执行以下操作
@ -87,5 +87,6 @@ V2.6.6 -> V2.7 接档说明:
- 「重启当前事件」已经被删除并且无法在游戏中使用。请替换成等价的循环处理或者插入事件
- 在V2.7中所有的experience全部改名exp请检查所有对经验值进行操作的地方
其他:
Jewel改名Gem