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

Project1

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

[有事请教] 有没有独立的文本回放插件?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7033
在线时间
879 小时
注册时间
2015-2-10
帖子
248
跳转到指定楼层
1
发表于 2024-4-2 22:23:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
100星屑
如题,想要一个能在文本框中添加一个文本回放按钮的插件,点击后可以查看前几句文本。我知道有YEP的那个插件,但是那个插件需要一个前置的核心插件,而那个插件会和我用的一个根据角色名字改变字体颜色的插件冲突,装了那个核心插件会导致根据名字改变字体颜色的插件失效。所以有没有独立的一个文本回放的插件?

最佳答案

查看完整内容

上次在 https://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=493798&pid=2977660&fromuid=2731820 问我「渐变色+依名字变色」的也是这位楼主呢,不知道最后楼主是怎么解决那个问题的。关于文本回放我倒是在MV区 https://rpg.blue/forum.php?mod=redirect&goto=findpost&ptid=493739&pid=2977165&fromuid=2731820 回答过类似的问题,只不过对于MZ来说多了一个姓名框(下图右半部分的params[4])。 因此代码可以写成下面这 ...

Lv4.逐梦者

梦石
0
星屑
5437
在线时间
391 小时
注册时间
2021-12-4
帖子
416
2
发表于 2024-4-2 22:23:19 | 只看该作者
上次在 https://rpg.blue/forum.php?mod=r ... amp;fromuid=2731820 问我「渐变色+依名字变色」的也是这位楼主呢,不知道最后楼主是怎么解决那个问题的。关于文本回放我倒是在MV区 https://rpg.blue/forum.php?mod=r ... amp;fromuid=2731820 回答过类似的问题,只不过对于MZ来说多了一个姓名框(下图右半部分的params[4])。

因此代码可以写成下面这样:
JAVASCRIPT 代码复制下载
  1. // Show Text
  2. Game_Interpreter.prototype.command101 = function(params) {
  3.     if ($gameMessage.isBusy()) {
  4.         return false;
  5.     }
  6.     $gameMessage.setFaceImage(params[0], params[1]);
  7.     $gameMessage.setBackground(params[2]);
  8.     $gameMessage.setPositionType(params[3]);
  9.     $gameMessage.setSpeakerName(params[4]);
  10.     if ($gameTemp.backLog == null) $gameTemp.backLog = []; // 本行为新增内容,防止backLog数组不存在
  11.     $gameTemp.backLog.unshift(params[4] + ':'); // 本行为新增内容,记录名字
  12.     while (this.nextEventCode() === 401) {
  13.         // Text data
  14.         this._index++;
  15.         $gameTemp.backLog.unshift(this.currentCommand().parameters[0]); // 本行为新增内容,记录正文
  16.         $gameMessage.add(this.currentCommand().parameters[0]);
  17.     }
  18.     switch (this.nextEventCode()) {
  19.         case 102: // Show Choices
  20.             this._index++;
  21.             this.setupChoices(this.currentCommand().parameters);
  22.             break;
  23.         case 103: // Input Number
  24.             this._index++;
  25.             this.setupNumInput(this.currentCommand().parameters);
  26.             break;
  27.         case 104: // Select Item
  28.             this._index++;
  29.             this.setupItemChoice(this.currentCommand().parameters);
  30.             break;
  31.     }
  32.     this.setWaitMode("message");
  33.     return true;
  34. };

然后楼主就可以在进行一些对话以后在F8控制台运行下面的代码查看到对话记录:
JAVASCRIPT 代码复制
  1. if ($gameTemp.backLog != null) {
  2.     let max = 5; // 最大回放条数,但若正文的某行以中文冒号结尾则会误判
  3.     for (let i = $gameTemp.backLog.length; --i >= 0;) {
  4.         let s = $gameTemp.backLog[i];
  5.         if (s.endsWith(':') && --max < 0)
  6.             break;
  7.         console.log(s);
  8.     }
  9. }

那么最后一步就是如何把这些记录在游戏中重现而不是通过console.log()打印到控制台,办法就比较多了,比如官方插件TextPicture什么的。
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-30 11:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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