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

Project1

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

能不能定义个别物品的上限?

 关闭 [复制链接]

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

跳转到指定楼层
1
发表于 2009-1-25 02:12:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如说我有种用于合成的物品(好像耀晶片那样)上限是9999
然后普通物品的上限是99
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

指引者

梦石
0
星屑
50
在线时间
2 小时
注册时间
2005-10-25
帖子
375
2
发表于 2009-1-25 03:39:31 | 只看该作者
判断 if item_id > 0 && item_id!=1
物品ID是否大于0并且不等于你限制的那个物品的ID
如果成立就让所有物品都显示为上限99
否则物品ID等于1的话就让那个物品上限为9999

  1. #--------------------------------------------------------------------------
  2.   # ● 增加物品 (减少)
  3.   #     item_id : 物品 ID
  4.   #     n       : 个数
  5.   #--------------------------------------------------------------------------
  6.   def gain_item(item_id, n)
  7.     # 更新 hash 的个数数据
  8.     if item_id > 0 && item_id!=1
  9.       @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
  10.     else
  11.       @items[item_id] = [[item_number(item_id) + n, 0].max, 9999].min
  12.     end
  13.   end
复制代码

修改物品上限
还有商店的,



  1.      # 如果已经拥有了 99 个情况下
  2.      if number == 99
  3.        # 演奏冻结 SE
  4.        $game_system.se_play($data_system.buzzer_se)
  5.        return
  6.      end
  7.      # 演奏确定 SE
  8.      $game_system.se_play($data_system.decision_se)
  9.      # 计算可以最多购买的数量
  10.      max = @item.price == 0 ? 99 : $game_party.gold / @item.price
  11.      max = [max, 99 - number].min
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
↓这是啥-- [IMG][/IMG]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

3
 楼主| 发表于 2009-1-25 03:41:50 | 只看该作者
可以么…………我以前记得还要塞一个很长的外挂脚本。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

指引者

梦石
0
星屑
50
在线时间
2 小时
注册时间
2005-10-25
帖子
375
4
发表于 2009-1-25 03:45:59 | 只看该作者
要截图吗--
这是显示上的处理把hash的大小改成9999就可以了
你给他9999个就一定是9999个
↓这是啥-- [IMG][/IMG]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

5
 楼主| 发表于 2009-1-25 03:46:48 | 只看该作者
hash是虾米~?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

指引者

梦石
0
星屑
50
在线时间
2 小时
注册时间
2005-10-25
帖子
375
6
发表于 2009-1-25 03:52:11 | 只看该作者
刚才试了一下 不用改hash的最大值了 hash本来就是自动连接的一种特殊集合

这个范例给你吧--
你看了我事件上的脚本就会明白了
我事件上的脚本是给2种物品一次添加9999个给玩家
http://rpg.blue/upload_program/d ... ��槽_113255489.rar
↓这是啥-- [IMG][/IMG]
回复 支持 反对

使用道具 举报

Lv1.梦旅人

魔王 ⑨

梦石
0
星屑
95
在线时间
380 小时
注册时间
2006-10-16
帖子
4299

贵宾

7
 楼主| 发表于 2009-1-25 03:54:07 | 只看该作者
刚刚解决了。。。
  def gain_item(item_id, n)
    # 更新 hash 的个数数据
    if item_id >= 34 && item_id <= 39
      @items[item_id] = [[item_number(item_id) + n, 0].max, 9999].min
    else
      @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
    end
  end
这样写的。。
话说hash是什么?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

8
发表于 2009-1-25 03:56:04 | 只看该作者
以下引用玄月于2009-1-24 19:54:07的发言:

刚刚解决了。。。
def gain_item(item_id, n)
   # 更新 hash 的个数数据
   if item_id >= 34 && item_id <= 39
     @items[item_id] = [[item_number(item_id) + n, 0].max, 9999].min
   else
     @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
   end
end
这样写的。。

这次路子走对了
Hash是哈希表,是个很好用的东西,比如你这段代码里的 @items 就是个hash,具体的还是要问F1了。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

指引者

梦石
0
星屑
50
在线时间
2 小时
注册时间
2005-10-25
帖子
375
9
发表于 2009-1-25 04:00:03 | 只看该作者
我的天-- 有5个物品是可以拿9999个的么....

HASH 就是哈希表
哈希表是有 键和值来标识的一种特殊集合
这种集合不用担心他的下标种会有空值 是非常有用的东西

例如在哈希种 {[Money,99999999]} Money是键 99999999是值

怎么星辰大哥跟我用的词都一样捏--
"这是个有用的东西"

如果是数组的话 某个下标的数据被清空了 系统就会抛出空值异常中断游戏
而哈希不会发生这样的事情 如果该值被清空会被后面的数值代替他的位置
↓这是啥-- [IMG][/IMG]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-18 18:46

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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