Project1

标题: [結帖]如何限制每個角色使用物品的次數?? [打印本页]

作者: david_ng223    时间: 2013-8-19 09:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: tan12345    时间: 2013-8-20 20:01
在物品那里弄个公共事件,用1个变量记录1个角色使用这个物品的次数,初始化为0,当这个角色使用物品时先判断,如果变量小于42,变量+1,物品可以使用,否则不允许使用物品
作者: david_ng223    时间: 2013-8-20 20:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: fangyc    时间: 2013-8-21 09:11
试试这段脚本能不能达到你的要求
4和7行分别设置有使用次数限制的物品ID和使用次数,这里已经预设了你顶楼提到的物品
  1. class Game_Battler

  2.   # 设置有使用次数限制的道具ID
  3.   LIMITED_ITEMS = [1, 3, 4, 5, 6, 7]
  4.   
  5.   # 使用次数限制
  6.   ITEM_LIMITATION = 42
  7.   
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化对象
  10.   #--------------------------------------------------------------------------
  11.   alias item_limitation001_initialize initialize
  12.   def initialize
  13.     LIMITED_ITEMS.each do {|item_id| @item_limitation[item_id] = 0}
  14.     item_limitation001_initialize
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 判断物品是否超过使用上限
  18.   #--------------------------------------------------------------------------
  19.   def over_item_limitation?(item)
  20.     return false if !@item_limitaion[item.id] || @item_limitaion[item.id] < ITEM_LIMITATION
  21.     return true
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 检查物品的使用条件
  25.   #--------------------------------------------------------------------------
  26.   alias item_limitation001_item_conditions_met? item_conditions_met?
  27.   def item_conditions_met?(item)
  28.     item_limitation001_item_conditions_met(item) && !over_item_limitation?(item)
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 技能/使用物品
  32.   #    对使用目标使用完毕后,应用对于使用目标以外的效果。
  33.   #--------------------------------------------------------------------------
  34.   alias item_limitation001_use_item use_item
  35.   def use_item(item)
  36.     item_limitation001_use_item(item)
  37.     if item.is_a?(RPG::Item) && !@item_limitaion[item.id]
  38.       @item_limitaion[item.id] += 1
  39.     end
  40.   end
  41. end
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1