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

Project1

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

[原创发布] [事件脚本糖]随机对话

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
跳转到指定楼层
1
发表于 2013-1-6 16:42:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
嘛……最近看@墟源 做的地图里面 NPC随机对话都是这样写的事件:


人物一多还真的很麻烦。
于是就写了一个事件糖啦。这样的话随机对话可以这样写:



顺便演练了一下随机抽样的算法。
脚本:
RUBY 代码复制
  1. class Interpreter
  2.   def 随机对话
  3.     return false if $game_temp.message_text != nil
  4.  
  5.     n=0; @index+=1; show_text = ""
  6.     while @index<@list.size and @list[@index].code==101
  7.       # 读取一条完整的文字
  8.       text = @list[@index].parameters[0]+"\n"
  9.       @index+=1
  10.       while @index<@list.size and @list[@index].code==401
  11.         text += @list[@index].parameters[0]+"\n"
  12.         @index+=1
  13.       end
  14.       # 判断是否取
  15.       n+=1
  16.       show_text = text if rand() < 1.0/n
  17.     end
  18.     $game_temp.message_text = show_text
  19.  
  20.     # 设置信息结束后待机和返回调用标志
  21.     @message_waiting = true
  22.     $game_temp.message_proc = Proc.new { @message_waiting = false }
  23.     # 不继续
  24.     return false
  25.   end
  26. end

评分

参与人数 4星屑 +80 收起 理由
邪月长啸 + 40 精品文章
你最珍贵 + 4 塞糖
弗雷德 + 6 洒家随机对话也一直是事件处理的,咋就没想.
晴兰 + 30 精品文章

查看全部评分

Lv2.观梦者

故九江太守

梦石
0
星屑
612
在线时间
2167 小时
注册时间
2012-12-5
帖子
4464
2
发表于 2013-1-6 19:48:01 | 只看该作者
请问楼主这个怎么用
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
3
 楼主| 发表于 2013-1-7 10:53:33 | 只看该作者
你最珍贵 发表于 2013-1-6 19:48
请问楼主这个怎么用

脚本丢进去。然后原来像图1那样写的随机对话,就可以像图2那样写了。

另外如果把return false 改成return true的话也许可以继续执行后面的事件呢

点评

好的 我会用了  发表于 2013-1-7 12:48
回复 支持 反对

使用道具 举报

Lv1.梦旅人

笑问情缘

梦石
0
星屑
73
在线时间
238 小时
注册时间
2006-5-3
帖子
640
4
发表于 2013-1-11 17:35:58 手机端发表。 | 只看该作者
可以用类似的办法做1%。概率的随机抽奖吗?

点评

直接拿事件扩展吧。先把false改成true 然后用条件分歧+多组随机对话来做吧。  发表于 2013-1-11 22:33
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
388
在线时间
245 小时
注册时间
2011-11-20
帖子
324
5
发表于 2013-2-4 21:27:14 | 只看该作者
本帖最后由 墟源 于 2013-2-4 21:29 编辑

哟罗曼曼,你打算把脚本都发上来?
这里是个新人。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
23 小时
注册时间
2013-1-12
帖子
44
6
发表于 2013-2-4 23:03:08 | 只看该作者
微微膜拜樓主。
順便求同一事件頁當中終止隨機對話的方法~

点评

首先要把那个return false改成true,然后再插入不是显示文章的其他事件就终止了  发表于 2013-2-17 13:49
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
560
在线时间
1286 小时
注册时间
2011-6-14
帖子
4086
7
发表于 2013-2-5 19:04:19 | 只看该作者

我一直这么弄的。感觉还不错

点评

从等概率的角度来看毫无问题。  发表于 2013-2-18 04:49
不觉得套这么多层rand和条件跳转很麻烦么?我这个就是为了简化你这种情况而做的  发表于 2013-2-7 09:42
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
735
在线时间
886 小时
注册时间
2012-5-24
帖子
953
8
发表于 2013-2-17 13:36:31 | 只看该作者
有没有VA的?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
55 小时
注册时间
2007-7-11
帖子
107
9
发表于 2014-11-11 00:03:44 | 只看该作者
大赞啊。。。。。好东西。。
金庸群侠传-我是传奇,全新的开始。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

10
发表于 2014-11-11 18:28:51 | 只看该作者
这个兼容高吗?
假如第一行写了脚本:随机脚本了。那么接下去的文章就都享有随机脚本的效果。那么是不是再接下去的就全都是随机效果的了,能连吗。
就是(1,2,3)可以{[(1,2,3),(4,5,6)],7,8,9}之类的吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 05:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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