加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
嘛……最近看@墟源 做的地图里面 NPC随机对话都是这样写的事件:
人物一多还真的很麻烦。
于是就写了一个事件糖啦。这样的话随机对话可以这样写:
顺便演练了一下随机抽样的算法。
脚本:
class Interpreter def 随机对话 return false if $game_temp.message_text != nil n=0; @index+=1; show_text = "" while @index<@list.size and @list[@index].code==101 # 读取一条完整的文字 text = @list[@index].parameters[0]+"\n" @index+=1 while @index<@list.size and @list[@index].code==401 text += @list[@index].parameters[0]+"\n" @index+=1 end # 判断是否取 n+=1 show_text = text if rand() < 1.0/n end $game_temp.message_text = show_text # 设置信息结束后待机和返回调用标志 @message_waiting = true $game_temp.message_proc = Proc.new { @message_waiting = false } # 不继续 return false end end
class Interpreter
def 随机对话
return false if $game_temp.message_text != nil
n=0; @index+=1; show_text = ""
while @index<@list.size and @list[@index].code==101
# 读取一条完整的文字
text = @list[@index].parameters[0]+"\n"
@index+=1
while @index<@list.size and @list[@index].code==401
text += @list[@index].parameters[0]+"\n"
@index+=1
end
# 判断是否取
n+=1
show_text = text if rand() < 1.0/n
end
$game_temp.message_text = show_text
# 设置信息结束后待机和返回调用标志
@message_waiting = true
$game_temp.message_proc = Proc.new { @message_waiting = false }
# 不继续
return false
end
end
|