设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3205|回复: 3
打印 上一主题 下一主题

[有事请教] 求问如何自动为角色名增加边框和颜色

[复制链接]

Lv5.捕梦者

梦石
28
星屑
10922
在线时间
2061 小时
注册时间
2020-1-17
帖子
206

极短24评委极短23评委极短22评委极短21获奖R考场第七期铜奖

跳转到指定楼层
1
发表于 2020-8-25 21:08:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
萌新求问一下,如何自动为角色名增加边框与颜色

例如:

变成

因为我的文本都基本是完成的了,角色名都在第一行,没办法手动改了。于是我的想法是检索第一行的角色名,然后对名称一个个修改(毕竟角色也不多)。
其实没有接触过java……然后就从网上找了一些语句,改了改大概是这样的:
JAVASCRIPT 代码复制
  1. temp= "哈罗德\n哈哈哈哈哈!"
  2. textcopy = temp;
  3. sizeoftextcopy = textcopy.indexOf('\n');
  4. resulttext = textcopy.substring(0,sizeoftextcopy);
  5. resulttext2 = textcopy.substring(0,sizeoftextcopy+1);
  6. if (resulttext == "哈罗德"){
  7. resulttext = "\\C[2]【哈罗德】\\C[0]"
  8. }
  9. textcopy = textcopy.replace(resulttext2,resulttext+"\n");
  10. temp = textcopy
  11. $gameMessage.add(temp)

这个在事件的脚本中已经可以成功运行了,然而要搬到插件里的时候又有疑惑了……因为不知道要把这段代码放到哪里去,文件夹里面的js文件真的看晕了……
其实也有把别人的插件拿过来修改过,但是感觉就是乱改一通,也有很多问题。貌似在事件中\\C[2]是可以变成颜色的,但是不知道为什么换进去了就只能显示\C[2]而非变色。
于是求问一下,要实现自动为角色名增加边框和颜色的功能,要怎么修改插件呢?

Lv4.逐梦者

梦石
8
星屑
5752
在线时间
1148 小时
注册时间
2019-6-22
帖子
377

极短24获奖极短23参与

2
发表于 2020-8-27 16:39:09 | 只看该作者
试试这个?https://www.jianshu.com/p/e4fdcf3b09cf
YEP.73 – Message Macros

点评

其实这个插件还是需要使用\m[]来进行替换的,我的文本已经差不多完成了,替换起来还是很麻烦的……不过还是谢谢了  发表于 2020-8-27 19:59
无言。
作品:
UN1L3αSH : http://rpg.blue/thread-494672-1-3.html
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
28
星屑
10922
在线时间
2061 小时
注册时间
2020-1-17
帖子
206

极短24评委极短23评委极短22评委极短21获奖R考场第七期铜奖

3
 楼主| 发表于 2020-8-27 20:05:51 | 只看该作者
本帖最后由 越青 于 2020-8-27 21:37 编辑

自己尝试找了一会儿终于找到Window_Message了,
然后试着在Window_Message.prototype.startMessage里面强行插入了上面那段代码……改了改大概是这样的。
JAVASCRIPT 代码复制
  1. Window_Message.prototype.startMessage = function() {
  2.     this._textState = {};
  3.     this._textState.index = 0;
  4.  
  5. var textcopy = this.convertEscapeCharacters($gameMessage.allText());
  6. var sizeoftextcopy = textcopy.indexOf('\n');
  7. var resulttext = textcopy.substring(0,sizeoftextcopy);
  8. var resulttext2 = textcopy.substring(0,sizeoftextcopy+1);
  9. if (resulttext == "哈罗德"){
  10. resulttext = "\\c[2]【哈罗德】\\c[0]";
  11. textcopy = textcopy.replace(resulttext2,resulttext+"\n");
  12. }
  13.     this._textState.text = textcopy;
  14.     this.newPage(this._textState);
  15.     this.updatePlacement();
  16.     this.updateBackground();
  17.     this.open();
  18. };

但是还是存在着颜色不能显示的问题,实际显示的还是\C[]而非颜色的修改。
到底是出了什么问题呢?
==============================================
自己改了一下,发现13行改成这句就可以了
this._textState.text = this.convertEscapeCharacters(textcopy);
虽然从头到尾不知道自己写的代码是什么意思,但是能用就好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-5 06:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表