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

Project1

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

[已经解决] 关于限制物品数量的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1293
在线时间
118 小时
注册时间
2017-7-14
帖子
148
跳转到指定楼层
1
发表于 2019-5-5 13:48:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在xp默认的脚本中...物品的数量上限是99个...而在游戏的实际制作中,不同的物品当然应该有不同的上限数量...所以在实际制作中当然得对物品数量上限进行修改...然而对一个个物品的数量上限进行定义是很麻烦的事...需要对game party中的物品部分进行ID判定...这样就会很麻烦...在参考完其他脚本之后...发现可以采用在描述里进行特殊描述然后用脚本读取的方式来处理这个问题...但是对于刚接触脚本不久的我来说我只是能知道它的原理但是不知道具体应该怎么写...所以想请问一下应该如何处理这个问题...谢谢QWQ

Lv5.捕梦者

梦石
0
星屑
33430
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2019-5-6 08:11:00 | 只看该作者
这个是以前写的,在物品说明里任意位置嵌入 <Max:数量>  就行了。没写的默认 99
  1. #==============================================================================
  2. module RPG
  3.   #--------------------------------------------------------------------------
  4.   class Item
  5.     def description
  6.       return @description.gsub(/<Max:(\d+)>/, "")
  7.     end
  8.     def max_num
  9.       return @description.match(/<Max:(\d+)>/) ? $1.to_i : 99
  10.     end
  11.   end
  12.   #--------------------------------------------------------------------------
  13.   class Weapon
  14.     def description
  15.       return @description.gsub(/<Max:(\d+)>/, "")
  16.     end
  17.    
  18.     def max_num
  19.       return @description.match(/<Max:(\d+)>/) ? $1.to_i : 99
  20.     end
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   class Armor
  24.     def description
  25.       return @description.gsub(/<Max:(\d+)>/, "")
  26.     end
  27.     def max_num
  28.       return @description.match(/<Max:(\d+)>/) ? $1.to_i : 99
  29.     end
  30.   end
  31. end
  32. #==============================================================================
  33. class Game_Party
  34.   #--------------------------------------------------------------------------
  35.   def max_num(item_id, type)
  36.     data = case type
  37.     when :item   : $data_items
  38.     when :weapon : $data_weapons
  39.     when :armor  : $data_armors
  40.     end
  41.     return data[item_id] ? data[item_id].max_num : 0
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   def gain_item(item_id, n)
  45.     if item_id > 0
  46.       max = max_num(item_id, :item)
  47.       @items[item_id] = [[item_number(item_id) + n, 0].max, max].min
  48.     end
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   def gain_weapon(weapon_id, n)
  52.     if weapon_id > 0
  53.       max = max_num(weapon_id, :weapon)
  54.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, max].min
  55.     end
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   def gain_armor(armor_id, n)
  59.     if armor_id > 0
  60.       max = max_num(armor_id, :armor)
  61.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, max].min
  62.     end
  63.   end
  64. end
  65. #==============================================================================
复制代码

点评

好了...问题解决了...原来只需要直接用item.max_num调用就可以了..谢谢大佬QWQ  发表于 2019-5-6 17:31
其实应该只要把商店购买限制那的99改成物品的上限就好了...但是我不知道大佬你写的代码是怎么把物品上限限制这个变量存进去的..  发表于 2019-5-6 13:01
感谢大佬的帮助...这个确实能对物品数量进行限制...但是如果在做商店处理时...即使超过上限也会继续购买...想请教一下解决这个问题的方法  发表于 2019-5-6 13:00

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 13:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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