diff --git a/_server/data.comment.js b/_server/data.comment.js index bc4b3876..99f824e1 100644 --- a/_server/data.comment.js +++ b/_server/data.comment.js @@ -233,7 +233,7 @@ data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = "weakValue": { "_leaf": true, "_type": "textarea", - "_data": "衰弱状态下攻防减少的数值" + "_data": "衰弱状态下攻防减少的数值\n如果此项不小于1,则作为实际下降的数值(比如10就是攻防各下降10)\n如果在0到1之间则为下降的比例(比如0.3就是下降30%的攻防)" }, "redJewel": { "_leaf": true, diff --git a/libs/events.js b/libs/events.js index cae460c5..75f74fa3 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1286,8 +1286,13 @@ events.prototype.passNet = function (data) { if (data.event.id=='weakNet') { // 衰网 if (core.hasFlag('weak')) return; core.setFlag('weak', true); - core.status.hero.atk-=core.values.weakValue; - core.status.hero.def-=core.values.weakValue; + var weakValue = core.status.weakValue; + var weakAtk = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.atk); + var weakDef = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.def); + core.setFlag('weakAtk', weakAtk); + core.setFlag('weakDef', weakDef); + core.status.hero.atk-=weakAtk; + core.status.hero.def-=weakDef; } if (data.event.id=='curseNet') { // 咒网 if (core.hasFlag('curse')) return; diff --git a/libs/utils.js b/libs/utils.js index ddcdf0e4..8ad8e03b 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -170,10 +170,13 @@ utils.prototype.setTwoDigits = function (x) { } utils.prototype.formatBigNumber = function (x) { - x = parseFloat(x); + x = Math.floor(parseFloat(x)); if (!core.isset(x)) return '???'; - if (x<=999999) return x; + var c = x<0?"-":""; + x = Math.abs(x); + + if (x<=999999) return c + x; var all = [ {"val": 1e20, "c": "g"}, @@ -187,11 +190,11 @@ utils.prototype.formatBigNumber = function (x) { var one = all[i]; if (x>=10*one.val) { var v = x/one.val; - return v.toFixed(Math.max(0, Math.floor(4-Math.log10(v+1)))) + one.c; + return c + v.toFixed(Math.max(0, Math.floor(4-Math.log10(v+1)))) + one.c; } } - return x; + return c+x; } ////// 数组转RGB ////// diff --git a/project/functions.js b/project/functions.js index ce14382f..975d9aab 100644 --- a/project/functions.js +++ b/project/functions.js @@ -155,8 +155,13 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 衰弱 if (core.enemys.hasSpecial(special, 13) && !core.hasFlag('weak')) { core.setFlag('weak', true); - core.status.hero.atk-=core.values.weakValue; - core.status.hero.def-=core.values.weakValue; + var weakValue = core.status.weakValue; + var weakAtk = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.atk); + var weakDef = weakValue>=1?weakValue:Math.floor(weakValue*core.status.hero.def); + core.setFlag('weakAtk', weakAtk); + core.setFlag('weakDef', weakDef); + core.status.hero.atk-=weakAtk; + core.status.hero.def-=weakDef; } // 诅咒 if (core.enemys.hasSpecial(special, 14) && !core.hasFlag('curse')) { diff --git a/project/items.js b/project/items.js index 3c529527..e5f192dc 100644 --- a/project/items.js +++ b/project/items.js @@ -284,9 +284,9 @@ items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "upFly": "var loc = {'direction': core.status.hero.loc.direction, 'x': core.status.event.data.x, 'y': core.status.event.data.y};\ncore.changeFloor(core.status.event.data.id, null, loc, null, function (){\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.replay();\n});", "downFly": "var loc = {'direction': core.status.hero.loc.direction, 'x': core.status.event.data.x, 'y': core.status.event.data.y};\ncore.changeFloor(core.status.event.data.id, null, loc, null, function (){\n core.drawTip(core.material.items[itemId].name + '使用成功');\n core.replay();\n});", "poisonWine": "core.setFlag('poison', false);", - "weakWine": "core.setFlag('weak', false);\ncore.status.hero.atk += core.values.weakValue;\ncore.status.hero.def += core.values.weakValue;", + "weakWine": "core.setFlag('weak', false);\ncore.status.hero.atk += core.getFlag('weakAtk', core.values.weakValue);\ncore.status.hero.def += core.getFlag('weakDef', core.values.weakValue);", "curseWine": "core.setFlag('curse', false);", - "superWine": "core.setFlag('poison', false);\nif (core.hasFlag('weak')) {\n core.setFlag('weak', false);\n core.status.hero.atk += core.values.weakValue;\n core.status.hero.def += core.values.weakValue;\n}\ncore.setFlag('curse', false);", + "superWine": "core.setFlag('poison', false);\nif (core.hasFlag('weak')) {\n core.setFlag('weak', false);\n core.status.hero.atk += core.getFlag('weakAtk', core.values.weakValue);\n core.status.hero.def += core.getFlag('weakDef', core.values.weakValue);\n}\ncore.setFlag('curse', false);", "sword0": "core.plugin.useEquipment(itemId)", "sword1": "core.plugin.useEquipment(itemId)", "sword2": "core.plugin.useEquipment(itemId)",