Advertisement
mej71

PokemonSave

Oct 2nd, 2014
2,095
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.77 KB | None | 0 0
  1. class PokemonSaveScene
  2.   def pbStartScreen
  3.     @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  4.     @viewport.z=99999
  5.     @sprites={}
  6.     totalsec = Graphics.frame_count / Graphics.frame_rate
  7.     hour = totalsec / 60 / 60
  8.     min = totalsec / 60 % 60
  9.     mapname=$game_map.name
  10.     textColor=["0070F8,78B8E8","E82010,F8A8B8","0070F8,78B8E8"][$Trainer.gender]
  11.     loctext=_INTL("<ac><c2=06644bd2>{1}</c2></ac>",mapname)
  12.     loctext+=_INTL("Player<r><c3={1}>{2}</c3><br>",textColor,$Trainer.name)
  13.     loctext+=_ISPRINTF("Time<r><c3={1:s}>{2:02d}:{3:02d}</c3><br>",textColor,hour,min)
  14.     loctext+=_INTL("Badges<r><c3={1}>{2}</c3><br>",textColor,$Trainer.numbadges)
  15.     if $Trainer.pokedex
  16.       loctext+=_INTL("Pokédex<r><c3={1}>{2}/{3}</c3><br>",textColor,$Trainer.pokedexOwned,$Trainer.pokedexSeen)
  17.     end
  18.     if $game_variables[99]>1
  19.       loctext+=_INTL("Save File:<r><c3={1}>{2}</c3><br>",textColor,$game_variables[99])
  20.     else
  21.       loctext+=_INTL("Save File:<r><c3={1}>1</c3><br>",textColor)
  22.     end  
  23.     @sprites["locwindow"]=Window_AdvancedTextPokemon.new(loctext)
  24.     @sprites["locwindow"].viewport=@viewport
  25.     @sprites["locwindow"].x=0
  26.     @sprites["locwindow"].y=0
  27.     @sprites["locwindow"].width=228 if @sprites["locwindow"].width<228
  28.     @sprites["locwindow"].visible=true
  29.   end
  30.  
  31.   def pbEndScreen
  32.     pbDisposeSpriteHash(@sprites)
  33.     @viewport.dispose
  34.   end
  35. end
  36.  
  37.  
  38.  
  39. def pbEmergencySave
  40.   oldscene=$scene
  41.   $scene=nil
  42.   Kernel.pbMessage(_INTL("The script is taking too long.  The game will restart."))
  43.   return if !$Trainer
  44.   if $game_variables[99]>1
  45.       savename="Game_"+$game_variables[99].to_s+".rxdata"
  46.   else
  47.       savename="Game.rxdata"
  48.   end
  49.     if safeExists?(RTP.getSaveFileName(savename))
  50.       File.open(RTP.getSaveFileName("Game.rxdata"),  'rb') {|r|
  51.          File.open(RTP.getSaveFileName("Game.rxdata.bak"), 'wb') {|w|
  52.             while s = r.read(4096)
  53.               w.write s
  54.             end
  55.          }
  56.       }
  57.   end  
  58.   if pbSave
  59.     Kernel.pbMessage(_INTL("\\se[]The game was saved.\\se[save]\\wtnp[30]"))
  60.   else
  61.     Kernel.pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
  62.   end
  63.   $scene=oldscene
  64. end
  65.  
  66. def pbAutoSave(safesave=false)
  67.   if $game_variables[99]>1
  68.       savename="Game_"+$game_variables[99].to_s+"_autosave.rxdata"
  69.   else
  70.       savename="Game_autosave.rxdata"
  71.   end
  72. begin
  73.       File.open(RTP.getSaveFileName(savename),"wb"){|f|
  74.       Marshal.dump($Trainer,f)
  75.       Marshal.dump(Graphics.frame_count,f)
  76.       if $data_system.respond_to?("magic_number")
  77.         $game_system.magic_number = $data_system.magic_number
  78.       else
  79.         $game_system.magic_number = $data_system.version_id
  80.       end
  81.       $game_system.save_count+=1
  82.       Marshal.dump($game_system,f)
  83.       Marshal.dump($PokemonSystem,f)
  84.       Marshal.dump($game_map.map_id,f)
  85.       Marshal.dump($game_switches,f)
  86.       Marshal.dump($game_variables,f)
  87.       Marshal.dump($game_self_switches,f)
  88.       Marshal.dump($game_screen,f)
  89.       Marshal.dump($MapFactory,f)
  90.       Marshal.dump($game_player,f)
  91.       $PokemonGlobal.safesave=safesave
  92.       Marshal.dump($PokemonGlobal,f)
  93.       Marshal.dump($PokemonMap,f)
  94.       Marshal.dump($PokemonBag,f)
  95.       Marshal.dump($PokemonStorage,f)
  96.     }
  97.     Graphics.frame_reset
  98.    rescue
  99.     return false
  100.   end
  101.   pbStoredLastPlayed($game_variables[99],true)
  102.   return true
  103. end
  104.  
  105. def pbSave(safesave=false)
  106.   $Trainer.metaID=$PokemonGlobal.playerID
  107.   if $game_variables[99]>1
  108.       savename="Game_"+$game_variables[99].to_s+".rxdata"
  109.   else
  110.       savename="Game.rxdata"
  111.   end
  112.   begin  
  113.       File.open(RTP.getSaveFileName(savename),"wb"){|f|
  114.        Marshal.dump($Trainer,f)
  115.        Marshal.dump(Graphics.frame_count,f)
  116.        if $data_system.respond_to?("magic_number")
  117.          $game_system.magic_number = $data_system.magic_number
  118.        else
  119.          $game_system.magic_number = $data_system.version_id
  120.        end
  121.        $game_system.save_count+=1
  122.        Marshal.dump($game_system,f)
  123.        Marshal.dump($PokemonSystem,f)
  124.        Marshal.dump($game_map.map_id,f)
  125.        Marshal.dump($game_switches,f)
  126.        Marshal.dump($game_variables,f)
  127.        Marshal.dump($game_self_switches,f)
  128.        Marshal.dump($game_screen,f)
  129.        Marshal.dump($MapFactory,f)
  130.        Marshal.dump($game_player,f)
  131.        $PokemonGlobal.safesave=safesave
  132.        Marshal.dump($PokemonGlobal,f)
  133.        Marshal.dump($PokemonMap,f)
  134.        Marshal.dump($PokemonBag,f)
  135.        Marshal.dump($PokemonStorage,f)
  136.      }
  137.      Graphics.frame_reset
  138.     rescue
  139.     return false
  140.   end
  141.   pbStoredLastPlayed($game_variables[99],nil)
  142.   return true
  143. end
  144.  
  145.  
  146.  
  147. class PokemonSave
  148.   def initialize(scene)
  149.     @scene=scene
  150.   end
  151.  
  152.   def pbDisplay(text,brief=false)
  153.     @scene.pbDisplay(text,brief)
  154.   end
  155.  
  156.   def pbDisplayPaused(text)
  157.     @scene.pbDisplayPaused(text)
  158.   end
  159.  
  160.   def pbConfirm(text)
  161.     return @scene.pbConfirm(text)
  162.   end
  163.  
  164.   def pbSaveScreen
  165.     ret=false
  166.     @scene.pbStartScreen
  167.     if Kernel.pbConfirmMessage(_INTL("Would you like to save the game?"))
  168.       if $game_variables[99]>1
  169.         savename="Game_"+$game_variables[99].to_s+".rxdata"
  170.       else
  171.         savename="Game.rxdata"
  172.       end
  173.       if safeExists?(RTP.getSaveFileName(savename))
  174.         confirm=""
  175.           if !Kernel.pbConfirmMessage(
  176.              _INTL("There is already a saved file.  Is it OK to overwrite it?"))
  177.             @scene.pbEndScreen
  178.             return false
  179.         end
  180.       end
  181.       $PokemonTemp.begunNewGame=false
  182.       if pbSave
  183.         Kernel.pbMessage(_INTL("\\se[]{1} saved the game.\\se[save]\\wtnp[30]",$Trainer.name))
  184.         ret=true
  185.       else
  186.         Kernel.pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
  187.         ret=false
  188.       end
  189.     end
  190.     @scene.pbEndScreen
  191.     return ret
  192.   end
  193. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement