Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: Ayene
Wto 22 Cze, 2010 14:21
Game Over
Autor Wiadomość
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Sob 19 Cze, 2010 15:37
Game Over
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.
 
 
CreeperCrisis 



Preferowany:
RPG Maker VXAce

Pomógł: 32 razy
Dołączył: 01 Maj 2010
Posty: 395
Wysłany: Sob 19 Cze, 2010 19:16
Tu masz skrypt na quick save :-)
Spoiler:

Kod:
#===============================================================================
#--------# 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 command_quickload
    $game_system.quickload
  end
 
end

class Window_Quicksave < Window_Base
 
  def initialize(type)
    super(0, -10, 640, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 0
    @type = type
    refresh
  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

  def read_save_data(file)
    characters = Marshal.load(file)
    Graphics.frame_count = Marshal.load(file)
    $game_system        = Marshal.load(file)
    $game_switches      = Marshal.load(file)
    $game_variables     = Marshal.load(file)
    $game_self_switches = Marshal.load(file)
    $game_screen        = Marshal.load(file)
    $game_actors        = Marshal.load(file)
    $game_party         = Marshal.load(file)
    $game_troop         = Marshal.load(file)
    $game_map           = Marshal.load(file)
    $game_player        = Marshal.load(file)
    if $game_system.magic_number != $data_system.magic_number
      $game_map.setup($game_map.map_id)
      $game_player.center($game_player.x, $game_player.y)
    end
    $game_party.refresh
  end
 
end
#==============================================================================



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

 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Nie 20 Cze, 2010 07:52
Napiszę jeszcze raz żeby 'migało':
---------------------
Dzięki, wypróbuję ^^

EDIT: można wywołać ten checkpoint podobnym skryptem?
W sensie, czy można w trakcie gry przesunąć gracza do ostatniego checkpointa.
 
 
CreeperCrisis 



Preferowany:
RPG Maker VXAce

Pomógł: 32 razy
Dołączył: 01 Maj 2010
Posty: 395
Wysłany: Nie 20 Cze, 2010 09:18
To ja już chyba nie wiem. Spróbuję :-)
jest takie coś. Ten quick save można zapisać przyciskiem "F5"
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Nie 20 Cze, 2010 09:22
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 




Nagrody:
UF i UFT2 Winner

Ranga RM:
4 gry

Pomógł: 73 razy
Dołączył: 04 Kwi 2010
Posty: 428
Wysłany: Pon 21 Cze, 2010 20:04
Mówisz o $game_system.quickload ? Czy chodzi o jakiś zupełnie nowy skrypt? Staraj się konkretniej tłumaczyć...
 
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Pon 21 Cze, 2010 20:56
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 




Nagrody:
UF i UFT2 Winner

Ranga RM:
4 gry

Pomógł: 73 razy
Dołączył: 04 Kwi 2010
Posty: 428
Wysłany: Pon 21 Cze, 2010 21:19
To może ja też napiszę konkretniej:
Spoiler:


Nie denerwuj się, przecież chcę ci pomóc ;-) .
Ostatnio zmieniony przez Nhadala Wto 22 Cze, 2010 19:38, w całości zmieniany 1 raz  
 
 
 
Yoroiookami 

Omnomnomnom



Preferowany:
RPG Maker XP

Ranga RM:
3 gry

Pomógł: 57 razy
Dołączył: 24 Lut 2010
Posty: 751
Wysłany: Pon 21 Cze, 2010 21:56
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ąć >_>
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
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
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene