Here is my script:
When I run it I get this error:
The line that has the error is:
Help? Please? For a newbie's sake?
Edited to highlight script error line.
Code:
#===================================================
# - Djzalzer's Custom Menu by Djzalzer
#===================================================
class Scene_Menu
#---------------------------------------------------------------------------------
def initialize
end
#---------------------------------------------------------------------------------
class Scene_Menu
#--------------------------------------------------------------------------
# * Object Initialization
# menu_index : command cursor's initial position
#--------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# Make command window
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Status"
s5 = "Save"
s6 = "End Game"
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
# If number of party members is 0
if $game_party.actors.size == 0
# Disable items, skills, equipment, and status
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
# If save is forbidden
if $game_system.save_disabled
# Disable save
@command_window.disable_item(4)
end
# Make play time window
@windowgold = Window_Gold.new
@windowgold.x =0
@windowgold.y =249
@windowgold.height = 231
@windowgold.width = 161
@windowlocation = Window_Location.new
@windowlocation.x =131
@windowlocation.y =405
@windowlocation.height = 75
@windowlocation.width = 509
@windowstatus = Window_MenuStatus.new
@windowstatus.x =160
@windowstatus.y =0
@windowstatus.height = 406
@windowstatus.width = 480
# Execute transition
Graphics.transition
# Main loop
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
# Prepare for transition
Graphics.freeze
# Dispose of windows
@windowgold.dispose
@windowlocation.dispose
@windowstatus.dispose
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update windows
@windowgold.update
@windowlocation.update
@windowstatus.update
# If command window is active: call update_command
if @command_window.active
update_command
return
end
# If status window is active: call update_status
if @windowstatus.active
update_status
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when command window is active)
#--------------------------------------------------------------------------
def update_command
# If B button was pressed
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 C button was pressed
if Input.trigger?(Input::C)
# If command other than save or end game, and party members = 0
if $game_party.actors.size == 0 and @command_window.index < 4
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Branch by command window cursor position
case @command_window.index
when 0 # item
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to item screen
$scene = Scene_Item.new
when 1 # skill
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@windowstatus.active = true
@windowstatus.index = 0
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@windowstatus.active = true
@windowstatus.index = 0
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Make status window active
@command_window.active = false
@windowstatus.active = true
@windowstatus.index = 0
when 4 # save
# If saving is forbidden
if $game_system.save_disabled
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to save screen
$scene = Scene_Save.new
when 5 # end game
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to end game screen
$scene = Scene_End.new
end
return
end
end
#--------------------------------------------------------------------------
# * Frame Update (when status window is active)
#--------------------------------------------------------------------------
def update_status
# If B button was pressed
if Input.trigger?(Input::B)
# Play cancel SE
$game_system.se_play($data_system.cancel_se)
# Make command window active
@command_window.active = true
@windowstatus.active = false
@windowstatus.index = -1
return
end
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @command_window.index
when 1 # skill
# If this actor's action limit is 2 or more
if $game_party.actors[@status_window.index].restriction >= 2
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
end
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to skill screen
$scene = Scene_Skill.new(@status_window.index)
when 2 # equipment
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to equipment screen
$scene = Scene_Equip.new(@status_window.index)
when 3 # status
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Switch to status screen
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end
#---------------------------------------------------------------------------------
#---------------------------------------------------------------------------------
def update
end
#---------------------------------------------------------------------------------
end
#===================================================
# - CLASS Scene_Menu Ends
#===================================================
#===================================================
# - CLASS Window_Gold Begins
#===================================================
class Window_Gold < Window_Base
#---------------------------------------------------------------------------------
def initialize
super(0, 0, 161,231)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Tahoma"
self.contents.font.size = 22
self.contents.font.color = text_color(0)
self.contents.draw_text(0, 0, 33, 33, "Gold & Playtime")
end
#---------------------------------------------------------------------------------
end
#===================================================
# - CLASS Window_Gold Ends
#===================================================
#===================================================
# - CLASS Window_Loaction Begins
#===================================================
class Window_Location < Window_Base
#---------------------------------------------------------------------------------
def initialize
super(0, 0, 509,75)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = "Tahoma"
self.contents.font.size = 22
self.contents.font.color = text_color(0)
self.contents.draw_text(0, 0, 33, 33, "Location Window")
end
#---------------------------------------------------------------------------------
end
#===================================================
# - CLASS Window_Location Ends
#===================================================
Stupid Error said:Script 'Window_Selectable' line 102: NoMethodError occured.
undefined method '<' for nil:NilClass
The line that has the error is:
Code:
#--------------------------------------------------------------------------
# * Update Cursor Rectangle
#--------------------------------------------------------------------------
def update_cursor_rect
# If cursor position is less than 0
[color=red]if @index < 0[/color]
self.cursor_rect.empty
return
end
# Get current row
row = @index / @column_max
# If current row is before top row
if row < self.top_row
# Scroll so that current row becomes top row
self.top_row = row
end
Edited to highlight script error line.