THE NVL Maker

 找回密码
 成为开发者
搜索
查看: 684|回复: 3

[系统修改] 如何设置剧本中已读文字变色?

[复制链接]

8

主题

22

帖子

0

精华

游戏开发者

积分
22
发表于 2020-2-10 18:45:03 | 显示全部楼层 |阅读模式
D大您好!不知道您有没有空看见这个问题,不过因为实在是试来试去都无法达成所需效果,就灰溜溜跑来问了,真的不好意思……

希望像“既读选项变色”和“仅已读文字可跳过”之类的那样,设置既读文字的颜色改变。
测试的时候如果能有已读文字变色的话,测试也比较容易发现快进时哪里的标签设置有bug。
对玩家来说也更方便判断哪些是看过的内容、哪些是没看过的新内容(避免在已读快进停下来后误以为是快进功能坏了……这个情况在疲劳的多周目要素游戏中挺容易出现)

翻了翻MainWindow,似乎和getCurrentRead()这个function有关系?
但是姑且把和它相关的几个函数和变量复制到MessageLayer里,并在resetFont()里加了

  1.                 if (getCurrentRead())
  2.                         chColor = 0x8fc0f0;//既读文字颜色
  3.                 else
  4.                         chColor = defaultChColor;//未读文字颜色
复制代码

这样的判断后,所有默认文字颜色都变成了既读文字颜色,看样子是照搬失败了……

请问到底该如何才能做到既读文字变色?


回复

使用道具 举报

14

主题

410

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
431
发表于 2020-2-17 16:17:41 | 显示全部楼层
getCurrentRead这个函数是mainwindow.tjs这个class里面的函数,如果要在Messagelayer/外部调用可能得用kag.getCurrentRead()什么的?
如果直接把函数变量复制过去反而不一定会工作……
回复

使用道具 举报

8

主题

22

帖子

0

精华

游戏开发者

积分
22
 楼主| 发表于 2020-2-23 09:17:20 | 显示全部楼层
VariableD 发表于 2020-2-17 16:17
getCurrentRead这个函数是mainwindow.tjs这个class里面的函数,如果要在Messagelayer/外部调用可能得用kag. ...

谢谢D大回复!!kag.getCurrentRead()以前好像也看到别人用过,觉得应该能行所以刚试了下把那些复制过去的东西删除,把getCurrentRead()改成了kag.getCurrentRead()……然后说无法找到成员"kag"?但是明明MessageLayer里面也有kag的函数调用,为什么kag.getCurrentRead()就找不到呢……有点不太明白是怎么回事……
以下是出错的代码部分,只是加了个kag.
  1.                 if (kag.getCurrentRead())
  2.                         chColor = 0x8fc0f0;//既读文字颜色
  3.                 else
  4.                         chColor = defaultChColor;//未读文字颜色
复制代码
回复

使用道具 举报

14

主题

410

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
431
发表于 2020-3-18 08:19:20 | 显示全部楼层
我想了想忽然意识到可以不用魔改这里……
找个随便什么指令(w?)里面加一行已读变色未读默认色就好了?了……(tag指令里肯定可以用kag.)
至于tjs里如果不能用kag多半是得用别的开头(一般是this.window什么的)我回头再去瞅一眼……

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 成为开发者

本版积分规则

Archiver|手机版|nvlmaker

GMT+8, 2020-4-5 20:49 , Processed in 0.016198 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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