Potrzebowałbym, żeby po śmierci (Game Over) pojawiała się opcja Menu, albo Kontynuuj(Przenosi do ostatniego zapisu/checkpointa). Wiem, że jest skrypt który wyświetla opcję Menu i Wczytaj, ale ja potrzebuję dokładnie tego co powyżej, a sam nie potrafię przerobić. >_>
Za pomoc dziękuję z góry.
#===============================================================================
#--------# Quicksave Script #---------------------------------------------------
#--------# version 1.0 #---------------------------------------------------
#--------# by Thieffer #---------------------------------------------------
#--------# 25.08.2009 #---------------------------------------------------
#===============================================================================
#===============================================================================
#--------# INFO #---------------------------------------------------
#===============================================================================
# Skrypt umożliwia szybkie wczytywanie i zapisywanie oraz autozapis stanu gry.
#
# Aby użyć szybkiego zapisu wystarczy wcisnšć odpowiedni klawisz (patrz: CONFIG)
# będšc na mapie. Opcjonalnie jest to klawisz F5.
#
# Szybkie wczytanie dostępne jest z poziomu Ekranu Tytułowego. Jednak, aby
# działało poprawnie musisz skaskować linijkę:
# @command_window = Window_Command.new(192, [s1, s2, s3])
# a w jej miejsce wpisać:
# set_title_commands
#
# Aby użyć autozapisu wywołaj komendę:
# $game_system.autosave
#
# W dowolnym momencie gry możesz użyć opcji szybkiego wczytania, wywołaj komendę:
# $game_system.quickload
#===============================================================================
Działa :?: Jak nie to sorka, ponieważ nie mam jak przetestować :-) nie mam RMXP :-)
#--------# CONFIG #---------------------------------------------------
#===============================================================================
Quicksave = 'Data/Quicksave' # �ieżka oraz nazwa pliku
Quicksave_Key = Input::F5 # przycisk szybkiego zapisu
Quicksave_Text = 'Dokonano zapisu' # tekst szybkiego zapisu
Quicksave_Text_Color = 0 # kolor tekstu (od 0 do 7), zdefiniowany w Window_Base
Quicksave_Text_Size = 19 # rozmiar tekstu
Quicksave_Text_Switch = true # włšcznik/wyłšcznik tekstu (true/false)
Autosave_Text = 'Dokonano autozapisu' # tekst automatycznego zapisu
Autosave_Text_Color = 6 # kolor tekstu (od 0 do 7), zdefiniowany w Window_Base
Autosave_Text_Size = 19 # rozmiar tekstu
Autosave_Text_Switch = true # włšcznik/wyłšcznik tekstu (true/false)
#===============================================================================
class Scene_Title
def set_title_commands
commands = ["Nowa Gra", "Wczytaj", "Szybkie Wczytanie", "Wyj�ie"]
@command_window = Window_Command.new(210, commands)
if not FileTest.exist?(Quicksave)
@command_window.disable_item(2)
end
end
def update
@command_window.update
if Input.trigger?(Input::C)
case @command_window.index
when 0
command_new_game
when 1
command_continue
when 2
command_quickload
when 3
command_shutdown
end
end
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
case @type
when 'quick'
text = Quicksave_Text
color_number = Quicksave_Text_Color
size = Quicksave_Text_Size
self.visible = false if not Quicksave_Text_Switch
when 'auto'
text = Autosave_Text
color_number = Autosave_Text_Color
size = Autosave_Text_Size
self.visible = false if not Autosave_Text_Switch
end
self.contents.font.color = text_color(color_number)
self.contents.font.size = size
cx = contents.text_size(text).width
self.contents.draw_text(304-cx/2, 0, cx, 32, text, 1)
end
end
class Scene_Map
alias quicksave_script_main main
def main
@wait_count = 0
quicksave_script_main
end
alias quicksave_script_update update
def update
if @wait_count > 0
@wait_count -= 1
end
if Input.press?(Quicksave_Key) and @wait_count == 0
$game_system.quicksave
$game_system.se_play($data_system.save_se)
if @quicksave_text != nil
@quicksave_text.dispose
end
@quicksave_text = Window_Quicksave.new('quick')
@wait_count = 20
end
if @quicksave_text != nil
@quicksave_text.update
end
if @wait_count == 0 and @quicksave_text != nil
@quicksave_text.contents_opacity -= 10
if @quicksave_text.contents_opacity <= 0
@quicksave_text = nil
end
@wait_count = 5
end
quicksave_script_update
if not $scene.is_a?(Scene_Map) and @quicksave_text != nil
@quicksave_text.dispose
end
end
def autosave
$game_system.se_play($data_system.save_se)
if @quicksave_text != nil
@quicksave_text.dispose
end
@quicksave_text = Window_Quicksave.new('auto')
end
end
class Game_System
def autosave
quicksave
if $scene.is_a?(Scene_Map)
$scene.autosave
end
end
def quicksave
file = File.open(Quicksave, 'wb')
characters = []
for i in 0...$game_party.actors.size
actor = $game_party.actors[i]
characters.push([actor.character_name, actor.character_hue])
end
Marshal.dump(characters, file)
Marshal.dump(Graphics.frame_count, file)
$game_system.save_count += 1
$game_system.magic_number = $data_system.magic_number
Marshal.dump($game_system, file)
Marshal.dump($game_switches, file)
Marshal.dump($game_variables, file)
Marshal.dump($game_self_switches, file)
Marshal.dump($game_screen, file)
Marshal.dump($game_actors, file)
Marshal.dump($game_party, file)
Marshal.dump($game_troop, file)
Marshal.dump($game_map, file)
Marshal.dump($game_player, file)
file.close
end
def quickload
if File.exist?(Quicksave)
file = File.open(Quicksave)
read_save_data(file)
file.close
$game_system.bgm_play($game_system.playing_bgm)
$game_system.bgs_play($game_system.playing_bgs)
$game_map.update
$game_system.se_play($data_system.decision_se)
$game_temp = Game_Temp.new
$scene = Scene_Map.new
else
$game_system.se_play($data_system.buzzer_se)
end
end
end
#==============================================================================
checkpoint możesz zrobić, gdy wywołasz:
Kod:
$game_system.autosave
a tu skrypt z Game Over:
Spoiler:
Kod:
class Scene_Gameover
def main
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.gameover($data_system.gameover_name)
s1 = "Kontynuuj"
s2 = "Koniec"
@command_window = Window_Command.new(192, [s1, s2])
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
$game_system.bgm_play(nil)
$game_system.bgs_play(nil)
$game_system.me_play($data_system.gameover_me)
Graphics.transition(120)
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@sprite.bitmap.dispose
@sprite.dispose
@command_window.dispose
Graphics.transition(40)
Graphics.freeze
if $BTEST
$scene = nil
end
end
def update
@command_window.update
if Input.trigger?(Input::C)
case @command_window.index
when 0
command_menu
when 1
command_end
end
end
def command_menu
$game_system.quickload
end
def command_end
$game_system.se_play($data_system.decision_se)
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
$scene = nil
end
end
end
Sabikku - a skąd mam kurde wiedzieć? Nie znam się na Ruby i nigdy nie bawiłem się skryptami, wstawiam gotowce w 0% obrabiane przeze mnie(chyba że na podstawie instrukcji). Nie wiem na czym polega ten skrypt, chcę po prostu użyć skryptu wyżej (checkpoint), żeby ten drugi skrypt którego potrzebuję(ten quickload czy jak go tam nazwałeś) przenosił gracza do tego checkpointu w dowolnym momencie gry. Po prostu chcę ustawić żeby w pewnym momencie się wracał do tego checkpointa, żeby był wczytywany, a nie teleportowany.
Wyjaśniłem dokładniej? Czy wolisz wypracowanie
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum