Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2011
931
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.73 KB | None | 0 0
  1. #===============================================================================
  2. #
  3. # Shanghai Simple Script - Learn & Forget Skill
  4. # Last Date Updated: 2010.06.08
  5. # Level: Normal
  6. #
  7. # This script allows for actors to forget a skill upon learning another. This
  8. # makes for a good replacement skill upgrade upon leveling up or any other
  9. # method for learning skills. For example, if Ralph learns Greater Thunder, he
  10. # will automatically forget Lesser Thunder.
  11. #===============================================================================
  12. # Instructions
  13. # -----------------------------------------------------------------------------
  14. # To install this script, open up your script editor and copy/paste this script
  15. # to an open slot below ▼ Materials but above ▼ Main. Remember to save.
  16. #
  17. # <forget skill: x>
  18. # <forget skill: x, x, x>
  19. # This makes the actor forget skill x when the current skill is learned.
  20. #===============================================================================
  21.  
  22. $imported = {} if $imported == nil
  23. $imported["Learn&ForgetSkill"] = true
  24.  
  25. #==============================================================================
  26. # RPG::Skill
  27. #==============================================================================
  28.  
  29. class RPG::Skill < RPG::UsableItem
  30.   #--------------------------------------------------------------------------
  31.   # # Forget Upon Learning
  32.   #--------------------------------------------------------------------------
  33.   def forget_upon_learning
  34.     return @forget_upon_learning if @forget_upon_learning != nil
  35.     @forget_upon_learning = []
  36.     self.note.split(/[\r\n]+/).each { |line|
  37.       case line
  38.       when /<(?:FORGET SKILL|forget skills):[ ](\d+(?:\s*,\s*\d+)*)>/i
  39.         $1.scan(/\d+/).each { |num| @forget_upon_learning.push(num.to_i) }
  40.       end
  41.     }
  42.     return @forget_upon_learning
  43.   end
  44. end
  45.  
  46. #==============================================================================
  47. # ** Game_Actor
  48. #==============================================================================
  49.  
  50. class Game_Actor < Game_Battler
  51.   #--------------------------------------------------------------------------
  52.   # * Learn Skill
  53.   #--------------------------------------------------------------------------
  54.   alias learn_skill_sss_learn_forget_skill learn_skill unless $@
  55.   def learn_skill(skill_id)
  56.     unless skill_learn?($data_skills[skill_id])
  57.       for sk_id in $data_skills[skill_id].forget_upon_learning
  58.         forget_skill(sk_id)
  59.       end
  60.     end
  61.     learn_skill_sss_learn_forget_skill(skill_id)
  62.   end
  63. end
  64.  
  65. #===============================================================================
  66. #
  67. # END OF FILE
  68. #
  69. #===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement