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

Project1

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

[已经解决] 怎么设定特定编号范围内的物品种类携带上限

[复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2012-6-18 21:10:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 幻耶 于 2012-6-18 21:35 编辑

比如,数据库编号为301~500的物品,当携带这个编号范围内物品的种类超过100种的时候,就不允许再获得此范围编号内的物品了,提示为:此类型的物品已满。但是编号范围外的物品不受影响可以继续获得

如果只在脚本编辑器里设定,不需要在事件里判断,应该怎么做?
囡囚囨囚囨図囨囧

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

2
发表于 2012-6-18 21:52:02 | 只看该作者
本帖最后由 hys111111 于 2012-6-18 21:53 编辑
  1. class Game_Party
  2.   def gain_item(item_id, n)
  3.     # 更新 hash 的个数数据
  4.     if item_id > 0
  5.       if item_id >= 301 and item_id <= 500
  6.         if item_number == 100
  7.             p "物品已满"
  8.         end
  9.         @items[item_id] = [[item_number(item_id) + n, 0].max, 100].min
  10.       else
  11.         @items[item_id] = [[item_number(item_id) + n, 0].max, 99999999].min
  12.       end
  13.     end
  14.   end
  15. end
复制代码
写完
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
3
 楼主| 发表于 2012-6-18 22:34:16 | 只看该作者
本帖最后由 幻耶 于 2012-6-18 22:43 编辑
hys111111 发表于 2012-6-18 21:52
写完


我新建一工程插入脚本,为了简化改了一下编号,通过事件得到3号和4号物品,结果执行事件出错了ArgumentError

另外我的意思是:假设数据库编号3~5的物品,假设携带这个编号范围内物品的上限种类是2,那么,角色持有3号和4号物品就不能再得到5号物品。或者角色持有4号和5号物品就不能再得到3号物品。。。和同一种物品的数量没关系
  1. class Game_Party
  2.   def gain_item(item_id, n)
  3.     # 更新 hash 的个数数据
  4.     if item_id > 0
  5.       if item_id >= 3 and item_id <= 5
  6.         if item_number == 2
  7.             p "物品已满"
  8.         end
  9.         @items[item_id] = [[item_number(item_id) + n, 0].max, 100].min
  10.       else
  11.         @items[item_id] = [[item_number(item_id) + n, 0].max, 99999999].min
  12.       end
  13.     end
  14.   end
  15. end
复制代码

点评

看明白标题的意思了……  发表于 2012-6-19 12:34
囡囚囨囚囨図囨囧
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 2012-6-19 12:37:27 | 只看该作者
  1. class Game_Party
  2.   def gain_item(item_id, n)
  3.     # 更新 hash 的个数数据
  4.     if item_id > 0
  5.       if item_id >= 301 and item_id <= 500
  6.         iii = 0
  7.         for ii in 301..500
  8.           iii += item_number(ii)
  9.         end
  10.         if iii >= 100
  11.           return
  12.         end
  13.       end
  14.       @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  15.     end
  16.   end
  17. end
复制代码
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
5
 楼主| 发表于 2012-6-19 13:01:33 | 只看该作者
hys111111 发表于 2012-6-19 12:37

我改成下面这样:假设数据库物品编号3~5这个范围内可携带的上限种类是2,设置1号事件给3、4号物品,2号事件给5号物品,结果我先执行2号事件得到5号物品,再执行1号事件,就提示物品已满了,但是角色物品栏里还是只有5号物品一种,并没有达到2种的上限啊?
  1. class Game_Party
  2.   def gain_item(item_id, n)
  3.     # 更新 hash 的个数数据
  4.     if item_id > 0
  5.       if item_id >= 3 and item_id <= 5
  6.         iii = 0
  7.         for ii in 3..5
  8.           iii += item_number(ii)
  9.         end
  10.         if iii >= 2
  11.           p "物品已满"
  12.           return
  13.         end
  14.       end
  15.       @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  16.     end
  17.   end
  18. end
复制代码

点评

我以为物品数量也算进去  发表于 2012-6-19 13:15
第8行改一下,iii += 1 if item_number(ii) >= 1  发表于 2012-6-19 13:15
囡囚囨囚囨図囨囧
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
6
 楼主| 发表于 2012-6-19 13:30:29 | 只看该作者
还是老样子啊,第8行改过以后同类的物品不能再增加了,我希望同类物品的数量不受影响
囡囚囨囚囨図囨囧
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 07:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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