diff --git a/_server/CodeMirror/defs.js b/_server/CodeMirror/defs.js index 38f330da..47a626ef 100644 --- a/_server/CodeMirror/defs.js +++ b/_server/CodeMirror/defs.js @@ -2334,6 +2334,10 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [ "!doc": "从status中获得实际属性(增幅后的),如果不存在则从勇士属性中获取", "!type": "fn(status?: ?, name?: string)" }, + "getStatusLabel": { + "!doc": "获得某个状态的名字,如atk->攻击,def->防御等", + "!type": "fn(name: string) -> string" + }, "removeSave": { "!doc": "删除某个存档", "!type": "fn(index?: number, callback?: fn())" diff --git a/_server/table/functions.comment.js b/_server/table/functions.comment.js index 366039b2..bb056eb1 100644 --- a/_server/table/functions.comment.js +++ b/_server/table/functions.comment.js @@ -135,6 +135,12 @@ var functions_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "_lint": true, "_data": "读档操作" }, + "getStatusLabel": { + "_leaf": true, + "_type": "textarea", + "_lint": true, + "_data": "状态名定义" + }, "triggerDebuff": { "_leaf": true, "_type": "textarea", diff --git a/libs/control.js b/libs/control.js index 70357b28..635f9851 100644 --- a/libs/control.js +++ b/libs/control.js @@ -2095,6 +2095,17 @@ control.prototype.getNakedStatus = function (name) { return value; } +////// 获得某个属性的名字 ////// +control.prototype.getStatusLabel = function (name) { + if (this.controldata.getStatusLabel) { + return this.controldata.getStatusLabel(name) || name; + } + return { + name: "名称", lv: "等级", hpmax: "生命上限", hp: "生命", manamax: "魔力上限", mana: "魔力", + atk: "攻击", def: "防御", mdef: "护盾", money: "金币", exp: "经验", point: "加点", steps: "步数" + }[name] || name; +} + ////// 设置某个属性的增幅值 ////// control.prototype.setBuff = function (name, value) { // 仅保留三位有效buff值 diff --git a/libs/ui.js b/libs/ui.js index 72837533..5f64b65e 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1992,11 +1992,11 @@ ui.prototype._drawBook_drawRow1 = function (index, enemy, top, left, width, posi core.setTextAlign('ui', 'left'); var b13 = this._buildFont(13, true), f13 = this._buildFont(13, false); var col1 = left, col2 = left + width * 9 / 25, col3 = left + width * 17 / 25; - core.fillText('ui', '生命', col1, position, '#DDDDDD', f13); + core.fillText('ui', core.getStatusLabel('hp'), col1, position, '#DDDDDD', f13); core.fillText('ui', core.formatBigNumber(enemy.hp||0), col1 + 30, position, null, b13); - core.fillText('ui', '攻击', col2, position, null, f13); + core.fillText('ui', core.getStatusLabel('atk'), col2, position, null, f13); core.fillText('ui', core.formatBigNumber(enemy.atk||0), col2 + 30, position, null, b13); - core.fillText('ui', '防御', col3, position, null, f13); + core.fillText('ui', core.getStatusLabel('def'), col3, position, null, f13); core.fillText('ui', core.formatBigNumber(enemy.def||0), col3 + 30, position, null, b13); } @@ -2007,9 +2007,9 @@ ui.prototype._drawBook_drawRow2 = function (index, enemy, top, left, width, posi var col1 = left, col2 = left + width * 9 / 25, col3 = left + width * 17 / 25; // 获得第二行绘制的内容 var second_line = []; - if (core.flags.statusBarItems.indexOf('enableMoney')>=0) second_line.push(["金币", core.formatBigNumber(enemy.money || 0)]); - if (core.flags.enableAddPoint) second_line.push(["加点", core.formatBigNumber(enemy.point || 0)]); - if (core.flags.statusBarItems.indexOf('enableExp')>=0) second_line.push(["经验", core.formatBigNumber(enemy.exp || 0)]); + if (core.flags.statusBarItems.indexOf('enableMoney')>=0) second_line.push([core.getStatusLabel('money'), core.formatBigNumber(enemy.money || 0)]); + if (core.flags.enableAddPoint) second_line.push([core.getStatusLabel('point'), core.formatBigNumber(enemy.point || 0)]); + if (core.flags.statusBarItems.indexOf('enableExp')>=0) second_line.push([core.getStatusLabel('exp'), core.formatBigNumber(enemy.exp || 0)]); var damage_offset = col1 + (this.PIXEL - col1) / 2 - 12; // 第一列 @@ -2600,7 +2600,7 @@ ui.prototype._drawEquipbox_drawStatusChanged = function (info, y, equip, equipTy var newValue = Math.floor((core.getStatus(name) + (compare.value[name] || 0)) * (core.getBuff(name) * 100 + (compare.percentage[name] || 0)) / 100); if (nowValue == newValue) continue; - var text = this._drawEquipbox_getStatusName(name); + var text = core.getStatusLabel(name); this._drawEquipbox_drawStatusChanged_draw(text + " ", '#CCCCCC', obj); var color = newValue>nowValue?'#00FF00':'#FF0000'; nowValue = core.formatBigNumber(nowValue); @@ -2611,14 +2611,6 @@ ui.prototype._drawEquipbox_drawStatusChanged = function (info, y, equip, equipTy } } -ui.prototype._drawEquipbox_getStatusName = function (name) { - var map = { - name: "名称", lv: "等级", hpmax: "生命上限", hp: "生命", manamax: "魔力上限", mana: "魔力", - atk: "攻击", def: "防御", mdef: "护盾", money: "金币", exp: "经验", exp: "经验", steps: "步数" - }; - return map[name] || name; -} - ui.prototype._drawEquipbox_drawStatusChanged_draw = function (text, color, obj) { var len = core.calWidth('ui', text); if (obj.drawOffset + len >= core.__PIXELS__) { // 换行 @@ -2978,9 +2970,9 @@ ui.prototype._drawStatistics_items = function (floorId, floor, id, obj) { } if (id.indexOf('sword')==0 || id.indexOf('shield')==0 || obj.cls[id]=='equips') { var t = ""; - if (atk > 0) t += atk + "攻"; - if (def > 0) t += def + "防"; - if (mdef > 0) t += mdef + "护盾"; + if (atk > 0) t += atk + core.getStatusLabel('atk'); + if (def > 0) t += def + core.getStatusLabel('def'); + if (mdef > 0) t += mdef + core.getStatusLabel('mdef'); if (t != "") obj.ext[id] = t; } this._drawStatistics_add(floorId, obj, 'count', id, 1); diff --git a/project/functions.js b/project/functions.js index a4e655a3..5d89dc75 100644 --- a/project/functions.js +++ b/project/functions.js @@ -992,6 +992,27 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = core.removeFlag('__fromLoad__'); if (callback) callback(); }); +}, + "getStatusLabel": function (name) { + // 返回某个状态英文名的对应中文标签,如atk -> 攻击,def -> 防御等。 + // 请注意此项仅影响 libs/ 下的内容(如绘制怪物手册、数据统计等) + // 自行定义的(比如获得道具效果)中用到的“攻击+3”等需要自己去对应地方修改 + + return { + name: "名称", + lv: "等级", + hpmax: "生命上限", + hp: "生命", + manamax: "魔力上限", + mana: "魔力", + atk: "攻击", + def: "防御", + mdef: "护盾", + money: "金币", + exp: "经验", + point: "加点", + steps: "步数", + } [name] || name; }, "triggerDebuff": function (action, type) { // 毒衰咒效果的获得与解除 diff --git a/runtime.d.ts b/runtime.d.ts index 1ea37898..c40b570a 100644 --- a/runtime.d.ts +++ b/runtime.d.ts @@ -430,6 +430,9 @@ declare class control { * @param name 属性的英文名,请注意只能用于数值类属性哦,否则乘法会得到NaN */ getRealStatus(name: string): any + + /** 获得某个状态的名字 */ + getStatusLabel(name: string): string /** * 设置主角某个属性的百分比修正倍率,初始值为1,