Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
  • 0
phionabrie

RGSS Errors

Question

In an attempt to better learn RGSS and in order to make my game look the way I want it to, I've been working on some custom window and scene scripts.  This evening while trying to test them out, I got the "wrong number of arguments" error for one of lines in main.  Since I didn't change anything in main, and I'm pretty sure nothing in main is defective, I don't know where the actual error is.  Is there any chance someone with RGSS knowledge could take a look at the code and see what glaring errors there are?

 

Window Scripts

 

 

#=================================================================
#
# Custom Window System
#
# created by Phionabrie
#
#=================================================================


class Window_Menu < Window_Selectable

def initialize # Object Initialization
super(0, 0, 160, 288)
self.index = 0
@item.max = 8
@row.max = 8
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh # Refresh
self.contents.clear
end
end

#=================================================================
#
# Notification Window
#
#=================================================================

class Window_Notification < Window_Base

def initialize
super(100, 0, 480, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Location Window
#
#=================================================================

class Window_Location

def initialize
super(0, 352, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
self.contets.font.color = system_color
self.contents.font.size = 18
self.contents.draw_text(0, 0, 120, 32, "Location")
self.contents.font.color = normal_color
text = $game_map.map_id
self.contents.draw_text (0, 0, 120, 32, text, 2)
end
end

#=================================================================
#
# Character Select Window
#
#=================================================================

class Window_Charselect < Window_Selectable

def initialize
super(100, 0, 480, 416)
self.index = 0
@item.max = 6
@row.max = 6
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#===============================================================
#
# Inventory Type Selection Window
#
#===============================================================

class Window_InvType < Window_Selectable
def initialize
super(0, 64, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 3
@column.max = 3
@commands = ["Consumables", "Objects", "Keys"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
end

#================================================================
#
# Equipment Type Selection Window
#
#================================================================

class Window_EqpType < Window_Selectable
def initialize
super(0, 96, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 3
@column.max = 3
@commands = ["All Usable", "Upgrades", "Special"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i)
end
end
end

#================================================================
#
# Skill Type Selection Window
#
#================================================================

class Window_SklType < Window_Selectable
def initialize
super(0, 128, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 2
@column.max = 2
@commands = ["Combat", "Global"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item.max
draw_item(i)
end
end
end

#================================================================
#
# Status Type Selection Window
#
#================================================================

class Window_StatType < Window_Selectable
def initialize
super(0, 192, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 2
@column.max = 2
@commands = ["Status", "Biography"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item.max
draw_item(i)
end
end
end

#================================================================
#
# Log Type Selection Window
#
#================================================================

class Window_LogType < Window_Selectable
def initialize
super(0, 160, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 3
@column.max = 3
@commands = ["Quests", "Charts", "Factions"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item.max
draw_item(i)
end
end
end

#================================================================
#
# Party Type Selection Window
#
#================================================================

class Window_PtyType < Window_Selectable
def initialize
super(0, 224, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 2
@column.max = 2
@commands = ["Party", "Company"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item.max
draw_item(i)
end
end
end

#================================================================
#
# Record Type Selection Window
#
#================================================================

class Window_RcdType < Window_Selectable
def initialize
super(160, 256, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
@item.max = 2
@column.max = 2
@commands = ["Save", "Load"]
refresh
self.index = 0
end

def refresh
self.contents.clear
for i in 0...@item.max
draw_item(i)
end
end
end

#================================================================
#
# End Game confirmation Window
#
#================================================================

class Window_QtConfirm < Window_Selectable

def initialize
super (272, 192, 96, 96)
self.index = 0
@items.max = 2
@column.max = 2
@commands = ["Yes", "No"]
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
self.contents.draw_text(0, 0, 32, 32, "Are you sure you wish to quit?")
for i in 0...@item.max
draw_item(i)
end
end
end

#================================================================
#
# Key Items Window
#
#================================================================

class Window_KeyItem < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# Object Items Window
#
#================================================================

class Window_ObjtItem < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# Consumable Items Window
#
#================================================================

class Window_CsmItem < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 9999
@column.max = 2
@row.max = 90
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# All Usable Equipment Window
#
#================================================================

class Window_EqpUseable < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# Equipment Upgrades Window
#
#================================================================

class Window_EqpUpgrade < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# Special Equipment Window
#
#================================================================

class Window_EqpSpecial < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# Combat Skills Window
#
#================================================================

class Window_SklCombat < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#================================================================
#
# Global Skills Window
#
#================================================================

class Window_SklGlobal < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 99
@column.max = 2
@row.max = 50
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Status Window
#
#=================================================================

class Window_Status < Window_Base

def initialize
super(0, 0, 480, 640)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Biography Window
#
#=================================================================

class Window_Biography < Window_Base

def initialize
super(0, 0, 480, 640)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Quest Window
#
#=================================================================

class Window_Quest < Window_Selectable

def initialize
super(0, 0, width, height)
self.index = 0
@item.max = 99
@column.max = 3
@row.max = 40
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Maps Window
#
#=================================================================

class Window_Charts < Window_Selectable

def initialize
super(0, 0, width, height)
self.index = 0
@item.max = 12
@column.max = 3
@row.max = 4
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Faction Window
#
#=================================================================

class Window_Faction < Window_Base

def initialize
super(0, 0, width, height)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Party Window
#
#=================================================================

class Window_Party < Window_Selectable

def initialize
super(0, 0, 320, 640)
self.index = 0
@item.max = 20
@row.max = 20
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# Guest Window
#
#=================================================================

class Window_Guest < Window_Selectable

def initialize
super(0, 0, 416, 640)
self.index = 0
@item.max = 20
@row.max = 20
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
self.contents.clear
end
end

#=================================================================
#
# SaveFile Window
#
#=================================================================

class Window_SaveFile < Window_Selectable

attr_reader :filename

def initialize
super(0, 0, 480, 640)
self.index = 0
@item.max = 16
@row.max = 16
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end

def refresh
for i in 0...@item.max
@file_index = self.index
@filename = "Save#{@file_index +1}.rxdata"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "r")
@time_stamp = file.mtime
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
update
end
end

def update
self.contents.clear
self.contents.font.color = normal color
name = "File#{@file_index + 1}"
self.contents.draw_text(4, 0, 600, 32, name)
@name_width = contents.text_size(name).width
if @file_exist
for i in 0...@characters.size
bitmap = RPG::Cache.character(@characters[i][0], @characters[i][1])
cw = bitmap.rect.width / 16
ch = bitmap.rect.height / 16
src_rect = Rect.new(0, 0, cw, ch)
x = 300 - @character.size * 32 + i * 64 - cw / 2
self.contents.blt(x, 68 - ch, bitmap, src_rect)
end
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
time_string = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 8, 600, 32, time_string, 2)
self.contents.font.color = normal_color
time_string = @time_stamp.strftime("%Y/%m/%d %H:%M")
self.contents.draw_text(4, 40, 600, 32, time_string, 2)
end
end
end

 

 

 

Menu Script

#=================================================================
#
# Scene Menu
#
#=================================================================
class Scene_Menu
 def initialise
  @menu = Window_Menu.new
 end
 def main
  s1 = "Inventory"
  s2 = "Equipment"
  s3 = "Skills"
  s4 = "Journal"
  s5 = "Persona"
  s6 = "Entourage"
  s7 = "Record"
  s8 = "Egress"
  @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7, s8])
  @command_window.index = @menu.index
  if $game_party.actors.size == 0            #if no actors in party
   @command_window.disable_item(0)
   @command_window.disable_item(1)
   @command_window.disable_item(2)
   @command_window.disable_item(3)
   @command_window.disable_item(4)
   @command_window.disable_item(5)
  end
  @playtime_window = Window_PlayTime.new
  @playtime_window.x = 0
  @playtime_window.y = 288
  @gold_window = Window_Gold.new
  @gold_window.x = 0
  @gold_window.y = 416
  @location_window = Window_Location.new
  @notification_window = Window_Notification.new
  @charselect_window = Window_Charselect.new
  Graphics.transition                          #excecute transition
  loop do                                                #main loop
   Graphics.update                              #update game screen
   Input.update                           #update input information
   update                                    #frame update
   if $scene != self                         #end loop if new screen
    break
   end
  end
  Graphics.freeze                           #prepare for transition
  @command_window.dispose
  @playtime_window.dispose
  @gold_window.dispose
  @location_window.dispose
  @notification_window.dispose
  @charselect_window.dispose
 end
#================================================================
#
# Frame Update
#
#================================================================
 def update                #update windows
  @command_window.update
  @playtime_window.update
  @gold_window.update
  @location_window.update
  @notification_window.update
  @charselect_window.update
  if @command_window.active  #call update_command if command window is active
   update_command
   return
  end
  if @charselect_window.active
   update_charselect
   return
  end
 end
#================================================================
#
# Frame Update (command window active)
#
#================================================================
 def update_command
  if Input.trigger?(Input::B) #cancel menu
   $game_system.se_play($data_system.cancel_se)
   $scene = Scene_Map.new        #exit to map
   return
  end
  if Input.trigger?(Input::C) #make selection
   if $game_party.actors.size == 0 and @command_window < 6
    $game_system.se_play($data_system.buzzer_se)
    return
   end
   case @command_window.index
   when 0 #inventory
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @opti_window = Window_InvType.new
    @opti_window.active = true
   when 1 #equipment
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @optg_window = window_EqpType.new
    @optg_window.active = true
   when 2 #skills
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @optk_window = Window_SklType.new
    @optk_window.active = true
   when 3 #journal
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @optl_window = Window_LogType.new
    @optl_window.active = true
   when 4 #persona
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @optc_window = Window_StatType.new
    @optc_window.active = true
   when 5 #entourage
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @optp_window = Window_PtyType.new
    @optp_window.active = true
   when 6 #record
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @opts_window = Window_RcdType.new
    @opts_window.active = true
   when 7 #egress
    $game_system.se_play($data_system.decision_se)
    @command_window.active = false
    @optq_window = Window_QtConfirm.new
    @optq_window.active = true
   end
   return
  end
 
  if @opti_window.active
   update_opti
   return
  end
  if @optg_window.active
   update_optg
   return
  end
  if @optk_window.active
   update_optk
   return
  end
  if @optl_window.active
   update_optl
   return
  end
  if @optc_window.active
   update_optc
   return
  end
  if @optp_window.active
   update_optp
   return
  end
  if @opts_window.active
   update_opts
   return
  end
  if @optq_window.active
   update_optq
   return
  end
 end
#=================================================================
#
# Frame Update (item options active)
#
#=================================================================
 def update_opti
  if Input.trigger?(Input::B) #cancel
   $game_system.se_play($data_system.cancel_se)
   @opti_window.active = false
   @opti_window.visible = false
   @command_window.active = true
   return
  end
  if Input.trigger?(Input::C) #make selection
   case @opti_window.index
   when 0 #consumables
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_CsmItem.new
   when 1 #objects
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_ObjtItem.new
   when 2 #keys
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_KeyItem.new
   end
   return
  end
 end
#=================================================================
#
# Frame Update (equip options active)
#
#=================================================================
 def update_optg
  if Input.trigger?(Input::B) #cancel
   $game_system.se_play($data_system.cancel_se)
   @optg_window.active = false
   @optg_window.visible = false
   @command_window.active = true
  end
  if Input.trigger?(Input::C) #make selection
   $game_system.se_play($data_system.decision_se)
   @optg_window.active = false
   @charselect_window.active = true
  end    
 end
#=================================================================
#
# Frame Update (skill options active)
#
#=================================================================
 def update_optk
  if Input.trigger?(Input::B) #cancel
   $game_system.se_play($data_system.cancel_se)
   @optk_window.active = false
   @optk_window.visible = false
   @command_window.active = true
  end
  if Input.trigger?(Input::C) #make selection
   $game_system.se_play($data_system.decision_se)
   @optk_window.active = false
   @charselect_window.active = true
  end
 end
#=================================================================
#
# Frame Update (journal options active)
#
#=================================================================
 def update_optl
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @optl_window.active = false
   @optl_window.visible = false
   @notification_window.visible = true
   @command_window.active = true
   return
  end
  if Input.trigger?(Input::C)
   case @optl_window.index
   when 0 #quest
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Quest.new
   when 1 #maps
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Charts.new
   when 2 #factions
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Faction.new
   end
   return
  end
 end
#=================================================================
#
# Frame Update (persona options active)
#
#=================================================================
 def update_optc
  if Input.trigger?(Input::B) #cancel
   $game_system.se_play($data_system.cancel_se)
   @optc_window.active = false
   @optc_window.visible = false
   @command_window.active = true
  end
  if Input.trigger?(Input::C) #make selection
   $game_system.se_play($data_system.decision_se)
   @optc_window.active = false
   @charselect_window.active = true
  end
 end
#=================================================================
#
# Frame Update (entourage options active)
#
#=================================================================
 def update_optp
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @command_window.active = true
   @optp_window.active = false
   @optp_window.visible = false
   return
  end
  if Input.trigger?(Input::C)
   case @optp_window.index
   when 0 #party
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Party_Change
   when 1 #company
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Guest
   end
   return
  end
 end
#=================================================================
#
# Frame Update (record options active)
#
#=================================================================
 def update_opts
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @command_window.active = true
   @opts_window.active = false
   @opts_window.visible = false
   return
  end
  if Input.trigger?(Input::C)
   case @opts_window.index
   when 0 #save
    if $game_system.save_disabled
     $game_system.se_play($data_system.buzzer_se)
     return
    end
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Save
   when 1 #load
    $game_system.se_play($data_system.decision_se)
    @command_window.visible = true
    $scene = Scene_Load
   end
   return
  end
 end
#=================================================================
#
# Frame Update (quit confimation)
#
#=================================================================
 def update_optq
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @optq_window.active = false
   @optq_window.visible = false
   @command_window.active = true
   return
  end
  if Input.trigger?(Input::C)
   case @optq_window.index
   when 0 #yes
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Exit
   when 1 #no
    $game_system.se_play($data_system.cancel_se)
    @optq_window.active = false
    @optq_window.visible = false
    @command_window.active = true
   end
   return
  end
 end
#=================================================================
#
# Frame Update (charselect active)
#
#=================================================================
 def update_charselect
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   @command_window.active = true
   @charselect_window.active = false
   @charselect_widow.index = -1
   return
  end
  if Input.trigger?(Input::C)
   case @optg_window.index
   when 0 #all usable
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_EqpUsable.new
   when 1 #upgrades
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_EqpUpgrade.new
   when 2 #special
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_EqpSpecial.new
   end
   case @optk_window.index
   when 0 #
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_CSkill.new
   when 1 #
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_GSkill.new
   end
   case @optc_window.index
   when 0 #status
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Status.new
   when 1 #biography
    $game_system.se_play($data_system.decision_se)
    $scene = Scene_Biography.new
   end
   return
  end
 end
end

 

Custom Scenes Script

 

 

#=================================================================
#
# Scene Character Select
#
#=================================================================
class Scene_Charselect
 def initialize(actor_index = 0, equip_index = 0)
  @actor_index = actor_index
 end
 def main
  @actor = $game_party.actors[@actor_index]
  @charselect_window = Window_Charselect.new(@actor)
  Graphics.transition
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
  end
  Graphics.freeze
 end
#=================================================================
# Frame Update
#=================================================================
 def update
  if Input.trigger?(Input::B)
   $game_system.se_play($data_system.cancel_se)
   $scene = Scene_Menu.new
   return
  end
  if Input.trigger?(Input::R)
   $game_system.se_play($data_system.cursor_se)
   @actor_index += 1
   @actor_index%= $game_party.actors.size
   $scene = Scene_Charselect.new(@actor_index)
   return
  end
  if Input.trigger?(Input::L)
   $game_system.se_play($data_system.cursor_se)
   @actor_index += $game_party.actors.size - 1
   @actor_index %= $game_party.actors.size
   $scene = Scene_Charselect.new(@actor_index)
   return
  end
 end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene File
#
#=================================================================
 def initialize(help_text)
  @help_text = help_text
 end
 def main
  @help_window = Window_Help.new
  @help_window.set_text(@help_text)
  @savefile_windows = []
  for i in 0...16
   @savefile_windows.push(Window_SaveFile.new(i, make_filename(i)))
  end
  @file_index = $game_temp.last_file_index
  Graphics.transition
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
  end
  Graphics.freeze
  @help_window.dispose
  for i in @savefile_windows
   i.dispose
  end
#=================================================================
# Frame Update
#=================================================================
 def update
  @help_window.update
  for i in @savefile_windows
   i.update
  end
  if Input.trigger?(Input::B)
   on_cancel
   return
  end
  if Input.trigger?(Input::C)
   on_decision(make_filename(@file_index))
   $game_temp.last_file_index = @file_index
   return
  end
 end
#=================================================================
# Make File Name
#=================================================================
 def make_filename
  return "Save#{self.index + 1}.rxdata"
 end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene Save
#
#=================================================================
class Scene_Save < Scene_File
 def initialize
  super("Which file would you like to save to?")
 end
#=================================================================
# Decision Processing
#=================================================================
 def on_decision(filename)
  $game_system.se_play($data_system.save_se)
  file = File.open(filename, "wb")
  write_save_data(file)
  file.close
  if $game_temp.save_calling
   $game_temp.save_calling = false
   $scene = Scene_Map.new
   return
  end
  $scene = Scene_Menu.new
 end
#=================================================================
# Cancel Processing
#=================================================================
 def on_cancel
  $game_system.se_play($data_system.cancel_se)
  if $game_temp.save_calling
   $game_temp.save_calling = false
   $scene = Scene_Map.new
   return
  end
  $scene = Scene_Map.new
 end
#=================================================================
# Write Save Data
#=================================================================
 def write_save_data(file)
  characters = []
  for i in 0...$game_party.actors.size
   actor = $game_party.actors[i]
   characters.push([actor.character_name, actor.character_hue])
  end
  Marshal.dump(characters, file)
  Marshal.dump(Graphics.frame_count, file)
  $game_system.save_count += 1
  $game_system.magic_number = $data_system.magic_number
  Marshal.dump($game_system, file)
  Marshal.dump($game_switches, file)
  Marshal.dump($game_variables, file)
  Marshal.dump($game_self_switches, file)
  Marshal.dump($game_screen, file)
  Marshal.dump($game_actors, file)
  Marshal.dump($game_party, file)
  Marshal.dump($game_troop, file)
  Marshal.dump($game_map, file)
  Marshal.dump($game_player, file)
 end
end

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene Load
#
#=================================================================
class Scene_Load < Scene_File
 def initialize
  $game_temp = Game_Temp.new
  $game_temp.last_file_index = 0
  latest_time = Time.at(0)
  for i in 0...16
   filename = make_filename(i)
   if FileTest.exist?(filename)
    file = File.open(filename, "r")
    if file.mtime > latest_time
     latest_time = file.mtime
    end
    file.close
   end
  end
  super("Which file would you like to load?")
 end
#=================================================================
# Decision Processing
#=================================================================
 def on_decision(filename)
  unless FileTest.exist?(filename)
   $game_system.se_play($data_system.buzzer_se)
   return
  end
  $game_system.se_play($data_system.load_se)
  file = File.open(filename, "rb")
  read_save_data(file)
  file.close
  $game_system.bgm_play($game_system.playing_bgm)
  $game_system.bgs_play($game_system.playing_bgs)
  $game_map.update
  $scene = Scene_Map.new
 end
#=================================================================
# Cancel Processing
#=================================================================
 def on_cancel
  $game_system.se_play($data_system.cancel_se)
  if @opts_window.load_calling
   $scene = Scene_Map.new
  else
   $scene = Scene_Map.new
  end
  return
 end
#=================================================================
# Read Save Data
#=================================================================
 def read_save_data(file)
  characters = Marshal.load(file)
  Graphics.frame_count = Marshal.load(file)
  $game_system = Marshal.load(file)
  $game_switches = Marshal.load(file)
  $game_variables = Marshal.load(file)
  $game_self_switches = Marshal.load(file)
  $game_screen = Marshal.load(file)
  $game_actors = Marshal.load(file)
  $game_party = Marshal.load(file)
  $game_troop = Marshal.load(file)
  $game_map = Marshal.load(file)
  $game_player = Marshal.load(file)
  if $game_system.magic_number != $data_system.magic_number
   $game_map.setup($game_map.map_id)
   $game_player.center($game_player.x, $game_player.y)
  end
  $game_party.refresh
 end
end

#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene Biography
#
#=================================================================
class Scene_Biography
 def initialize
 end
 def main
  @biography_window = Window_Biography.new
 end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene Guest
#
#=================================================================
class Scene_Guest
 def initialize
 end
 def main
  @guest_window = Window_Guest.new
 end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene Faction
#
#=================================================================
class Scene_Faction
 def initialize
 end
 def main
  @faction_window = Window_Faction.new
 end
end
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
#=================================================================
#
# Scene Charts
#
#=================================================================
class Scene_Charts
 def initialize
 end
 def main
  @charts_window = Window_Charts.new
 end
end 

Edited by bigace
Next time use a code box

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0

It would probably help to know what line in main it was complaining about, but I'll see if I can find anything.

Share this post


Link to post
Share on other sites
  • 0

@charselect_window = Window_Charselect.new(@actor)

your window_charselect takes no arguments. look at its initialize method.

Share this post


Link to post
Share on other sites
  • 0

Bob, the error is for line 11 in main, which creates scene_title.

 

Metaclaw, do I just add (@actor) wherever the charselect window is called?

 

 

 

Thanks for the help!

Share this post


Link to post
Share on other sites
  • 0

the problem isn't necessarily the call ( window_charselect.new(@actor) )

 

if that window doesn't need an actor in order to work, just erased '(@actor)' from the call.

but if your window does need an actor, for example, if it displays their equipment etc,

then you need to fix the initialize method. make it take an actor as argument:

class Window_Charselect < Window_Selectable
  def initialize(actor)
    # do whatever with actor
  end
end
and, if you do that, you have to add (@actor) wherever Window_Charselect is called.

note you cannot use 'actor' outside of initialize, it's a temporary/local data. if other methods need an actor too, use: @actor = actor , in initialize.

that makes it a 'class variable', and any method in window_charselect can use it. (you'll use @actor.name, etc rather than actor.name)

sorry if you already knew that, your post made it sound like you're new to scripting.

I prefer to explain too much than to not explain properly ^^

Edited by Metaclaw

Share this post


Link to post
Share on other sites
  • 0

Very new to scripting in fact, so the explanation is quite useful.  Have been working on it for about 2 weeks, using a few tutorials and the default scripts.  Pretty sure I've got basic windows down, but obviously there's still a lot I need to learn about interactive stuff.

Share this post


Link to post
Share on other sites
  • 0

Sorry I couldn't help, I tried, but Metaclaw got here before I made any progress.

You're using tutorials? I hope one of them is mine :D

Share this post


Link to post
Share on other sites
  • 0

Well, I made the correction Metaclaw suggested, and found a few other things to fix, but I'm still getting the error on line 11 in main.  I guess since I don't know where the error is, I have to try reinstalling my scripts piece by piece to see where it goes bonkers. :P

Share this post


Link to post
Share on other sites
  • 0

I figured it, but first: Please use code boxes next time it's easier to copy the code. Second: For some reason you're Custom Scenes Script was missing the class header and end.

 

  • On line 55 where there is a initialize after the Scene File comment. Put 
class Scene_File
  • Next go to line 104, where it should be the end of class Scene File, and put end right before the comment line.

 

Hopefully that makes sense.

Share this post


Link to post
Share on other sites
  • 0

I didn't realize there was a code box :oops: .  And wow, yeah that's a pretty glaring error.  Even I can see how that's problematic.  Thanks!!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...