TheoAllen

Theo - Basic Skill Modifier

May 8th, 2013
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 5.69 KB | None | 0 0
  1. # =============================================================================
  2. # TheoAllen - Basic Skill Modifier
  3. # Version : 1.0b
  4. # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
  5. # (This script documentation is written in informal indonesian language)
  6. # =============================================================================
  7. $imported ||= {}
  8. $imported[:Theo_BasicSkills] = true
  9. # =============================================================================
  10. # Change Logs :
  11. # -----------------------------------------------------------------------------
  12. # 2014.04.23 - Bugfix, crashes when actor is being inflicted by state
  13. # 2013.05.08 - Started and Finished script
  14. # =============================================================================
  15. =begin
  16.  
  17.   PERKENALAN :
  18.   Script ini ngebikin kamu bisa memilih skill id untuk attack dan guard. Kamu
  19.   juga bisa menentukan actor dengan class tertentu memiliki attack id yang
  20.   berbeda atau weapon tertentu memiliki attack id yang berbeda
  21.  
  22.   CARA PENGGUNAAN :
  23.   Tulis notetag seperti dibawah ini jika ingin menggunakan script ini.
  24.   Pengurutan ini didasarkan pada prioritas tertinggi. Misal jika actor memiliki
  25.   attack id 4, tapi actor tersebut menggunakan weapon yg punya attack id 8,
  26.   maka attack id actor akan diganti sementara menjadi 8.
  27.  
  28.   STATE NOTETAG:
  29.   - <attack id: n> # Spesifikasi attack skill id saat terkena state
  30.   - <guard id: n>  # Spesifikasi guard skill id saat terkena state
  31.  
  32.   WEAPON NOTETAG:
  33.   - <attack id: n> # Spesifikasi attack skill id saat make weapon tertentu
  34.  
  35.   CLASS NOTETAG:
  36.   - <attack id: n> # Spesifikasi attack skill id kalo actor make class tertentu
  37.   - <guard id: n>  # Spesifikasi guard skill id kalo actor make class tertentu
  38.  
  39.   ACTOR NOTETAG:
  40.   - <attack id: n> # Spesifikasi attack skill id untuk actor tertentu
  41.   - <guard id: n>  # Spesifikasi guard skill id untuk actor tertentu
  42.  
  43.   NOTE :
  44.   Untuk slot type dual-wield. Jika dua senjata memiliki skill id yang berbeda,
  45.   maka yang digunakan adalah slot pertama
  46.  
  47.   Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
  48.   keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
  49.   dipake buat komersil, jangan lupa, gw dibagi gratisannya.
  50.  
  51. =end
  52. # =============================================================================
  53. # Konfigurasi :
  54. # =============================================================================
  55. module THEO
  56.   module BASIC
  57.    
  58.     ATTACK = 1 # Skill id untuk attack  (default : 1)
  59.     GUARD  = 2 # Skill id untuk guard   (default : 2)
  60.    
  61.   end
  62. end
  63. # =============================================================================
  64. # Akhir dari konfigurasi
  65. # =============================================================================
  66. module THEO
  67.   module BASIC
  68.   module REGEXP
  69.     ATTACK_ID = /<(?:ATTACK ID|attack_id):[ ]*(\d+)>/i
  70.     GUARD_ID = /<(?:GUARD ID|guard_id):[ ]*(\d+)>/i
  71.   end
  72.   end
  73. end
  74.  
  75. module DataManager
  76.  
  77.   class << self
  78.     alias pre_load_basic_skills_id load_database
  79.   end
  80.  
  81.   def self.load_database
  82.     pre_load_basic_skills_id
  83.     load_basic_skills_id
  84.   end
  85.  
  86.   def self.load_basic_skills_id
  87.     [$data_actors,$data_weapons,$data_classes,$data_states].each do |db|
  88.       db.compact.each do |item|
  89.         item.load_theo_basic_skills
  90.       end
  91.     end
  92.   end
  93.  
  94. end
  95.  
  96. class RPG::Actor < RPG::BaseItem
  97.   attr_accessor :attack_id
  98.   attr_accessor :guard_id
  99.  
  100.   def load_theo_basic_skills
  101.     @attack_id = THEO::BASIC::ATTACK
  102.     @guard_id = THEO::BASIC::GUARD
  103.     self.note.split(/[\r\n]+/).each do |line|
  104.       case line
  105.       when THEO::BASIC::REGEXP::ATTACK_ID
  106.         @attack_id = $1.to_i
  107.       when THEO::BASIC::REGEXP::GUARD_ID
  108.         @guard_id = $1.to_i
  109.       end
  110.     end
  111.   end
  112.  
  113. end
  114.  
  115. class RPG::Class < RPG::BaseItem
  116.   attr_accessor :attack_id
  117.   attr_accessor :guard_id
  118.  
  119.   def load_theo_basic_skills
  120.     @attack_id = 0
  121.     @guard_id = 0
  122.     self.note.split(/[\r\n]+/).each do |line|
  123.       case line
  124.       when THEO::BASIC::REGEXP::ATTACK_ID
  125.         @attack_id = $1.to_i
  126.       when THEO::BASIC::REGEXP::GUARD_ID
  127.         @guard_id = $1.to_i
  128.       end
  129.     end
  130.   end
  131. end
  132.  
  133. class RPG::Weapon < RPG::EquipItem
  134.   attr_accessor :attack_id
  135.   attr_accessor :guard_id
  136.  
  137.   def load_theo_basic_skills
  138.     @attack_id = 0
  139.     @guard_id = 0
  140.     self.note.split(/[\r\n]+/).each do |line|
  141.       case line
  142.       when THEO::BASIC::REGEXP::ATTACK_ID
  143.         @attack_id = $1.to_i
  144.       when THEO::BASIC::REGEXP::GUARD_ID
  145.         @guard_id = $1.to_i
  146.       end
  147.     end
  148.   end
  149.  
  150. end
  151.  
  152. class RPG::State < RPG::BaseItem
  153.   attr_accessor :attack_id
  154.   attr_accessor :guard_id
  155.  
  156.   def load_theo_basic_skills
  157.     @attack_id = 0
  158.     @guard_id = 0
  159.     self.note.split(/[\r\n]+/).each do |line|
  160.       case line
  161.       when THEO::BASIC::REGEXP::ATTACK_ID
  162.         @attack_id = $1.to_i
  163.       when THEO::BASIC::REGEXP::GUARD_ID
  164.         @guard_id = $1.to_i
  165.       end
  166.     end
  167.   end
  168.  
  169. end
  170.  
  171. class Game_Actor < Game_Battler
  172.  
  173.   def attack_skill_id
  174.     return sort_states.find {|state| $data_states[state].attack_id > 0} if
  175.       sort_states.any?{ |state| $data_states[state].attack_id > 0}
  176.     return weapons[0].attack_id if weapons[0] ? weapons[0].attack_id > 0 : false
  177.     return $data_classes[class_id].attack_id if $data_classes[class_id].attack_id > 0
  178.     return $data_actors[id].attack_id
  179.   end
  180.  
  181.   def guard_skill_id
  182.     return sort_states.find {|state| $data_states[state].guard_id > 0} if
  183.        sort_states.any? { |state| $data_states[state].guard_id > 0}
  184.     return $data_classes[class_id].guard_id if $data_classes[class_id].guard_id > 0
  185.     return $data_actors[id].guard_id
  186.   end
  187.  
  188. end
Advertisement
Add Comment
Please, Sign In to add comment