# ============================================================================= # TheoAllen - Basic Skill Modifier # Version : 1.0b # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com # (This script documentation is written in informal indonesian language) # ============================================================================= $imported ||= {} $imported[:Theo_BasicSkills] = true # ============================================================================= # Change Logs : # ----------------------------------------------------------------------------- # 2014.04.23 - Bugfix, crashes when actor is being inflicted by state # 2013.05.08 - Started and Finished script # ============================================================================= =begin PERKENALAN : Script ini ngebikin kamu bisa memilih skill id untuk attack dan guard. Kamu juga bisa menentukan actor dengan class tertentu memiliki attack id yang berbeda atau weapon tertentu memiliki attack id yang berbeda CARA PENGGUNAAN : Tulis notetag seperti dibawah ini jika ingin menggunakan script ini. Pengurutan ini didasarkan pada prioritas tertinggi. Misal jika actor memiliki attack id 4, tapi actor tersebut menggunakan weapon yg punya attack id 8, maka attack id actor akan diganti sementara menjadi 8. STATE NOTETAG: - # Spesifikasi attack skill id saat terkena state - # Spesifikasi guard skill id saat terkena state WEAPON NOTETAG: - # Spesifikasi attack skill id saat make weapon tertentu CLASS NOTETAG: - # Spesifikasi attack skill id kalo actor make class tertentu - # Spesifikasi guard skill id kalo actor make class tertentu ACTOR NOTETAG: - # Spesifikasi attack skill id untuk actor tertentu - # Spesifikasi guard skill id untuk actor tertentu NOTE : Untuk slot type dual-wield. Jika dua senjata memiliki skill id yang berbeda, maka yang digunakan adalah slot pertama Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau dipake buat komersil, jangan lupa, gw dibagi gratisannya. =end # ============================================================================= # Konfigurasi : # ============================================================================= module THEO module BASIC ATTACK = 1 # Skill id untuk attack (default : 1) GUARD = 2 # Skill id untuk guard (default : 2) end end # ============================================================================= # Akhir dari konfigurasi # ============================================================================= module THEO module BASIC module REGEXP ATTACK_ID = /<(?:ATTACK ID|attack_id):[ ]*(\d+)>/i GUARD_ID = /<(?:GUARD ID|guard_id):[ ]*(\d+)>/i end end end module DataManager class << self alias pre_load_basic_skills_id load_database end def self.load_database pre_load_basic_skills_id load_basic_skills_id end def self.load_basic_skills_id [$data_actors,$data_weapons,$data_classes,$data_states].each do |db| db.compact.each do |item| item.load_theo_basic_skills end end end end class RPG::Actor < RPG::BaseItem attr_accessor :attack_id attr_accessor :guard_id def load_theo_basic_skills @attack_id = THEO::BASIC::ATTACK @guard_id = THEO::BASIC::GUARD self.note.split(/[\r\n]+/).each do |line| case line when THEO::BASIC::REGEXP::ATTACK_ID @attack_id = $1.to_i when THEO::BASIC::REGEXP::GUARD_ID @guard_id = $1.to_i end end end end class RPG::Class < RPG::BaseItem attr_accessor :attack_id attr_accessor :guard_id def load_theo_basic_skills @attack_id = 0 @guard_id = 0 self.note.split(/[\r\n]+/).each do |line| case line when THEO::BASIC::REGEXP::ATTACK_ID @attack_id = $1.to_i when THEO::BASIC::REGEXP::GUARD_ID @guard_id = $1.to_i end end end end class RPG::Weapon < RPG::EquipItem attr_accessor :attack_id attr_accessor :guard_id def load_theo_basic_skills @attack_id = 0 @guard_id = 0 self.note.split(/[\r\n]+/).each do |line| case line when THEO::BASIC::REGEXP::ATTACK_ID @attack_id = $1.to_i when THEO::BASIC::REGEXP::GUARD_ID @guard_id = $1.to_i end end end end class RPG::State < RPG::BaseItem attr_accessor :attack_id attr_accessor :guard_id def load_theo_basic_skills @attack_id = 0 @guard_id = 0 self.note.split(/[\r\n]+/).each do |line| case line when THEO::BASIC::REGEXP::ATTACK_ID @attack_id = $1.to_i when THEO::BASIC::REGEXP::GUARD_ID @guard_id = $1.to_i end end end end class Game_Actor < Game_Battler def attack_skill_id return sort_states.find {|state| $data_states[state].attack_id > 0} if sort_states.any?{ |state| $data_states[state].attack_id > 0} return weapons[0].attack_id if weapons[0] ? weapons[0].attack_id > 0 : false return $data_classes[class_id].attack_id if $data_classes[class_id].attack_id > 0 return $data_actors[id].attack_id end def guard_skill_id return sort_states.find {|state| $data_states[state].guard_id > 0} if sort_states.any? { |state| $data_states[state].guard_id > 0} return $data_classes[class_id].guard_id if $data_classes[class_id].guard_id > 0 return $data_actors[id].guard_id end end