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

Project1

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

[已经解决] 怎么让单个物品分数量上限

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
跳转到指定楼层
1
发表于 2011-10-14 18:32:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手枪的上限=1  种子数量上限=10

买了一次手枪之后去商店就不能买了,怎么做?
(种子达到10个就不能获得,不能买不能捡)
黑之结界勇士

Lv1.梦旅人

追从自然的旅行者
奇特空·煦

梦石
0
星屑
107
在线时间
1387 小时
注册时间
2010-12-31
帖子
4944

开拓者贵宾

2
发表于 2011-10-14 21:35:51 | 只看该作者
纯事件的话,可以考虑商店处理之前弄个条件分歧,某物品数量,

如果需要这种功能的物品很多的话,还是用脚本改了
回复

使用道具 举报

Lv4.逐梦者

弓箭手?剑兰

梦石
0
星屑
5774
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
3
发表于 2011-10-14 22:58:22 | 只看该作者
本帖最后由 一箭烂YiJL 于 2011-10-14 23:03 编辑

随便写的。注:引用了沉影不器的脚本。main之上

  1. # 在物品、防具、武器的备注栏里面写下"getlimit = ???"
  2. # ??? 是个数字,就是上限。

  3. #==============================================================================
  4. # ■ [VX] 读取rmvx备注栏 2.02.1001 by 沉影不器
  5. #==============================================================================
  6. $fscript = {} if $fscript == nil
  7. $fscript["ReadNote"] = "2.02.1001"
  8. #==============================================================================
  9. # ■ RPG
  10. #==============================================================================
  11. module RPG
  12.   #=============================================================================
  13.   # □ ReadNote
  14.   #=============================================================================
  15.   module ReadNote
  16.     def self.read(str, section, mismatch = nil)
  17.       str.each_line do |line|
  18.         ## 不希望忽略大小写,则删掉下一行最后一个i
  19.         eval("#{line}; return #{section}") if line =~ /^\s*#{section}\s*=/i
  20.       end
  21.       return mismatch
  22.     end
  23.   end
  24.   #=============================================================================
  25.   # ■ BaseItem
  26.   #=============================================================================
  27.   class BaseItem
  28.     #-------------------------------------------------------------------------
  29.     # ○ 读取rmvx备注栏指定字段
  30.     #     section  : 字段名
  31.     #     mismatch : 未匹配时的返回值
  32.     #-------------------------------------------------------------------------
  33.     def read_note(section, mismatch = nil)
  34.       ReadNote.read(self.note, section, mismatch)
  35.     end
  36.   end
  37.   #=============================================================================
  38.   # ■ Enemy
  39.   #=============================================================================
  40.   class Enemy
  41.     def read_note(section, mismatch = nil)
  42.       ReadNote.read(self.note, section, mismatch)
  43.     end
  44.   end
  45.   #=============================================================================
  46.   # ■ State
  47.   #=============================================================================
  48.   class State
  49.     def read_note(section, mismatch = nil)
  50.       ReadNote.read(self.note, section, mismatch)
  51.     end
  52.   end
  53. end

  54. #==============================================================================
  55. # ■ Game_Party
  56. #==============================================================================

  57. class Game_Party < Game_Unit
  58.   #--------------------------------------------------------------------------
  59.   # ● 获得/损失物品
  60.   #     item          : 物品
  61.   #     n             : 数量
  62.   #     include_equip : 包括已装备的物品
  63.   #--------------------------------------------------------------------------
  64.   def gain_item(item, n, include_equip = false)
  65.     number = item_number(item)
  66.     limit = item.read_note("getlimit").to_i
  67.     limit = 99 if item.read_note("getlimit").to_i == 0
  68.     case item
  69.     when RPG::Item
  70.       @items[item.id] = [[number + n, 0].max, limit].min
  71.     when RPG::Weapon
  72.       @weapons[item.id] = [[number + n, 0].max, limit].min
  73.     when RPG::Armor
  74.       @armors[item.id] = [[number + n, 0].max, limit].min
  75.     end
  76.     n += number
  77.     if include_equip and n < 0
  78.       for actor in members
  79.         while n < 0 and actor.equips.include?(item)
  80.           actor.discard_equip(item)
  81.           n += 1
  82.         end
  83.       end
  84.     end
  85.   end
  86. end
复制代码
���

点评

商店购买使用了钱买不到东西很惨的  发表于 2011-10-17 18:44

评分

参与人数 1星屑 +40 收起 理由
MSQ + 40 非常感谢~~=W=

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
4
 楼主| 发表于 2011-10-17 15:16:46 | 只看该作者
不行啊,虽然购买之后物品是指定数,但是在购买的时候买多了就用多钱了
黑之结界勇士
回复

使用道具 举报

Lv4.逐梦者

弓箭手?剑兰

梦石
0
星屑
5774
在线时间
833 小时
注册时间
2010-11-17
帖子
1140
5
发表于 2011-10-17 21:50:32 | 只看该作者
黑之翅膀 发表于 2011-10-17 15:16
不行啊,虽然购买之后物品是指定数,但是在购买的时候买多了就用多钱了

很多东西也依靠这个函数的,如商店、事件(尤其是任务物品)、其他场景....。当用到这类型的脚本的时候,
兼容性十分危险,尤其这个函数没有返回成功或失败。除非失败了以后,物件就会丢在地图上。
否则兼容别的脚本的话,是要自己花功夫将每一个获得物品的脚本都要改。
(可惜默认脚本没有判断可否添加或删除物品这个函数的机制啊!)

点评

哦哦  发表于 2011-10-17 22:07
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-8 05:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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