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
Chodzi o to, Ĺźeby w grze byĹy te autozapisy(to juĹź mam) i Ĺźebym np. po Ĺmierci mĂłgĹ to wywoĹaÄ, Ĺźeby gracz miaĹ opcjÄ powrotu do checkpointa. ^^
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
Sabikku - ...aĹź szkoda gadaÄ.
Ja wiem jak siÄ tego uĹźywa...nie znaĹem tylko tego kodu z autoload.
Tak czy inaczej dziÄki, temat moĹźna zamknÄ Ä >_>
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