M3rein

Untitled

Jul 20th, 2019
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.51 KB | None | 0 0
  1. def pbSave(safesave=false)
  2. $Trainer.metaID=$PokemonGlobal.playerID
  3. begin
  4. File.open(RTP.getSaveFileName("Game_#{$game_temp.save_slot}.rxdata"),"wb"){|f|
  5. Marshal.dump($Trainer,f)
  6. Marshal.dump(Graphics.frame_count,f)
  7. if $data_system.respond_to?("magic_number")
  8. $game_system.magic_number = $data_system.magic_number
  9. else
  10. $game_system.magic_number = $data_system.version_id
  11. end
  12. $game_system.save_count+=1
  13. Marshal.dump($game_system,f)
  14. Marshal.dump($PokemonSystem,f)
  15. Marshal.dump($game_map.map_id,f)
  16. Marshal.dump($game_switches,f)
  17. Marshal.dump($game_variables,f)
  18. Marshal.dump($game_self_switches,f)
  19. Marshal.dump($game_screen,f)
  20. Marshal.dump($MapFactory,f)
  21. Marshal.dump($game_player,f)
  22. $PokemonGlobal.safesave=safesave
  23. Marshal.dump($PokemonGlobal,f)
  24. Marshal.dump($PokemonMap,f)
  25. Marshal.dump($PokemonBag,f)
  26. Marshal.dump($PokemonStorage,f)
  27. }
  28. Graphics.frame_reset
  29. rescue
  30. return false
  31. end
  32. return true
  33. end
  34.  
  35. def pbEmergencySave
  36. oldscene=$scene
  37. $scene=nil
  38. Kernel.pbMessage(_INTL("The script is taking too long. The game will restart."))
  39. return if !$Trainer
  40. if safeExists?(RTP.getSaveFileName("Game_#{$game_temp.save_slot}.rxdata"))
  41. File.open(RTP.getSaveFileName("Game_#{$game_temp.save_slot}.rxdata"), 'rb') {|r|
  42. File.open(RTP.getSaveFileName("Game_#{$game_temp.save_slot}.rxdata.bak"), 'wb') {|w|
  43. while s = r.read(4096)
  44. w.write s
  45. end
  46. }
  47. }
  48. end
  49. if pbSave
  50. Kernel.pbMessage(_INTL("\\se[]The game was saved.\\me[GUI save game]\\wtnp[30]"))
  51. else
  52. Kernel.pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
  53. end
  54. $scene=oldscene
  55. end
  56.  
  57.  
  58.  
  59. class PokemonSave_Scene
  60. def pbStartScreen
  61. @viewport=Viewport.new(0,0,Graphics.width,Graphics.height)
  62. @viewport.z=99999
  63. @sprites={}
  64. totalsec = Graphics.frame_count / Graphics.frame_rate
  65. hour = totalsec / 60 / 60
  66. min = totalsec / 60 % 60
  67. mapname=$game_map.name
  68. textColor=["0070F8,78B8E8","E82010,F8A8B8","0070F8,78B8E8"][$Trainer.gender]
  69. loctext=_INTL("<ac><c2=06644bd2>{1}</c2></ac>",mapname)
  70. loctext+=_INTL("Player<r><c3={1}>{2}</c3><br>",textColor,$Trainer.name)
  71. loctext+=_ISPRINTF("Time<r><c3={1:s}>{2:02d}:{3:02d}</c3><br>",textColor,hour,min)
  72. loctext+=_INTL("Badges<r><c3={1}>{2}</c3><br>",textColor,$Trainer.numbadges)
  73. if $Trainer.pokedex
  74. loctext+=_INTL("Pokédex<r><c3={1}>{2}/{3}</c3>",textColor,$Trainer.pokedexOwned,$Trainer.pokedexSeen)
  75. end
  76. @sprites["locwindow"]=Window_AdvancedTextPokemon.new(loctext)
  77. @sprites["locwindow"].viewport=@viewport
  78. @sprites["locwindow"].x=0
  79. @sprites["locwindow"].y=0
  80. @sprites["locwindow"].width=228 if @sprites["locwindow"].width<228
  81. @sprites["locwindow"].visible=true
  82. end
  83.  
  84. def pbEndScreen
  85. pbDisposeSpriteHash(@sprites)
  86. @viewport.dispose
  87. end
  88. end
  89.  
  90.  
  91.  
  92. class PokemonSaveScreen
  93. def initialize(scene)
  94. @scene=scene
  95. end
  96.  
  97. def pbDisplay(text,brief=false)
  98. @scene.pbDisplay(text,brief)
  99. end
  100.  
  101. def pbDisplayPaused(text)
  102. @scene.pbDisplayPaused(text)
  103. end
  104.  
  105. def pbConfirm(text)
  106. return @scene.pbConfirm(text)
  107. end
  108.  
  109. def pbSaveScreen
  110. ret=false
  111. @scene.pbStartScreen
  112. if Kernel.pbConfirmMessage(_INTL("Would you like to save the game?"))
  113. if safeExists?(RTP.getSaveFileName("Game_#{$game_temp.save_slot}.rxdata"))
  114. confirm=""
  115. if $PokemonTemp.begunNewGame
  116. Kernel.pbMessage(_INTL("WARNING!"))
  117. Kernel.pbMessage(_INTL("There is a different game file that is already saved."))
  118. Kernel.pbMessage(_INTL("If you save now, the other file's adventure, including items and Pokémon, will be entirely lost."))
  119. if !Kernel.pbConfirmMessageSerious(
  120. _INTL("Are you sure you want to save now and overwrite the other save file?"))
  121. @scene.pbEndScreen
  122. return false
  123. end
  124. end
  125. end
  126. $PokemonTemp.begunNewGame=false
  127. if pbSave
  128. Kernel.pbMessage(_INTL("\\se[]{1} saved the game.\\me[GUI save game]\\wtnp[30]",$Trainer.name))
  129. ret=true
  130. else
  131. Kernel.pbMessage(_INTL("\\se[]Save failed.\\wtnp[30]"))
  132. ret=false
  133. end
  134. end
  135. @scene.pbEndScreen
  136. return ret
  137. end
  138. end
  139.  
  140.  
  141.  
  142. def pbSaveScreen
  143. scene = PokemonSave_Scene.new
  144. screen = PokemonSaveScreen.new(scene)
  145. ret = screen.pbSaveScreen
  146. return ret
  147. end
Advertisement
Add Comment
Please, Sign In to add comment