Project1

标题: 萌新求解 [打印本页]

作者: 小小西    时间: 2019-6-7 10:39
标题: 萌新求解
限制物品使用次数
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 技能/物品的应用测试and
  3.   #    如果使用目标的 HP 或者 MP 全满时,禁止使用恢复道具。
  4.   #--------------------------------------------------------------------------
  5.   def item_test(user, item)
  6.     if item.is_a?(RPG::Item) and [13,14,15,16,17,18,19,20].include?(item.id) and item.is_a?(RPG::Item)
  7.     $使用次数 = [] if $使用次数 == nil
  8.     $使用次数[self.id] = 0 if $使用次数[self.id] == nil
  9.     return false if $使用次数[self.id] >99
  10.   end

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 应用技能/物品的效果
  3.   #--------------------------------------------------------------------------
  4.   def item_apply(user, item)
  5.     $使用次数[self.id] += 1  if self.actor?  and  $使用次数[self.id] <= 100
  6.     @result.clear
  7.     @result.used = item_test(user, item)
  8.     @result.missed = (@result.used && rand >= item_hit(user, item))
  9.     @result.evaded = (!@result.missed && rand < item_eva(user, item))
  10.     if @result.hit?
  11.       unless item.damage.none?
  12.         @result.critical = (rand < item_cri(user, item))
  13.         make_damage_value(user, item)
  14.         execute_damage(user)
  15.       end
  16.       item.effects.each {|effect| item_effect_apply(user, item, effect) }
  17.       item_user_effect(user, item)
  18.     end
  19.   end


这项会报错  $使用次数[self.id] += 1   if self.actor? and $使用次数[self.id] <= 100
作者: 百里_飞柳    时间: 2019-6-7 10:53
self.id 是什么鬼
记录的到底是啥??物品的应用目标的使用次数??

推荐使用 hash类型
  1. $使用次数 = {}
复制代码


然后key用item来表示,value为被使用的次数
报错是因为那个test不一定会在之前运行,所以加上空值判定
  1. $使用次数[item] ||= 0
  2. $使用次数[item] += 1  if self.actor?  and  $使用次数[item] <= 100
复制代码





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