Project1
标题: 萌新求解 [打印本页]
作者: 小小西 时间: 2019-6-7 10:39
标题: 萌新求解
限制物品使用次数
#--------------------------------------------------------------------------
# ● 技能/物品的应用测试and
# 如果使用目标的 HP 或者 MP 全满时,禁止使用恢复道具。
#--------------------------------------------------------------------------
def item_test(user, item)
if item.is_a?(RPG::Item) and [13,14,15,16,17,18,19,20].include?(item.id) and item.is_a?(RPG::Item)
$使用次数 = [] if $使用次数 == nil
$使用次数[self.id] = 0 if $使用次数[self.id] == nil
return false if $使用次数[self.id] >99
end
#--------------------------------------------------------------------------
# ● 技能/物品的应用测试and
# 如果使用目标的 HP 或者 MP 全满时,禁止使用恢复道具。
#--------------------------------------------------------------------------
def item_test(user, item)
if item.is_a?(RPG::Item) and [13,14,15,16,17,18,19,20].include?(item.id) and item.is_a?(RPG::Item)
$使用次数 = [] if $使用次数 == nil
$使用次数[self.id] = 0 if $使用次数[self.id] == nil
return false if $使用次数[self.id] >99
end
#--------------------------------------------------------------------------
# ● 应用技能/物品的效果
#--------------------------------------------------------------------------
def item_apply(user, item)
$使用次数[self.id] += 1 if self.actor? and $使用次数[self.id] <= 100
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if @result.hit?
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
#--------------------------------------------------------------------------
# ● 应用技能/物品的效果
#--------------------------------------------------------------------------
def item_apply(user, item)
$使用次数[self.id] += 1 if self.actor? and $使用次数[self.id] <= 100
@result.clear
@result.used = item_test(user, item)
@result.missed = (@result.used && rand >= item_hit(user, item))
@result.evaded = (!@result.missed && rand < item_eva(user, item))
if @result.hit?
unless item.damage.none?
@result.critical = (rand < item_cri(user, item))
make_damage_value(user, item)
execute_damage(user)
end
item.effects.each {|effect| item_effect_apply(user, item, effect) }
item_user_effect(user, item)
end
end
这项会报错 $使用次数[self.id] += 1 if self.actor? and $使用次数[self.id] <= 100
作者: 百里_飞柳 时间: 2019-6-7 10:53
self.id 是什么鬼
记录的到底是啥??物品的应用目标的使用次数??
推荐使用 hash类型
然后key用item来表示,value为被使用的次数
报错是因为那个test不一定会在之前运行,所以加上空值判定
- $使用次数[item] ||= 0
- $使用次数[item] += 1 if self.actor? and $使用次数[item] <= 100
复制代码
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |