daily pastebin goal
15%
SHARE
TWEET

Extra Stats Script v4.0 (RMVX)

CompanionWulf Aug 29th, 2015 (edited) 109 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =begin
  2. ╔══════════════════════════════════════════════════════════════════════════════╗
  3. ║ Extra Stats Script                                                           ║
  4. ╟──────────────────────────────────────────────────────────────────────────────╢
  5. ║   Version       : 4.0                                                        ║
  6. ║   Author        : Companion Wulf                                             ║
  7. ║   Platform      : RMVX                                                       ║
  8. ║   Release Date  : 29 August 2015                                             ║
  9. ║   Last Update   : 10 May 2015                                                ║
  10. ║   Demo Version  : N/A                                                        ║
  11. ║   Demo Date     : Unreleased                                                 ║
  12. ╟──────────────────────────────────────────────────────────────────────────────╢
  13. ║ ◄ Websites ►                                                                 ║
  14. ╟──────────────────────────────────────────────────────────────────────────────╢
  15. ║   Website        : http://rpgmakertimes.info                                 ║
  16. ║   Main Blog      : http://blog.rpgmakertimes.info                            ║
  17. ║   Companion Blog : http://rpgmakertimes.blogspot.com                         ║
  18. ║   Otherworld     : http://projects.rpgmakertimes.info/otherworld             ║
  19. ║                                                                              ║
  20. ╠══════════════════════════════════════════════════════════════════════════════╣
  21. ║ ◄ DESCRIPTION ►                                                              ║
  22. ╟──────────────────────────────────────────────────────────────────────────────╢
  23. ║  The Extra Stats script is for keeping track of some in-game stats, ranging  ║
  24. ║  from battles to  game progress.  It evolved from a  small scriptlet to log  ║
  25. ║  the number of battles fought, won and lost, and more stats were added over  ║
  26. ║  time to become a complete script.                                           ║
  27. ║                                                                              ║
  28. ╠══════════════════════════════════════════════════════════════════════════════╣
  29. ║ ◄ KNOWN COMPATABILITY ISSUES ►                                               ║
  30. ╟──────────────────────────────────────────────────────────────────────────────╢
  31. ║  As far as I know there are no compatibility issues with this script. There  ║
  32. ║  may be some for other scripts that modify or overwrite Scene_Menu though.   ║
  33. ║                                                                              ║
  34. ╠══════════════════════════════════════════════════════════════════════════════╣
  35. ║ ◄ REQUIRED SCRIPTS ►                                                         ║
  36. ╟──────────────────────────────────────────────────────────────────────────────╢
  37. ║  The following script is required to run the Extra Stats script:             ║
  38. ║                                                                              ║
  39. ║   ● Global Colors Module (GCM)                                               ║
  40. ║                                                                              ║
  41. ╠══════════════════════════════════════════════════════════════════════════════╣
  42. ║ ◄ INSTRUCTIONS ►                                                             ║
  43. ╟──────────────────────────────────────────────────────────────────────────────╢
  44. ║  **Instructions are to follow!**                                             ║
  45. ║                                                                              ║
  46. ╟──────────────────────────────────────────────────────────────────────────────╢
  47. ║ ◄ Instruction Manual ►                                                       ║
  48. ╟──────────────────────────────────────────────────────────────────────────────╢
  49. ║  A comprehensive manual will be produced (in DOC and PDF formats) soon.      ║
  50. ║                                                                              ║
  51. ╠══════════════════════════════════════════════════════════════════════════════╣
  52. ║ ◄ EXTRA STATS SCRIPT VERSION HISTORY ►                                       ║
  53. ╟──────────────────────────────────────────────────────────────────────────────╢
  54. ║  The version history tracking will be changing to the following format:      ║
  55. ║                                                                              ║
  56. ║     Release.Updates.Developmental.Manual                                     ║
  57. ║                                                                              ║
  58. ║  Release numbers indicate public release versions.                           ║
  59. ║                                                                              ║
  60. ║  Updates refers to new  scripts/scriptlets and  new methods that  have been  ║
  61. ║  added. This includes major and minor updates.                               ║
  62. ║                                                                              ║
  63. ║  Developmental updates are for tweaks or bug fixes.                          ║
  64. ║                                                                              ║
  65. ║  Manual indicates major updates to the Extra Stats manual.                   ║
  66. ║                                                                              ║
  67. ╟──────────────────────────────────────────────────────────────────────────────╢
  68. ║ ◄ Updates Version History ►                                                  ║
  69. ╟──────────────────────────────────────────────────────────────────────────────╢
  70. ║  I didn't  keep accurate  version updates  with this script,  so I've based  ║
  71. ║  this on the information I have. After Version 2.0.0.0, I kept more regular  ║
  72. ║  records as I added things to it and made additional tweaks.                 ║
  73. ║                                                                              ║
  74. ║  I also realised  that I've never released a proper manual  for this script  ║
  75. ║  (not that it necessarily needs one,  since it's mostly plug-and-play). The  ║
  76. ║  manual is available, nevertheless, for  completeness and to explain how to  ║
  77. ║  use its settings and how to implement some of its features.                 ║
  78. ║                                                                              ║
  79. ╟──────────────────────────────────────────────────────────────────────────────╢
  80. ║ VERSION 5.0+ - Future Updates                                                ║
  81. ║   ● Add: Total Damage Inflicted  [Battle Stats]                              ║
  82. ║   ● Add: Total Damage Sustained  [Battle Stats]                              ║
  83. ║   ● Add: Total Combat Rounds     [Battle Stats]                              ║
  84. ║   ● Add: Party Members graphics  [System Stats]                              ║
  85. ║   ● Add: Total Potions Used      [System Stats]                              ║
  86. ║   ● Add: Total Money (Bought)    [System Shop]                               ║
  87. ║   ● Add: Total Money (Sold)      [System Shop]                               ║
  88. ║                                                                              ║
  89. ╟──────────────────────────────────────────────────────────────────────────────╢
  90. ║   v4.0.0.0 (29-Aug-2015)                                                     ║
  91. ║     ● Release: Version 4.0                                                   ║
  92. ╟──────────────────────────────────────────────────────────────────────────────╢
  93. ║   v3.5.17.0 (22-Aug-2015)                                                    ║
  94. ║     ● Add: Compatibility with SojaBird's Achievement script                  ║
  95. ║     ● Tweak: Section titles reflect settings in COMMAND_LIST                 ║
  96. ║     ● Tweak: Maximum secrets (configurable)                                  ║
  97. ║     ● Bug Fix: Saved stats reset upon loading save file                      ║
  98. ╟──────────────────────────────────────────────────────────────────────────────╢
  99. ║   v3.4.14.0 (10-May-2015)                                                    ║
  100. ║     ● Bug Fix: Rescue for missing or incorrect section pictures              ║
  101. ║     ● Tweak: Display currency term (from Database) rather than generic term  ║
  102. ║     ● Stats Added:                                                           ║
  103. ║       o Party Leader                                                         ║
  104. ║     ● Tweak: Remove some duplicate code                                      ║
  105. ║     ● Add: Stats section pictures                                            ║
  106. ║     ● Tweak: Renamed/reordered some sections                                 ║
  107. ║     ● Tweak: Add Shops and Party stats sections                              ║
  108. ║     ● Update: Complete rewrite to include stats menu                         ║
  109. ║     ● Update: Removed reliability on Universal Configuration Settings        ║
  110. ╟──────────────────────────────────────────────────────────────────────────────╢
  111. ║   v3.1.7.0 (13-Nov-2013)                                                     ║
  112. ║     ● Tweak: Column separator line                                           ║
  113. ╟──────────────────────────────────────────────────────────────────────────────╢
  114. ║   v3.1.6.0 (08-Nov-2013)                                                     ║
  115. ║     ● Add: Background (set in EXTRA_STATS_CONFIG Module)                     ║
  116. ╟──────────────────────────────────────────────────────────────────────────────╢
  117. ║   v3.1.5.0 (30-Sep-2013)                                                     ║
  118. ║     ● Bug Fix: Total gold spent updating twice                               ║
  119. ║     ● Add: Total gold update when gained through Change Gold event command   ║
  120. ╟──────────────────────────────────────────────────────────────────────────────╢
  121. ║   v3.1.3.0 (28-Sep-2013)                                                     ║
  122. ║     ● Stat Added: Number of shops visited                                    ║
  123. ║     ● Separated variables into single class (rather than into Game_System)   ║
  124. ║     ● Add: Universal Configuration Settings checker                          ║
  125. ║     ● Integrated old config settings into Universal Configuration Settings   ║
  126. ╟──────────────────────────────────────────────────────────────────────────────╢
  127. ║   v3.0.0.0 (30-Apr-2013)                                                     ║
  128. ║     ● Release: Version 3.0                                                   ║
  129. ╟──────────────────────────────────────────────────────────────────────────────╢
  130. ║   v2.2.12.1 (23-Apr-2013)                                                    ║
  131. ║     ● Manual: Full manual written                                            ║
  132. ║     ● Add: Exp gain from Change EXP event command                            ║
  133. ╟──────────────────────────────────────────────────────────────────────────────╢
  134. ║   v2.2.11.0 (21-Apr-2013)                                                    ║
  135. ║     ● Add: Money Spent (in shops) counter                                    ║
  136. ╟──────────────────────────────────────────────────────────────────────────────╢
  137. ║   v2.2.10.0 (20-Apr-2013)                                                    ║
  138. ║     ● Demo: Began working demo                                               ║
  139. ║     ● Bug Fix: Save Menu command index corrected                             ║
  140. ║     ● Bug Fix: Menu commands not pushing properly                            ║
  141. ║     ● Add: Dispose Extra Stats with Keypress alongside default cancel button ║
  142. ╟──────────────────────────────────────────────────────────────────────────────╢
  143. ║   v2.1.7.0 (23-Mar-2013)                                                     ║
  144. ║     ● Tweak: Extra Stats Window closed with cancel/assigned key (on map)     ║
  145. ╟──────────────────────────────────────────────────────────────────────────────╢
  146. ║   v2.1.6.0 (22-Mar-2013)                                                     ║
  147. ║     ● Bug Fix: Keypress function malfunction                                 ║
  148. ╟──────────────────────────────────────────────────────────────────────────────╢
  149. ║   v2.1.5.0 (18-Mar-2013)                                                     ║
  150. ║     ● Add: Encounter Ratio value                                             ║
  151. ╟──────────────────────────────────────────────────────────────────────────────╢
  152. ║   v2.1.4.0 (15-Mar-2013)                                                     ║
  153. ║     ● Add: Number of Party Members                                           ║
  154. ╟──────────────────────────────────────────────────────────────────────────────╢
  155. ║   v2.1.3.0 (28-Jan-2013)                                                     ║
  156. ║     ● Add: Player Coordinates                                                ║
  157. ╟──────────────────────────────────────────────────────────────────────────────╢
  158. ║   v2.1.2.0 (27-Jan-2013)                                                     ║
  159. ║     ● Add: Keypress function to display Extra Stats on map                   ║
  160. ║     ● Bug Fix: Total Gold counter                                            ║
  161. ║     ● Bug Fix: Total Exp counter                                             ║
  162. ╟──────────────────────────────────────────────────────────────────────────────╢
  163. ║   v2.0.0.0 (20-Jan-2013)                                                     ║
  164. ║     ● Release Version 2.0                                                    ║
  165. ╟──────────────────────────────────────────────────────────────────────────────╢
  166. ║   v1.2.16.0 (06-Sep-2012)                                                    ║
  167. ║     ● Integrated with Q-Engine                                               ║
  168. ╟──────────────────────────────────────────────────────────────────────────────╢
  169. ║   v1.1.16.0 (??-???-2012)                                                    ║
  170. ║     ● Bug Fix: Total Gold counter not updating correctly                     ║
  171. ║     ● Bug Fix: Total Exp counter not updating correctly                      ║
  172. ╟──────────────────────────────────────────────────────────────────────────────╢
  173. ║   v1.1.14.0 (07-Feb-2011)                                                    ║
  174. ║     ● Stats Added:                                                           ║
  175. ║       o Total Experience Gained                                              ║
  176. ║       o Total Gold Obtained (Battles Only)                                   ║
  177. ║       o Number of Chests Opened                                              ║
  178. ║       o Number of Keys Found                                                 ║
  179. ║       o Number of Secrets Found                                              ║
  180. ║       o Number of Towns Visited                                              ║
  181. ║       o Total Number of Battles                                              ║
  182. ║     ● Changed layout and tidied code                                         ║
  183. ╟──────────────────────────────────────────────────────────────────────────────╢
  184. ║   v1.0.7.0 (15-Aug-2010)                                                     ║
  185. ║     ● Remove: Game Title/Author options in Extra Stats Window                ║
  186. ╟──────────────────────────────────────────────────────────────────────────────╢
  187. ║   v1.0.6.0 (??-???-2010)                                                     ║
  188. ║     ● Add: Map Location                                                      ║
  189. ╟──────────────────────────────────────────────────────────────────────────────╢
  190. ║   v1.0.5.0 (07-Jul-2010)                                                     ║
  191. ║     ● Add: Game Progress Counter                                             ║
  192. ║     ● Add: Total Quests/Completed                                            ║
  193. ╟──────────────────────────────────────────────────────────────────────────────╢
  194. ║   v1.0.2.0 (29-Jun-2010)                                                     ║
  195. ║     ● Add: Total Chests Opened and Total Achievements                        ║
  196. ╟──────────────────────────────────────────────────────────────────────────────╢
  197. ║   v1.0.1.0 (??-???-2010)                                                     ║
  198. ║     ● Add: Total Battles                                                     ║
  199. ╟──────────────────────────────────────────────────────────────────────────────╢
  200. ║   v1.0.0.0 (18-Jun-2010)                                                     ║
  201. ║     ● Release: Version 1.0                                                   ║
  202. ║     ● Stats Added:                                                           ║
  203. ║       o Number of Saves                                                      ║
  204. ║       o Number of Inn Stays                                                  ║
  205. ║       o Number of Steps                                                      ║
  206. ║       o Total Victories                                                      ║
  207. ║       o Total Kills                                                          ║
  208. ║       o Total Escapes                                                        ║
  209. ╟──────────────────────────────────────────────────────────────────────────────╢
  210. ║   v0.1.0.0 (15-Jun-2010)                                                     ║
  211. ║     ● Began the Extra Stats script (ported from RMXP version - now lost)     ║
  212. ║                                                                              ║
  213. ╚══════════════════════════════════════════════════════════════════════════════╝
  214. =end
  215.  
  216. #==============================================================================
  217. # Extra Stats VX Core Engine
  218. #==============================================================================
  219. $imported = {} if $imported == nil; $imported["CW-ExtraStats-VX-v4"] = true
  220.  
  221. module EXTRA_STATS_CONFIG
  222.   include CW_GLOBAL_COLORS
  223.   #────────────────────────────────────────────────────────────────────────────
  224.   # * Font Settings
  225.   #────────────────────────────────────────────────────────────────────────────
  226.   DEFAULT_FONT = "Trebuchet MS"     # Change default font
  227.   DEFAULT_SIZE = 18                 # Change default font size
  228.   DEFAULT_TITLE_FONT = "Arial"      # Change default font for titles
  229.   DEFAULT_TITLE_SIZE = 26           # Change default font size for titles
  230.  
  231.   #────────────────────────────────────────────────────────────────────────────
  232.   # * Text Colours
  233.   #────────────────────────────────────────────────────────────────────────────
  234.   DEFAULT_TEXT_COLOR = WHITE        # Default colour for text
  235.   DEFAULT_TITLE_COLOR = YELLOW      # Default colour for titles
  236.   DEFAULT_SHADOW_COLOR = YELLOW     # Set colour for draw_font_shadow method
  237.   DEFAULT_OUTLINE_COLOR = YELLOW    # Set colour for draw_outline method
  238.   LINE_COLOR = LightBlue            # Default colour for dividing underlines
  239.  
  240.   #────────────────────────────────────────────────────────────────────────────
  241.   # * Extra Stats Menu Settings *
  242.   #────────────────────────────────────────────────────────────────────────────
  243.   EXTRA_STATS = true                # Include in Status Menu on/off
  244.     STATS_MENU_TEXT = "Extra Stats" # Menu item text
  245.   EXTRA_STATS_KEYPRESS = true       # Allow/disallow access keypress from map
  246.     EXTRA_STATS_KEY = Input::Z      # Set keypress to call Extra Stats from map
  247.   COMMAND_LIST = [                  # Extra Stats section headers
  248.       "System Stats", "Battle Stats", "Personal Stats", "Progress Stats",
  249.       "Time/Date Stats", "Map Stats", "Shop Stats", "Party Stats"
  250.     ]
  251.  
  252.   #────────────────────────────────────────────────────────────────────────────
  253.   # * Additional Extra Stats Settings *
  254.   #────────────────────────────────────────────────────────────────────────────
  255.   TOTAL_SECRETS = 10                # Total number of secrets
  256.  
  257.   #────────────────────────────────────────────────────────────────────────────
  258.   # * Menu Background *
  259.   #────────────────────────────────────────────────────────────────────────────
  260.   MENU_BACKGROUND = true            # Toggle background behind menu screens
  261.     MENU_BG_GRAPHIC = ""            # Set the menu background
  262.     MENU_BG_OPAQUE = 155            # Set the menu background opacity
  263.     WINDOWS_OPACITY = 60            # Set opacity for all windows
  264.    
  265.   #────────────────────────────────────────────────────────────────────────────
  266.   # * Menu Pictures *
  267.   #────────────────────────────────────────────────────────────────────────────
  268.   # Each picture is stored in the "Graphics/Pictures" folder and is named the
  269.   # same as the corresponding menu item (the same as in COMMAND_LIST above):
  270.   #
  271.   # System Stats, Battle Stats, Personal Stats, Game Stats, TimeDate Stats,
  272.   # Map Stats and Shop Stats.
  273.   #
  274.   # Recommended size is no larger than 364 x 129, as these will be placed at
  275.   # the bottom of each section.
  276.   #
  277.   # Pictures aren't mandatory, however, so if any (or all) don't exist, then
  278.   # the normal stats information will be displayed with no pictures.
  279.   #────────────────────────────────────────────────────────────────────────────
  280.   SHOW_PICTURES = true              # Show pictures for each command item
  281.     PICTURES_LIST = [               # List of section pictures to display
  282.     ]
  283. end
  284.  
  285. #==============================================================================
  286. # ** Game_Stats
  287. #==============================================================================
  288. class Game_Stats
  289.   #--------------------------------------------------------------------------
  290.   # * Public Instance Variables                                   |--ADDED--|
  291.   #--------------------------------------------------------------------------
  292.   attr_accessor :victory_count      # Number of battles won
  293.   attr_accessor :inn_count          # Number of stays at an inn
  294.   attr_accessor :kill_count         # Number of monsters defeated
  295.   attr_accessor :escape_count       # Number of escapes from battle
  296.   attr_accessor :game_progress      # Game progress percentage
  297.   attr_accessor :chest_count        # Number of chests opened
  298.   attr_accessor :door_count         # Number of doors opened
  299.   attr_accessor :secrets_count      # Number of secrets unlocked
  300.   attr_accessor :town_count         # Number of towns visited
  301.   attr_accessor :battle_count       # Total number of battles won
  302.   attr_accessor :total_exp_count    # Total experience gained
  303.   attr_accessor :total_gold_count   # Total gold obtained
  304.   attr_accessor :total_gold_spent   # Total gold spent (in shops)
  305.   attr_accessor :shop_count         # Number of times shop visited
  306.   #--------------------------------------------------------------------------
  307.   # * Object Initialization
  308.   #--------------------------------------------------------------------------
  309.   def start
  310.     if not $imported["CWColors"]
  311.       RPG::BGM.stop
  312.       p("The Global Colors Module is not installed. " +
  313.       "Please make sure it is installed or enabled before the game is run.")
  314.       exit
  315.     end
  316.     # Set up variables
  317.     @victory_count = 0
  318.     @inn_count = 0
  319.     @kill_count = 0
  320.     @escape_count = 0
  321.     @game_progress = 0
  322.     @chest_count = 0
  323.     @door_count = 0
  324.     @secrets_count = 0
  325.     @town_count = 0
  326.     @battle_count = 0
  327.     @total_exp_count = 0
  328.     @total_gold_count = 0
  329.     @total_gold_spent = 0
  330.     @shop_count = 0
  331.   end
  332. end
  333.  
  334. #==============================================================================
  335. # ** Scene_Stats                                                    |--ADDED--|
  336. #------------------------------------------------------------------------------
  337. #  This class handles the stat window, where all of the stat variables are
  338. # displayed.
  339. #==============================================================================
  340. class Scene_Stats < Scene_Base
  341.   include EXTRA_STATS_CONFIG
  342.   #--------------------------------------------------------------------------
  343.   # * Initialize
  344.   #--------------------------------------------------------------------------
  345.   def initialize(menu_index = 0)
  346.     @menu_index = menu_index
  347.     $game_temp.stats_menu_flag = -1
  348.   end
  349.   #--------------------------------------------------------------------------
  350.   # * Start processing
  351.   #--------------------------------------------------------------------------
  352.   def start
  353.     super
  354.     if MENU_BACKGROUND
  355.       @menuback_sprite = Sprite.new
  356.       @menuback_sprite.bitmap = Cache.picture(MENU_BG_GRAPHIC)
  357.       @menuback_sprite.x = 0
  358.       @menuback_sprite.y = 0
  359.       @menuback_sprite.color.set(16, 16, 16, MENU_BG_OPAQUE)
  360.       update_menu_background
  361.     end
  362.     create_windows
  363.     create_commands_list
  364.   end
  365.   #--------------------------------------------------------------------------
  366.   # * Create windows
  367.   #--------------------------------------------------------------------------
  368.   def create_windows
  369.     @stats_title = Window_Title.new
  370.     @stats_window = Window_Stats.new(181, 56)
  371.     @stats_title.opacity = @stats_window.opacity = WINDOWS_OPACITY
  372.   end
  373.   #--------------------------------------------------------------------------
  374.   # * Create commands list
  375.   #--------------------------------------------------------------------------
  376.   def create_commands_list
  377.     commands = COMMAND_LIST
  378.     @command_window = Window_Command.new(180, commands, 1)
  379.     @command_window.x, @command_window.y = 0, 56
  380.     @command_window.opacity = WINDOWS_OPACITY
  381.     @command_window.index = @menu_index
  382.   end
  383.   #--------------------------------------------------------------------------
  384.   # * Dispose windows
  385.   #--------------------------------------------------------------------------
  386.   def terminate
  387.     super
  388.     @stats_title.dispose
  389.     @stats_window.dispose
  390.     @command_window.dispose
  391.     @menuback_sprite.dispose
  392.   end
  393.   #--------------------------------------------------------------------------
  394.   # * Return to previous scene
  395.   #--------------------------------------------------------------------------
  396.   def return_scene
  397.     if $game_map.from_map == true
  398.       $game_map.from_map = false
  399.       $scene = Scene_Map.new
  400.     else
  401.       $scene = Scene_Menu.new(4)
  402.     end
  403.   end
  404.   #--------------------------------------------------------------------------
  405.   # * Update
  406.   #--------------------------------------------------------------------------
  407.   def update
  408.     @stats_window.update
  409.     @command_window.update
  410.     if EXTRA_STATS_KEYPRESS && $game_map.from_map
  411.       if Input.trigger?(EXTRA_STATS_KEY)
  412.         Sound.play_cancel
  413.         return_scene
  414.       end
  415.     end
  416.     if Input.trigger?(Input::B)
  417.       Sound.play_cancel
  418.       return_scene
  419.     elsif Input.trigger?(Input::C)
  420.       $game_temp.stats_menu_flag = @command_window.index
  421.       command_selection(@command_window.index)
  422.     end
  423.   end
  424.   #--------------------------------------------------------------------------
  425.   # * Select commands
  426.   #--------------------------------------------------------------------------
  427.   def command_selection(cmd_index)
  428.     @cmd_index = cmd_index
  429.     $game_temp.stats_menu_flag = cmd_index
  430.   end
  431. end
  432.  
  433. #==============================================================================
  434. # ** Window_Stats                                                   |--ADDED--|
  435. #------------------------------------------------------------------------------
  436. #  This is the window for displaying the stats.
  437. #==============================================================================
  438. class Window_Stats < Window_Base
  439.   include EXTRA_STATS_CONFIG
  440.   #--------------------------------------------------------------------------
  441.   # * Object Initialization
  442.   #--------------------------------------------------------------------------
  443.   def initialize(x, y)
  444.     super(x, y, 364, 362)
  445.     self.contents.font.size = 16
  446.     define_variables
  447.     refresh
  448.   end
  449.   #--------------------------------------------------------------------------
  450.   # * Define Variables
  451.   #--------------------------------------------------------------------------
  452.   def define_variables
  453.     y = 0; @dy = y + WLH
  454.     @gold_term  = $data_system.terms.gold
  455.     @saves      = $game_system.save_count
  456.     @rests      = $game_stats.inn_count
  457.     @steps      = $game_party.steps
  458.     @battles    = $game_stats.battle_count
  459.     @escapes    = $game_stats.escape_count
  460.     @kills      = $game_stats.kill_count
  461.     @victories  = $game_stats.victory_count
  462.     @chests     = $game_stats.chest_count
  463.     @doors      = $game_stats.door_count
  464.     @secrets    = $game_stats.secrets_count
  465.     @towns      = $game_stats.town_count
  466.     @progress   = $game_stats.game_progress
  467.     @total_exp  = $game_stats.total_exp_count
  468.     @total_gold = $game_stats.total_gold_count
  469.     @total_spent= $game_stats.total_gold_spent
  470.     @party      = $game_party.members.size
  471.     @leader     = $game_party.members[0].name
  472.     @encounters = $game_player.encounter_count
  473.     @shops      = $game_stats.shop_count
  474.   end
  475.  
  476.   #--------------------------------------------------------------------------
  477.   # * Refresh
  478.   #--------------------------------------------------------------------------
  479.   def refresh
  480. #~     return if Graphics.frame_count % 10 != 0
  481.     self.contents.clear
  482.     draw_block($game_temp.stats_menu_flag)
  483.   end
  484.   #--------------------------------------------------------------------------
  485.   # * Draw stat blocks
  486.   #--------------------------------------------------------------------------
  487.   def draw_block(idx)
  488.     case idx
  489.     when -1 # Default
  490.       $game_map.from_map ? text = "Press Z to return to the map" :
  491.         text = "Press A to select the stat to view."
  492.       self.contents.draw_text(0, @dy * 6, self.width, WLH, text, 1)
  493.      
  494.     when 0 # System Stats
  495.       x = 0
  496.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[0], 330, WLH, 1)
  497.       self.contents.font.color = normal_color
  498.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Number of Saves:")
  499.       self.contents.draw_text(x, @dy * 4, 200, WLH, "Number of Times Rested:")
  500.       self.contents.draw_text(x, @dy * 6, 200, WLH, "Number of Steps:")
  501.       x += 4; self.contents.font.color = system_color
  502.       self.contents.draw_text(x, @dy * 2, 320, WLH, @saves.to_s, 2)
  503.       self.contents.draw_text(x, @dy * 4, 320, WLH, @rests.to_s, 2)
  504.       self.contents.draw_text(x, @dy * 6, 320, WLH, @steps.to_s, 2)
  505.      
  506.     when 1 # Battle Stats
  507.       x = 0
  508.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[1], 364, WLH, 1)
  509.       self.contents.draw_text(x, @dy * 1, 200, WLH, "Battles Won:")
  510.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Battles Escaped:")
  511.       self.contents.draw_text(x, @dy * 3, 200, WLH, "Total Battles:")
  512.       self.contents.draw_text(x, @dy * 4, 200, WLH, "Total Damage Inflicted:")
  513.       self.contents.draw_text(x, @dy * 5, 200, WLH, "Total Damage Sustained:")
  514.       self.contents.draw_text(x, @dy * 6, 200, WLH, "Total Kill Count:")
  515.       self.contents.draw_text(x, @dy * 7, 200, WLH, "Encounter Ratio:")
  516.       x += 4; self.contents.font.color = system_color
  517.       self.contents.draw_text(x, @dy * 1, 320, WLH, @victories.to_s, 2)
  518.       self.contents.draw_text(x, @dy * 2, 320, WLH, @escapes.to_s, 2)
  519.       self.contents.draw_text(x, @dy * 3, 320, WLH, @battles.to_s, 2)
  520.       self.contents.draw_text(x, @dy * 4, 320, WLH, "Not implemented", 2)
  521.       self.contents.draw_text(x, @dy * 5, 320, WLH, "Not implemented", 2)
  522.       self.contents.draw_text(x, @dy * 6, 320, WLH, @kills.to_s, 2)
  523.       self.contents.draw_text(x, @dy * 7, 320, WLH, @encounters.to_s, 2)
  524.      
  525.     when 2 # Parameter Stats
  526.       x = 0
  527.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[2], 364, WLH, 1)
  528.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Total Exp Gained:")
  529.       self.contents.draw_text(x, @dy * 4, 200, WLH, "Total #{@gold_term} Gained:")
  530.       self.contents.draw_text(x, @dy * 5, 200, WLH, "Total #{@gold_term} Lost:")
  531.       x += 4; self.contents.font.color = system_color
  532.       self.contents.draw_text(x, @dy * 2, 320, WLH, @total_exp.to_s, 2)
  533.       self.contents.draw_text(x, @dy * 4, 320, WLH, @total_gold.to_s, 2)
  534.       self.contents.draw_text(x, @dy * 5, 320, WLH, @total_spent.to_s, 2)
  535.      
  536.     when 3 # Game Stats
  537.       x =  0
  538.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[3], 364, WLH, 1)
  539.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Game Progress:")
  540.       self.contents.draw_text(x, @dy * 4, 200, WLH, "Chests Opened:")
  541.       self.contents.draw_text(x, @dy * 5, 200, WLH, "Doors Opened:")
  542.       self.contents.draw_text(x, @dy * 7, 200, WLH, "Secrets Unlocked:")
  543.       self.contents.draw_text(x, @dy * 9, 200, WLH, "Achievements:") if $imported["SojaBird_Achievements"]
  544.       x += 4; self.contents.font.color = system_color
  545.       self.contents.draw_text(x, @dy * 2, 320, WLH, @progress.to_s+"%", 2)
  546.       self.contents.draw_text(x, @dy * 4, 320, WLH, @chests.to_s, 2)
  547.       self.contents.draw_text(x, @dy * 5, 320, WLH, @doors.to_s, 2)
  548.       self.contents.draw_text(x, @dy * 7, 320, WLH, @secrets.to_s+"/"+TOTAL_SECRETS.to_s, 2)
  549.       self.contents.draw_text(x, @dy * 9, 320, WLH, "#{Achief.get_completed}/#{$game_system.achievements.size}", 2) if $imported["SojaBird_Achievements"]
  550.      
  551.     when 4 # Time/Date Stats
  552.       x = 0
  553.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[4], 364, WLH, 1)
  554.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Time Played:")
  555.       self.contents.draw_text(x, @dy * 5, 200, WLH, "Current Date:")
  556.       self.contents.draw_text(x, @dy * 6, 200, WLH, "Current Time:")
  557.       get_time_date
  558.       x += 4; self.contents.font.color = system_color
  559.       self.contents.draw_text(x, @dy * 2, 320, WLH, @timeplayed.to_s, 2)
  560.       self.contents.draw_text(x, @dy * 5, 320, WLH, @cdate, 2)
  561.       self.contents.draw_text(x, @dy * 6, 320, WLH, @ctime, 2)
  562.      
  563.     when 5 # Map Stats
  564.       x = 0
  565.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[5], 364, WLH, 1)
  566.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Map Location:")
  567.       self.contents.draw_text(x, @dy * 3, 200, WLH, "Player Coordinates:")
  568.       self.contents.draw_text(x, @dy * 5, 200, WLH, "Towns Visited:")
  569.       x += 4; self.contents.font.color = system_color
  570.       self.contents.draw_text(x, @dy * 2, 320, WLH, $game_map.name, 2)
  571.       draw_player_coords(x, @dy * 3, 320, WLH, 2)
  572.       self.contents.draw_text(x, @dy * 5, 320, WLH, @towns.to_s, 2)
  573.      
  574.     when 6 # Shop Stats
  575.       x = 0
  576.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[6], 364, WLH, 1)
  577.       self.contents.draw_text(x, @dy * 2, 200, WLH, "Number of Shop Visits:")
  578.       self.contents.draw_text(x, @dy * 4, 200, WLH, "Total #{@gold_term} Gained (Sold):")
  579.       self.contents.draw_text(x, @dy * 5, 200, WLH, "Total #{@gold_term} Spent (Bought):")
  580.       x += 4; self.contents.font.color = system_color
  581.       self.contents.draw_text(x, @dy * 2, 320, WLH, @shops.to_s, 2)
  582.       self.contents.draw_text(x, @dy * 4, 320, WLH, "Not implemented",  2)
  583.       self.contents.draw_text(x, @dy * 5, 320, WLH, "Not implemented", 2)
  584.      
  585.     when 7 # Party Stats
  586.       x = 0
  587.       self.contents.draw_title(x, @dy * 0, COMMAND_LIST[7], 364, WLH, 1)
  588. #~   #--------------------------------------------------------------------------
  589. #~   # * Draw Party Characters
  590. #~   #     x : Draw spot X coordinate
  591. #~   #     y : Draw spot Y coordinate
  592. #~   #--------------------------------------------------------------------------
  593.       self.contents.draw_text(x, @dy * 3, 200, WLH, "Number of Party Members:")
  594.       self.contents.draw_text(x, @dy * 4, 200, WLH, "Party Leader:")
  595.       x += 4; self.contents.font.color = system_color
  596.       self.contents.draw_text(x, @dy * 3, 320, WLH, @party.to_s, 2)
  597.       self.contents.draw_text(x, @dy * 4, 320, WLH, @leader.to_s, 2)
  598.     end
  599.     if SHOW_PICTURES && idx >= 0
  600.       self.contents.draw_picture(COMMAND_LIST[idx], 0, 216) rescue return
  601.     end
  602.   end
  603.   #--------------------------------------------------------------------------
  604.   # * Get System Time and Date
  605.   #--------------------------------------------------------------------------
  606.   def get_time_date
  607.     t = Time.new
  608.     @total_sec = Graphics.frame_count / Graphics.frame_rate
  609.     hour = @total_sec / 60 / 60
  610.     min = @total_sec / 60 % 60
  611.     sec = @total_sec % 60
  612.     @timeplayed = sprintf("%02d:%02d:%02d", hour, min, sec)
  613.     @cdate = t.strftime("%a, %d %b, %Y")
  614.     @ctime = t.strftime("%I:%M:%S %p")
  615.   end
  616.   #--------------------------------------------------------------------------
  617.   # * Frame Update
  618.   #--------------------------------------------------------------------------
  619.   def update
  620.     super
  621.     refresh
  622.   end
  623. end
  624.  
  625. class Game_Temp
  626.   #--------------------------------------------------------------------------
  627.   # * Public Instance Variables
  628.   #--------------------------------------------------------------------------
  629.   attr_accessor :stats_menu_flag
  630.   #--------------------------------------------------------------------------
  631.   # * Object Initialization
  632.   #--------------------------------------------------------------------------
  633.   alias cwxs_gmtmp_initialize initialize
  634.   def initialize
  635.     cwxs_gmtmp_initialize
  636.     @stats_menu_flag = false
  637.   end
  638. end
  639.  
  640. #==============================================================================
  641. # ** Game_Enemy
  642. #==============================================================================
  643. class Game_Enemy < Game_Battler
  644.   #--------------------------------------------------------------------------
  645.   # This adds the "Kill Counter" for each monster defeated      |--ALIASED--|
  646.   #--------------------------------------------------------------------------
  647.   alias cwexs_perform_collapse perform_collapse
  648.   def perform_collapse
  649.     cwexs_perform_collapse
  650.     # Check number of enemies
  651.     $game_stats.kill_count = {} if $game_stats.kill_count == nil
  652.     if $game_stats.kill_count == nil
  653.       $game_stats.kill_count = 0
  654.     end
  655.     # Add to "Kill Count" per monster
  656.     $game_stats.kill_count += 1
  657.   end
  658. end
  659.  
  660. #==============================================================================
  661. # ** Game_Map
  662. #==============================================================================
  663. class Game_Map
  664.   #--------------------------------------------------------------------------
  665.   # * Public Instance Variables                                   |--ADDED--|
  666.   #--------------------------------------------------------------------------
  667.   attr_accessor :from_map                 # Set game map flag
  668.   attr_accessor :from_shop
  669.   #--------------------------------------------------------------------------
  670.   # * Object Initialization                                     |--ALIASED--|
  671.   #--------------------------------------------------------------------------
  672.   alias cwexs_gmap_initialize initialize
  673.   def initialize
  674.     cwexs_gmap_initialize
  675.     @from_map = false
  676.     @from_shop = false
  677.   end
  678.   #--------------------------------------------------------------------------
  679.   # * Map Name                                                    |--ADDED--|
  680.   #--------------------------------------------------------------------------
  681.   def name
  682.     map_data = load_data("Data/MapInfos.rvdata")
  683.     return map_data[$game_map.map_id].name
  684.   end
  685. end
  686.  
  687. #==============================================================================
  688. # ** Game_Interpreter
  689. #==============================================================================
  690. class Game_Interpreter
  691.   include EXTRA_STATS_CONFIG
  692.   #--------------------------------------------------------------------------
  693.   # * Change EXP                                            |--OVERWRITTEN--|
  694.   #--------------------------------------------------------------------------
  695.   def command_315
  696.     value = operate_value(@params[1], @params[2], @params[3])
  697.     iterate_actor_id(@params[0]) do |actor|
  698.       actor.change_exp(actor.exp + value, @params[4])
  699.     $game_stats.total_exp_count += value
  700.     end
  701.     return true
  702.   end
  703.   #--------------------------------------------------------------------------
  704.   # * Change Gold
  705.   #--------------------------------------------------------------------------
  706.   def command_125
  707.     value = operate_value(@params[0], @params[1], @params[2])
  708.     $game_party.gain_gold(value)
  709.     $game_stats.total_gold_count += value unless $game_map.from_shop
  710.     p($game_map.from_shop)
  711.     return true
  712.   end
  713. end
  714.  
  715. #==============================================================================
  716. # ** Window_Base
  717. #==============================================================================
  718. class Window_Base < Window
  719.   #--------------------------------------------------------------------------
  720.   # * Draw Player Coordinates
  721.   #     x     : Draw x-coordinate
  722.   #     y     : Draw y-coordinate
  723.   #     w     : Content width
  724.   #     h     : Content height
  725.   #     a     : Text alignment
  726.   #--------------------------------------------------------------------------
  727.   def draw_player_coords(x, y, w, h, a = 1)
  728.     @player_x, @player_y = $game_player.x, $game_player.y
  729.     text = "X: "+@player_x.to_s+", Y: "+@player_y.to_s
  730.     self.contents.draw_text(x, y, w, h, text, a)
  731.   end
  732. end
  733.  
  734. #==============================================================================
  735. # ** Scene_Title
  736. #==============================================================================
  737. class Scene_Title < Scene_Base
  738.   #--------------------------------------------------------------------------
  739.   # * Start processing
  740.   #--------------------------------------------------------------------------
  741.   alias cwxstat_start start
  742.   def start
  743.     cwxstat_start
  744.     $game_stats.start
  745.   end
  746.   #--------------------------------------------------------------------------
  747.   # * Create Game Objects
  748.   #--------------------------------------------------------------------------
  749.   alias cwxstat_create_objects create_game_objects
  750.   def create_game_objects
  751.     cwxstat_create_objects
  752.     $game_stats         = Game_Stats.new
  753.   end
  754. end
  755.  
  756. #==============================================================================
  757. # ** Scene_Menu
  758. #==============================================================================
  759. class Scene_Menu < Scene_Base
  760.   include EXTRA_STATS_CONFIG
  761.   #--------------------------------------------------------------------------
  762.   # * Create Command Window                                 |--OVERWRITTEN--|
  763.   #--------------------------------------------------------------------------
  764.   def create_command_window
  765.     command_list = [Vocab::item, Vocab::skill, Vocab::equip, Vocab::status,
  766.       Vocab::save, Vocab::game_end]
  767.     if EXTRA_STATS
  768.       commands = command_list.first(4)
  769.       commands.push STATS_MENU_TEXT
  770.       2.times do |cmd| commands.push command_list.last(2)[cmd] end
  771.     else
  772.       commands = command_list
  773.     end
  774.     @command_window = Window_Command.new(160, commands)
  775.     @command_window.index = @menu_index
  776.     if $game_party.members.size == 0          # If number of party members is 0
  777.       @command_window.draw_item(0, false)     # Disable item
  778.       @command_window.draw_item(1, false)     # Disable skill
  779.       @command_window.draw_item(2, false)     # Disable equipment
  780.       @command_window.draw_item(3, false)     # Disable status
  781.     end
  782.     if $game_system.save_disabled             # If save is forbidden
  783.       @command_window.draw_item(4, false)     # Disable save
  784.     end
  785.   end
  786.   #--------------------------------------------------------------------------
  787.   # * Update Command Selection                              |--OVERWRITTEN--|
  788.   #--------------------------------------------------------------------------
  789.   def update_command_selection
  790.     if Input.trigger?(Input::B)
  791.       Sound.play_cancel
  792.       $scene = Scene_Map.new
  793.     elsif Input.trigger?(Input::C)
  794.       if $game_party.members.size == 0 and @command_window.index < 4
  795.         Sound.play_buzzer
  796.         return
  797.       elsif $game_system.save_disabled and @command_window.index == 4
  798.         Sound.play_buzzer
  799.         return
  800.       end
  801.       Sound.play_decision
  802.       case @command_window.index
  803.       when 0      # Item
  804.         $scene = Scene_Item.new
  805.       when 1,2,3  # Skill, equipment, status
  806.         start_actor_selection
  807.       when 4      # Extra Stats/Save
  808.         if EXTRA_STATS
  809.             $scene = Scene_Stats.new
  810.         else $scene = Scene_File.new(true, false, false)
  811.         end
  812.       when 5      # Save/End Game
  813.         if EXTRA_STATS; $scene = Scene_File.new(true, false, false)
  814.         else $scene = Scene_End.new
  815.         end
  816.       when 6
  817.         if EXTRA_STATS; $scene = Scene_End.new; end
  818.       end
  819.     end
  820.   end
  821. end
  822.  
  823. #==============================================================================
  824. # ** Window_Title
  825. #------------------------------------------------------------------------------
  826. #  This is the window for displaying the Extra Stats title.
  827. #==============================================================================
  828. class Window_Title < Window_Base
  829.   include EXTRA_STATS_CONFIG
  830.   #--------------------------------------------------------------------------
  831.   # * Object Initialization
  832.   #--------------------------------------------------------------------------
  833.   def initialize(x = 0, y = 0)
  834.     super(x, y, 544, WLH + 32)
  835.     refresh
  836.   end
  837.   #--------------------------------------------------------------------------
  838.   # * Refresh
  839.   #--------------------------------------------------------------------------
  840.   def refresh
  841.     self.contents.clear
  842.     self.contents.draw_title(0, 0, STATS_MENU_TEXT, 544, WLH, 1, false)
  843.   end
  844. end
  845.  
  846. #==============================================================================
  847. # ** Scene_Map
  848. #==============================================================================
  849. class Scene_Map < Scene_Base
  850.   include EXTRA_STATS_CONFIG
  851.   #--------------------------------------------------------------------------
  852.   # * Frame Update                                              |--ALIASED--|
  853.   #--------------------------------------------------------------------------
  854.   alias cwexs_scnmap_update update
  855.   def update
  856.     cwexs_scnmap_update
  857.     if EXTRA_STATS_KEYPRESS
  858.       if Input.press?(EXTRA_STATS_KEY)
  859.         $game_map.from_map = true
  860.         $scene = Scene_Stats.new
  861.       end
  862.     end
  863.   end
  864. end
  865.  
  866. #==============================================================================
  867. # ** Scene_Battle
  868. #==============================================================================
  869. class Scene_Battle
  870.   #--------------------------------------------------------------------------
  871.   # * Process Start Battle                                      |--ALIASED--|
  872.   #--------------------------------------------------------------------------
  873.   alias cwexsbai_scnbtl_procbtlstrt process_battle_start
  874.   def process_battle_start(*args)
  875.     # Add to battle counter
  876.     $game_stats.battle_count += 1
  877.     # Run Original Method
  878.     cwexsbai_scnbtl_procbtlstrt(*args)
  879.   end
  880.   #--------------------------------------------------------------------------
  881.   # This adds to the "Escape Counter" for each successful escape|--ALIASED--|
  882.   #--------------------------------------------------------------------------
  883.   alias cw_process_escape process_escape
  884.   def process_escape
  885.     cw_process_escape
  886.     if $game_troop.preemptive
  887.       success = true
  888.     else
  889.       success = (rand(100) < @escape_ratio)
  890.     end
  891.     Sound.play_escape
  892.     if success
  893.       wait_for_message
  894.       battle_end(1)
  895.       $game_stats.escape_count += 1
  896.     else
  897.       @escape_ratio += 10
  898.       $game_message.texts.push('\.' + Vocab::EscapeFailure)
  899.       wait_for_message
  900.       $game_party.clear_actions
  901.       start_main
  902.     end
  903.   end
  904.   #--------------------------------------------------------------------------
  905.   # This adds to the "Victory Counter" for each combat won      |--ALIASED--|
  906.   #--------------------------------------------------------------------------
  907.   alias cw_process_victory process_victory
  908.   def process_victory
  909.     cw_process_victory
  910.     $game_stats.victory_count += 1
  911.   end
  912.   #--------------------------------------------------------------------------
  913.   # * Display Gained Experience and Gold                    |--OVERWRITTEN--|
  914.   #--------------------------------------------------------------------------
  915.   def display_exp_and_gold
  916.     exp = $game_troop.exp_total
  917.     gold = $game_troop.gold_total
  918.     $game_party.gain_gold(gold)
  919.     $game_stats.total_gold_count += gold
  920.     $game_stats.total_exp_count += exp
  921.     text = sprintf(Vocab::Victory, $game_party.name)
  922.     $game_message.texts.push('\|' + text)
  923.     if exp > 0
  924.       text = sprintf(Vocab::ObtainExp, exp)
  925.       $game_message.texts.push('\.' + text)
  926.     end
  927.     if gold > 0
  928.       text = sprintf(Vocab::ObtainGold, gold, Vocab::gold)
  929.       $game_message.texts.push('\.' + text)
  930.     end
  931.     wait_for_message
  932.   end
  933. end
  934.  
  935. #==============================================================================
  936. # ** Scene_Shop
  937. #==============================================================================
  938. class Scene_Shop < Scene_Base
  939.   #--------------------------------------------------------------------------
  940.   # * Confirm Number Input
  941.   #--------------------------------------------------------------------------
  942.   alias cwexs_scnshop_decide_number decide_number_input
  943.   def decide_number_input
  944.     cwexs_scnshop_decide_number
  945.     case @command_window.index
  946.     when 0
  947.       $game_stats.total_gold_spent += (@number_window.number * @item.price)
  948.     when 1
  949.       $game_stats.total_gold_count += $game_party.gain_gold((@item.price / 2))
  950.     end
  951.   end
  952.   #--------------------------------------------------------------------------
  953.   # * Dispose of Command Window
  954.   #--------------------------------------------------------------------------
  955.   alias cwexs_scnshop_dispose_cmd dispose_command_window
  956.   def dispose_command_window
  957.     cwexs_scnshop_dispose_cmd
  958.     $game_map.from_shop = true
  959.     $game_stats.shop_count += 1
  960.   end
  961. end
  962.  
  963. #==============================================================================
  964. # ** Scene_File
  965. #==============================================================================
  966. class Scene_File < Scene_Base
  967.   #--------------------------------------------------------------------------
  968.   # * Write Save Data
  969.   #     file : write file object (opened)
  970.   #--------------------------------------------------------------------------
  971.   alias cwess_scnfl_write_save write_save_data
  972.   def write_save_data(file)
  973.     cwess_scnfl_write_save(file)
  974.     Marshal.dump($game_stats,          file)
  975.   end
  976.   #--------------------------------------------------------------------------
  977.   # * Read Save Data
  978.   #     file : file object for reading (opened)
  979.   #--------------------------------------------------------------------------
  980.   alias cwess_scnfl_read_save read_save_data
  981.   def read_save_data(file)
  982.     cwess_scnfl_read_save(file)
  983.     $game_stats          = Marshal.load(file)
  984.   end
  985. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top