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 编辑
#--------------------------------------------------------------------------
# ● 设置选择项
#--------------------------------------------------------------------------
def setup_choices(parameters)
# choice_max 为设置选择项的项目数
$game_temp.choice_max = parameters[0].size
# message_text 为设置选择项
a = 0
t = [0,0,0,0]
for text in parameters[0]
k = text.split(/@/)[1]
if k == nil or $game_switches[k.to_i]
$game_temp.message_text += text.split(/@/)[0] + "\n"
else
t[a] = 1
$game_temp.choice_max -= 1
end
a += 1
end
s = []
d = 0
for i in 0...4
if t[i] == 0
s += [d]
else
d += 1
end
end
for i in 0...5-s.size
s += [0]
end
# 设置取消的情况的处理
$game_temp.choice_cancel_type = parameters[1]
# 返回调用设置
current_indent = @list[@index].indent
$game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n + s[n] }
end
复制代码
脚本替换:
Interpreter 1 里的 设置选择项 这段
事件设置:
选项a@1
选项b
选项c@21
选项d
1号开关打开时 显示 选项a
21号开关打开时 显示 选项c
选项b 选项d 后面没有@ 则一直显示
条件选项.rar
2015-12-11 18:55 上传
点击文件名下载附件
189.11 KB, 下载次数: 62
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1