Project1

标题: 选项如何在对话框中显示? [打印本页]

作者: 小w的w    时间: 2013-9-9 15:50
标题: 选项如何在对话框中显示?
本帖最后由 小w的w 于 2013-9-21 16:36 编辑

想要达成的效果:现在的选项框是在对话框(也就是文章显示)的右上角,我想让选项在对话框中,就是对话框内上面是文章,下面是选项这种。
倒是看过这个帖子:rpg.blue/thread-254153-1-1.html,但是里面的脚本我不知道如何调用。
请问有没有办法能达成这种效果呢?十分感谢。

另外还有一个问题:
怎样实现“特定地点,在菜单中使用物品(比如开门);其他场合,在菜单中使用物品无效”这个效果?
我现在只能做到特定地点在菜单中使用物品。我想让其他场合中使用这个物品时出现“无效”的音效,然后页面还是维持在物品菜单栏(我现在在其他场合中使用物品,确定后物品栏就关了)。
作者: 喵呜喵5    时间: 2013-9-9 17:06
本帖最后由 喵呜喵5 于 2013-9-12 17:59 编辑
  1. =begin
  2. ===============================================================================
  3. (未完成)对话框内显示选项 By喵呜喵5
  4. ===============================================================================


  5. 【说明】

  6.   在对话框中显示选项
  7.   原理很简单,只不过是把原来显示选项的窗口背景弄成透明的放在显示文字的对话框上而已
  8.   文字+选项的总行数不能超过四行,否则会发生重叠现象
  9.   以后有时间大概才会继续修改美化一下这个脚本吧
  10.   
  11. =end

  12. class Window_ChoiceList < Window_Command
  13.   def initialize(message_window)
  14.     @message_window = message_window
  15.     super(0, 0)
  16.     self.opacity = 0
  17.     self.openness = 0
  18.     deactivate
  19.   end
  20.   def update_placement
  21.     self.width = Graphics.width
  22.     self.width -= $game_message.face_name.empty? ? 0 : 112
  23.     self.height = fitting_height($game_message.choices.size)
  24.     self.x = Graphics.width - width
  25.     self.y = get_y
  26.     self.z = 201
  27.     self.opacity = $game_message.has_text? ? 0 : 255
  28.     self.y += $game_message.has_text? ? 3 : 0
  29.   end
  30.   def get_y
  31.     return @message_window.y if !$game_message.has_text?
  32.     return @message_window.y + fitting_height(0) if !$game_message.texts[1]
  33.     return @message_window.y + fitting_height(1) if !$game_message.texts[2] and
  34.     $game_message.choices.size <= 2
  35.     Graphics.height - fitting_height($game_message.choices.size)
  36.   end
  37. end
复制代码


作者: moy    时间: 2013-9-9 17:30
  1.   def occasion_ok?(item)
  2.     $game_party.in_battle ? item.battle_ok? : item.menu_ok?
  3.   end
复制代码
改为
  1. def occasion_ok?(item)
  2.    $game_switches[n] && $game_party.in_battle ? item.battle_ok? : item.menu_ok?
  3.   end
复制代码
这样就只要开关第n号开关应该就可以了,注意战斗时要打开哦。(PS:未测试
作者: 小w的w    时间: 2013-9-9 18:58
喵呜喵5 发表于 2013-9-9 17:06

这个我测试了一下,发现如果事件里有显示图片的话(我是用“显示图片”显示半身立绘的),要么不能用(就是页面卡在我显示的那张图了),要么文章与选项重叠了。。
请问有什么办法能在显示图片的时候执行这个脚本吗?
作者: 喵呜喵5    时间: 2013-9-9 19:06
不能用和文章选项重叠这两个问题是随机出现的吗?
另外既然你是用显示图片做立绘也就是说对话框中不需要脸图了对吧?
这几天比较忙所以暂时没有时间修改这个脚本了,过几天没人回答的话我再改改吧
作者: 小w的w    时间: 2013-9-9 19:12
喵呜喵5 发表于 2013-9-9 19:06
不能用和文章选项重叠这两个问题是随机出现的吗?
另外既然你是用显示图片做立绘也就是说对话框中不需要脸图 ...

游戏我目前只做了一点点。游戏一开始有一个自动执行的对话,A的话说完后,应该是主角说话,但是这时候就只显示主角立绘那张图,而且就卡在那里了,按什么都没反应……然后我把这个对话删掉,测试下一个需要确定键的对话,这时对话没什么问题了,到了出现选项的时候,文章和选项就重叠了。
是的,不需要脸图。
嗯……谢谢你的回答。。
作者: 小w的w    时间: 2013-9-9 19:13
moy 发表于 2013-9-9 17:30
改为这样就只要开关第n号开关应该就可以了,注意战斗时要打开哦。(PS:未测试 ...

这个我试了一下,不知道是不是我哪里弄的不对,物品不管开关打不打开,都是不能使用的。。
作者: moy    时间: 2013-9-9 19:18
本帖最后由 moy 于 2013-9-9 19:28 编辑
小w的w 发表于 2013-9-9 19:13
这个我试了一下,不知道是不是我哪里弄的不对,物品不管开关打不打开,都是不能使用的。。 ...


哎,是吗,设初值了没有,没设初值默认nil 好像
我自己是没有试过。。

脚本页

A事件


B事件



就是这样。。
作者: moy    时间: 2013-9-9 19:32
小w的w 发表于 2013-9-9 19:13
这个我试了一下,不知道是不是我哪里弄的不对,物品不管开关打不打开,都是不能使用的。。 ...

不是。。。你开开关的时候就用事件就好,因为直接用脚本开还需要刷新一下,但没必要。
$game_switch[n] 实际上保存的内容是一个真假的逻辑值,所以单独这么写其实就是得到true or false,并不是赋值
作者: moy    时间: 2013-9-9 19:58
真诡异,我说啊,这么和你说。你也没截图,我也不知道哪里出的问题。但我估计是有这样的情况。
1.我只是增加了一个开关,而且你第二次测试确实亮了,只是不能使用,说明开关方面没问题
2.一个物品要使用,并不是说我让你能用你就能用了的。RM中物品的使用许可大致有这样几个要素:
   ①本身能造成伤害,以及诸如增益诅咒一类
   ②“随时可用”“菜单可用”“战斗可用”几个分类勾选,那么能在对应时机使用,而默认是“无法使用”
   ③如果是回血道具,那么当目标是满血时,无法使用。同理,复活道具无法对存活的目标使用。
作者: 喵呜喵5    时间: 2013-9-12 11:14
小w的w 发表于 2013-9-9 19:12
游戏我目前只做了一点点。游戏一开始有一个自动执行的对话,A的话说完后,应该是主角说话,但是这时候就 ...

我自己测试了一下,没有发现你说的问题,可以的话请把出错的工程单独做一个新的范例附上
你是不是又加了什么其他的脚本?
作者: tseyik    时间: 2013-9-12 11:43
其實參考開幕指令作法不行麼?
作者: 小w的w    时间: 2013-9-12 12:26
喵呜喵5 发表于 2013-9-12 11:14
我自己测试了一下,没有发现你说的问题,可以的话请把出错的工程单独做一个新的范例附上
你是不是又加了 ...

工程:pan.baidu.com/share/link?shareid=1777930817&uk=2467758062
作者: 喵呜喵5    时间: 2013-9-12 17:41
本帖最后由 喵呜喵5 于 2013-9-12 18:19 编辑
小w的w 发表于 2013-9-12 12:26
工程:pan.baidu.com/share/link?shareid=1777930817&uk=2467758062


对话卡住部分内容已经修正了,至于选项和对话重叠这个没有办法,本来对话框中最多也就四行,你本身对话都占了三行了选项当然放不下……
目前的脚本只支持对话+选项最多四行的情况
作者: moy    时间: 2013-9-12 19:19
其实针对14L那样的问题,只要不是“非看对话不可,不然无法决断”的情况,完全可以翻页后再给选项。
使用方法也是很重要的~




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