Project1

标题: 如何根据触发条件决定后期选项 [打印本页]

作者: DyingCat    时间: 2015-12-9 23:17
标题: 如何根据触发条件决定后期选项
假设前期有四个对话需要触发,根据剧情发展到后期会有一次对话中出现四个选项分支,和之前需要触发的四个对话是一对一的关系。
如果之前有没触发的对话,那么后期选项中对应的选项就不会显示。
即前期ABCD四个对话,后期ABCD四个选项。 如果前期B对话没有触发,那么后期发生这次对话选择时就没有B选项。
请问以上描述应如何实现?
作者: yang1zhi    时间: 2015-12-10 10:19
前面的选项里加个变量,有触发就变量+1
后期选项条件分歧判断变量,决定是否选项出现
作者: 枫の叶    时间: 2015-12-10 13:26
ABCD四个开关,对话A打开开关A,对话B打开开关B,,,,
后面选项根据四个开关来条件就行了。
作者: cinderelmini    时间: 2015-12-10 15:34
本帖最后由 cinderelmini 于 2015-12-10 18:27 编辑

不管怎么想,后期都是要用命去弄分歧的样子……
不过稍微偷懒点的办法是这样吧:
前面每个对话都放个开关(姑且用1~4号),
后期选项分歧的时候:
条件分歧:脚本:$game_switches[1] && $game_switches[2] && $game_switches[3] &&$game_switches[4]
# 4个选项都触发的场合
其他的情况
条件分歧:脚本:$game_switches[1] && $game_switches[2] && $game_switches[3]
# 3个选项触发的场合1
其他的情况
条件分歧:脚本:$game_switches[1] && $game_switches[2] && $game_switches[4]
# 3个选项触发的场合2
其他的情况
条件分歧:脚本:$game_switches[2] && $game_switches[3] && $game_switches[4]
# 3个选项触发的场合3
其他的情况
条件分歧:脚本:$game_switches[1] && $game_switches[2]
# 2个选项触发的场合1
其他的情况
条件分歧:脚本:$game_switches[1] && $game_switches[3]
# 2个选项触发的场合2
其他的情况
条件分歧:脚本:$game_switches[1] && $game_switches[4]
# 2个选项触发的场合3
其他的情况
条件分歧:脚本:$game_switches[2] && $game_switches[3]
# 2个选项触发的场合4
其他的情况
条件分歧:脚本:$game_switches[2] && $game_switches[4]
# 2个选项触发的场合5
其他的情况
条件分歧:脚本:$game_switches[3] && $game_switches[4]
# 2个选项触发的场合6
其他的情况
条件分歧:脚本:$game_switches[1]
# 1个选项触发的场合1
其他的情况
条件分歧:脚本:$game_switches[2]
# 1个选项触发的场合2
其他的情况
条件分歧:脚本:$game_switches[3]
# 1个选项触发的场合3
其他的情况
条件分歧:脚本:$game_switches[4]
# 1个选项触发的场合4
其他的情况
结束
结束
结束
结束
结束
结束
结束
结束
结束
结束
结束
结束
结束
结束
。。。就这样吧。。。
看着眼晕………………

作者: sky40    时间: 2015-12-11 18:43
本帖最后由 sky40 于 2015-12-11 18:55 编辑

  1.   #--------------------------------------------------------------------------
  2.   # ● 设置选择项
  3.   #--------------------------------------------------------------------------
  4.   def setup_choices(parameters)
  5.   
  6.     # choice_max 为设置选择项的项目数
  7.     $game_temp.choice_max = parameters[0].size

  8.     # message_text 为设置选择项
  9.     a = 0
  10.     t = [0,0,0,0]
  11.     for text in parameters[0]
  12.       k = text.split(/@/)[1]
  13.       if k == nil or $game_switches[k.to_i]
  14.          $game_temp.message_text += text.split(/@/)[0] + "\n"
  15.        else
  16.          t[a] = 1
  17.          $game_temp.choice_max -= 1
  18.        end
  19.        a += 1
  20.     end

  21.     s = []
  22.     d = 0
  23.     for i in 0...4
  24.        if t[i] == 0
  25.           s += [d]
  26.        else
  27.           d += 1
  28.        end
  29.     end

  30.     for i in 0...5-s.size  
  31.        s += [0]
  32.     end
  33.   
  34.     # 设置取消的情况的处理
  35.     $game_temp.choice_cancel_type = parameters[1]
  36.     # 返回调用设置
  37.     current_indent = @list[@index].indent   
  38.     $game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n + s[n]  }
  39.   end
复制代码
脚本替换:
Interpreter 1 里的 设置选择项 这段
事件设置:
选项a@1
选项b
选项c@21
选项d
1号开关打开时 显示 选项a
21号开关打开时 显示 选项c
选项b 选项d 后面没有@ 则一直显示

条件选项.rar

189.11 KB, 下载次数: 62






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