赞 | 189 |
VIP | 627 |
好人卡 | 188 |
积分 | 95 |
经验 | 171230 |
最后登录 | 2023-6-18 |
在线时间 | 5073 小时 |
Lv4.逐梦者 (版主)
- 梦石
- 0
- 星屑
- 9497
- 在线时间
- 5073 小时
- 注册时间
- 2013-6-21
- 帖子
- 3580
![开拓者](static/image/common/p1/thx.png) ![贵宾](static/image/common/p1/rem.png) ![剧作品鉴家](static/image/common/j2_pince.png)
|
先重申一下LZ要问的问题,LZ要问的问题是,怎么样用一个开关控制FUKI脚本的打开和关闭。比方说关闭5号开关时,FUKI脚本正常运行,打开5号开关时,使用默认的对话框,就好像FUKI脚本没有插入一样。就这样看来,LS的几个回答除了恐惧剑刃的以外,都有问题。
然后再解释一下为什么LZ提出的方案不可以。这是因为“开关”这一事物出现在游戏读档之后(即进入地图之后),进入标题画面是没有开关的。所以不能用开关控制。再退一步讲,即使用开关控制,那也只是控制了一个编译的过程,我们不希望FUKI脚本不经过编译,那样在游戏中FUKI脚本就根本不存在了。因此这并不是一个解决问题的方法。
所以最简单的方法应该像恐惧剑刃说的那样,保留两个Window_Message,给系统原来的Window_Message改名为Window_Message_A,其它的不用变。然后在Scene_Map里控制到底该用哪个窗口,找到下面一句:- @message_window = Window_Message.new
复制代码 替换成下面的:- if $game_switches[$开关]
- @message_window = Window_Message_A.new
- else
- @message_window = Window_Message.new
- end
复制代码 然后注意到FUKI脚本重新定义了Window_InputNumber,所以也要把默认Window_InputNumber修改一下。不过Window_InputNumber不在Scene_Map中生成,而是在Window_Message_A里面生成,在Window_Message_A里面找到下面一句:- @input_number_window = Window_InputNumber.new(digits_max)
复制代码 和Window_Message_A一样,利用开关判断然后替换即可。
不过还有一个问题,就是这样修改的话,只有退出地图(比方说进入菜单),然后再进入地图后,修改才可以生效,没有实时性。因此有必要进行如下更改来增强实时性:
首先在Scene_Map里面添加一个实变量@fuki_disabled,并将其初始化为$game_switches[$开关]
然后在update最前面添加如下脚本:- if @fuki_disabled != $game_switches[$开关]
- @fuki_disabled = $game_switches[$开关]
- @message_window.dispose
- @message_window = @fuki_disabled ? Window_Message_A.new : Window_Message.new
- end
复制代码 |
评分
-
查看全部评分
|