添加for/forEach事件
This commit is contained in:
parent
21f9016b89
commit
78f4210eb7
@ -287,7 +287,7 @@ core.closePanel()
|
|||||||
结束一切事件和绘制,关闭UI窗口,返回游戏进程。
|
结束一切事件和绘制,关闭UI窗口,返回游戏进程。
|
||||||
|
|
||||||
|
|
||||||
core.replaceText(text)
|
core.replaceText(text, prefix, need, times)
|
||||||
将一段文字中的${}进行计算并替换。
|
将一段文字中的${}进行计算并替换。
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,5 @@
|
|||||||
|
// 编辑此文件用的vscode插件: https://marketplace.visualstudio.com/items?itemName=zhaouv.vscode-mota-js-extension
|
||||||
|
|
||||||
grammar MotaAction;
|
grammar MotaAction;
|
||||||
|
|
||||||
//===============parser===============
|
//===============parser===============
|
||||||
@ -400,6 +402,8 @@ action
|
|||||||
| if_s
|
| if_s
|
||||||
| if_1_s
|
| if_1_s
|
||||||
| switch_s
|
| switch_s
|
||||||
|
| for_s
|
||||||
|
| forEach_s
|
||||||
| while_s
|
| while_s
|
||||||
| dowhile_s
|
| dowhile_s
|
||||||
| break_s
|
| break_s
|
||||||
@ -1936,6 +1940,35 @@ var code = ['{"type": "confirm"'+Int_0+Bool_0+', "text": "',EvalString_0,'",\n',
|
|||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
|
for_s
|
||||||
|
: '循环遍历' ': ' expression '从' EvalString '到' EvalString '步增' EvalString BGNL? Newline action+ BEND Newline
|
||||||
|
|
||||||
|
/* for_s
|
||||||
|
tooltip : for:循环遍历
|
||||||
|
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=while%ef%bc%9a%e5%89%8d%e7%bd%ae%e6%9d%a1%e4%bb%b6%e5%be%aa%e7%8e%af
|
||||||
|
colour : this.eventColor
|
||||||
|
if (!/^switch:[A-Z]$/.test(expression_0)) {
|
||||||
|
throw new Error('循环遍历仅允许使用独立开关!');
|
||||||
|
}
|
||||||
|
return '{"type": "for", "name": "'+expression_0+'", "from": "'+EvalString_0+'", "to": "'+EvalString_1+'", "step": "'+EvalString_2+'",\n"data": [\n'+action_0+']},\n';
|
||||||
|
*/;
|
||||||
|
|
||||||
|
forEach_s
|
||||||
|
: '循环遍历' ': ' expression '在列表' JsonEvalString '中' BGNL? Newline action+ BEND Newline
|
||||||
|
|
||||||
|
/* forEach_s
|
||||||
|
tooltip : forEach:循环遍历列表
|
||||||
|
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=while%ef%bc%9a%e5%89%8d%e7%bd%ae%e6%9d%a1%e4%bb%b6%e5%be%aa%e7%8e%af
|
||||||
|
colour : this.eventColor
|
||||||
|
if (!/^switch:[A-Z]$/.test(expression_0)) {
|
||||||
|
throw new Error('循环遍历仅允许使用独立开关!');
|
||||||
|
}
|
||||||
|
if (JsonEvalString_0 == '' || !(JSON.parse(JsonEvalString_0) instanceof Array)) {
|
||||||
|
throw new Error('参数列表必须是个有效的数组!');
|
||||||
|
}
|
||||||
|
return '{"type": "forEach", "name": "'+expression_0+'", "list": '+JsonEvalString_0 + ',\n"data": [\n'+action_0+']},\n';
|
||||||
|
*/;
|
||||||
|
|
||||||
while_s
|
while_s
|
||||||
: '前置条件循环' ':' '当' expression '时' BGNL? Newline action+ BEND Newline
|
: '前置条件循环' ':' '当' expression '时' BGNL? Newline action+ BEND Newline
|
||||||
|
|
||||||
@ -3529,16 +3562,30 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
this.next = MotaActionBlocks['choices_s'].xmlText([
|
this.next = MotaActionBlocks['choices_s'].xmlText([
|
||||||
info[3],info[0],info[1],data.timeout||0,text_choices,this.next]);
|
info[3],info[0],info[1],data.timeout||0,text_choices,this.next]);
|
||||||
break;
|
break;
|
||||||
|
case "for": // 循环遍历
|
||||||
|
this.next = MotaActionBlocks['for_s'].xmlText([
|
||||||
|
this.tryToUseEvFlag_e('evalString_e', [data.name]),
|
||||||
|
data.from || 0, data.to || 0, data.step || 0,
|
||||||
|
this.insertActionList(data.data),
|
||||||
|
this.next]);
|
||||||
|
break;
|
||||||
|
case "forEach": // 循环遍历列表
|
||||||
|
this.next = MotaActionBlocks['forEach_s'].xmlText([
|
||||||
|
this.tryToUseEvFlag_e('evalString_e', [data.name]),
|
||||||
|
JSON.stringify(data.list),
|
||||||
|
this.insertActionList(data.data),
|
||||||
|
this.next]);
|
||||||
|
break;
|
||||||
case "while": // 前置条件循环处理
|
case "while": // 前置条件循环处理
|
||||||
this.next = MotaActionBlocks['while_s'].xmlText([
|
this.next = MotaActionBlocks['while_s'].xmlText([
|
||||||
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
||||||
this.insertActionList(data["data"]),
|
this.insertActionList(data.data),
|
||||||
this.next]);
|
this.next]);
|
||||||
break;
|
break;
|
||||||
case "dowhile": // 后置条件循环处理
|
case "dowhile": // 后置条件循环处理
|
||||||
this.next = MotaActionBlocks['dowhile_s'].xmlText([
|
this.next = MotaActionBlocks['dowhile_s'].xmlText([
|
||||||
this.insertActionList(data["data"]),
|
this.insertActionList(data.data),
|
||||||
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
// MotaActionBlocks['evalString_e'].xmlText([data.condition]),
|
||||||
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
this.tryToUseEvFlag_e('evalString_e', [data.condition]),
|
||||||
this.next]);
|
this.next]);
|
||||||
|
|||||||
@ -93,9 +93,6 @@ editor_blockly = function () {
|
|||||||
MotaActionBlocks['choices_s'].xmlText([
|
MotaActionBlocks['choices_s'].xmlText([
|
||||||
'选择剑或者盾','流浪者','man',0,MotaActionBlocks['choicesContext'].xmlText([
|
'选择剑或者盾','流浪者','man',0,MotaActionBlocks['choicesContext'].xmlText([
|
||||||
'剑','','',null,'',MotaActionFunctions.actionParser.parseList([{"type": "openDoor", "loc": [3,3]}]),
|
'剑','','',null,'',MotaActionFunctions.actionParser.parseList([{"type": "openDoor", "loc": [3,3]}]),
|
||||||
MotaActionBlocks['choicesContext'].xmlText([
|
|
||||||
'盾','','',null,'',MotaActionFunctions.actionParser.parseList([{"type": "openDoor", "loc": [9,3]}]),
|
|
||||||
])
|
|
||||||
])
|
])
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
@ -149,9 +146,10 @@ editor_blockly = function () {
|
|||||||
MotaActionBlocks['if_s'].xmlText(),
|
MotaActionBlocks['if_s'].xmlText(),
|
||||||
MotaActionFunctions.actionParser.parseList({"type": "switch", "condition": "判别值", "caseList": [
|
MotaActionFunctions.actionParser.parseList({"type": "switch", "condition": "判别值", "caseList": [
|
||||||
{"action": [{"type": "comment", "text": "当判别值是值的场合执行此事件"}]},
|
{"action": [{"type": "comment", "text": "当判别值是值的场合执行此事件"}]},
|
||||||
{"action": [], "nobreak": true},
|
|
||||||
{"case": "default", "action": [{"type": "comment", "text": "当没有符合的值的场合执行default事件"}]},
|
{"case": "default", "action": [{"type": "comment", "text": "当没有符合的值的场合执行default事件"}]},
|
||||||
]}),
|
]}),
|
||||||
|
MotaActionFunctions.actionParser.parseList({"type": "for", "name": "switch:A", "from": "0", "to": "12", "step": "1", "data": []}),
|
||||||
|
MotaActionFunctions.actionParser.parseList({"type": "forEach", "name": "switch:A", "list": ["status:atk","status:def"], "data": []}),
|
||||||
MotaActionBlocks['while_s'].xmlText(),
|
MotaActionBlocks['while_s'].xmlText(),
|
||||||
MotaActionBlocks['dowhile_s'].xmlText(),
|
MotaActionBlocks['dowhile_s'].xmlText(),
|
||||||
MotaActionBlocks['break_s'].xmlText(),
|
MotaActionBlocks['break_s'].xmlText(),
|
||||||
|
|||||||
@ -1210,17 +1210,20 @@ events.prototype.__action_doAsyncFunc = function (isAsync, func) {
|
|||||||
|
|
||||||
events.prototype._action_text = function (data, x, y, prefix) {
|
events.prototype._action_text = function (data, x, y, prefix) {
|
||||||
if (this.__action_checkReplaying()) return;
|
if (this.__action_checkReplaying()) return;
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
core.ui.drawTextBox(data.text, data.showAll);
|
core.ui.drawTextBox(data.text, data.showAll);
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_autoText = function (data, x, y, prefix) {
|
events.prototype._action_autoText = function (data, x, y, prefix) {
|
||||||
if (this.__action_checkReplaying()) return;
|
if (this.__action_checkReplaying()) return;
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
core.ui.drawTextBox(data.text);
|
core.ui.drawTextBox(data.text);
|
||||||
setTimeout(core.doAction, data.time || 3000);
|
setTimeout(core.doAction, data.time || 3000);
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_scrollText = function (data, x, y, prefix) {
|
events.prototype._action_scrollText = function (data, x, y, prefix) {
|
||||||
if (this.__action_checkReplaying()) return;
|
if (this.__action_checkReplaying()) return;
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
this.__action_doAsyncFunc(data.async, core.drawScrollText, data.text, data.time || 5000, data.lineHeight || 1.4);
|
this.__action_doAsyncFunc(data.async, core.drawScrollText, data.text, data.time || 5000, data.lineHeight || 1.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1250,7 +1253,7 @@ events.prototype._action_setText = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_tip = function (data, x, y, prefix) {
|
events.prototype._action_tip = function (data, x, y, prefix) {
|
||||||
core.drawTip(core.replaceText(data.text), data.icon);
|
core.drawTip(core.replaceText(data.text, prefix), data.icon);
|
||||||
core.doAction();
|
core.doAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1412,6 +1415,7 @@ events.prototype._precompile_showImage = function (data) {
|
|||||||
events.prototype._action_showTextImage = function (data, x, y, prefix) {
|
events.prototype._action_showTextImage = function (data, x, y, prefix) {
|
||||||
var loc = this.__action_getLoc(data.loc, 0, 0, prefix);
|
var loc = this.__action_getLoc(data.loc, 0, 0, prefix);
|
||||||
if (core.isReplaying()) data.time = 0;
|
if (core.isReplaying()) data.time = 0;
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
this.__action_doAsyncFunc(data.async || data.time == 0, core.showImage,
|
this.__action_doAsyncFunc(data.async || data.time == 0, core.showImage,
|
||||||
data.code, core.ui.textImage(data.text), null, loc, data.opacity, data.time);
|
data.code, core.ui.textImage(data.text), null, loc, data.opacity, data.time);
|
||||||
}
|
}
|
||||||
@ -1676,7 +1680,7 @@ events.prototype._action_setHeroIcon = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_input = function (data, x, y, prefix) {
|
events.prototype._action_input = function (data, x, y, prefix) {
|
||||||
this.__action_getInput(data.text, false, function (value) {
|
this.__action_getInput(core.replaceText(data.text, prefix), false, function (value) {
|
||||||
value = Math.abs(parseInt(value) || 0);
|
value = Math.abs(parseInt(value) || 0);
|
||||||
core.status.route.push("input:" + value);
|
core.status.route.push("input:" + value);
|
||||||
core.setFlag("input", value);
|
core.setFlag("input", value);
|
||||||
@ -1685,7 +1689,7 @@ events.prototype._action_input = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_input2 = function (data, x, y, prefix) {
|
events.prototype._action_input2 = function (data, x, y, prefix) {
|
||||||
this.__action_getInput(data.text, true, function (value) {
|
this.__action_getInput(core.replaceText(data.text, prefix), true, function (value) {
|
||||||
value = value || "";
|
value = value || "";
|
||||||
core.status.route.push("input2:" + core.encodeBase64(value));
|
core.status.route.push("input2:" + core.encodeBase64(value));
|
||||||
core.setFlag("input", value);
|
core.setFlag("input", value);
|
||||||
@ -1782,7 +1786,7 @@ events.prototype._action_choices = function (data, x, y, prefix) {
|
|||||||
core.doAction();
|
core.doAction();
|
||||||
}, data.timeout);
|
}, data.timeout);
|
||||||
}
|
}
|
||||||
core.ui.drawChoices(data.text, data.choices);
|
core.ui.drawChoices(core.replaceText(data.text, prefix), data.choices);
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._precompile_choices = function (data) {
|
events.prototype._precompile_choices = function (data) {
|
||||||
@ -1796,7 +1800,7 @@ events.prototype._precompile_choices = function (data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_confirm = function (data, x, y, prefix) {
|
events.prototype._action_confirm = function (data, x, y, prefix) {
|
||||||
core.status.event.ui = {"text": data.text, "yes": data.yes, "no": data.no};
|
core.status.event.ui = {"text": core.replaceText(data.text, prefix), "yes": data.yes, "no": data.no};
|
||||||
if (core.isReplaying()) {
|
if (core.isReplaying()) {
|
||||||
var action = core.status.replay.toReplay.shift();
|
var action = core.status.replay.toReplay.shift();
|
||||||
// --- 忽略可能的turn事件
|
// --- 忽略可能的turn事件
|
||||||
@ -1837,6 +1841,66 @@ events.prototype._precompile_confirm = function (data) {
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
events.prototype._action_for = function (data, x, y, prefix) {
|
||||||
|
// Only support switch:A
|
||||||
|
if (!/^switch:[A-Z]$/.test(data.name)) {
|
||||||
|
core.insertAction(['循环遍历事件只支持独立开关!']);
|
||||||
|
return core.doAction();
|
||||||
|
}
|
||||||
|
var from = core.calValue(data.from);
|
||||||
|
if (typeof from != 'number') {
|
||||||
|
core.insertAction('循环遍历事件要求【起始点】仅能是数字!');
|
||||||
|
return core.doAction();
|
||||||
|
}
|
||||||
|
this._setValue_setSwitch(data.name, from, prefix);
|
||||||
|
var toName = '__for@to@' + prefix + '@' + data.name.substring(7) + '__';
|
||||||
|
var stepName = '__for@step@' + prefix + '@' + data.name.substring(7) + '__';
|
||||||
|
core.setFlag(toName, data.to);
|
||||||
|
core.setFlag(stepName, data.step);
|
||||||
|
var condition = "(function () {"+
|
||||||
|
"var to = core.calValue(core.getFlag('" + toName + "'));"+
|
||||||
|
"var step = core.calValue(core.getFlag('" + stepName + "'));"+
|
||||||
|
"if (typeof step != 'number' || typeof to != 'number') return false;"+
|
||||||
|
"if (step == 0) return true;"+
|
||||||
|
"var currentValue = core.calValue('switch:'+'" + data.name.substring(7) + "', '"+prefix+"');"+
|
||||||
|
"currentValue += step;"+
|
||||||
|
"core.events._setValue_setSwitch('switch:'+'" + data.name.substring(7) + "', currentValue, '"+prefix+"');"+
|
||||||
|
"if (step > 0) { return currentValue <= to; }"+
|
||||||
|
"else { return currentValue >= to; }"+
|
||||||
|
"})()";
|
||||||
|
return this._action_dowhile({"condition": condition, "data": data.data}, x, y, prefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
events.prototype._precompile_for = function (data) {
|
||||||
|
data.from = core.replaceValue(data.from);
|
||||||
|
data.to = core.replaceValue(data.to);
|
||||||
|
data.step = core.replaceValue(data.step);
|
||||||
|
data.data = this.precompile(data.data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
events.prototype._action_forEach = function (data, x, y, prefix) {
|
||||||
|
// Only support switch:A
|
||||||
|
if (!/^switch:[A-Z]$/.test(data.name)) {
|
||||||
|
core.insertAction(['循环遍历事件只支持独立开关!']);
|
||||||
|
return core.doAction();
|
||||||
|
}
|
||||||
|
var listName = '__forEach@' + prefix + '@' + data.name.substring(7) + '__';
|
||||||
|
core.setFlag(listName, core.clone(data.list));
|
||||||
|
var condition = "(function () {" +
|
||||||
|
"var list = core.getFlag('"+listName+"', []);"+
|
||||||
|
"if (list.length == 0) { core.removeFlag('" + listName + "'); return false; }"+
|
||||||
|
"core.events._setValue_setSwitch('switch:'+'" + data.name.substring(7) + "', list.shift(), '"+prefix+"');"+
|
||||||
|
"return true;"+
|
||||||
|
"})()";
|
||||||
|
return this._action_while({"condition": condition, "data": data.data}, x, y, prefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
events.prototype._precompile_forEach = function (data) {
|
||||||
|
data.data = this.precompile(data.data);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
events.prototype._action_while = function (data, x, y, prefix) {
|
events.prototype._action_while = function (data, x, y, prefix) {
|
||||||
if (core.calValue(data.condition, prefix)) {
|
if (core.calValue(data.condition, prefix)) {
|
||||||
core.unshift(core.status.event.data.list,
|
core.unshift(core.status.event.data.list,
|
||||||
@ -1881,11 +1945,11 @@ events.prototype._action_continue = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_win = function (data, x, y, prefix) {
|
events.prototype._action_win = function (data, x, y, prefix) {
|
||||||
this.win(core.replaceText(data.reason), data.norank, data.noexit);
|
this.win(core.replaceText(data.reason, prefix), data.norank, data.noexit);
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_lose = function (data, x, y, prefix) {
|
events.prototype._action_lose = function (data, x, y, prefix) {
|
||||||
this.lose(core.replaceText(data.reason));
|
this.lose(core.replaceText(data.reason, prefix));
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_restart = function (data, x, y, prefix) {
|
events.prototype._action_restart = function (data, x, y, prefix) {
|
||||||
@ -2129,10 +2193,12 @@ events.prototype._action_clearMap = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_fillText = function (data, x, y, prefix) {
|
events.prototype._action_fillText = function (data, x, y, prefix) {
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
this.__action_doUIEvent(data);
|
this.__action_doUIEvent(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_fillBoldText = function (data, x, y, prefix) {
|
events.prototype._action_fillBoldText = function (data, x, y, prefix) {
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
this.__action_doUIEvent(data);
|
this.__action_doUIEvent(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2199,6 +2265,7 @@ events.prototype._action_drawBackground = function (data, x, y, prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
events.prototype._action_drawTextContent = function (data, x, y, prefix) {
|
events.prototype._action_drawTextContent = function (data, x, y, prefix) {
|
||||||
|
data.text = core.replaceText(data.text, prefix);
|
||||||
this.__action_doUIEvent(data);
|
this.__action_doUIEvent(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2023,12 +2023,12 @@ ui.prototype.drawShop = function (shopId) {
|
|||||||
core.status.event.selection = selection;
|
core.status.event.selection = selection;
|
||||||
|
|
||||||
var times = shop.times, need=core.calValue(shop.need, null, null, times);
|
var times = shop.times, need=core.calValue(shop.need, null, null, times);
|
||||||
var content = "\t["+shop.name+","+shop.icon+"]" + core.replaceText(shop.text, need, times);
|
var content = "\t["+shop.name+","+shop.icon+"]" + core.replaceText(shop.text, null, need, times);
|
||||||
var use = shop.use=='experience'?'经验':'金币';
|
var use = shop.use=='experience'?'经验':'金币';
|
||||||
var choices = [];
|
var choices = [];
|
||||||
for (var i=0;i<shop.choices.length;i++) {
|
for (var i=0;i<shop.choices.length;i++) {
|
||||||
var choice = shop.choices[i];
|
var choice = shop.choices[i];
|
||||||
var text = core.replaceText(choice.text, need, times);
|
var text = core.replaceText(choice.text, null, need, times);
|
||||||
if (choice.need != null)
|
if (choice.need != null)
|
||||||
text += "("+core.calValue(choice.need, null, null, times)+use+")";
|
text += "("+core.calValue(choice.need, null, null, times)+use+")";
|
||||||
choices.push({"text": text, "color":shop.visited?null:"#999999"});
|
choices.push({"text": text, "color":shop.visited?null:"#999999"});
|
||||||
|
|||||||
@ -62,9 +62,9 @@ utils.prototype._init = function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
////// 将文字中的${和}(表达式)进行替换 //////
|
////// 将文字中的${和}(表达式)进行替换 //////
|
||||||
utils.prototype.replaceText = function (text, need, times) {
|
utils.prototype.replaceText = function (text, prefix, need, times) {
|
||||||
return text.replace(/\${(.*?)}/g, function (word, value) {
|
return text.replace(/\${(.*?)}/g, function (word, value) {
|
||||||
return core.calValue(value, null, need, times);
|
return core.calValue(value, prefix, need, times);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
2
runtime.d.ts
vendored
2
runtime.d.ts
vendored
@ -1506,7 +1506,7 @@ declare class utils {
|
|||||||
* @param times 全局商店已购次数,一般可省略
|
* @param times 全局商店已购次数,一般可省略
|
||||||
* @returns 替换完毕后的字符串
|
* @returns 替换完毕后的字符串
|
||||||
*/
|
*/
|
||||||
replaceText(text: string, need?: number, times?: number): string
|
replaceText(text: string, prefix?: string, need?: number, times?: number): string
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 对一个表达式中的特殊规则进行替换,如status:xxx等。
|
* 对一个表达式中的特殊规则进行替换,如status:xxx等。
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user