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

Project1

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

[RMVX发布] 【菜鸟的实用脚本】范围随机数&随机数组

[复制链接]

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
641
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

跳转到指定楼层
1
发表于 2011-5-17 10:22:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 冰舞蝶恋 于 2011-5-17 10:28 编辑

嗯,因为咱是脚本盲嘛,所以BUG估计是常有的事。。欢迎提出噢!
0.0不啰嗦了,各位自己看注释用法吧
脚本里胡扯的就够多了XD~
各位大大要给分啊~~噗!
嗯。。这是废渣型脚本产物Ⅷ了,如果有支持的话,咱会再接再厉的说!{:nm_4:}
  1. #============================================================================
  2. # ○ 范围随机数&随机数组
  3. #             ——By.冰舞蝶恋
  4. #----------------------------------------------------------------------------
  5. # 说明:用rand返回随机数有点麻烦,所以这里就写两个部分,一个是可以用
  6. #       Rand_Number(最小值,最大值)来返回范围内的随机数,另一个可以用
  7. #       Rand_Letter(数组序号最小值,最大值)来返回相应的随机内容,即数
  8. #       组内相应序号。
  9. #----------------------------------------------------------------------------
  10. #       比如,数组是["A", "B", "C", "D"],
  11. #       使用的语句是Rand_Letter(1,3),则随机返回A,B,C三者之中的其一。
  12. #       如果是(3,4)则随机返回C,D两者之中,以此类推。
  13. #----------------------------------------------------------------------------
  14. # 注意:随机数组的最大值不可超过数组内容个数的上限,最小值不能小于1。
  15. #============================================================================
  16. module Rand
  17. #----------------------------------------------------------------------------
  18. # ● 设定
  19. Rand = ["数组第一个",
  20.         "66RPG",
  21.         "噗",
  22.         "0.0",
  23.         "胡扯ING",
  24.         "第六个",
  25.         "第七个",
  26.         "诶,懒得胡扯了",
  27.         "示例就到这里为止吧",
  28.         "最后的胡扯XD"]
  29. #----------------------------------------------------------------------------
  30. end
  31. class Game_Interpreter
  32.   def Rand_Number(k,c)
  33.     a = rand(c-k+1)+k
  34.     return a
  35.   end
  36.   def Rand_Letter(k,c)
  37.     s = Rand::Rand.size
  38.     if k <= 0
  39.       p "最小值不可以小于1"
  40.     end
  41.     if s >= c
  42.       a = Rand_Number(k,c)
  43.       b = Rand::Rand[a-1]
  44.     else
  45.       p "最大值不能超过数组上限"
  46.     end
  47.     return b
  48.   end
  49. end
复制代码
为了吸引注意力,就邪恶的放上截图吧!



点评

最大和最小是max和min什么的……  发表于 2011-5-21 14:05

评分

参与人数 3星屑 +1208 收起 理由
忧雪の伤 + 2 范围随机数求参考XD。
天翔风舞 + 6 有用,但俺暂时用不上的说……呵呵只有这么.
夕阳武士 + 1200 很适合做NPC的对话啥的

查看全部评分

大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群

Lv1.梦旅人

梦石
0
星屑
50
在线时间
116 小时
注册时间
2011-5-10
帖子
229
2
发表于 2011-5-17 11:05:21 | 只看该作者
谢谢分享,收走了......

谢谢冰姐姐

下载地址:
http://rpg.blue/thread-213615-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
88 小时
注册时间
2011-3-27
帖子
37
3
发表于 2011-5-17 12:40:19 | 只看该作者
赞一个......谢谢了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6695
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

4
发表于 2011-5-17 13:39:17 | 只看该作者
本帖最后由 后知后觉 于 2011-5-18 09:46 编辑

第二个函数的另一种风格.

  1.   def Rand_Letter(k, c, ary = nil)
  2.     ary = Rand::Rand if ary.nil?  # 如果没传递数组就读取预设数组
  3.     k = [k, 1].max                      # 修正 k 的值
  4.     c = [[c, ary.size].min, k].max # 修正 c 的值
  5.     return ary[Rand_Number(k, c) - 1]  # 返回内容
  6.   end
复制代码

点评

前辈v5。  发表于 2011-5-21 14:06











你知道得太多了

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
16 小时
注册时间
2011-5-17
帖子
16
5
发表于 2011-5-17 15:22:28 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
314
在线时间
1195 小时
注册时间
2010-12-18
帖子
3928

贵宾

6
发表于 2011-5-21 13:41:30 | 只看该作者
本帖最后由 忧雪の伤 于 2011-5-21 13:49 编辑

方法名用小写比较好吧……
试着写了范围随机数函数,效率似乎还没小冰的高啊。

  1. def between_rand(*args)
  2.   value ||= 0
  3.   value = rand(1 + args[1]) until value.between?(*args)
  4.   return value
  5. end

  6. value = between_rand(1, 10)
  7. print value
复制代码


测试完毕……大数也大丈夫……


才发现乃竟然写在事件解释器里了……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-15 08:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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