Double_X

Update Actor Skill

Jun 16th, 2015
44
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #==============================================================================|
  2. #  ** You only need to edit this part as it's about what this snippet does     |
  3. #------------------------------------------------------------------------------|
  4.  
  5. module Update_Actor_Skill
  6.  
  7.   ACTOR_LEARN_SKILL = { # Learn skills if actors' levels' >= skills' required level
  8.     actor_id => { # actor with id actor_id
  9.       level => [skill_id, skill_id], # skills with id skill_id learnt by this actor at level level
  10.       level => [skill_id, skill_id], # skills with id skill_id learnt by this actor at level level
  11.     } # actor_id
  12.  
  13.      actor_id => { # actor with id actor_id
  14.        level => [skill_id, skill_id], # skills with id skill_id learnt by this actor at level level
  15.        level => [skill_id, skill_id], # skills with id skill_id learnt by this actor at level level
  16.      } # actor_id
  17.   } # ACTOR_LEARN_SKILL
  18.  
  19.   ACTOR_FORGET_SKILL = { # Forget skills if actors' levels' < skills' required level
  20.     actor_id => { # actor with id actor_id
  21.       level => [skill_id, skill_id], # skills with id skill_id forgot by this actor at level level
  22.       level => [skill_id, skill_id], # skills with id skill_id forgot by this actor at level level
  23.     } # actor_id
  24.     actor_id => { # actor with id actor_id
  25.       level => [skill_id, skill_id], # skills with id skill_id forgot by this actor at level level
  26.       level => [skill_id, skill_id], # skills with id skill_id forgot by this actor at level level
  27.     } # actor_id
  28.   } # ACTOR_FORGET_SKILL
  29.  
  30. end # Update_Actor_Skill
  31.  
  32. #==============================================================================|
  33.  
  34. #==============================================================================|
  35. #  ** You need not edit this part as it's about how this snippet works         |
  36. #------------------------------------------------------------------------------|
  37.  
  38. class Scene_Load < Scene_File
  39.  
  40.   #----------------------------------------------------------------------------|
  41.   #  Alias method: on_load_success                                             |
  42.   #----------------------------------------------------------------------------|
  43.   alias on_load_success_update_actor_skill on_load_success
  44.   def on_load_success
  45.     update_actor_skill
  46.     # This part is added by this snippet to update actors' skills
  47.     on_load_success_update_actor_skill
  48.     #
  49.   end # on_load_success
  50.  
  51.   #----------------------------------------------------------------------------|
  52.   #  New method: update_actor_skill                                            |
  53.   #----------------------------------------------------------------------------|
  54.   def update_actor_skill
  55.     ["learn", "forget"].each { |update|
  56.       update_actor_skill = eval("Update_Actor_Skill::ACTOR_" + update.upcase + "_SKILL")
  57.       update_actor_skill.each_key { |actor_id|
  58.         update_actor_skill[actor_id].each_key { |level|
  59.           actor = $game_actors[actor_id]
  60.           eval("level " + (update == "learn" ? ">" : "<=") + " actor.level") ? break : update_actor_skill[actor_id][level].each { |skill_id| eval("actor." + update + "_skill(skill_id)") }
  61.         }
  62.       }
  63.     }
  64.   end # update_actor_skill
  65.  
  66. end # Scene_Load
  67.  
  68. #==============================================================================|
RAW Paste Data