TheoAllen

Theo - Stacking States

Oct 30th, 2013
420
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.61 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Stacking States
  3. # Version : 1.0
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. ($imported ||= {})[:Theo_StackingState] = true
  8. # =============================================================================
  9. # Change Logs:
  10. # -----------------------------------------------------------------------------
  11. # 2013.10.24 - Finished Script
  12. # =============================================================================
  13. =begin
  14.  
  15.   Perkenalan :
  16.   Script ini ngebikin kamu bisa ngasi status ke musuh secara tumpuk-tumpuk.
  17.   Misalnya enemy kena 3 status poison dan semacemnya.
  18.  
  19.   Cara penggunaan :
  20.   Pasang script ini dibawah material namun diatas main
  21.   Gunakan tag <stack: n> pada notebox states di database. Dimana n adalah
  22.   angka untuk maksimal untuk tumpukan state
  23.  
  24.   Terms of use :
  25.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  26.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  27.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.  
  28.  
  29. =end
  30. # =============================================================================
  31. # Tidak ada konfigurasi
  32. # =============================================================================
  33. class RPG::State < RPG::BaseItem
  34.   attr_accessor :max_stack
  35.  
  36.   def load_stack
  37.     @max_stack = 1
  38.     note.split(/[\r\n]+/).each do |line|
  39.       if line =~ /<stack:[ ]*(\d+)>/i
  40.         @max_stack = $1.to_i
  41.       end
  42.     end
  43.   end
  44.  
  45. end
  46.  
  47. class << DataManager
  48.  
  49.   alias theo_stackstate_load_db load_database
  50.   def load_database
  51.     theo_stackstate_load_db
  52.     load_stackstate_db
  53.   end
  54.  
  55.   def load_stackstate_db
  56.     $data_states.compact.each do |state|
  57.       state.load_stack
  58.     end
  59.   end
  60.  
  61. end
  62.  
  63. class Game_Battler < Game_BattlerBase
  64.   # ---------------------------------------------------------------------------
  65.   # Overwrite add state
  66.   # ---------------------------------------------------------------------------
  67.   def add_state(state_id)
  68.     puts @states.select {|id| id == state_id}.size
  69.     if state_addable?(state_id)
  70.       add_new_state(state_id) unless state?(state_id) && state_maxed?(state_id)
  71.       reset_state_counts(state_id)
  72.       @result.added_states.push(state_id).uniq!
  73.     end
  74.   end
  75.  
  76.   def state_maxed?(state_id)
  77.     @states.select {|id| id == state_id}.size ==
  78.       $data_states[state_id].max_stack
  79.   end
  80.  
  81. end
Advertisement
Add Comment
Please, Sign In to add comment