VanCoolz

[RGSS/2] Add State on Level Up

May 17th, 2012
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.68 KB | None | 0 0
  1. #==============================================================================
  2. # [RGSS/2] Add State on Level Up
  3. # Version : 1.0
  4. # Author : LowlingLife
  5. #==============================================================================
  6. # Script ini akan menambahkan state pada aktor jika aktor itu level-up.
  7. #==============================================================================
  8. module StateLevelUp
  9.   #----------------------------------------------------------------------------
  10.   # State-State yang akan ditambahkan pada aktor jika level-up.
  11.   # Actor ID => {Level => [State ID,..], Level => [State ID,..]..}
  12.   # Actor ID : ID dari Actor
  13.   # Level : Level yang harus dicapai player saat level up jika ingin mendapat
  14.   #         state.
  15.   # State ID : ID dari State yang akan ditambahkan.
  16.   #----------------------------------------------------------------------------
  17.   # Priority / Rating State di Database berpengaruh terhadap state yang
  18.   # akan di-display bukan ditambahkan.
  19.  
  20.   # Kalau kamu meng-add 3 state tapi hanya melihat 2, itu wajar. Coba cek
  21.   # priority atau rating state-state tersebut. Priority atau rating paling
  22.   # tinggi akan di-display paling pertama. Samakan priority state jika ingin
  23.   # melihat semua state.
  24.  
  25.   # Cara ini tidak bisa di XP. Maka dari itu
  26.   # batas maksimal state yang terlihat di XP adalah 2. Itupun kalau ID Statenya
  27.   # saling berurutan. Kalau tidak, state yang duluan yang akan di display.
  28.   #----------------------------------------------------------------------------
  29.   ADD_STATE = {
  30.   1 => {2 => [2, 3]},
  31.   2 => {2 => [4, 6]}
  32.   } # Jangan di delete.
  33.  
  34.   # Meng-clear state actor setelah itu baru menambahkan state.
  35.   STATES_CLEAR = false
  36. end
  37. #==============================================================================
  38. # EDITING BEYOND THIS LINE CAN CAUSE DAMAGE TO YOUR GAME, THEREFORE EDIT
  39. # WITH YOUR OWN RISK.
  40. #==============================================================================
  41. VX = defined?(Window_ActorCommand)
  42. level_def = VX ? "change_level" : "level="
  43. eval "
  44.  
  45. class Game_Actor < Game_Battler
  46.  include StateLevelUp
  47.  alias add_state_level #{level_def} unless $@
  48.  def #{level_def}(*args, &block)
  49.    add_state_level(*args, &block)
  50.    ADD_STATE.each{|actor, process|
  51.    if actor == @actor_id
  52.      process.each{|level, state|
  53.      if level == @level
  54.        for s in state
  55.          @states.clear if STATES_CLEAR
  56.          $game_actors[@actor_id].add_state(s)
  57.        end
  58.      end
  59.      }
  60.    end
  61.    }
  62.  end
  63.  #============================================================================
  64.  # END OF SCRIPT
  65.  #============================================================================
  66. end#"
Advertisement
Add Comment
Please, Sign In to add comment