【发布时间】:2010-07-21 05:11:04
【问题描述】:
我有一个初始为 0 的整数,经过计算后,通常会在 0 到 99 之间结束。问题是,从游戏早期开始,它经常计算为 0 或 1,它被分配为 TrueClass或 FalseClass 而不是数值,这会扰乱未来的 x > 0 比较。是否有内置的 Ruby 方法可以强制变量成为 Fixnum/Integer 类型,还是我必须对其进行猴子补丁?
这是它适用的代码:
第 10 步:计算目标的魔法防御乘数
mdef_multi = self.mdef_multi
# Step 11: Modify the Magic Defense Multiplier
# If Toad
mdef_multi = 0 if user.states.include?(11)
# If Charging
mdef_multi = 0 if user.states.include?(30)
# If cast on self or PC onto PC
# 0 if PC targetting PC
mdef_multi = self.is_a?(Game_Actor) and user.is_a?(Game_Actor) ? 0 : mdef_multi
# 99 MDef Multi if max MDef
mdef_multi = self.is_a?(Game_Enemy) and mdef == 255 ? 99 : mdef_multi
# If Solo Multiplier is enabled
mdef_multi = obj.element_set.include?(26) ? 1 : mdef_multi
# Step 12: Modify the Spell Multiplier
hits = 0, missed = 0, evaded = 0
while spl_multi > 0
spl_multi -= 1
if rand(99) <= hit
if mdef_multi > 0
最后一行是我遇到变量类型问题的地方。 从技术上讲,它是来自 RPG Maker VX 的 RGSS2。请原谅 我可怕的评论和编码风格。
【问题讨论】: