Advertisement
roninator2

Reset Self Switch on map

Dec 10th, 2024
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 8.32 KB | None | 0 0
  1. # ╔═══════════════════════════════════════════════╦════════════════════╗
  2. # ║ Title: Reset Self Switch for Events           ║  Version: 1.00     ║
  3. # ║ Author: Roninator2                            ║                    ║
  4. # ╠═══════════════════════════════════════════════╬════════════════════╣
  5. # ║ Function:                                     ║   Date Created     ║
  6. # ║   Reset Self switch on events                 ╠════════════════════╣
  7. # ║   to have events come back                    ║    02 Jun 2023     ║
  8. # ╚═══════════════════════════════════════════════╩════════════════════╝
  9. # ╔════════════════════════════════════════════════════════════════════╗
  10. # ║ Requires: nil                                                      ║
  11. # ║                                                                    ║
  12. # ╚════════════════════════════════════════════════════════════════════╝
  13. # ╔════════════════════════════════════════════════════════════════════╗
  14. # ║ Brief Description:                                                 ║
  15. # ║       Remove event self switch                                     ║
  16. # ╚════════════════════════════════════════════════════════════════════╝
  17. # ╔════════════════════════════════════════════════════════════════════╗
  18. # ║ Instructions:                                                      ║
  19. # ║   Change the Text used to stop resetting                           ║
  20. # ║     Text = "Your text"                                             ║
  21. # ║                                                                    ║
  22. # ║   Place a comment on the event page when the event is              ║
  23. # ║   not to reset. Must be on the active event page.                  ║
  24. # ║   For example. first page of event is an enemy                     ║
  25. # ║     Second page is self switch A - when enemy defeated             ║
  26. # ║     Second page is treasure or something else                      ║
  27. # ║     Third page is self switch B - when finished                    ║
  28. # ║     Third page has the comment listed below                        ║
  29. # ║                                                                    ║
  30. # ║     If the event is currently on the third page                    ║
  31. # ║     with the comment below, it will not reset                      ║
  32. # ║     but it if is on the second page, it will reset                 ║
  33. # ║     if the third page does not have the comment                    ║
  34. # ║     it will reset.                                                 ║
  35. # ║                                                                    ║
  36. # ║   Some coded copied from CSCA Dungeon Tools script                 ║
  37. # ║                                                                    ║
  38. # ║   Put in a script call on the event that will transfer             ║
  39. # ║   the player before the transfer command.                          ║
  40. # ║     script: map_reset                                              ║
  41. # ║                                                                    ║
  42. # ╚════════════════════════════════════════════════════════════════════╝
  43. # ╔════════════════════════════════════════════════════════════════════╗
  44. # ║ Updates:                                                           ║
  45. # ║ 1.00 - 02 Jun 2023 - Script finished                               ║
  46. # ║                                                                    ║
  47. # ╚════════════════════════════════════════════════════════════════════╝
  48. # ╔════════════════════════════════════════════════════════════════════╗
  49. # ║ Credits and Thanks:                                                ║
  50. # ║   Roninator2                                                       ║
  51. # ║                                                                    ║
  52. # ╚════════════════════════════════════════════════════════════════════╝
  53. # ╔════════════════════════════════════════════════════════════════════╗
  54. # ║ Terms of use:                                                      ║
  55. # ║  Follow the original Authors terms of use where applicable         ║
  56. # ║    - When not made by me (Roninator2)                              ║
  57. # ║  Free for all uses in RPG Maker except nudity                      ║
  58. # ║  Anyone using this script in their project before these terms      ║
  59. # ║  were changed are allowed to use this script even if it conflicts  ║
  60. # ║  with these new terms. New terms effective 03 Apr 2024             ║
  61. # ║  No part of this code can be used with AI programs or tools        ║
  62. # ║  Credit must be given                                              ║
  63. # ╚════════════════════════════════════════════════════════════════════╝
  64.  
  65. #==============================================================================
  66. # Configure Message
  67. #==============================================================================
  68. module R2_Skip_Event
  69.   Text = "SKIP_EVENT"
  70.  end
  71. #==============================================================================
  72. # End Configuration
  73. #==============================================================================
  74.  
  75.  
  76. #==============================================================================
  77. # Game_Interpreter
  78. #==============================================================================
  79. class Game_Interpreter
  80.   def map_reset
  81.     if SceneManager.scene_is?(Scene_Map)
  82.       $game_map.map_reset
  83.     end
  84.   end
  85. end
  86.  
  87. #==============================================================================
  88. # Game_Map
  89. #==============================================================================
  90. class Game_Map
  91.   def map_reset
  92.     event_amount = events.size
  93.     for i in 1..event_amount
  94.       next if event_skip(i)
  95.       switches = ["A","B","C","D"]
  96.       for j in switches
  97.         key = [@map_id, i, j]
  98.         $game_self_switches[key] = false
  99.       end
  100.     end
  101.   end
  102.   def event_skip(id)
  103.     events.each do |i, event|
  104.       next if event.nil?
  105.       if event.id == id
  106.         event.list.each do |comm|
  107.           if comm.code == 108 && comm.parameters == [R2_Skip_Event::Text]
  108.             return true
  109.           end
  110.         end
  111.       end
  112.     end
  113.     return false
  114.   end
  115. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement