Project1

标题: 请问如何制作一种事件或脚本,给予脚色没拿过的物品? [打印本页]

作者: a000b1745    时间: 2015-6-11 01:35
标题: 请问如何制作一种事件或脚本,给予脚色没拿过的物品?
想做一个系统遇到一点小问题...就是我做了奖励道具item[21]~[50]一共30样道具,玩家在第一次领奖时会获得[21]~[50]其中一样(譬如抽到[35])。
那么下次他在领奖时会从[21]~[34]和[36]~[50]这29样道具中抽到其中一样。

请问该做何种脚本或事件来做这种"箱子抽不重复号码球"的系统呢??
作者: taroxd    时间: 2015-6-11 09:14
RUBY 代码复制
  1. module JustForFun
  2.  
  3.   ITEMS_LEFT = (21..50).to_a
  4.  
  5.   # 还有奖时返回数字,没有时返回 nil
  6.   def self.draw
  7.     ITEMS_LEFT.slice!(rand ITEMS_LEFT.size)
  8.   end
  9. end


用 JustForFun.draw 获取抽到的数字。
作者: 喵呜喵5    时间: 2015-6-11 21:34
本帖最后由 喵呜喵5 于 2015-6-11 21:39 编辑
  1. class Game_Interpreter; def m5_20150611_creat_list(var,range)
  2.     $game_variables[var] = range.to_a.shuffle
  3.   end; def m5_20150611_draw_list(var,empty)   
  4.     ( $game_variables[var].pop || empty ) rescue empty
  5. end; end
复制代码
插入脚本,

使用
  m5_20150611_creat_list(1,21..50)
来将玩家需要抽取的数据(21~50之间)保存在1号变量中【之后随意修改1号变量的值将导致玩家已抽取的道具数据丢失

使用
  m5_20150611_draw_list(1,-1)
来抽取储存在1号变量中且玩家之前没有抽过的数字,若玩家已经抽过所有的数字时,抽到的数字固定为 -1
作者: a000b1745    时间: 2015-6-11 22:02
喵呜喵5 发表于 2015-6-11 21:34
插入脚本,

使用

我附上圖片了...請您看一下...

2015-06-11_220037.png (2 KB, 下载次数: 56)

1

1

2015-06-11_220101.png (39.64 KB, 下载次数: 51)

2

2

作者: 喵呜喵5    时间: 2015-6-11 22:05
m5_20150611_creat_list(99,21..50)
只要执行一次,重复执行表示从21~50重新开始一次不重复的抽取

抽取时这么做:
$game_variables[100] = m5_20150611_draw_list(99,-1)
显示文字:你抽到的是\v[100]





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