Project1

标题: 求助关于替换文本内容 [打印本页]

作者: LifeGame    时间: 2024-3-10 01:30
标题: 求助关于替换文本内容
之前有看到MV自带的\v[n] 用来将文本替换为变量,想问问这个是怎么实现的。
主要是该如何检测和替换文本中的 \v[n]  麻烦大佬们了

作者: shiroin    时间: 2024-3-10 09:57
你说的这个是转义字符,直接把n替换为你想要输入的变量序号就行了
比如\V[110],就是显示110号变量的值
除了显示变量,转义字符还有很多其他类型可以使用,也可以嵌套或结合使用,多看教程

QQ截图20240310095658.png (49.21 KB, 下载次数: 10)

QQ截图20240310095658.png

作者: LifeGame    时间: 2024-3-10 15:01
shiroin 发表于 2024-3-10 09:57
你说的这个是转义字符,直接把n替换为你想要输入的变量序号就行了
比如\V[110],就是显示110号变量的值
除 ...

首先感谢大佬回复
然后其实我是想知道有关代码层面的。。。
我看别的大佬写的插件有类似的效果,想问问插件里都是怎么写的
作者: Arrose    时间: 2024-3-10 15:29
可能是这个
JAVASCRIPT 代码复制
  1. Window_Base.prototype.convertEscapeCharacters = function(text) {
  2.     text = text.replace(/\\/g, '\x1b');
  3.     text = text.replace(/\x1b\x1b/g, '\\');
  4.     text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
  5.         return $gameVariables.value(parseInt(arguments[1]));
  6.     }.bind(this));
  7.     text = text.replace(/\x1bV\[(\d+)\]/gi, function() {
  8.         return $gameVariables.value(parseInt(arguments[1]));
  9.     }.bind(this));
  10.     text = text.replace(/\x1bN\[(\d+)\]/gi, function() {
  11.         return this.actorName(parseInt(arguments[1]));
  12.     }.bind(this));
  13.     text = text.replace(/\x1bP\[(\d+)\]/gi, function() {
  14.         return this.partyMemberName(parseInt(arguments[1]));
  15.     }.bind(this));
  16.     text = text.replace(/\x1bG/gi, TextManager.currencyUnit);
  17.     return text;
  18. };


作者: LifeGame    时间: 2024-3-10 16:36
Arrose 发表于 2024-3-10 15:29
可能是这个
Window_Base.prototype.convertEscapeCharacters = function(text) {
    text = text.replace( ...

谢谢大佬
作者: a86697136    时间: 2024-3-14 04:16
牛逼啊,




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1