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

Project1

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

[已经解决] 求助,怎么在游戏过程中换自备的对话框素材?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2013-7-7
帖子
19
跳转到指定楼层
1
发表于 2014-8-15 09:25:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
求解答 谢谢~

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-8-15 09:30:56 | 只看该作者
未测试。更改1号变量的值应该就可以修改之后的窗口皮肤了

RUBY 代码复制
  1. class Window_Base < Window
  2.  
  3.   def initialize(x, y, width, height)
  4.     super
  5.     self.windowskin = Cache.system(windowskin_filename)
  6.     update_padding
  7.     update_tone
  8.     create_contents
  9.     @opening = @closing = false
  10.   end
  11.  
  12.   def windowskin_filename
  13.     return "Window" unless $game_variables
  14.     case $game_variables[1] # 1号变量
  15.     when 0 # 为0时
  16.       "Window" # 使用 System 文件夹的 Window.png
  17.     when 1 # 为1时
  18.       "Window1"
  19.     when 2 # 为2时
  20.       "Window2"
  21.     # 可自行添加
  22.     else # 不是以上情况时
  23.       "Window"
  24.     end
  25.   end
  26. end

评分

参与人数 2星屑 +10 梦石 +1 收起 理由
3106345123 + 10 认可答案
VIPArcher + 1 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2013-7-7
帖子
19
3
 楼主| 发表于 2014-8-15 16:05:20 | 只看该作者
taroxd 发表于 2014-8-15 09:30
未测试。更改1号变量的值应该就可以修改之后的窗口皮肤了

class Window_Base < Window

很有用,非常感谢~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2013-7-7
帖子
19
4
 楼主| 发表于 2014-8-16 14:51:53 | 只看该作者
taroxd 发表于 2014-8-15 09:30
未测试。更改1号变量的值应该就可以修改之后的窗口皮肤了

class Window_Base < Window

再次打扰了,但我经过几次测试发现,改了变量后对话框并不会马上改变,必须要打开一次菜单才能使对话框改变,有没有办法解决这个问题?
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

5
发表于 2014-8-16 14:58:35 | 只看该作者
本帖最后由 taroxd 于 2014-8-17 05:59 编辑
kikakiko 发表于 2014-8-16 14:51
再次打扰了,但我经过几次测试发现,改了变量后对话框并不会马上改变,必须要打开一次菜单才能使对话框改 ...


更改变量时改掉当前所有窗口的皮肤即可

每次更改那个变量后调用脚本(未测试):
RUBY 代码复制
  1. class Game_Interpreter
  2.  
  3. def update_windowskin
  4.  
  5.  
  6. SceneManager.scene.instance_variables.each do |varname|
  7.   ivar = SceneManager.scene.instance_variable_get(varname)
  8.   if ivar.respond_to?(:windowskin=)
  9.     ivar.windowskin = Cache.system(ivar.windowskin_filename)
  10.   end
  11. end
  12.  
  13.  
  14. end
  15.  
  16. end




回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2013-7-7
帖子
19
6
 楼主| 发表于 2014-8-17 00:48:52 | 只看该作者
还是不行啊,运行到那里后它说
脚本Game_Interpreter第1411行:发生Synatax Error
unexpected keyword_do_block, expecting $end do |varname|

点评

嗯,这样可以了,谢啦  发表于 2014-8-17 09:52
出问题的原因应该是你在事件脚本中换行  发表于 2014-8-17 06:00
改了一下,当插件脚本用吧。事件脚本中调用 update_windowskin  发表于 2014-8-17 06:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
45 小时
注册时间
2013-7-7
帖子
19
7
 楼主| 发表于 2014-8-17 00:51:28 | 只看该作者
taroxd 发表于 2014-8-16 14:58
更改变量时改掉当前所有窗口的皮肤即可

每次更改那个变量后调用脚本(未测试):

忘记写在回复里了。。看一下楼上 谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-12 23:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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