查看: 4137|回复: 14

[已经过期] 请问怎样设置随机丢失物品

[复制链接]
梦石
0
星屑
50
在线时间
7 小时
注册时间
2016-7-16
回帖
11
发表于 2016-7-23 14:43:17 | 显示全部楼层 |阅读模式

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

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

×
求教怎样设置随机丢失物品。设想效果是这样的:当人物死亡或遇到某些事件时,随机丢失物品栏中某样物品。然后还想设置一个类似安全口袋之类的选项,登录进去的物品不会丢失。

目前能想到的方案是:设置公共事件,每件物品都判断一遍是否持有,如果有则变量+1,然后随机数,然后就不知道怎么办了……

或者,每样物品得到时打开一个开关,再用开关判断,之后一个一个一个一个设置丢失……

不管哪个都好像很麻烦,脚本有解决办法吗?或者简单点的事件。
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2016-7-23 16:52:53 | 显示全部楼层
RMXP 中,描述一个物品还有数量的多少。随机丢失物品,那么丢失多少个呢?

下面的代码实现了随机失去某已经持有物品中的一个。使用方法为放在 Game_Party 内部定义
[pre lang="Ruby"]def lose_item_random
  id = @items.select{ |id, number| number > 0}.keys.sample
  lose_item(id, 1)
end[/pre]

实际使用的时候调用
[pre lang="Ruby"]$game_party.lose_item_random[/pre]
即可。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2016-7-16
回帖
11
 楼主| 发表于 2016-7-24 14:58:56 | 显示全部楼层
RyanBern 发表于 2016-7-23 16:52
RMXP 中,描述一个物品还有数量的多少。随机丢失物品,那么丢失多少个呢?

下面的代码实现了随机失去某已 ...

首先感谢大神回答……

001.png
(提问时没有说清楚……物品丢失一个即可)
复制脚本内容在Game_Party中加入了之后,设置事件调取脚本,显示了上面图片的内容,该怎样解决呢
……该不会是我搞错使用方法了吧
回复

使用道具 举报

梦石
0
星屑
50
在线时间
12 小时
注册时间
2016-6-27
回帖
39
发表于 2016-7-24 15:42:51 | 显示全部楼层
这个么……我以前在事件里做到过
然而那个电脑坏了
想把代码拿出来看看都不行╮(╯▽╰)╭
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2016-7-16
回帖
11
 楼主| 发表于 2016-7-24 15:45:05 | 显示全部楼层
灵风斩月 发表于 2016-7-24 15:42
这个么……我以前在事件里做到过
然而那个电脑坏了
想把代码拿出来看看都不行╮(╯▽╰)╭ ...

你这么回答只是加重了我的悲伤
回复

使用道具 举报

梦石
0
星屑
50
在线时间
12 小时
注册时间
2016-6-27
回帖
39
发表于 2016-7-24 16:21:53 | 显示全部楼层
王小錵 发表于 2016-7-24 15:45
你这么回答只是加重了我的悲伤

qwq只能说祝楼主早点解决问题啦……其实多用变量是可以在事件里做到的x
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2016-7-24 23:05:51 | 显示全部楼层
本帖最后由 RyanBern 于 2016-7-25 21:43 编辑
王小錵 发表于 2016-7-24 14:58
首先感谢大神回答……


第一段代码改成
[pre lang="Ruby"]def lose_item_random
  pairs = @items.select{ |id, number| number > 0}
  lose_item(pairs[rand(pairs.size)][0], 1)
end[/pre]
试试
回复

使用道具 举报

梦石
0
星屑
2278
在线时间
1375 小时
注册时间
2011-2-10
回帖
565

开拓者

发表于 2016-7-25 02:27:36 | 显示全部楼层
本帖最后由 sirenke 于 2016-7-25 02:33 编辑

事件的话,先判断是否持有,持有的话,随机数,条件分歧满足时丢失。安全口袋的话可能多少物品多少开关。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2016-7-16
回帖
11
 楼主| 发表于 2016-7-25 17:55:22 | 显示全部楼层
RyanBern 发表于 2016-7-24 23:05
第一段代码改成
def lose_item_random
  pair = @items.select{ |id, number| number > 0}.sample

1.png

点评

楼上已更新。1.8的ruby怎么什么都没有。  发表于 2016-7-25 21:44
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2016-7-16
回帖
11
 楼主| 发表于 2016-7-25 18:03:42 | 显示全部楼层
sirenke 发表于 2016-7-25 02:27
事件的话,先判断是否持有,持有的话,随机数,条件分歧满足时丢失。安全口袋的话可能多少物品多少开关。 ...

就是,先分别判断每一样物品,持有的话打开开关(安全口袋的并行事件关闭开关),变量1=随机数,再随机数(1~n,n=物品总数),再一个一个数字分别判断(变量1=1就丢失1号物品,还判断一下开关是否打开,未打开的循环回随机数的步骤……诸如此类),满足条件的丢失,是这样吗?
(今天上网时间短,没有办法详细设置测试,我先问一下大致思路)
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部