查看: 3201|回复: 6

[已经解决] 关于物品上限脚本

[复制链接]
梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
发表于 2015-4-22 15:12:52 | 显示全部楼层 |阅读模式

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

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

×
我是找到一些物品上限限制的脚本。不过我是希望只有几个物品的上限有限制,但这些限制可以通过变量而改变。

比如说,“升级药箱”,那么不同的药的上限就可以根据变量而分别增加(4、2、1)个。

有这样的脚本吗?或者说该怎么修改?

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-4-22 15:21:16 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-4-22 15:22 编辑

类似于这样,自己去改成用变量吧
https://rpg.blue/thread-371652-1-1.html
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
 楼主| 发表于 2015-4-22 16:35:47 | 显示全部楼层
VIPArcher 发表于 2015-4-22 15:21
类似于这样,自己去改成用变量吧
https://rpg.blue/thread-371652-1-1.html

就是没有改的头绪啊。

读取的是备注,可以怎么增加变量呢?
回复

使用道具 举报

无限の剣制

梦石
0
星屑
10445
在线时间
5019 小时
注册时间
2013-2-28
回帖
4942

开拓者贵宾

发表于 2015-4-22 16:49:28 | 显示全部楼层
本帖最后由 VIPArcher 于 2015-4-22 16:52 编辑
lirn 发表于 2015-4-22 16:35
就是没有改的头绪啊。

读取的是备注,可以怎么增加变量呢?


例如这样
  1. #====================================================
  2. # 自定义物品数量上限  by 子弹君
  3. #----------------------------------------------------
  4. # 使用方法:在 物品/武器/防具 备注栏里写上 <上限: 数值>
  5. # 注意冒号和空格。
  6. # PS:事实上可以用来做限制数量的道具
  7. #====================================================
  8. class RPG::BaseItem
  9.   def max_plus
  10.     self.note =~ /<上限:\s*(\d+)>/ ? $1.to_i : 0
  11.   end
  12. end

  13. class Game_Party < Game_Unit
  14.   #--------------------------------------------------------------------------
  15.   # ● 获取物品的最大持有数
  16.   #--------------------------------------------------------------------------
  17.   def max_item_number(item)
  18.     return item.max_plus > 0 ? $game_variables[item.max_plus] : 99
  19.   end
  20. end
复制代码

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2015-4-22 18:57:36 | 显示全部楼层
本帖最后由 tseyik 于 2015-4-22 18:59 编辑

道具詳細設定(VXAce専用)
道具的「附註」欄中加上<所持数上限 n>或<max_number n>。
n為道具的所持数上限。
001.png
這道具所持数上限為50個。

http://ytomy.sakura.ne.jp/tkool/ ... ;tech=detailed_item
脚本
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ アイテム詳細設定 - KMS_DetailedItem ◆ VX Ace ◆
  3. #_/    ◇ Last update : 2014/01/02 (TOMY@Kamesoft) ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  アイテム関連の設定項目を追加します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  7. #==============================================================================
  8. # ★ 設定項目 - BEGIN Setting ★
  9. #==============================================================================

  10. module KMS_DetailedItem
  11.   # ◆ デフォルトの所持数上限
  12.   DEFAULT_MAX_NUMBER = 99
  13. end

  14. #==============================================================================
  15. # ☆ 設定ここまで - END Setting ☆
  16. #==============================================================================

  17. $kms_imported ||= {}
  18. $kms_imported["DetailedItem"] = true

  19. module KMS_DetailedItem
  20.   # デバッグフラグ
  21.   DEBUG = false

  22.   # 所持数上限
  23.   #   記述例 : <所持数上限 30>
  24.   REGEX_MAX_NUMBER = /(?:所持数上限|MAX_NUMBER)\s*(\d+)/i

  25.   #============================================================================
  26.   # □ ItemDetailInfo
  27.   #============================================================================

  28.   class ItemDetailInfo
  29.     #--------------------------------------------------------------------------
  30.     # ○ アクセス修飾子
  31.     #--------------------------------------------------------------------------
  32.     attr_accessor :max_number  # 所持数上限
  33.     #--------------------------------------------------------------------------
  34.     # ○ オブジェクト初期化
  35.     #--------------------------------------------------------------------------
  36.     def initialize(item)
  37.       @item       = item
  38.       @max_number = DEFAULT_MAX_NUMBER
  39.     end
  40.     #--------------------------------------------------------------------------
  41.     # ○ 文字列変換
  42.     #--------------------------------------------------------------------------
  43.     def to_s
  44.       info = [@item.id, @max_number]
  45.       return "アイテム %03d: <max_number=%d>" % info
  46.     end
  47.   end
  48. end

  49. # *****************************************************************************

  50. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  51. #==============================================================================
  52. # ■ RPG::BaseItem
  53. #==============================================================================

  54. class RPG::BaseItem
  55.   #--------------------------------------------------------------------------
  56.   # ○ アイテム詳細情報のキャッシュ作成
  57.   #--------------------------------------------------------------------------
  58.   def kms_create_item_detail_info_cache
  59.     @kms_item_detail_info = KMS_DetailedItem::ItemDetailInfo.new(self)

  60.     note.each_line { |line|
  61.       case line
  62.       when KMS_DetailedItem::REGEX_MAX_NUMBER
  63.         @kms_item_detail_info.max_number = $1.to_i
  64.       end
  65.     }

  66.     if KMS_DetailedItem::DEBUG
  67.       print "#{@kms_item_detail_info.to_s}\n"
  68.     end
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ○ アイテム詳細情報の取得
  72.   #--------------------------------------------------------------------------
  73.   def kms_detail_info
  74.     kms_create_item_detail_info_cache if @kms_item_detail_info.nil?
  75.     return @kms_item_detail_info
  76.   end
  77. end

  78. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  79. #==============================================================================
  80. # ■ Game_Party
  81. #==============================================================================

  82. class Game_Party < Game_Unit
  83.   #--------------------------------------------------------------------------
  84.   # ● アイテムの最大所持数取得
  85.   #--------------------------------------------------------------------------
  86.   def max_item_number(item)
  87.     if item.is_a?(RPG::BaseItem)
  88.       return item.kms_detail_info.max_number
  89.     else
  90.       return KMS_DetailedItem::DEFAULT_MAX_NUMBER
  91.     end
  92.   end
  93. end
复制代码

点评

我看漏了変数部分了,請無視巴  发表于 2015-4-22 19:04
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
 楼主| 发表于 2015-4-22 20:44:19 | 显示全部楼层
本帖最后由 lirn 于 2015-4-22 20:46 编辑
VIPArcher 发表于 2015-4-22 16:49
例如这样


也就是说,备注那里改成变量编号就可以了?

不加编号的自动是上限99了的吧。

点评

嗯。没测试  发表于 2015-4-22 23:23
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1019 小时
注册时间
2012-4-25
回帖
693
 楼主| 发表于 2015-4-23 11:39:16 | 显示全部楼层
本帖最后由 lirn 于 2015-4-23 11:44 编辑
VIPArcher 发表于 2015-4-22 16:49
例如这样


不,似乎没有添加变量的道具上限直接为0?我再试试。


==================================

没事了,是我弄错了。
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部