Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # 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:
- - <attack id: n> # Spesifikasi attack skill id saat terkena state
- - <guard id: n> # Spesifikasi guard skill id saat terkena state
- WEAPON NOTETAG:
- - <attack id: n> # Spesifikasi attack skill id saat make weapon tertentu
- CLASS NOTETAG:
- - <attack id: n> # Spesifikasi attack skill id kalo actor make class tertentu
- - <guard id: n> # Spesifikasi guard skill id kalo actor make class tertentu
- ACTOR NOTETAG:
- - <attack id: n> # Spesifikasi attack skill id untuk actor tertentu
- - <guard id: n> # 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
Advertisement
Add Comment
Please, Sign In to add comment