stardust
07.09.2010, 18:19
Schon in Ordnung, es ging auch mit dem Starter-Kit :)
Also mit dem hier werden die Rubine im Besitz sowie die Herzcontainer angezeigt. Wenn du die Variablen so wie im Starter-Kit belassen hast, sollte es funktionieren.
#==============================================================================
# ¦ New/Load Game Enhanced
#------------------------------------------------------------------------------
# Additions by stardust
#==============================================================================
SAVES_MAX = 3
SAVE_PICTURE = "choose_save"
STARTING_HEARTS = 3
class Game_Temp
attr_accessor :name_fileproc
alias new_initialize initialize
def initialize
new_initialize
@name_fileproc = ""
end
end
class Game_System
attr_accessor :newgame_switch
attr_accessor :played_bgm
attr_accessor :played_bgs
attr_accessor :save_slot
alias new_initialize initialize
def initialize
new_initialize
@newgame_switch = false
@played_bgm = ""
played_bgs = ""
@save_slot = ""
end
end
#==============================================================================
# ¦ Window_NameEdit
#------------------------------------------------------------------------------
# ???????????????????????
#==============================================================================
class Window_NameEdit < Window_Base
def refresh
self.contents.clear
@charset_index = 0 if @charset_index == nil
# ?????
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
if c == nil
c = "_"
end
x = 840 - @max_char * 14 + i * 28
self.contents.draw_text_outline(x, 32, 28, 32, c, 1)
end
# ?????????
bitmap = RPG::Cache.character(@actor.character_name, @actor.character_hue)
cw = bitmap.rect.width / 9.3
ch = bitmap.rect.height / 4
src_rect = Rect.new(@charset_index*120, 0, cw, ch)
self.contents.blt(840 - @max_char * 14 - 40 - (cw/2), 68 - ch, bitmap, src_rect)
end
def charset_index(index)
@charset_index = index
refresh
end
end
#==============================================================================
# ¦ Scene_Name
#------------------------------------------------------------------------------
# ??????????????????
#==============================================================================
class Scene_Name
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def main
#-------------------------------
# Animated Background Setup
#-------------------------------
@back = Sprite.new
#@sprite.bitmap = RPG::Cache.title($data_system.title_name)
@backgroundList = ["Titlescreen1"]
@backgroundGameFrameCount = 0
# Number of game frames per background frame.
@backgroundG_BFrameCount = 3.4
@back.bitmap = RPG::Cache.title(@backgroundList[0])
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# ???????
@actor = $game_actors[$game_temp.name_actor_id]
# ????????
@edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char)
@input_window = Window_NameInput.new
# ?????????
Graphics.transition
# ??????
loop do
# ????????
Graphics.update
# ???????
Input.update
# ??????
update
# ????????????????
if $scene != self
break
end
end
# ?????????
Graphics.freeze
# ????????
@sprite.dispose
@back.dispose
@edit_window.dispose
@input_window.dispose
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
# ????????
@edit_window.update
@input_window.update
@backgroundGameFrameCount = @backgroundGameFrameCount + 1
if @backgroundGameFrameCount >= @backgroundG_BFrameCount
@backgroundGameFrameCount = 0
# Add current background frame to the end
@backgroundList = @backgroundList << @backgroundList[0]
# and drop it from the first position
@backgroundList.delete_at(0)
@sprite.bitmap = RPG::Cache.title(@backgroundList[0])
end
# B ??????????
if Input.repeat?(Input::B)
# ??????? 0 ???
if @edit_window.index == 0
return
end
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ?????
@edit_window.back
return
end
# C ??????????
if Input.trigger?(Input::C)
# ??????? [??] ???
if @input_window.character == nil
# ???????
if @edit_window.name == ""
# ???????????
@edit_window.restore_default
# ???????
if @edit_window.name == ""
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
return
end
# ??????????
@actor.name = @edit_window.name
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ??????????
#--------------------------------------------------------
# Things After this has been edited to fit the new system
#--------------------------------------------------------
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$game_map.autoplay
$game_map.update
$game_variables[8] = STARTING_HEARTS*2
$game_variables[41] = STARTING_HEARTS
$game_variables[42] = 0
$game_variables[50] = 0
file = $game_temp.name_fileproc
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(Time.new, file)
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$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_party, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
file.close
$game_party.remove_actor(1)
$scene = Scene_Map.new
$game_temp.name_calling = false
#--------------------------------------------------------
# Edits ends here
#--------------------------------------------------------
return
end
# ????????????
if @edit_window.index == $game_temp.name_max_char
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ???????
if @input_window.character == ""
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ?????
@edit_window.add(@input_window.character)
return
end
@wait = 3 if @wait == nil or @wait == 0
@charset_index = 0 if @charset_index == nil or @charset_index == 6
@wait -= 1
return if @wait > 0
@charset_index += 1
@edit_window.charset_index(@charset_index)
end
end
#==============================================================================
# ¦ Window_SaveFile
#------------------------------------------------------------------------------
# ???????????????????????????????????
#==============================================================================
class Window_NewLoadFile < Window_Base
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_reader :filename # ?????
attr_reader :selected # ????
#--------------------------------------------------------------------------
# ? ?????????
# file_index : ?????????????? (0~3)
# filename : ?????
#--------------------------------------------------------------------------
def initialize(file_index, filename)
super(50, 64 + file_index % 4 * 104 + (12*file_index) + 12, 540, 104)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $defaultfonttype # "File" (File #) window font
self.contents.font.size = $defaultfontsize
@charset_index = 0
@file_index = file_index
@filename = "Save#{@file_index + 1}.sav"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
@yp = 12
if @file_exist
File.delete(@filename) if File.stat(@filename).size == 0
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "rb")
@time_stamp = Marshal.load(file)
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@game_party = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
end
refresh
@selected = false
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
self.contents.clear
# ?????????
self.contents.font.color = normal_color
if @file_index == SAVES_MAX
@exit = RPG::Cache.picture("exit")
self.z = 0
self.y = 390
src_rect = Rect.new(0, 0, @exit.rect.width, @exit.rect.height)
self.contents.blt(self.x + 8, 64 - @exit.rect.height, @exit, src_rect)
self.opacity = 0
end
name = ""
name = @game_party.actors[0].name if @file_exist
self.contents.draw_text_outline(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 / 9.3
ch = bitmap.rect.height / 4
src_rect = Rect.new(@charset_index*120, 0, cw, ch)
x = 105 - @characters.size * 120 + i * 64 - cw / 2
self.contents.blt(x+35, 63 - ch, bitmap, src_rect)
heart_display(x+78, 83-ch)
end
# Rubine
self.contents.draw_text_outline(80, 16, 600, 32, sprintf("000",$game_variables[53].to_s))
# Zeit
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_outline(4, 8, 600, 32, time_string, 2)
# Datum
self.contents.font.color = normal_color
time_string = @time_stamp.strftime("%Y / %m/ %d %H:%M")
self.contents.draw_text_outline(self.width-self.contents.text_size(time_string).width-32, 40, self.contents.text_size(time_string).width, 32, time_string, 0)
else
@name_width = contents.text_size("New Game").width
self.contents.draw_text_outline(4, 0, 600, 32, "New Game") if self.opacity != 0
end
end
def heart_display(x, y)
@x = x
@y = y
@link_heart = @game_variables[8]
@link_maxheart = @game_variables[41]
if @link_heart == 1
insert_halfheart
elsif @link_heart >= 2
insert_fullheart
end
if @link_heart <= 2
insert_emptyheart
elsif @link_heart == 3
insert_halfheart
elsif @link_heart >= 4
insert_fullheart
end
if @link_maxheart >= 3
if @link_heart <= 4
insert_emptyheart
elsif @link_heart == 5
insert_halfheart
elsif @link_heart >= 6
insert_fullheart
end
end
if @link_maxheart >= 4
if @link_heart <= 6
insert_emptyheart
elsif @link_heart == 7
insert_halfheart
elsif @link_heart >= 8
insert_fullheart
end
end
if @link_maxheart >= 5
if @link_heart <= 8
insert_emptyheart
elsif @link_heart == 9
insert_halfheart
elsif @link_heart >= 10
insert_fullheart
end
end
if @link_maxheart >= 6
if @link_heart <= 10
insert_emptyheart
elsif @link_heart == 11
insert_halfheart
elsif @link_heart >= 12
insert_fullheart
end
end
if @link_maxheart >= 7
if @link_heart <= 12
insert_emptyheart
elsif @link_heart == 13
insert_halfheart
elsif @link_heart >= 14
insert_fullheart
end
end
if @link_maxheart >= 8
if @link_heart <= 14
insert_emptyheart
elsif @link_heart == 15
insert_halfheart
elsif @link_heart >= 16
insert_fullheart
end
end
if @link_maxheart >= 9
if @link_heart <= 16
insert_emptyheart
elsif @link_heart == 17
insert_halfheart
elsif @link_heart >= 18
insert_fullheart
end
end
if @link_maxheart >= 10
if @link_heart <= 18
insert_emptyheart
elsif @link_heart == 19
insert_halfheart
elsif @link_heart >= 20
insert_fullheart
end
end
if @link_maxheart >= 11
@y += 16
@x = x
if @link_heart <= 20
insert_emptyheart
elsif @link_heart == 21
insert_halfheart
elsif @link_heart >= 22
insert_fullheart
end
end
if @link_maxheart >= 12
if @link_heart <= 22
insert_emptyheart
elsif @link_heart == 23
insert_halfheart
elsif @link_heart >= 24
insert_fullheart
end
end
if @link_maxheart >= 13
if @link_heart <= 24
insert_emptyheart
elsif @link_heart == 25
insert_halfheart
elsif @link_heart >= 26
insert_fullheart
end
end
if @link_maxheart >= 14
if @link_heart <= 26
insert_emptyheart
elsif @link_heart == 27
insert_halfheart
elsif @link_heart >= 28
insert_fullheart
end
end
if @link_maxheart >= 15
if @link_heart <= 28
insert_emptyheart
elsif @link_heart == 29
insert_halfheart
elsif @link_heart >= 30
insert_fullheart
end
end
if @link_maxheart >= 16
if @link_heart <= 30
insert_emptyheart
elsif @link_heart == 31
insert_halfheart
elsif @link_heart >= 32
insert_fullheart
end
end
if @link_maxheart >= 17
if @link_heart <= 32
insert_emptyheart
elsif @link_heart == 33
insert_halfheart
elsif @link_heart >= 34
insert_fullheart
end
end
if @link_maxheart >= 18
if @link_heart <= 34
insert_emptyheart
elsif @link_heart == 35
insert_halfheart
elsif @link_heart >= 36
insert_fullheart
end
end
if @link_maxheart >= 19
if @link_heart <= 36
insert_emptyheart
elsif @link_heart == 37
insert_halfheart
elsif @link_heart >= 38
insert_fullheart
end
end
if @link_maxheart >= 20
if @link_heart <= 38
insert_emptyheart
elsif @link_heart == 39
insert_halfheart
elsif @link_heart >= 40
insert_fullheart
end
end end
def insert_fullheart
bitmap = RPG::Cache.picture("FullHeart")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt((@x - cw / 2) + 68, 38, bitmap, src_rect)
@x += cw
end
def insert_halfheart
bitmap = RPG::Cache.picture("HalfHeart")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt((@x - cw / 2) + 68, 38, bitmap, src_rect)
@x += cw
end
def insert_emptyheart
bitmap = RPG::Cache.picture("EmptyHeart")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt((@x - cw / 2) + 68, 38, bitmap, src_rect)
@x += cw
end
#--------------------------------------------------------------------------
# ? ???????
# selected : ??????? (true=?? false=???)
#--------------------------------------------------------------------------
def selected=(selected)
@selected = selected
update_cursor_rect
end
def charset_index(index)
@charset_index = index
refresh
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def update_cursor_rect
if @selected
if @file_index == SAVES_MAX
self.cursor_rect.set(self.x + 7, 63 - @exit.rect.height, @exit.rect.width+2, @exit.rect.height+2)
else
self.cursor_rect.set(0, 0, @name_width + 8, 32)
end
else
self.cursor_rect.empty
end
end
end
#==============================================================================
# ¦ Scene_File
#------------------------------------------------------------------------------
# ????????????????????????
#==============================================================================
class Scene_NewLoadFile
#--------------------------------------------------------------------------
# ? ?????????
# help_text : ????????????????
#--------------------------------------------------------------------------
def initialize(help_text)
@help_text = help_text
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def main
$game_party.setup_starting_members
#-------------------------------
# Animated Background Setup
#-------------------------------
@back = Sprite.new
#@sprite.bitmap = RPG::Cache.title($data_system.title_name)
@backgroundList = ["SaveScreen1","SaveScreen1","SaveScreen1",
"SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1",
"SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1",
"SaveScreen2","SaveScreen3","SaveScreen4","SaveScreen5","SaveScreen6",
"SaveScreen6","SaveScreen5","SaveScreen4","SaveScreen3","SaveScreen2",
"SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1",
"SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1","SaveScreen1",]
@backgroundGameFrameCount = 0
# Number of game frames per background frame.
@backgroundG_BFrameCount = 3.4
@back.bitmap = RPG::Cache.title(@backgroundList[0])
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# ???????????
@save_sprite = Sprite.new
@save_sprite.bitmap = RPG::Cache.title(SAVE_PICTURE)
@save_sprite.x = 0
@save_sprite.y = 0
# ???????????????
@savefile_windows = []
for i in 0..SAVES_MAX
@savefile_windows.push(Window_NewLoadFile.new(i, make_filename(i)))
end
# ??????????????
@file_index = $game_temp.last_file_index
@savefile_windows[@file_index].selected = true
# ?????????
Graphics.transition
# ??????
loop do
# ????????
Graphics.update
# ???????
Input.update
# ??????
update
# ????????????????
if $scene != self
break
end
end
# ?????????
Graphics.freeze
# ????????
@sprite.dispose
@back.dispose
@save_sprite.dispose
for i in @savefile_windows
i.dispose
end
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
@backgroundGameFrameCount = @backgroundGameFrameCount + 1
if @backgroundGameFrameCount >= @backgroundG_BFrameCount
@backgroundGameFrameCount = 0
# Add current background frame to the end
@backgroundList = @backgroundList << @backgroundList[0]
# and drop it from the first position
@backgroundList.delete_at(0)
@sprite.bitmap = RPG::Cache.title(@backgroundList[0])
end
for i in @savefile_windows
i.update
end
# ????????
@save_sprite.update
# C ??????????
if Input.trigger?(Input::C)
if @file_index == SAVES_MAX
$scene = nil
else
$game_system.se_play($data_system.decision_se)
if FileTest.exist?(make_filename(@file_index))
on_decision(make_filename(@file_index))
$game_temp.last_file_index = @file_index
else
$game_system.save_slot = make_filename(@file_index)
file = File.new(make_filename(@file_index), "wb")
on_new(file)
$game_temp.last_file_index = @file_index
end
end
end
# B ??????????
if Input.trigger?(Input::B)
# ???? on_cancel (??????) ???
on_cancel
return
end
# ??????????????
if Input.repeat?(Input::DOWN)
# ????????????????????????
# ?????????? 3 ??????
if Input.trigger?(Input::DOWN) or @file_index < 3
# ???? SE ???
$game_system.se_play($data_system.cursor_se)
# ?????????
@savefile_windows[@file_index].selected = false
@file_index = (@file_index + 1) % 4
@savefile_windows[@file_index].selected = true
return
end
end
# ??????????????
if Input.repeat?(Input::UP)
# ????????????????????????
# ?????????? 0 ???????
if Input.trigger?(Input::UP) or @file_index > 0
# ???? SE ???
$game_system.se_play($data_system.cursor_se)
# ?????????
@savefile_windows[@file_index].selected = false
@file_index = (@file_index + 3) % 4
@savefile_windows[@file_index].selected = true
return
end
end
@wait = 3 if @wait == nil or @wait == 0
@charset_index = 0 if @charset_index == nil or @charset_index == 6
@wait -= 1
return if @wait > 0
@charset_index += 1
for i in 0..@savefile_windows.size-1
@savefile_windows[i].charset_index(@charset_index)
next
end
end
#--------------------------------------------------------------------------
# ? ????????
# file_index : ?????????????? (0~3)
#--------------------------------------------------------------------------
def make_filename(file_index)
return "Save#{file_index + 1}.sav"
end
end
class Scene_NewLoad < Scene_NewLoadFile
def initialize
$game_temp.last_file_index = 0
latest_time = Time.at(0)
for i in 0..3
filename = make_filename(i)
if FileTest.exist?(filename)
file = File.open(filename, "rb")
if file.mtime > latest_time
latest_time = file.mtime
$game_temp.last_file_index = i
end
file.close
end
end
super("Load from which file")
end
def on_new(file)
$game_map.setup($data_system.start_map_id)
$game_system.newgame_switch = true
$game_temp.name_fileproc = file
$game_temp.name_calling = true
$game_temp.name_actor_id = 1
$game_temp.name_max_char = 8
$scene = Scene_Name.new
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def on_decision(filename)
unless FileTest.exist?(filename)
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ??? SE ???
$game_system.se_play($data_system.load_se)
# ???????????
file = File.open(filename, "rb")
read_save_data(file, $game_system.newgame_switch)
file.close
Audio.bgm_stop
$game_system.bgm_play($game_system.playing_bgm) if !$game_system.newgame_switch
$game_system.bgs_play($game_system.playing_bgs) if !$game_system.newgame_switch
$game_map.autoplay
# ?????? (????????)
$game_map.update
$game_party.remove_actor(1) if $game_system.newgame_switch
# ?????????
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def on_cancel
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ???????????
$scene = Scene_Title.new
end
#--------------------------------------------------------------------------
# ? ???????????
# file : ??????????????? (??????)
#--------------------------------------------------------------------------
def read_save_data(file, newgame)
if !newgame
Audio.bgm_stop
# ?????????????????????????
time = Marshal.load(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_party = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = 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)
$game_player.refresh
end
else
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
time = Time.new
# ??????????????????????
Graphics.frame_count = 0
# ????????????????
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_party = Game_Party.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
#$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
end
# ???????????????????
# (?????????????????)
# ???????????????
$game_party.refresh
end
end
stardust
04.10.2010, 18:25
Ich habe das Script entsprechend angepasst:
#==============================================================================
# ¦ New/Load Game Enhanced
#------------------------------------------------------------------------------
# Additions by stardust
# - Herzanzeige
# - Artefakte
# - Rubin & Icon
# - Div. Anpassungen
#==============================================================================
#Einstellungen-----------------------------------------------------------------
SAVES_MAX = 3
SAVE_PICTURE = "choose_save"
STARTING_HEARTS = 3
NEWGAME_TEXT = "Neues Spiel"
#Artefakt-Switches
ARTEFAKT01_SWITCH = 151
ARTEFAKT02_SWITCH = 152
ARTEFAKT03_SWITCH = 153
ARTEFAKT04_SWITCH = 154
ARTEFAKT05_SWITCH = 155
ARTEFAKT06_SWITCH = 156
ARTEFAKT07_SWITCH = 157
ARTEFAKT08_SWITCH = 158
ARTEFAKT09_SWITCH = 159
#------------------------------------------------------------------------------
class Game_Temp
attr_accessor :name_fileproc
alias new_initialize initialize
def initialize
new_initialize
@name_fileproc = ""
end
end
class Game_System
attr_accessor :newgame_switch
attr_accessor :played_bgm
attr_accessor :played_bgs
attr_accessor :save_slot
alias new_initialize initialize
def initialize
new_initialize
@newgame_switch = false
@played_bgm = ""
played_bgs = ""
@save_slot = ""
end
end
#==============================================================================
# ¦ Window_NameEdit
#------------------------------------------------------------------------------
# ???????????????????????
#==============================================================================
class Window_NameEdit < Window_Base
def refresh
self.contents.clear
@charset_index = 0 if @charset_index == nil
# ?????
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
if c == nil
c = "_"
end
x = 840 - @max_char * 14 + i * 28
self.contents.draw_text_outline(x, 32, 28, 32, c, 1)
end
# ?????????
bitmap = RPG::Cache.character(@actor.character_name, @actor.character_hue)
cw = bitmap.rect.width / 9.3
ch = bitmap.rect.height / 4
src_rect = Rect.new(@charset_index*120, 0, cw, ch)
self.contents.blt(840 - @max_char * 14 - 40 - (cw/2), 68 - ch, bitmap, src_rect)
end
def charset_index(index)
@charset_index = index
refresh
end
end
#==============================================================================
# ¦ Scene_Name
#------------------------------------------------------------------------------
# ??????????????????
#==============================================================================
class Scene_Name
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def main
#-------------------------------
# Animated Background Setup
#-------------------------------
@back = Sprite.new
#@sprite.bitmap = RPG::Cache.title($data_system.title_name)
@backgroundList = ["Titlescreen1"]
@backgroundGameFrameCount = 0
# Number of game frames per background frame.
@backgroundG_BFrameCount = 3.4
@back.bitmap = RPG::Cache.title(@backgroundList[0])
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# ???????
@actor = $game_actors[$game_temp.name_actor_id]
# ????????
@edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char)
@input_window = Window_NameInput.new
# ?????????
Graphics.transition
# ??????
loop do
# ????????
Graphics.update
# ???????
Input.update
# ??????
update
# ????????????????
if $scene != self
break
end
end
# ?????????
Graphics.freeze
# ????????
@sprite.dispose
@back.dispose
@edit_window.dispose
@input_window.dispose
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
# ????????
@edit_window.update
@input_window.update
@backgroundGameFrameCount = @backgroundGameFrameCount + 1
if @backgroundGameFrameCount >= @backgroundG_BFrameCount
@backgroundGameFrameCount = 0
# Add current background frame to the end
@backgroundList = @backgroundList << @backgroundList[0]
# and drop it from the first position
@backgroundList.delete_at(0)
@sprite.bitmap = RPG::Cache.title(@backgroundList[0])
end
# B ??????????
if Input.repeat?(Input::B)
# ??????? 0 ???
if @edit_window.index == 0
return
end
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ?????
@edit_window.back
return
end
# C ??????????
if Input.trigger?(Input::C)
# ??????? [??] ???
if @input_window.character == nil
# ???????
if @edit_window.name == ""
# ???????????
@edit_window.restore_default
# ???????
if @edit_window.name == ""
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
return
end
# ??????????
@actor.name = @edit_window.name
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ??????????
#--------------------------------------------------------
# Things After this has been edited to fit the new system
#--------------------------------------------------------
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$game_map.autoplay
$game_map.update
$game_variables[8] = STARTING_HEARTS*2
$game_variables[41] = STARTING_HEARTS
$game_variables[42] = 0
$game_variables[50] = 0
file = $game_temp.name_fileproc
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(Time.new, file)
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$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_party, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
file.close
$game_party.remove_actor(1)
$scene = Scene_Map.new
$game_temp.name_calling = false
#--------------------------------------------------------
# Edits ends here
#--------------------------------------------------------
return
end
# ????????????
if @edit_window.index == $game_temp.name_max_char
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ???????
if @input_window.character == ""
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ?????
@edit_window.add(@input_window.character)
return
end
@wait = 3 if @wait == nil or @wait == 0
@charset_index = 0 if @charset_index == nil or @charset_index == 6
@wait -= 1
return if @wait > 0
@charset_index += 1
@edit_window.charset_index(@charset_index)
end
end
#==============================================================================
# ¦ Window_SaveFile
#------------------------------------------------------------------------------
# ???????????????????????????????????
#==============================================================================
class Window_NewLoadFile < Window_Base
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_reader :filename # ?????
attr_reader :selected # ????
#--------------------------------------------------------------------------
# ? ?????????
# file_index : ?????????????? (0~3)
# filename : ?????
#--------------------------------------------------------------------------
def initialize(file_index, filename)
super(50, 64 + file_index % 4 * 104 + (12*file_index) + 12, 540, 104)
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $defaultfonttype
self.contents.font.size = $defaultfontsize
self.opacity = 0
@charset_index = 0
@file_index = file_index
@filename = "Save#{@file_index + 1}.sav"
@time_stamp = Time.at(0)
@file_exist = FileTest.exist?(@filename)
@yp = 12
if @file_exist
File.delete(@filename) if File.stat(@filename).size == 0
@file_exist = FileTest.exist?(@filename)
if @file_exist
file = File.open(@filename, "rb")
@time_stamp = Marshal.load(file)
@characters = Marshal.load(file)
@frame_count = Marshal.load(file)
@game_system = Marshal.load(file)
@game_switches = Marshal.load(file)
@game_variables = Marshal.load(file)
@game_party = Marshal.load(file)
@total_sec = @frame_count / Graphics.frame_rate
file.close
end
end
refresh
@selected = false
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def refresh
self.contents.clear
# ?????????
self.contents.font.color = normal_color
if @file_index == SAVES_MAX
@exit = RPG::Cache.picture("exit")
self.z = 0
self.y = 390
src_rect = Rect.new(0, 0, @exit.rect.width, @exit.rect.height)
self.contents.blt(self.x - 78, 60 - @exit.rect.height, @exit, src_rect)
self.opacity = 0
end
name = ""
name = @game_party.actors[0].name if @file_exist
self.contents.draw_text_outline(4, -1, 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 / 9.3
ch = bitmap.rect.height / 4
src_rect = Rect.new(@charset_index*120, 0, cw, ch)
x = 105 - @characters.size * 120 + i * 64 - cw / 2
self.contents.blt(x+25, 73 - ch, bitmap, src_rect)
heart_display(x+78, 83-ch)
end
# Rubine
bitmap = RPG::Cache.picture("HUD___Rubin")
self.contents.blt(431, 2, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
self.contents.draw_text_outline(425, 0, 600, 32, sprintf("%10.3d",@game_variables[53].to_s))
# Artefakte
if @game_switches[ARTEFAKT01_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt1")
self.contents.blt(106, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT02_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt2")
self.contents.blt(142, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT03_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt3")
self.contents.blt(178, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT04_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt4")
self.contents.blt(214, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT05_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt5")
self.contents.blt(250, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT06_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt6")
self.contents.blt(286, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT07_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt7")
self.contents.blt(322, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT08_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt8")
self.contents.blt(358, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
if @game_switches[ARTEFAKT09_SWITCH] then
bitmap = RPG::Cache.picture("Artefakt9")
self.contents.blt(390, 40, bitmap, Rect.new(0, 0, bitmap.width, bitmap.height))
end
else
#Schrift für Neues Spiel
if self.filename != "Save" + (SAVES_MAX + 1).to_s + ".sav" then
@name_width = contents.text_size(NEWGAME_TEXT).width
self.contents.draw_text_outline(4, 0, 600, 32, NEWGAME_TEXT)
end
end
end
def heart_display(x, y)
@x = x
@y = y
@link_heart = @game_variables[8]
@link_maxheart = @game_variables[41]
if @link_heart == 1
insert_halfheart
elsif @link_heart >= 2
insert_fullheart
end
if @link_heart <= 2
insert_emptyheart
elsif @link_heart == 3
insert_halfheart
elsif @link_heart >= 4
insert_fullheart
end
if @link_maxheart >= 3
if @link_heart <= 4
insert_emptyheart
elsif @link_heart == 5
insert_halfheart
elsif @link_heart >= 6
insert_fullheart
end
end
if @link_maxheart >= 4
if @link_heart <= 6
insert_emptyheart
elsif @link_heart == 7
insert_halfheart
elsif @link_heart >= 8
insert_fullheart
end
end
if @link_maxheart >= 5
if @link_heart <= 8
insert_emptyheart
elsif @link_heart == 9
insert_halfheart
elsif @link_heart >= 10
insert_fullheart
end
end
if @link_maxheart >= 6
if @link_heart <= 10
insert_emptyheart
elsif @link_heart == 11
insert_halfheart
elsif @link_heart >= 12
insert_fullheart
end
end
if @link_maxheart >= 7
if @link_heart <= 12
insert_emptyheart
elsif @link_heart == 13
insert_halfheart
elsif @link_heart >= 14
insert_fullheart
end
end
if @link_maxheart >= 8
if @link_heart <= 14
insert_emptyheart
elsif @link_heart == 15
insert_halfheart
elsif @link_heart >= 16
insert_fullheart
end
end
if @link_maxheart >= 9
if @link_heart <= 16
insert_emptyheart
elsif @link_heart == 17
insert_halfheart
elsif @link_heart >= 18
insert_fullheart
end
end
if @link_maxheart >= 10
if @link_heart <= 18
insert_emptyheart
elsif @link_heart == 19
insert_halfheart
elsif @link_heart >= 20
insert_fullheart
end
end
if @link_maxheart >= 11
@y += 16
@x = x
if @link_heart <= 20
insert_emptyheart(true)
elsif @link_heart == 21
insert_halfheart(true)
elsif @link_heart >= 22
insert_fullheart(true)
end
end
if @link_maxheart >= 12
if @link_heart <= 22
insert_emptyheart(true)
elsif @link_heart == 23
insert_halfheart(true)
elsif @link_heart >= 24
insert_fullheart(true)
end
end
if @link_maxheart >= 13
if @link_heart <= 24
insert_emptyheart(true)
elsif @link_heart == 25
insert_halfheart(true)
elsif @link_heart >= 26
insert_fullheart(true)
end
end
if @link_maxheart >= 14
if @link_heart <= 26
insert_emptyheart(true)
elsif @link_heart == 27
insert_halfheart(true)
elsif @link_heart >= 28
insert_fullheart(true)
end
end
if @link_maxheart >= 15
if @link_heart <= 28
insert_emptyheart(true)
elsif @link_heart == 29
insert_halfheart(true)
elsif @link_heart >= 30
insert_fullheart(true)
end
end
if @link_maxheart >= 16
if @link_heart <= 30
insert_emptyheart(true)
elsif @link_heart == 31
insert_halfheart(true)
elsif @link_heart >= 32
insert_fullheart(true)
end
end
if @link_maxheart >= 17
if @link_heart <= 32
insert_emptyheart(true)
elsif @link_heart == 33
insert_halfheart(true)
elsif @link_heart >= 34
insert_fullheart(true)
end
end
if @link_maxheart >= 18
if @link_heart <= 34
insert_emptyheart(true)
elsif @link_heart == 35
insert_halfheart(true)
elsif @link_heart >= 36
insert_fullheart(true)
end
end
if @link_maxheart >= 19
if @link_heart <= 36
insert_emptyheart(true)
elsif @link_heart == 37
insert_halfheart(true)
elsif @link_heart >= 38
insert_fullheart(true)
end
end
if @link_maxheart >= 20
if @link_heart <= 38
insert_emptyheart(true)
elsif @link_heart == 39
insert_halfheart(true)
elsif @link_heart >= 40
insert_fullheart(true)
end
end end
def insert_fullheart(secondRow = false)
bitmap = RPG::Cache.picture("FullHeart")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
y = 0
if secondRow then
y += 20
end
self.contents.blt((@x - cw / 2) + 100, y, bitmap, src_rect)
@x += cw
end
def insert_halfheart(secondRow = false)
bitmap = RPG::Cache.picture("HalfHeart")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
y = 0
if secondRow then
y += 20
end
self.contents.blt((@x - cw / 2) + 100, y, bitmap, src_rect)
@x += cw
end
def insert_emptyheart(secondRow = false)
bitmap = RPG::Cache.picture("EmptyHeart")
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
y = 0
if secondRow then
y += 20
end
self.contents.blt((@x - cw / 2) + 100, y , bitmap, src_rect)
@x += cw
end
#--------------------------------------------------------------------------
# ? ???????
# selected : ??????? (true=?? false=???)
#--------------------------------------------------------------------------
def selected=(selected)
@selected = selected
update_cursor_rect
end
def charset_index(index)
@charset_index = index
refresh
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def update_cursor_rect
if @selected
if @file_index == SAVES_MAX
self.cursor_rect.set(self.x + 7, 63 - @exit.rect.height, @exit.rect.width+2, @exit.rect.height+2)
else
self.cursor_rect.set(0, 0, @name_width + 8, 32)
end
else
self.cursor_rect.empty
end
end
end
#==============================================================================
# ¦ Scene_File
#------------------------------------------------------------------------------
# ????????????????????????
#==============================================================================
class Scene_NewLoadFile
#--------------------------------------------------------------------------
# ? ?????????
# help_text : ????????????????
#--------------------------------------------------------------------------
def initialize(help_text)
@help_text = help_text
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def main
$game_party.setup_starting_members
#-------------------------------
# Animated Background Setup
#-------------------------------
@back = Sprite.new
#@sprite.bitmap = RPG::Cache.title($data_system.title_name)
@backgroundList = ["SaveScreen"]
@backgroundGameFrameCount = 0
# Number of game frames per background frame.
@backgroundG_BFrameCount = 3.4
@back.bitmap = RPG::Cache.title(@backgroundList[0])
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# ???????????????
@savefile_windows = []
for i in 0..SAVES_MAX
@savefile_windows.push(Window_NewLoadFile.new(i, make_filename(i)))
end
# ??????????????
@file_index = $game_temp.last_file_index
@savefile_windows[@file_index].selected = true
# ?????????
Graphics.transition
# ??????
loop do
# ????????
Graphics.update
# ???????
Input.update
# ??????
update
# ????????????????
if $scene != self
break
end
end
# ?????????
Graphics.freeze
# ????????
@sprite.dispose
@back.dispose
for i in @savefile_windows
i.dispose
end
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def update
@backgroundGameFrameCount = @backgroundGameFrameCount + 1
if @backgroundGameFrameCount >= @backgroundG_BFrameCount
@backgroundGameFrameCount = 0
# Add current background frame to the end
@backgroundList = @backgroundList << @backgroundList[0]
# and drop it from the first position
@backgroundList.delete_at(0)
@sprite.bitmap = RPG::Cache.title(@backgroundList[0])
end
for i in @savefile_windows
i.update
end
# C ??????????
if Input.trigger?(Input::C)
if @file_index == SAVES_MAX
$scene = nil
else
$game_system.se_play($data_system.decision_se)
if FileTest.exist?(make_filename(@file_index))
on_decision(make_filename(@file_index))
$game_temp.last_file_index = @file_index
else
$game_system.save_slot = make_filename(@file_index)
file = File.new(make_filename(@file_index), "wb")
on_new(file)
$game_temp.last_file_index = @file_index
end
end
end
# B ??????????
if Input.trigger?(Input::B)
# ???? on_cancel (??????) ???
on_cancel
return
end
# ??????????????
if Input.repeat?(Input::DOWN)
# ????????????????????????
# ?????????? 3 ??????
if Input.trigger?(Input::DOWN) or @file_index < 3
# ???? SE ???
$game_system.se_play($data_system.cursor_se)
# ?????????
@savefile_windows[@file_index].selected = false
@file_index = (@file_index + 1) % 4
@savefile_windows[@file_index].selected = true
return
end
end
# ??????????????
if Input.repeat?(Input::UP)
# ????????????????????????
# ?????????? 0 ???????
if Input.trigger?(Input::UP) or @file_index > 0
# ???? SE ???
$game_system.se_play($data_system.cursor_se)
# ?????????
@savefile_windows[@file_index].selected = false
@file_index = (@file_index + 3) % 4
@savefile_windows[@file_index].selected = true
return
end
end
@wait = 3 if @wait == nil or @wait == 0
@charset_index = 0 if @charset_index == nil or @charset_index == 6
@wait -= 1
return if @wait > 0
@charset_index += 1
for i in 0..@savefile_windows.size-1
@savefile_windows[i].charset_index(@charset_index)
next
end
end
#--------------------------------------------------------------------------
# ? ????????
# file_index : ?????????????? (0~3)
#--------------------------------------------------------------------------
def make_filename(file_index)
return "Save#{file_index + 1}.sav"
end
end
class Scene_NewLoad < Scene_NewLoadFile
def initialize
$game_temp.last_file_index = 0
latest_time = Time.at(0)
for i in 0..3
filename = make_filename(i)
if FileTest.exist?(filename)
file = File.open(filename, "rb")
if file.mtime > latest_time
latest_time = file.mtime
$game_temp.last_file_index = i
end
file.close
end
end
super("Load from which file")
end
def on_new(file)
$game_map.setup($data_system.start_map_id)
$game_system.newgame_switch = true
$game_temp.name_fileproc = file
$game_temp.name_calling = true
$game_temp.name_actor_id = 1
$game_temp.name_max_char = 8
$scene = Scene_Name.new
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
def on_decision(filename)
unless FileTest.exist?(filename)
# ??? SE ???
$game_system.se_play($data_system.buzzer_se)
return
end
# ??? SE ???
$game_system.se_play($data_system.load_se)
# ???????????
file = File.open(filename, "rb")
read_save_data(file, $game_system.newgame_switch)
file.close
Audio.bgm_stop
$game_system.bgm_play($game_system.playing_bgm) if !$game_system.newgame_switch
$game_system.bgs_play($game_system.playing_bgs) if !$game_system.newgame_switch
$game_map.autoplay
# ?????? (????????)
$game_map.update
$game_party.remove_actor(1) if $game_system.newgame_switch
# ?????????
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def on_cancel
# ????? SE ???
$game_system.se_play($data_system.cancel_se)
# ???????????
$scene = Scene_Title.new
end
#--------------------------------------------------------------------------
# ? ???????????
# file : ??????????????? (??????)
#--------------------------------------------------------------------------
def read_save_data(file, newgame)
if !newgame
Audio.bgm_stop
# ?????????????????????????
time = Marshal.load(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_party = Marshal.load(file)
$game_self_switches = Marshal.load(file)
$game_screen = Marshal.load(file)
$game_actors = 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)
$game_player.refresh
end
else
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
time = Time.new
# ??????????????????????
Graphics.frame_count = 0
# ????????????????
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_party = Game_Party.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
#$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
end
# ???????????????????
# (?????????????????)
# ???????????????
$game_party.refresh
end
end
lg
stardust
Hallo Community
Ich habe ein Großes Problem.
Ich habe mir Zelda Engine 4.0 für Rpg maker xp gedownloadet und wollte das spielen.
Da ich den alten Spielstand gelöscht habe und neu gemacht habe kommt immer eine Fehler meldung.
004. MX - Zelda Load & Save line 420
Ich habe keine ahnung was da ist es würde mich freuen wenn ihr mir helfen könntet.
Hier noch mal der Code:
#==============================================================================#
# ¦ Maximusmaxy's Zelda-styled Title/Load/Save/Name/GameOver Screens #
#------------------------------------------------------------------------------#
# Ocarina of Time/Majora's Mask-styled Title Screen. #
# Link to the Past-styled Gameover Screen. #
#------------------------------------------------------------------------------#
# Author: Maximusmaxy #
# Version 0.3.4: 11/12/11 #
#==============================================================================#
#
# Introduction:
# This script overides the standard title screen with a Zelda title screen
# simular to the title screens from Ocarina of time and the Majora's Mask.
# The old gameover screen has been updated to use a Link to the Past style
# save and continue/quit style screen. The script also features methods of
# quicksaving and autosaving.
#
# Instuctions:
# All instructions to set up the title screen are in the configuration.
#
# Zelda Style Saving:
# In a majority of zelda games, after loading a saved game you will return to
# the entrance of the map or the begginning of the dungeon. To achieve this
# the player coordinates are saved each time you enter a map. When the game
# is saved the player coordinates will be altered in the save file. The
# autosaving of the coordinates can be disabled ie. for dungeons when you want
# the player to return to the entrance, by using the script call:
# PZE.autosave(false), and then PZE.autosave(true) to re-enable it.
#
# After a gameover, and you use the save and continue, you will return to the
# last saved coordinates and your player hp will return to the amount specified
# in the configuration or the call script.
#
# Script Calls:
#
# PZE.save
# Saves the game to the loaded save file.
#
# PZE.load
# Loads the game from the loaded save file.
#
# PZE.autosave(ENABLED)
# ENABLED can be true or false for enabling/disabling the autosave coordinates.
#
# PZE.gameover_hp(HP)
# HP is the amount of hp you will recieve after a gameover.
#
#===============================================================================
$pze_ztitle = 0.34
module PZE
#===============================================================================
# Configuration
#===============================================================================
#determine the font used for the title screen
TITLE_FONT_NAME = 'P'
TITLE_FONT_SIZE = 22
#automatically change the hero's name to the same as the file name
HERO_NAME = false
#quick start skips the title in debug mode. Useful for debugging
QUICK_START = true
#use the full keyboard to input your name. Requires Yan Keyboard Input.
KEYBOARD_NAME = false
#Zelda style saving. Read Zelda Style saving in the configuration.
ZELDASAVE = true
#Save the player coordinates on map entry. Change with the call script.
AUTOSAVE = true
#Zelda style gameover screen
GAMEOVER = true
#The windowskin to use on the gameover screen
GAMEOVER_WINDOWSKIN = 'Windowskin - PZE - Game Over'
#The amount of HP recieved after gameover. Change with the call script.
GAMEOVER_HP = 12 #3 hearts
# Load Screen BGM
LOADSCREEN_BGM = RPG::AudioFile.new('Title Screen - File Select', 100)
#enable/disable the quicksave feature
QUICKSAVE = true
#quick save input key
QUICKSAVE_INPUT = Input::F5
#quick load input key
QUICKLOAD_INPUT = Input::F6
#common event that runs at the start of a new game. set to 0 to disable
COMMON_EVENT = 2
#-----------------------------------------------------------------------------
# File Information Display Setup
#-----------------------------------------------------------------------------
#Hero
Hero_Display = true
Hero_Speed = 5
Hero_X = -30
Hero_Y = -20
#Hearts
Heart_Display = true
Heart_Columns = 10
Heart_X = 53
Heart_Y = 66
#Heart Container Pieces
Heart_Piece_Display = true
Heart_Piece_X = 270
Heart_Piece_Y = 60
#Magic
Magic_Display = false
Magic_Width = 80
Magic_Color = Color.new(32, 192, 40)
Magic_X = 200
Magic_Y = 76
#Rupees/Gold
Rupee_Display = true
Rupee_X = 265
Rupee_Y = 20
#-----------------------------------------------------------------------------
# Custom Information Display Setup
#-----------------------------------------------------------------------------
# Custom information setup follows this format:
# [IMAGE, X, Y, CONDITION, ID],
# IMAGE is the filename of the image located in the titles folder.
# X,Y is the location of the image
# CONDITION can be 'switch', 'variable' or 'item'.
# ID is the ID of the selected condition
#
# EG.['Picture', 6, 9, 'switch', 69]
#
# NOTE: Condition can be left as '' to always be shown.
#
# NOTE: If the condition is a variable, the amount will be shown next to it.
# The same will be applied if the condition is an item and there is more then
# 1 of the item possessed.
#-----------------------------------------------------------------------------
Custom_Display = [ #set to Custom_Display = [] if not applicable
['ZSpiritualStone_1', 25, 116, 'switch', 127],
['ZSpiritualStone_2',45, 116, 'switch', 128],
['ZSpiritualStone_3', 65, 116, 'switch', 129],
['ZMedallion_1', 120, 116, 'switch', 130],
['ZMedallion_2', 145, 116, 'switch', 131],
['ZMedallion_3', 170, 116, 'switch', 132],
['ZMedallion_4', 195, 116, 'switch', 133],
['ZMedallion_5', 220, 116, 'switch', 134],
['ZMedallion_6', 245, 116, 'switch', 135],
['ZMedallion_7', 270, 116, 'switch', 136],
['ZMedallion_8', 295, 116, 'switch', 137],
]
#===============================================================================
# End Configuration
#===============================================================================
def self.save
return if $game_temp.pze_quickstart
file = File.open("Saves/Save#{$game_system.file_id + 1}.rxdata", 'wb')
temp_save = Scene_Save.new
temp_save.write_save_data(file)
file.close
end
def self.load
return if $game_temp.pze_quickstart
file = File.open("Saves/Save#{$game_system.file_id + 1}.rxdata", 'r')
temp_load = Scene_Load.new
temp_load.read_save_data(file)
file.close
$game_temp.pze_loading = true
return
end
def self.autosave(save)
$game_system.pze_autosave = save
return
end
def self.gameover_hp(hp)
$game_system.pze_gameover_hp = hp
return
end
end
#===============================================================================
# Game_Temp
#===============================================================================
class Game_Temp
attr_accessor :autosave_coordinates
attr_accessor :pze_quicksaving
attr_accessor :pze_loading
attr_accessor :pze_quickstart
alias max_ztitle_initialize_later initialize unless $@
def initialize
max_ztitle_initialize_later
@autosave_coordinates = [$data_system.start_map_id, $data_system.start_x, $data_system.start_y, 2]
@pze_quicksaving = false
@pze_loading = false
@pze_quickstart = false
end
end
#===============================================================================
# Game_System
#===============================================================================
class Game_System
attr_accessor :file_name
attr_accessor :file_id
attr_accessor :pze_autosave
attr_accessor :pze_gameover_hp
alias max_ztitle_initialize_later initialize unless $@
def initialize
max_ztitle_initialize_later
@file_name = ''
@file_id = 0
@pze_autosave = PZE::AUTOSAVE
@pze_gameover_hp = PZE::GAMEOVER_HP
end
end
#===============================================================================
# Game_Map
#===============================================================================
class Game_Map
attr_accessor :map_id
end
#===============================================================================
# Sprite_Zelda_Title
#===============================================================================
class Sprite_Zelda_Title < Sprite
attr_reader :character_table
attr_reader :file_name
def initialize(viewport = nil)
super(viewport)
@fade_in = false
@fade_out = false
@fade_speed = 0
@phase = false
@phase_count = 0
@move_x = 0
@move_y = 0
@move_duration = 0
self.opacity = 0
self.color = Color.new(255,255,255,0)
end
def update
#update phase
if @phase
self.color.alpha += 4 * (@phase_count < 15 ? 1 : -1)
@phase_count += 1
@phase_count = 0 if @phase_count == 30
end
#update fade in
if @fade_in
self.opacity += @fade_speed
@fade_in = false if self.opacity >= 255
end
#update fade out
if @fade_out
self.opacity -= @fade_speed
@fade_out = false if self.opacity <= 0
end
#update move
if @move_duration > 0
self.x = (self.x * (@move_duration - 1) + @move_x) / @move_duration
self.y = (self.y * (@move_duration - 1) + @move_y) / @move_duration
@move_duration -= 1
end
#update the actor sprite
unless @hero.nil?
#update pattern
@hero_count += 1
if @hero_count % PZE::Hero_Speed == 0
s = PZE::Hero_Speed
@hero_count = 0 if @hero_count / s == @hero_frames
@hero.src_rect = Rect.new(@hero_count / s * @hw, 0, @hw, @hh)
end
end
end
def dispose
#dispose the hero sprite aswell
unless @hero.nil?
@hero.dispose
@hero = nil
end
super
end
def bitmap=(*args)
super(*args)
#set the font on bitmap creation
self.bitmap.font.name = PZE::TITLE_FONT_NAME
self.bitmap.font.size = PZE::TITLE_FONT_SIZE
end
def x=(value)
super
#move the hero sprite aswell
@hero.x = value + PZE::Hero_X unless @hero.nil?
end
def y=(value)
super
#move the hero sprite aswell
@hero.y = value + PZE::Hero_Y unless @hero.nil?
end
def opacity=(value)
super
#set the hero opacity to the bitmap opacity
@hero.opacity = value unless @hero.nil?
end
def phase=(bool)
#enable/disable the phase
@phase = bool
#adjust the phase count to about the middle
@phase_count = 7
#adjust alpha level
self.color.alpha = (@phase ? 30 : 0)
end
def fade_in(speed)
#fade the sprite in at specified speed
@fade_in = true
@fade_speed = speed
end
def fade_out(speed = nil)
#return true if the sprite is fading out
return @fade_out if speed.nil?
#fade the sprite out at specified speed
@fade_out = true
@fade_speed = speed
end
def move_to(x, y, speed)
#set the move to coordinates
@move_x = x
@move_y = y
#set the duration of the move
@move_duration = speed
end
def draw_bar(text)
#draw a bar with text for the menu options
self.bitmap = Bitmap.new(130,33)
bar = RPG::Cache.title('ZBar')
self.bitmap.blt(0,0,bar,bar.rect)
self.bitmap.draw_text(0,0,130,33,text,1)
end
def draw_info(text, align = 0)
#draw information text
self.bitmap = Bitmap.new(640,32) if self.bitmap.nil?
self.bitmap.clear
self.bitmap.draw_text(0,0,640,32,text,align)
end
def draw_link
#draw a file link
self.bitmap = RPG::Cache.title('ZFile_Link')
end
def draw_cursor
#draw a name input cursor
self.bitmap = RPG::Cache.title('ZCursor')
self.phase = true
self.opacity = 200
end
def draw_back
#draw a name input back key
self.bitmap = RPG::Cache.title('ZBack')
end
def draw_end
#draw a name input end key
self.bitmap = Bitmap.new(91,33)
bitmap = RPG::Cache.title('ZEnd')
self.bitmap.blt(0,0,bitmap,bitmap.rect)
self.bitmap.draw_text(0,0,91,33,'END',1)
end
def draw_character_table
#draw a name input character table
self.bitmap = Bitmap.new(455, 175)
@character_table =
['A','B','C','D','E','F','G','H','I','J','K','L','M',
'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'1','2','3','4','5','6','7','8','9','0','.','-',' ']
@character_table.each_with_index do |char, i|
self.bitmap.draw_text((i % 13) * 35, (i / 13) * 35, 35, 35, char)
end
end
def draw_name(text = '')
#draw a name bar
self.bitmap = Bitmap.new(219,33) if self.bitmap.nil?
self.bitmap.clear
bitmap = RPG::Cache.title('ZName')
self.bitmap.blt(0,0,bitmap,bitmap.rect)
self.bitmap.draw_text(34,0,185,33,text)
end
def draw_display(i)
#draw a file information display
self.bitmap = Bitmap.new(350,147) if self.bitmap.nil?
self.bitmap.clear
display = RPG::Cache.title('ZDisplay')
self.bitmap.blt(0,0,display,display.rect)
#load temp file data
file = File.open("Saves/Save#{i + 1}.rxdata", 'r')
characters = Marshal.load(file)
frame_count = Marshal.load(file)
system = Marshal.load(file)
switches = Marshal.load(file)
variables = Marshal.load(file)
self_switches = Marshal.load(file)
screen = Marshal.load(file)
actors = Marshal.load(file)
party = Marshal.load(file)
file.close
#get the file name for the name window
@file_name = system.file_name
self.bitmap.draw_text(164,0,185,33,@file_name)
#rupees/gold display
if PZE::Rupee_Display
bitmap = RPG::Cache.title('ZRupee')
x, y = PZE::Rupee_X, PZE::Rupee_Y
self.bitmap.blt(x,y,bitmap,bitmap.rect)
self.bitmap.draw_text(x + bitmap.rect.width + 4,
y, 350, PZE::TITLE_FONT_SIZE, 'x ')
old_color = self.bitmap.font.color.clone
#change font color to green if rupee count has reached the maximum
if defined?(ZeldaHUD_Customization) &&
party.gold == variables[ZeldaHUD_Customization::GoldCapVariable] &&
party.gold != 0
self.bitmap.font.color = Color.new(50,255,50)
end
self.bitmap.draw_text(x + bitmap.rect.width + 4 + bitmap.text_size(
'x ').width, y, 350, PZE::TITLE_FONT_SIZE, party.gold.to_s)
self.bitmap.font.color = old_color
end
#Custom display images
PZE::Custom_Display.each do |info|
next if info[3] == 'switch' && !switches[info[4]]
next if info[3] == 'item' && party.item_number(info[4]) == 0
bitmap = RPG::Cache.title(info[0])
self.bitmap.blt(info[1],info[2],bitmap,bitmap.rect)
if info[3] == 'variable'
self.bitmap.draw_text(info[1] + bitmap.rect.width + 4,
info[2], 350, PZE::TITLE_FONT_SIZE, 'x ' + variables[info[4]].to_s)
elsif info[3] == 'item'
value = party.item_number(info[4])
if value > 2
self.bitmap.draw_text(info[1] + bitmap.rect.width + 4,
info[2], 350, PZE::TITLE_FONT_SIZE, 'x ' + value.to_s)
end
end
end
#get the hero
hero = party.actors[0]
#skip drawing hero stats if the hero does not exist
return if hero.nil?
#hero display
if PZE::Hero_Display
#draw the hero sprite
@hero = Sprite.new
@hero.bitmap = RPG::Cache.character(
hero.character_name, hero.character_hue)
@hero_count = 0
@hero.opacity = 0
@hero.z = 3
#compatibility with COG extra frames
if defined?(XAS_REGEXP)
hero.character_name[XAS_REGEXP::FRAMES]
@hero_frames = $1.nil? ? 4 : $1.to_i
else
@hero_frames = 4
end
#set the source rect dependant on bitmap width/height
@hw, @hh = @hero.bitmap.width / @hero_frames, @hero.bitmap.height / 4
@hero.src_rect = Rect.new(0, 0, @hw, @hh)
end
#hearts display
if PZE::Heart_Display
bitmap = RPG::Cache.title('ZHearts_List')
x, y, c = PZE::Heart_X, PZE::Heart_Y, PZE::Heart_Columns
(0...(hero.maxhp / 4)).each do |i|
self.bitmap.blt(i % c * 17 + x, i / c * 17 + y, bitmap, Rect.new([[
hero.hp % 4 + (hero.hp / 4 - i) * 4, 0].max, 4].min * 16, 0, 16, 16))
end
end
#heart container piece display
if PZE::Heart_Piece_Display
bitmap = RPG::Cache.title('ZHeart_Container_Pieces_List')
x, y = PZE::Heart_Piece_X, PZE::Heart_Piece_Y
self.bitmap.blt(x, y, bitmap, Rect.new(52 * (hero.maxhp % 4), 0, 52, 48))
end
#magic display
if PZE::Magic_Display
bitmap = RPG::Cache.title('ZMagic_Bar_List')
x, y, width = PZE::Magic_X, PZE::Magic_Y, PZE::Magic_Width
self.bitmap.blt(x, y, bitmap, Rect.new(0,0,4,21))
dest_rec = Rect.new(x + 4, y, width - 8, 21)
self.bitmap.stretch_blt(dest_rec, bitmap, Rect.new(4, 0, 1, 21))
self.bitmap.blt(x + width - 4, y, bitmap, Rect.new(5, 0, 4, 21))
rate = hero.sp / hero.maxsp
self.bitmap.fill_rect(x + 4, y + 4,(width - 8) * rate,13,PZE::Magic_Color)
end
end
end
#===============================================================================
# Sprite_Quick_Save_Load
#===============================================================================
class Sprite_Quick_Save_Load < Sprite
attr_reader :count
def initialize(text)
super(nil)
self.bitmap = Bitmap.new(300,32)
self.bitmap.draw_text(0,0,300,32,text)
self.x, self.y, self.z = 0, 448, 99999
@count = 0
end
def dispose
#dispose the bitmap aswell
self.bitmap.dispose
super
end
def update
#update the count
@count += 1
end
end
#===============================================================================
# Scene_Title
#===============================================================================
class Scene_Title
def main
#go to battle test if battle testing
if $BTEST
battle_test
return
end
#load the data
$data_actors = load_data('Data/Actors.rxdata')
$data_classes = load_data('Data/Classes.rxdata')
$data_skills = load_data('Data/Skills.rxdata')
$data_items = load_data('Data/Items.rxdata')
$data_weapons = load_data('Data/Weapons.rxdata')
$data_armors = load_data('Data/Armors.rxdata')
$data_enemies = load_data('Data/Enemies.rxdata')
$data_troops = load_data('Data/Troops.rxdata')
$data_states = load_data('Data/States.rxdata')
$data_animations = load_data('Data/Animations.rxdata')
$data_tilesets = load_data('Data/Tilesets.rxdata')
$data_common_events = load_data('Data/CommonEvents.rxdata')
$data_system = load_data('Data/System.rxdata')
#quick start if activated
if PZE::QUICK_START && $DEBUG
quick_start
return
end
#create the game system
$game_system = Game_System.new
#stop audio and play the title bgm
Audio.me_stop
Audio.bgs_stop
$game_system.bgm_play(PZE::LOADSCREEN_BGM)
#initialize variables
@scene = 1
@index = 0
@file = 0
@ce = true #true = copy, false = erase
@copy_to = 0
@text = ''
#make the sprites
make_sprites
#array for holding the active sprites
@sprites = [@window,@copy,@erase,@options,@info,@keys,*@files]
#transition
Graphics.transition
#fade in
wait(25, true)
#change active sprites
@sprites = [@copy,@erase,@options,*@files]
#phase first file
@files[0].phase = true
#main loop
loop do
Graphics.update
Input.update
update
break if $scene != self
end
#freeze
Graphics.freeze
#dispose everything
dispose_sprites
end
def make_sprites
#background
@background = Plane.new
@background.bitmap = RPG::Cache.title('ZBackground')
#window
@window = Sprite_Zelda_Title.new
@window.bitmap = RPG::Cache.title('ZWindow')
#files, names, links and displays
@files = []
@names = {}
@links = {}
@displays = {}
(0..2).each do |i|
#files
@files[i] = Sprite_Zelda_Title.new
@files[i].draw_bar("File #{i + 1}")
@files[i].x, @files[i].y = 124, 148 + i * 33
#if the file exists
if FileTest.exist?("Saves/Save#{i + 1}.rxdata")
#displays
@displays[i] = Sprite_Zelda_Title.new
@displays[i].draw_display(i)
@displays[i].x, @displays[i].y, @displays[i].z = 124, 148, 1
#names
@names[i] = Sprite_Zelda_Title.new
@names[i].draw_name(@displays[i].file_name)
@names[i].x, @names[i].y = @files[i].x + 130, @files[i].y
#links
@links[i] = Sprite_Zelda_Title.new
@links[i].draw_link
@links[i].x, @links[i].y = @files[i].x + 110, @files[i].y + 9
@links[i].z = 2
end
end
#copy
@copy = Sprite_Zelda_Title.new
@copy.draw_bar('Copy')
@copy.x, @copy.y = 124, 264
#erase
@erase = Sprite_Zelda_Title.new
@erase.draw_bar('Erase')
@erase.x, @erase.y = 124, 297
#options
@options = Sprite_Zelda_Title.new
@options.draw_bar('Options')
@options.x, @options.y = 124, 347
#yes
@yes = Sprite_Zelda_Title.new
@yes.draw_bar('Yes')
@yes.x, @yes.y = 124, 314
#quit
@quit = Sprite_Zelda_Title.new
@quit.draw_bar('Quit')
@quit.x, @quit.y = 124, 347
#info
@info = Sprite_Zelda_Title.new
@info.draw_info('Please Select a File')
@info.x, @info.y = 125, 91
#keys
@keys = Sprite_Zelda_Title.new
@keys.draw_info('C - Decide · X - Cancel', 1)
@keys.y = 423
#name
@name = Sprite_Zelda_Title.new
@name.draw_name
#message
@message = Sprite_Zelda_Title.new
@message.draw_info('This is an Empty File')
@message.x, @message.z = 260, 10
#character table
@table = Sprite_Zelda_Title.new
@table.draw_character_table
@table.x, @table.y, @table.z = 124, 148, 100
#back
@back = Sprite_Zelda_Title.new
@back.draw_back
@back.x, @back.y, @back.z = 398, 328, 100
#end
@end = Sprite_Zelda_Title.new
@end.draw_end
@end.x, @end.y, @end.z = 468, 328, 100
end
def dispose_sprites
#background
@background.dispose
#window
@window.dispose
#files
@files.each do |file|
file.bitmap.dispose
file.dispose
end
#names
@names.each_value do |name|
name.bitmap.dispose
name.dispose
end
#displays
@displays.each_value do |display|
display.bitmap.dispose
display.dispose
end
#links
@links.each_value {|link| link.dispose}
#bar and info windows
[@copy,@erase,@options,@yes,@quit,@info,@keys,@message,@table,
@end].each do |sprite|
sprite.bitmap.dispose
sprite.dispose
end
#back
@back.dispose
end
def quick_start
#reset all objects and go straight to the map
Graphics.frame_count = 0
$game_temp = Game_Temp.new
$game_temp.pze_quickstart = true
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
command_new_game
end
def wait(frames, fade = nil)
#fade in/out if specified
@sprites.each{|sprite| sprite.fade_in(255 / frames)} if fade
@sprites.each{|sprite| sprite.fade_out(255 / frames)} if fade == false
#wait for each frame
(frames + 1).times do
Graphics.update
update_sprites
end
end
def update
update_sprites
case @scene
when 1 #main
update_main
when 2 #select
update_select
when 3 #name
update_name
when 4 #copy/erase which
update_copy_erase
when 5 #copy to
update_copy_to
when 6 #are you sure
update_are_you_sure
when 7 #options
update_options
end
end
def update_sprites
#pan the background
@background.ox -= 1
#update the sprites
@sprites.each {|sprite| sprite.update}
#move links/names to the relative file position
@links.each do |i, link|
next if link.fade_out
link.x, link.y = @files[i].x + 102, @files[i].y + 6
link.opacity = @files[i].opacity
end
@names.each do |i, name|
name.x, name.y = @files[i].x + 130, @files[i].y
name.opacity = @files[i].opacity
end
end
#-----------------------------------------------------------------------------
# Main
#-----------------------------------------------------------------------------
def update_main
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
case @index
when 0,1,2
@names[@index].nil? ? main_name_transition : main_select_transition
when 3,4
@ce = @index == 3 ? true : false
main_copy_erase_transition
when 5
main_options_transition
end
elsif Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
elsif Input.repeat?(Input::DOWN)
@index += 1
@index = 0 if @index == 6
update_main_index
elsif Input.repeat?(Input::UP)
@index -= 1
@index = 5 if @index == -1
update_main_index
end
end
def update_main_index
$game_system.se_play($data_system.cursor_se)
@sprites.each {|sprite| sprite.phase = false}
case @index
when 0,1,2
@files[@index].phase = true
when 3
@copy.phase = true
when 4
@erase.phase = true
when 5
@options.phase = true
end
end
def main_select_transition
@file = @index
@files[@index].phase = false
@sprites = [@copy,@erase,@options,@files[(@index+1)%3],@files[(@index+2)%3]]
wait(10, false)
@info.draw_info('Open this file?')
@files[@index].move_to(124,148,10)
@sprites = [@files[@index],@displays[@index],@yes,@quit]
wait(10, true)
@sprites = [@yes,@quit,@displays[@index]]
@yes.phase = true
@scene = 2
@index = 0
end
def main_name_transition
@file = @index
@files[@index].phase = false
@sprites = [@copy,@erase,@options,*@files]
wait(10, false)
@info.draw_info('Name?')
@name.x, @name.y = 480, 91
@name.move_to(200,91,10)
@sprites = [@name,@table,@end,@back]
wait(10, true)
if PZE::KEYBOARD_NAME
@keys.draw_info('Enter - Accept · Esc - Quit', 1)
@keyboard = Sprite_Zelda_Title.new
@keyboard.draw_info('Type your name using the keyboard', 1)
@keyboard.y, @keyboard.opacity = 26, 255
else
@letter_cursor = Sprite_Zelda_Title.new
@letter_cursor.draw_cursor
@letter_cursor.x, @letter_cursor.y = 100, 136
end
@name_cursor = Sprite_Zelda_Title.new
@name_cursor.draw_cursor
@name_cursor.x, @name_cursor.y = 210, 78
@scene = 3
@index = 0
end
def main_copy_erase_transition
@sprites.each{|sprite| sprite.phase = false}
@sprites = [@copy,@erase,@options]
wait(10, false)
@info.draw_info((@ce ? 'Copy' : 'Erase') + ' which file?')
@message.draw_info('This is an Empty File')
@files.each_with_index {|file, i| file.move_to(124, 248 + i * 33, 10)}
@message.visible = false
@sprites = [@quit,@message,*@files]
wait(10, true)
@quit.phase = true
@scene = 4
@index = 3
end
def main_options_transition
@sprites.each{|sprite| sprite.phase = false}
wait(10, false)
@info.draw_info('Options')
@scene = 7
end
#-----------------------------------------------------------------------------
# Select
#-----------------------------------------------------------------------------
def update_select
if Input.trigger?(Input::C)
case @index
when 0
load_game
when 1
select_main_transition
end
elsif Input.trigger?(Input::B)
select_main_transition
elsif Input.repeat?(Input::DOWN) || Input.repeat?(Input::UP)
@index = (@index == 0 ? 1 : 0)
update_select_index
end
end
def update_select_index
#play the cursor sound effect
$game_system.se_play($data_system.cursor_se)
#phase the selected index
@sprites.each {|sprite| sprite.phase = false}
case @index
when 0
@yes.phase = true
when 1
@quit.phase = true
end
end
def load_game
Audio.se_play('Audio/SE/Title Screen - Press Start', 100) #####
file = File.open("Saves/Save#{@file + 1}.rxdata", 'rb')
temp_load = Scene_Load.new
temp_load.read_save_data(file)
file.close
if Graphics.frame_count <= 2
#start a new game
command_new_game
else
#load game
Audio.bgs_stop
Audio.bgm_stop
$game_system.bgm_play($game_system.playing_bgm)
$game_system.bgs_play($game_system.playing_bgs)
$game_map.update
$scene = Scene_Map.new
if PZE::HERO_NAME
$data_actors[$game_party.actors[0].id].name = $game_system.file_name
end
end
#setup initial autosave coordinates
$game_temp.autosave_coordinates = [$game_map.map_id, $game_player.x,
$game_player.y, $game_player.direction]
end
def command_new_game
#create the startup common event
$game_temp.common_event_id = PZE::COMMON_EVENT
#setup starting data
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
if PZE::HERO_NAME && $game_party.actors[0] != nil
$game_party.actors[0].name = $game_system.file_name
$data_actors[$game_party.actors[0].id].name = $game_system.file_name
end
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$game_map.autoplay
$game_map.update
$game_system.map_interpreter.update if PZE::COMMON_EVENT != 0
$scene = Scene_Map.new
#setup initial autosave coordinates
$game_temp.autosave_coordinates = [$game_map.map_id, $game_player.x,
$game_player.y, $game_player.direction]
end
def select_main_transition
$game_system.se_play($data_system.cancel_se)
@sprites.each {|sprite| sprite.phase = false}
@sprites = [@displays[@file],@yes,@quit]
wait(10, false)
@info.draw_info('Please Select a File')
@files[@file].move_to(124, 148 + @file * 33, 10)
@sprites = [@erase,@copy,@options,*@files]
wait(10, true)
@files[@file].phase = true
@index = @file
@scene = 1
end
#-----------------------------------------------------------------------------
# Name Entry
#-----------------------------------------------------------------------------
def update_name
@name_cursor.update
if PZE::KEYBOARD_NAME
if Input.repeat?(Input::BACK)
$game_system.se_play($data_system.cancel_se)
return if @text == ''
@text = @text[0,@text.size - 1]
@name.draw_name(@text)
update_name_index
elsif Input.trigger?(Input::ESC)
$game_system.se_play($data_system.cancel_se)
name_main_transition
elsif Input.trigger?(Input::ENTER)
if @text == ''
$game_system.se_play($data_system.cancel_se)
name_main_transition
else
new_file
end
elsif Input.typing?
if @name.bitmap.text_size(@text).width >= 170
$game_system.se_play($data_system.cancel_se)
else
$game_system.se_play($data_system.cursor_se)
@text += Input.key_type
@name.draw_name(@text)
update_name_index
end
end
else
@letter_cursor.update
if Input.repeat?(Input::C)
case @index
when 73, 74 #back
$game_system.se_play($data_system.cancel_se)
return if @text == ''
@text = @text[0,@text.size - 1]
@name.draw_name(@text)
update_name_index
when 75, 76, 77 #end
if @text == ''
$game_system.se_play($data_system.cancel_se)
name_main_transition
else
new_file
end
else #text
if @name.bitmap.text_size(@text).width >= 170
$game_system.se_play($data_system.cancel_se)
else
$game_system.se_play($data_system.decision_se)
@text += @table.character_table[@index]
@name.draw_name(@text)
update_name_index
end
end
elsif Input.repeat?(Input::B)
$game_system.se_play($data_system.cancel_se)
if @text == ''
name_main_transition
else
@text = @text[0,@text.size - 1]
@name.draw_name(@text)
update_name_index
end
elsif Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
if @index > 59
@index / 13 == 5 ? @index -= 65 : @index += 13
else
@index / 13 == 4 ? @index -= 52 : @index += 13
end
update_name_index
elsif Input.repeat?(Input::UP)
$game_system.se_play($data_system.cursor_se)
if (@index > 7 && @index < 13) || @index > 72
@index / 13 == 0 ? @index += 65 : @index -= 13
else
@index / 13 == 0 ? @index += 52 : @index -= 13
end
update_name_index
elsif Input.repeat?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
if @index > 74
@index = 74
elsif @index > 72
@index = 75
else
@index % 13 == 0 ? @index += 12 : @index -= 1
end
update_name_index
elsif Input.repeat?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
if @index > 74
@index = 74
elsif @index > 72
@index = 75
else
@index % 13 == 12 ? @index -= 12 : @index += 1
end
update_name_index
end
end
end
def update_name_index
unless PZE::KEYBOARD_NAME
@letter_cursor.x = 100 + (@index % 13) * 35
@letter_cursor.y = 136 + (@index / 13) * 35
end
size = @name.bitmap.text_size(@text).width
@name_cursor.x = 210 + size if size < 170
@sprites.each {|sprite| sprite.phase = false}
case @index
when 73, 74 #back
@back.phase = true
@letter_cursor.visible = false unless PZE::KEYBOARD_NAME
when 75, 76, 77 #end
@end.phase = true
@letter_cursor.visible = false unless PZE::KEYBOARD_NAME
else #text
@letter_cursor.visible = true unless PZE::KEYBOARD_NAME
end
end
def new_file
$game_system.se_play($data_system.decision_se)
#reset globals
Graphics.frame_count = 0
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_system.file_name = @text
$game_system.file_id = @file
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
#setup starting data
$game_party.setup_starting_members
if PZE::HERO_NAME && $game_party.actors[0] != nil
$game_party.actors[0].name = $game_system.file_name
$data_actors[$game_party.actors[0].id].name = $game_system.file_name
end
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
#open the file
file = File.open("Saves/Save#{@file + 1}.rxdata", 'wb')
#create a temp save scene and write the save data
temp_save = Scene_Save.new
temp_save.write_save_data(file)
#close the file
file.close
#create the name, display and link
@names[@file] = Sprite_Zelda_Title.new
@names[@file].draw_name(@text)
@displays[@file] = Sprite_Zelda_Title.new
@displays[@file].draw_display(@file)
@displays[@file].x, @displays[@file].y, @displays[@file].z = 124, 148, 1
@links[@file] = Sprite_Zelda_Title.new
@links[@file].draw_link
@links[@file].z = 2
#transfer to main menu
name_main_transition
end
def name_main_transition
@sprites.each {|sprite| sprite.phase = false}
unless PZE::KEYBOARD_NAME
@letter_cursor.dispose
@letter_cursor = nil
end
@name_cursor.dispose
@name_cursor = nil
wait(10, false)
if PZE::KEYBOARD_NAME
@keys.draw_info('C - Decide · X - Cancel', 1)
@keyboard.dispose
@keyboard = nil
end
@info.draw_info('Please Select a File')
@text = ''
@name.draw_name
@sprites = [@copy,@erase,@options,*@files]
wait(10, true)
@files[@file].phase = true
@index = @file
@scene = 1
end
#-----------------------------------------------------------------------------
# Copy/Erase
#-----------------------------------------------------------------------------
def update_copy_erase
if Input.trigger?(Input::C)
case @index
when 0,1,2
if FileTest.exist?("Saves/Save#{@index + 1}.rxdata")
$game_system.se_play($data_system.decision_se)
@ce ? copy_copy_to_transition : erase_are_you_sure_transition
else
$game_system.se_play($data_system.buzzer_se)
end
when 3
copy_erase_main_transition
end
elsif Input.trigger?(Input::B)
copy_erase_main_transition
elsif Input.repeat?(Input::DOWN)
@index += 1
@index = 0 if @index == 4
update_copy_erase_index
elsif Input.repeat?(Input::UP)
@index -= 1
@index = 3 if @index == -1
update_copy_erase_index
end
end
def update_copy_erase_index
#play the cursor sound effect
$game_system.se_play($data_system.cursor_se)
#phase the selected index
@sprites.each {|sprite| sprite.phase = false}
case @index
when 0,1,2
@files[@index].phase = true
if FileTest.exist?("Saves/Save#{@index + 1}.rxdata")
@message.y = (@index - (@index < @file ? 0 : 1)) * 33 + 281
@message.visible = (@scene == 4 ? false : true)
else
@message.y = @index * 33 + 248
@message.visible = (@scene == 4 ? true : false)
end
when 3
@message.visible = false
@quit.phase = true
end
end
def copy_erase_main_transition
$game_system.se_play($data_system.cancel_se)
@sprites.each {|sprite| sprite.phase = false}
@message.visible = false
@sprites = [@quit,@message]
wait(10, false)
@info.draw_info('Please Select a File')
@files.each_with_index{|file, i| file.move_to(124, 148 + i * 33, 10)}
@sprites = [@erase,@copy,@options,*@files]
wait(10, true)
@ce ? @copy.phase = true : @erase.phase = true
@index = @ce ? 3 : 4
@scene = 1
end
def copy_copy_to_transition
@file = @index
@sprites.each {|sprite| sprite.phase = false}
@message.visible = false
@files[@index].move_to(124, 148, 10)
@files[0].move_to(124, 281, 10) if @index > 0
@files[1].move_to(124, 314, 10) if @index > 1
@sprites = [@quit,@displays[@index],*@files]
wait(10, true)
@info.draw_info('Copy to which file?')
@message.draw_info('This file is in use')
@quit.phase = true
@index = 3
@scene = 5
end
def erase_are_you_sure_transition
@file = @index
@sprites.each {|sprite| sprite.phase = false}
@message.visible = false
@sprites = [@files[(@index+1)%3],@files[(@index+2)%3]]
wait(10, false)
@info.draw_info('Are you sure?')
@files[@index].move_to(124, 148, 10)
@sprites = [@yes,@displays[@file],@files[@file]]
wait(10, true)
@sprites = [@yes,@quit,@displays[@file]]
@quit.phase = true
@index = 1
@scene = 6
end
#-----------------------------------------------------------------------------
# Copy to
#-----------------------------------------------------------------------------
def update_copy_to
if Input.trigger?(Input::C)
case @index
when 0,1,2
if FileTest.exist?("Saves/Save#{@index + 1}.rxdata")
$game_system.se_play($data_system.buzzer_se)
else
$game_system.se_play($data_system.decision_se)
copy_to_are_you_sure_transition
end
when 3
copy_to_copy_transition
end
elsif Input.trigger?(Input::B)
copy_to_copy_transition
elsif Input.repeat?(Input::DOWN)
loop do
@index += 1
@index = 0 if @index == 4
break if @index != @file
end
update_copy_erase_index
elsif Input.repeat?(Input::UP)
loop do
@index -= 1
@index = 3 if @index == -1
break if @index != @file
end
update_copy_erase_index
end
end
def copy_to_copy_transition
$game_system.se_play($data_system.cancel_se)
@sprites.each {|sprite| sprite.phase = false}
@message.visible = false
@sprites = [@displays[@file],@yes]
wait(10, false)
@info.draw_info((@ce ? 'Copy' : 'Erase') + ' which file?')
@message.draw_info('This is an Empty File')
@files.each_with_index {|file, i| file.move_to(124, 248 + i * 33, 10)}
@sprites = [@quit,*@files]
wait(10, true)
@quit.phase = true
@index = 3
@scene = 4
end
def copy_to_are_you_sure_transition
@copy_to = @index
@sprites.each {|sprite| sprite.phase = false}
@message.visible = false
@sprites = [@files[3 - (@file + @copy_to)]]
wait(10, false)
@info.draw_info('Are you sure?')
@message.draw_info('This is an Empty File')
@files[@index].move_to(124,249,10)
@sprites = [@files[@copy_to],@yes,@quit]
wait(10, true)
@sprites = [@displays[@file],@yes,@quit]
@quit.phase = true
@index = 1
@scene = 6
end
#-----------------------------------------------------------------------------
# Are You Sure?
#-----------------------------------------------------------------------------
def update_are_you_sure
if Input.trigger?(Input::C)
case @index
when 0
$game_system.se_play($data_system.decision_se)
@ce ? copy_file : erase_file
when 1
@ce ? are_you_sure_copy_to_transition : copy_to_copy_transition
end
elsif Input.trigger?(Input::B)
@ce ? are_you_sure_copy_to_transition : copy_to_copy_transition
elsif Input.repeat?(Input::DOWN) || Input.repeat?(Input::UP)
@index = (@index == 0 ? 1 : 0)
update_select_index
end
end
def copy_file
@sprites.each {|sprite| sprite.phase = false}
Audio.se_play('Audio/SE/System - Load Screen - Copy File', 100) ##
[@yes,@quit].each{|sprite| sprite.fade_out(255 / 10)}
@sprites = [@displays[@file],@yes,@quit]
wait(10)
@displays[@copy_to] = Sprite_Zelda_Title.new
@displays[@copy_to].draw_display(@file)
@displays[@copy_to].x, @displays[@copy_to].y = 124, 249
@displays[@copy_to].z = 1
@names[@copy_to] = Sprite_Zelda_Title.new
@names[@copy_to].draw_name(@displays[@file].file_name)
@names[@copy_to].x, @names[@copy_to].y = 154, 249
@links[@copy_to] = Sprite_Zelda_Title.new
@links[@copy_to].draw_link
@links[@copy_to].x, @links[@copy_to].y = 134, 258
@links[@copy_to].z = 2
@sprites = [@displays[@file],@displays[@copy_to]]
wait(10, true)
@sprites = [@displays[@file],@displays[@copy_to],@links[@copy_to]]
wait(10, true)
file = File.open("Saves/Save#{@file + 1}.rxdata",'rb')
copy = File.open("Saves/Save#{@copy_to + 1}.rxdata",'wb')
copy.write(file.read)
file.close
copy.close
wait(20)
@sprites = [@displays[@file],@displays[@copy_to]]
wait(10,false)
@info.draw_info('Please Select a File')
@files.each_with_index{|file, i| file.move_to(124,148 + i * 33,10)}
@sprites = [@copy,@erase,@options,*@files]
wait(10,true)
@displays[@copy_to].y = 148
@files[0].phase = true
@index = 0
@scene = 1
end
def erase_file
@sprites.each {|sprite| sprite.phase = false}
Audio.se_play('Audio/SE/System - Load Screen - Erase File', 100) ########
@sprites = [@yes,@quit,@links[@file]]
wait(10,false)
@links[@file].dispose
@links.delete(@file)
@names[@file].dispose
@names.delete(@file)
@info.draw_info('File erased')
@displays[@file].move_to(124,480,10)
@sprites = [@displays[@file],@files[(@file+1)%3],@files[(@file+2)%3]]
wait(10,false)
@displays[@file].dispose
@displays.delete(@file)
File.delete("Saves/Save#{@file + 1}.rxdata")
wait(20)
@info.draw_info('Please Select a File')
@files.each_with_index{|file, i| file.move_to(124,148 + i * 33,10)}
@sprites = [@copy,@erase,@options,*@files]
wait(10,true)
@files[0].phase = true
@index = 0
@scene = 1
end
def are_you_sure_copy_to_transition
$game_system.se_play($data_system.cancel_se)
@sprites.each {|sprite| sprite.phase = false}
@sprites = [@yes]
wait(10, false)
@info.draw_info('Copy to which file?')
@message.draw_info('This file is in use')
y = 281 + ((3 - (@file + @copy_to)) < @copy_to ? 33 : 0)
@files[@copy_to].move_to(124, y, 10)
@sprites = [@displays[@file],@quit,*@files]
wait(10, true)
@quit.phase = true
@index = 3
@scene = 5
end
#-----------------------------------------------------------------------------
# Options
#-----------------------------------------------------------------------------
def update_options
if Input.trigger?(Input::B)
options_main_transition
end
end
def options_main_transition
$game_system.se_play($data_system.cancel_se)
wait(10, true)
@info.draw_info('Please Select a File')
@options.phase = true
@index = 5
@scene = 1
end
end
#===============================================================================
# Scene_Map
#===============================================================================
class Scene_Map
alias max_ztitle_main_later main unless $@
alias max_ztitle_update_later update unless $@
alias max_ztitle_transfer_later transfer_player unless $@
def main
max_ztitle_main_later
#dispose the quicksave sprite if it exists
@quick_save_load.dispose unless @quick_save_load.nil?
end
def update
max_ztitle_update_later
if PZE::QUICKSAVE && !$game_temp.message_window_showing
if Input.trigger?(PZE::QUICKSAVE_INPUT) #save
#delete the old sprite
unless @quick_save_load.nil?
@quick_save_load.dispose
@quick_save_load = nil
end
#flag for quicksave
$game_temp.pze_quicksaving = true
#save the game
number = ($game_temp.pze_quickstart ? 0 : $game_system.file_id + 1)
file = File.open("Saves/Quicksave#{number}.rxdata", 'wb')
temp_save = Scene_Save.new
temp_save.write_save_data(file)
Marshal.dump($game_temp, file)
file.close
#deflag quicksave
$game_temp.pze_quicksaving = false
#show the save sprite
@quick_save_load = Sprite_Quick_Save_Load.new('Quicksave Wrote')
elsif Input.trigger?(PZE::QUICKLOAD_INPUT) #load
#delete the old sprite
unless @quick_save_load.nil?
@quick_save_load.dispose
@quick_save_load = nil
end
number = ($game_temp.pze_quickstart ? 0 : $game_system.file_id + 1)
#if a quicksave file exists
if FileTest.exist?("Saves/Quicksave#{number}.rxdata")
#load the game
file = File.open("Saves/Quicksave#{number}.rxdata", 'r')
temp_load = Scene_Load.new
temp_load.read_save_data(file)
$game_temp = Marshal.load(file)
file.close
#refresh the spriteset
@spriteset.dispose
@spriteset = Spriteset_Map.new
#replay music
$game_system.bgm_play($game_system.playing_bgm)
$game_system.bgs_play($game_system.playing_bgs)
#update the map
$game_map.update
#show the load sprite
@quick_save_load = Sprite_Quick_Save_Load.new('Quicksave Loaded')
#else if there is no quicksave available
else
#show error message
error = 'Error: No quicksave available'
@quick_save_load = Sprite_Quick_Save_Load.new(error)
end
end
unless @quick_save_load.nil?
#update the sprite
@quick_save_load.update
#dispose the sprite if needed
if @quick_save_load.count == 100
@quick_save_load.dispose
@quick_save_load = nil
end
end
end
if $game_temp.pze_loading
@spriteset.dispose
@spriteset = Spriteset_Map.new
$game_temp.pze_loading = false
end
end
def transfer_player
max_ztitle_transfer_later
#autosave coordinates if enabled
if $game_system.pze_autosave
$game_temp.autosave_coordinates = [$game_map.map_id,
$game_player.x, $game_player.y, $game_player.direction]
end
end
end
#===============================================================================
# Scene_Save
#===============================================================================
class Scene_Save < Scene_File
alias max_ztitle_save_later write_save_data unless $@
def write_save_data(*args)
if PZE::ZELDASAVE && !$scene.is_a?(Scene_Title) &&
!$game_temp.pze_quicksaving
#save current data
map = $game_map.map_id
x, y, d = $game_player.x, $game_player.y, $game_player.direction
map_x, map_y = $game_map.display_x, $game_map.display_y
#overwrite current data
$game_map.map_id = $game_temp.autosave_coordinates[0]
$game_player.moveto($game_temp.autosave_coordinates[1],
$game_temp.autosave_coordinates[2])
case $game_temp.autosave_coordinates[3]
when 2 # down
$game_player.turn_down
when 4 # left
$game_player.turn_left
when 6 # right
$game_player.turn_right
when 8 # up
$game_player.turn_up
end
#end the running interpreter
$game_system.map_interpreter.command_end
#write the save data
max_ztitle_save_later(*args)
#reload the old data
$game_map.map_id = map
$game_player.moveto(x,y)
$game_map.display_x, $game_map.display_y = map_x, map_y
case d
when 2 # down
$game_player.turn_down
when 4 # left
$game_player.turn_left
when 6 # right
$game_player.turn_right
when 8 # up
$game_player.turn_up
end
else
max_ztitle_save_later(*args)
end
end
end
#===============================================================================
# Scene_Gameover
#===============================================================================
class Scene_Gameover
alias max_ztitle_update_later update unless $@
def update
if PZE::GAMEOVER
unless @command.nil?
@command.update
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
#deflag gameover
$game_temp.gameover = false
#recover the player
$game_party.actors[0].recover_all
#set player hp to gameover hp
$game_party.actors[0].hp = $game_system.pze_gameover_hp
#refresh the player
$game_player.refresh
case @command.index
when 0 #save and continue
#save, load then go to map
PZE.save
PZE.load
return_to_autosave_position
when 1 #save and quit
#save and go to title
PZE.save
$scene = Scene_Cutscene.new (SCENE::MM_MAIN) ##
when 2 #continue without saving
return_to_autosave_position
end
#fade out
8.times do
Graphics.update
@command.opacity -= 32
end
@command.dispose
end
else
if Input.trigger?(Input::C) || Input.trigger?(Input::B)
$game_system.se_play($data_system.decision_se)
#create the command window
text = ['Save and Continue','Save and Quit','Continue without saving']
@command = Window_Command.new(260, text)
unless PZE::GAMEOVER_WINDOWSKIN == ''
@command.windowskin = RPG::Cache.windowskin(PZE::GAMEOVER_WINDOWSKIN)
end
@command.x, @command.y = 190, 288
@command.opacity = 0
#fade in
8.times do
Graphics.update
@command.opacity += 32
end
end
end
else
max_ztitle_update_later
end
end
def return_to_autosave_position
#reset coordinates if zeldasave
if PZE::ZELDASAVE
if $game_map.map_id != $game_temp.autosave_coordinates[0]
$game_map.setup_map($game_temp.autosave_coordinates[0])
end
$game_player.moveto($game_temp.autosave_coordinates[1],
$game_temp.autosave_coordinates[2])
case $game_temp.autosave_coordinates[3]
when 2 # down
$game_player.turn_down
when 4 # left
$game_player.turn_left
when 6 # right
$game_player.turn_right
when 8 # up
$game_player.turn_up
end
#end the interpreter
$game_system.map_interpreter.command_end
end
# XAS Compatability: turn off the gameover switch
unless XAS_BA.nil?
$game_switches[XAS_BA::GAMEOVER_SWITCH_ID] = false
end
#reset to scene map
$scene = Scene_Map.new
end
private :return_to_autosave_position
end
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.