Hallo,
ich nutze ein Ring-Menü Script. Hier der betreffende Teil:
Code:
class Scene_items_rc
def main
@actor= $game_party.actors[0]
@data= []
@icon_name = []
@name= []
@description=[]
@anzahl= []
get_item
# @status.active=false
@command_window = Window_Ring_Command.new(1,$game_player.screen_x-30, $game_player.screen_y-50, @icon_name, 60)
@beschreibung_window = Window_beschreibung.new(@name,@description,@anzahl)
@beschreibung_window.z = 400
@spriteset = Spriteset_Map.new
# Main loop
Graphics.transition
loop do
# Update game screen
Graphics.update
# Update input information
Input.update
# Frame update
update
# Abort loop if screen is changed
if $scene != self
break
end
end
Graphics.freeze
# Dispose of command window
@command_window.dispose
@beschreibung_window.dispose
@spriteset.dispose
end
def update
@command_window.update
@beschreibung_window.update
@item = @data[@command_window.index]
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Switch to map screen
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
wählen
end
if Input.repeat?(Input:: LEFT )
@command_window.move_left
$game_system.se_play($data_system.cursor_se)
@item = @data[@command_window.index]
end
if Input.repeat?(Input::RIGHT)
@command_window.move_right
$game_system.se_play($data_system.cursor_se)
@item = @data[@command_window.index]
end
if Input.trigger? (Input::UP)
#$scene = Scene_skill_rc.new
$scene = Scene_Menu.new
end
if Input.trigger? (Input::DOWN)
#$scene = Scene_waffen.new
$scene = Scene_Menu.new
end
# case Input.dir4
# when 4 then @command_window.move_left
# $game_system.se_play($data_system.cancel_se)
# when 6 then @command_window.move_right
# $game_system.se_play($data_system.cancel_se)
#end
#@index = 0
#while @command_window.index != @index and @command_window.index !=0
# @index= @command_window.index
end
def wählen
unless @item.is_a?(RPG::Item)
$game_system.se_play($data_system.buzzer_se)
return
end
unless $game_party.item_can_use?(@item.id)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.xas_item_id = @item.id
@ausgerüstet = @item
update_icons
$scene = Scene_Map.new
return
end
def update_icons
@data.clear
@icon_name.clear
@name.clear
@description.clear
@anzahl.clear
get_item
@command_window.update_icons(@icon_name)
@beschreibung_window.refresh
end
def get_item
unless @ausgerüstet == nil
@data.push(@ausgerüstet)
@icon_name.push(@ausgerüstet.icon_name)
@name.push(@ausgerüstet.name)
@description.push(@ausgerüstet.description)
@anzahl.push($game_party.item_number($game_system.xas_item_id))
end
for i in 1...$data_items.size
if $game_party.item_number(i) > 0 and $data_items[i] != @ausgerüstet
@data.push($data_items[i])
@icon_name.push($data_items[i].icon_name)
@name.push($data_items[i].name)
@description.push($data_items[i].description)
@anzahl.push($game_party.item_number($data_items[i].id))
end
end
if @data[0] == nil
@data.push("nix")
@icon_name.push("nix")
@name.push("")
@description.push("")
end
end
end
Alles funktioniert hervorragend, mit Ausnahme des Auswählens eines Items.
Sobald ich im Menü ein Item benutzen will erhalte ich folgende Fehlermeldung:
Script "Scene_items_rc" line 92: NoMethodError occured.
Undefined method "xas_item_id=" for #<Game_System:0xad6a3b0>
Ich habe die betreffende Zeile im Code fett makiert.
Nun weiß ich, dass es ein XAS-Abs gibt und hatte vermutet, dass dies vielleicht ein Befehl aus diesem Script ist.
Oder handelt es sich hierbei nur um einen Zufall? Wenn ja, gibt es eine Möglichkeit das Problem dennoch zu beheben?
Jedenfalls wäre ich sehr verbunden, wenn mir jemand hierbei auf die Sprünge hilft.
Immerhin wäre es schade dieses wunderbare Script nur wegen einer Kleinigkeit nicht benutzen zu können.
Vielen Dank im vorraus.