[XP] def richtig aufrufen
Servus, ich hab mal wieder eine Frage.
In einem der Script die ich nutze findet sich dieser Abschnitt hier, der den Spieler vermutlich die Waffe wechseln lässt.
Code:
def change_weapon(id=2)
unless @waffe_aktuell.nil?
spezab = @waffen_atr[@waffe_aktuell['Name']]['Spezial_Ablegen']
eval(spezab) unless spezab.nil?
end
if @waffe[id].nil?
$game_actors[@actor].set_graphic(@actor_graphic, 0, '', 0)
else
$game_actors[@actor].set_graphic(@waffen_atr[@waffe[id]['Name']]['Spielergrafik'], 0, '', 0)
spezan = @waffen_atr[@waffe[id]['Name']]['Spezial_Anlegen']
eval(spezan) unless spezan.nil?
end
$game_system.se_play(@waffenwechselsound)
@waffe[0] = id
@waffe_aktuell = @waffe[@waffe[0]]
@hud.refresh
$game_player.refresh
end
An einer anderen Stelle in einem anderen Script zuvor, wird der Waffenwechsel glaube ich ausgelöst.
Code:
if @option_allow_weapon_change
for taste in 0..@waffe.size - 2
if @key.getkey_id(49+taste) and @waffe[0] != taste+1
change_weapon(taste+1)
end
end
end
Nun habe ich versucht den Waffenwechsel über ein Menü zu ermöglichen, dessen Script wiederum denen vorangestellt ist.
Ich habe dazu die Zeile: " change_weapon(x) " eingefügt, wobei x für 0,1,2,3,49,50,51 steht. Leider bekomme ich immer den
NoMethod-Fehler. Ich rufe die Funktion also scheinbar nicht richtig auf. Kann da jemand vielleicht etwas Licht ins Dunkel bringen?