可以试试在事件的脚本框自定义函数衔接到Game_Interpreter,
跨脚本框的时候调用 this.xxxxx()或 xxxxx.call(this)。
楼主提到va...,va的是说晴兰大大那个下一行脚本么?
貌似是重写滚动文字接入到脚本框调用的。
可以试试插入自定义参数提取this._index进行比较,
自定义标签拦截脚本部分,然后重写
Game_Interpreter.prototype.command105
以下仅供参考:
/*---------------------------------------------------------------*/ var MLC = {}; /* <<< 插入参数 */ /*---------------------------------------------------------------*/ // Show Scrolling Text Game_Interpreter.prototype.command105 = function() { if (!$gameMessage.isBusy()) { $gameMessage.setScroll(this._params[0], this._params[1]); while (this.nextEventCode() === 405) { this._index++; $gameMessage.add(this.currentCommand().parameters[0]); MLC.TXT = this.currentCommand().parameters[0]; /* -- 拦截文本 -- */ if (MLC.TXT == '[begin]'){ MLC.indexBegin = this._index ; }else if(MLC.TXT == '[end]'){ MLC.indexEnd = this._index ; }; /* -- 提取脚本 -- */ if (MLC.indexBegin && this._index > MLC.indexBegin){ if (!MLC.indexEnd){ if (!MLC.Script){ MLC.Script = MLC.TXT + '\n'; } else{ MLC.Script = MLC.Script + MLC.TXT + '\n'; }; }else if(this._index < MLC.indexEnd){ MLC.Script = MLC.Script + MLC.TXT + '\n'; }; }; } /* -- 执行脚本 -- */ if (MLC.Script){ eval(MLC.Script); /* -- 重置参数 --*/ MLC.indexBegin = 0 ; MLC.indexEnd = 0 ; MLC.Script = ''; }; this._index++; this.setWaitMode('message'); } return false; };
/*---------------------------------------------------------------*/
var MLC = {}; /* <<< 插入参数 */
/*---------------------------------------------------------------*/
// Show Scrolling Text
Game_Interpreter.prototype.command105 = function() {
if (!$gameMessage.isBusy()) {
$gameMessage.setScroll(this._params[0], this._params[1]);
while (this.nextEventCode() === 405) {
this._index++;
$gameMessage.add(this.currentCommand().parameters[0]);
MLC.TXT = this.currentCommand().parameters[0];
/* -- 拦截文本 -- */
if (MLC.TXT == '[begin]'){
MLC.indexBegin = this._index ;
}else if(MLC.TXT == '[end]'){
MLC.indexEnd = this._index ;
};
/* -- 提取脚本 -- */
if (MLC.indexBegin && this._index > MLC.indexBegin){
if (!MLC.indexEnd){
if (!MLC.Script){
MLC.Script = MLC.TXT + '\n';
}
else{
MLC.Script = MLC.Script + MLC.TXT + '\n';
};
}else if(this._index < MLC.indexEnd){
MLC.Script = MLC.Script + MLC.TXT + '\n';
};
};
}
/* -- 执行脚本 -- */
if (MLC.Script){
eval(MLC.Script);
/* -- 重置参数 --*/
MLC.indexBegin = 0 ;
MLC.indexEnd = 0 ;
MLC.Script = '';
};
this._index++;
this.setWaitMode('message');
}
return false;
};
|