Так я пишу эту игру в рубине, и у меня есть эта фикция:рубин ошибка: NoMethodError: неопределенный метод `SpecificVisibleTreasures' для ноля: NilClass
puts "Monsters that make you loose a hand-weapon"
for m in monsters
specificTreasures = Array.new
specificTreasures = m.bc.SpecificVisibleTreasures + m.bc.specificHiddenTreasures
for treasure in specificTreasures
if (treasure == TreasureKind::ONEHAND)
puts m.to_s
break
end
end
end
Ъса„badconsequence“и указует на Bc класс "монстр", который имеет это:
def initialize(name, level, prize, bc)
@name = name
#@combatLevel = level
@level=level
@prize = prize
@badConsequence = bc
end
и класс badconsequence:
def initialize(aText, someLevels, someVisibleTreasures, someHiddenTreasures, someSpecificVisibleTreasures, someSpecificHiddenTreasures, death)
@text = aText
@levels = someLevels
@nVisibleTreasures = someVisibleTreasures
@nHiddenTreasures = someHiddenTreasures
@SpecificVisibleTreasures = someSpecificVisibleTreasures
@SpecificHiddenTreasures = someSpecificHiddenTreasures
@death = death
end
, но это дает мне т его ошибка: NoMethodError: undefined method `SpecificVisibleTreasures 'для nil: NilClass
помогите пожалуйста?
Невозможно воспроизвести это из этих битов кода. Но проблема в том, что 'm.bc' как-то ничто. Узнайте, почему. –
@ Сергио Туленцев спасибо, да, я знаю, что не могу поместить весь код, потому что он огромен, но этот код влияет только на те части, которые я написал выше. Почему это не работает, это то, что я пытаюсь обнаружить. – Paula
Ну, не ставьте * все * кода. Уменьшите его до ** минимального ** примера, который ** все еще работает ** и показывает проблему. Вероятно, вы обнаружите проблему в этом процессе. –