Advertisement
roninator2

Checkpoint Save

Dec 16th, 2024
25
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.61 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Checkpoint save                        ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║                                               ╠════════════════════╣
  7. # ║   Return actor to checkpoint                  ║    23 May 2023     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║        Set a checkpoint system                                     ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║                                                                    ║
  20. # ║   Specify the default data                                         ║
  21. # ║    X = map x position to return                                    ║
  22. # ║    Y = map y position to return                                    ║
  23. # ║    Map = Map id for the map to return                              ║
  24. # ║    Direction = directional facing for the actor (2,4,6,8)          ║
  25. # ║                                                                    ║
  26. # ║   Use script command to change checkpoint                          ║
  27. # ║     set_new_checkpoint(map,x,y,d)                                  ║
  28. # ║       for example                                                  ║
  29. # ║     set_new_checkpoint(5,7,2,4)                                    ║
  30. # ║                                                                    ║
  31. # ╚════════════════════════════════════════════════════════════════════╝
  32. # ╔════════════════════════════════════════════════════════════════════╗
  33. # ║ Updates:                                                           ║
  34. # ║ 1.00 - 23 May 2023 - Script finished                               ║
  35. # ║                                                                    ║
  36. # ╚════════════════════════════════════════════════════════════════════╝
  37. # ╔════════════════════════════════════════════════════════════════════╗
  38. # ║ Credits and Thanks:                                                ║
  39. # ║   Roninator2                                                       ║
  40. # ║                                                                    ║
  41. # ╚════════════════════════════════════════════════════════════════════╝
  42. # ╔════════════════════════════════════════════════════════════════════╗
  43. # ║ Terms of use:                                                      ║
  44. # ║  Follow the original Authors terms of use where applicable         ║
  45. # ║    - When not made by me (Roninator2)                              ║
  46. # ║  Free for all uses in RPG Maker except nudity                      ║
  47. # ║  Anyone using this script in their project before these terms      ║
  48. # ║  were changed are allowed to use this script even if it conflicts  ║
  49. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  50. # ║  No part of this code can be used with AI programs or tools        ║
  51. # ║  Credit must be given                                              ║
  52. # ╚════════════════════════════════════════════════════════════════════╝
  53.  
  54. #==============================================================================
  55. # ** CheckPoint Save Variable
  56. #==============================================================================
  57. module R2_Checkpoint_Save
  58.   # set default save checkpoint
  59.   Default = [5, 5, 5, 2] # map id, x, y, direction (2, 4, 6, 8)
  60. end
  61.  
  62. # ╔════════════════════════════════════════════════════════════════════╗
  63. # ║                      End of editable region                        ║
  64. # ╚════════════════════════════════════════════════════════════════════╝
  65.  
  66. #==============================================================================
  67. # ** Game_Interpreter
  68. #==============================================================================
  69. class Game_Interpreter
  70.   def set_new_checkpoint(map, x, y, d)
  71.     $game_party.save_new_checkpoint(map,x,y,d)
  72.   end
  73. end
  74.  
  75. #==============================================================================
  76. # ** Game_Party
  77. #==============================================================================
  78. class Game_Party
  79.   attr_accessor :scp
  80.   #--------------------------------------------------------------------------
  81.   # * Object Initialization
  82.   #--------------------------------------------------------------------------
  83.   alias r2_init_checkpoint_save initialize
  84.   def initialize
  85.     r2_init_checkpoint_save
  86.     @scp = R2_Checkpoint_Save::Default
  87.   end
  88.   #--------------------------------------------------------------------------
  89.   # * Defeat Processing
  90.   #--------------------------------------------------------------------------
  91.   def save_new_checkpoint(map, x, y, d)
  92.     @scp = [map, x, y, d]
  93.   end
  94. end
  95.  
  96. #==============================================================================
  97. # ** BattleManager
  98. #==============================================================================
  99. module BattleManager
  100.   #--------------------------------------------------------------------------
  101.   # * Defeat Processing
  102.   #--------------------------------------------------------------------------
  103.   def self.process_defeat
  104.     $game_message.add(sprintf(Vocab::Defeat, $game_party.name))
  105.     wait_for_message
  106.     revive_battle_members
  107.     SceneManager.return
  108.     battle_end(2)
  109.     $game_player.reserve_transfer(*$game_party.scp)
  110.     $game_player.perform_transfer
  111.     replay_bgm_and_bgs
  112.     return true
  113.   end
  114. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement