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

Project1

 找回密码
 注册会员
搜索
查看: 1109|回复: 4

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

[复制链接]

Lv2.观梦者

梦石
0
星屑
342
在线时间
442 小时
注册时间
2009-10-11
帖子
403
发表于 2015-6-11 01:35:37 | 显示全部楼层 |阅读模式

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

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

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

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

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
1698
在线时间
4026 小时
注册时间
2010-10-4
帖子
10775

开拓者贵宾

发表于 2015-6-11 09:14:39 | 显示全部楼层
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 获取抽到的数字。

点评

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

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
8643
在线时间
7900 小时
注册时间
2012-6-19
帖子
6783

开拓者短篇九导演组冠军

发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

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

使用

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

1

1

2

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

使用道具 举报

Lv4.逐梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
8643
在线时间
7900 小时
注册时间
2012-6-19
帖子
6783

开拓者短篇九导演组冠军

发表于 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 問題解決了,感謝熱心及耐心的幫助! :).

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2020-6-6 13:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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