查看: 4697|回复: 4

[已经解决] 请问如何制作一种事件或脚本,给予脚色没拿过的物品?

[复制链接]
梦石
0
星屑
562
在线时间
465 小时
注册时间
2009-10-11
回帖
322
发表于 2015-6-11 01:35:37 | 显示全部楼层 |阅读模式

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

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

×
想做一个系统遇到一点小问题...就是我做了奖励道具item[21]~[50]一共30样道具,玩家在第一次领奖时会获得[21]~[50]其中一样(譬如抽到[35])。
那么下次他在领奖时会从[21]~[34]和[36]~[50]这29样道具中抽到其中一样。

请问该做何种脚本或事件来做这种"箱子抽不重复号码球"的系统呢??
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-6-11 09:14:39 | 显示全部楼层
[pre lang="ruby"]
module JustForFun

  ITEMS_LEFT = (21..50).to_a

  # 还有奖时返回数字,没有时返回 nil
  def self.draw
    ITEMS_LEFT.slice!(rand ITEMS_LEFT.size)
  end
end
[/pre]

用 JustForFun.draw 获取抽到的数字。

点评

抱歉...我用$game_variables[99] = JustForFun.draw 會報錯...有點不懂這腳本用法..求教 :'(  发表于 2015-6-11 11:03

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 我很赞同

查看全部评分

回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-6-11 21:34:22 | 显示全部楼层
本帖最后由 喵呜喵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

点评

用 m5_20150611_draw_list(1,-1) 来抽取数字  发表于 2015-6-11 22:00
你怎么抽的?  发表于 2015-6-11 21:59
您好,感謝幫忙!! 但是他一次都會抽不只一個數字...是一大串 >"<??  发表于 2015-6-11 21:59

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
562
在线时间
465 小时
注册时间
2009-10-11
回帖
322
 楼主| 发表于 2015-6-11 22:02:30 | 显示全部楼层
喵呜喵5 发表于 2015-6-11 21:34
插入脚本,

使用

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

1

1

2

2
因为现实太残酷、所以我们都在打造虚幻的天堂。如果现实不再残酷,也是因为有这快乐的天堂。
回复

使用道具 举报

梦石
1
星屑
23236
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-6-11 22:05:36 | 显示全部楼层
m5_20150611_creat_list(99,21..50)
只要执行一次,重复执行表示从21~50重新开始一次不重复的抽取

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

评分

参与人数 2星屑 +16 梦石 +1 收起 理由
taroxd + 1 认可答案
a000b1745 + 16 問題解決了,感謝熱心及耐心的幫助! :).

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部