Project1
标题: 求问如何自动为角色名增加边框和颜色 [打印本页]
作者: 越青 时间: 2020-8-25 21:08
标题: 求问如何自动为角色名增加边框和颜色
萌新求问一下,如何自动为角色名增加边框与颜色
例如:
变成
因为我的文本都基本是完成的了,角色名都在第一行,没办法手动改了。于是我的想法是检索第一行的角色名,然后对名称一个个修改(毕竟角色也不多)。
其实没有接触过java……然后就从网上找了一些语句,改了改大概是这样的:
temp= "哈罗德\n哈哈哈哈哈!"
textcopy = temp;
sizeoftextcopy = textcopy.indexOf('\n');
resulttext = textcopy.substring(0,sizeoftextcopy);
resulttext2 = textcopy.substring(0,sizeoftextcopy+1);
if (resulttext == "哈罗德"){
resulttext = "\\C[2]【哈罗德】\\C[0]"
}
textcopy = textcopy.replace(resulttext2,resulttext+"\n");
temp = textcopy
$gameMessage.add(temp)
temp= "哈罗德\n哈哈哈哈哈!"
textcopy = temp;
sizeoftextcopy = textcopy.indexOf('\n');
resulttext = textcopy.substring(0,sizeoftextcopy);
resulttext2 = textcopy.substring(0,sizeoftextcopy+1);
if (resulttext == "哈罗德"){
resulttext = "\\C[2]【哈罗德】\\C[0]"
}
textcopy = textcopy.replace(resulttext2,resulttext+"\n");
temp = textcopy
$gameMessage.add(temp)
这个在事件的脚本中已经可以成功运行了,然而要搬到插件里的时候又有疑惑了……因为不知道要把这段代码放到哪里去,文件夹里面的js文件真的看晕了……
其实也有把别人的插件拿过来修改过,但是感觉就是乱改一通,也有很多问题。貌似在事件中\\C[2]是可以变成颜色的,但是不知道为什么换进去了就只能显示\C[2]而非变色。
于是求问一下,要实现自动为角色名增加边框和颜色的功能,要怎么修改插件呢?
作者: 剑崎一真Blade 时间: 2020-8-27 16:39
试试这个?https://www.jianshu.com/p/e4fdcf3b09cf
YEP.73 – Message Macros
作者: 越青 时间: 2020-8-27 20:05
本帖最后由 越青 于 2020-8-27 21:37 编辑
自己尝试找了一会儿终于找到Window_Message了,
然后试着在Window_Message.prototype.startMessage里面强行插入了上面那段代码……改了改大概是这样的。
Window_Message.prototype.startMessage = function() {
this._textState = {};
this._textState.index = 0;
var textcopy = this.convertEscapeCharacters($gameMessage.allText());
var sizeoftextcopy = textcopy.indexOf('\n');
var resulttext = textcopy.substring(0,sizeoftextcopy);
var resulttext2 = textcopy.substring(0,sizeoftextcopy+1);
if (resulttext == "哈罗德"){
resulttext = "\\c[2]【哈罗德】\\c[0]";
textcopy = textcopy.replace(resulttext2,resulttext+"\n");
}
this._textState.text = textcopy;
this.newPage(this._textState);
this.updatePlacement();
this.updateBackground();
this.open();
};
Window_Message.prototype.startMessage = function() {
this._textState = {};
this._textState.index = 0;
var textcopy = this.convertEscapeCharacters($gameMessage.allText());
var sizeoftextcopy = textcopy.indexOf('\n');
var resulttext = textcopy.substring(0,sizeoftextcopy);
var resulttext2 = textcopy.substring(0,sizeoftextcopy+1);
if (resulttext == "哈罗德"){
resulttext = "\\c[2]【哈罗德】\\c[0]";
textcopy = textcopy.replace(resulttext2,resulttext+"\n");
}
this._textState.text = textcopy;
this.newPage(this._textState);
this.updatePlacement();
this.updateBackground();
this.open();
};
但是还是存在着颜色不能显示的问题,实际显示的还是\C[]而非颜色的修改。
到底是出了什么问题呢?
==============================================
自己改了一下,发现13行改成这句就可以了
this._textState.text = this.convertEscapeCharacters(textcopy);
虽然从头到尾不知道自己写的代码是什么意思,但是能用就好
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |