Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # ==============================================================================
- # ▼▼▼▼▼▼ TroyZ - Random EXP Drop ▼▼▼▼▼▼
- # ==============================================================================
- # Script by : Agung Prasetyo(TroyZ)
- # Contact me by : - Email agung.endisnear.xyz@gmail.com
- # - Forum RPGMakerID, username TroyZ
- # - Handphone 085756289121
- # Engine : VXAce
- # Level : Easy
- # Version : 1.1
- # ------------------------------------------------------------------------------
- # Change Logs :
- # 27 Mei 2013 - Rilis script versi 1.0
- # 15 Mei 2013 - Rilis update versi 1.1
- # ------------------------------------------------------------------------------
- # License : Silahkan digunakan untuk game free ataupun yang komersil.
- # Gak dikasih credit juga gak apa-apa, dikarenakan script ini sangat mudah dan
- # berhasil saya selesaikan kurang dari 10 menit. Kalo mau kasih credit boleh juga,
- # credit atas nama Agung Prasetyo(TroyZ).
- # ------------------------------------------------------------------------------
- # How to Use : Pasang saja dibawah material tapi diatas main
- # ------------------------------------------------------------------------------
- # Dengan script ini, experience yang diberikan oleh musuh akan diacak sesuai
- # dengan konfigurasi yang kamu setting nantinya dibawah ini. Misalnya random
- # ratenya = 20% dengan experience musuh 50. Maka, kamu akan mendapatkan experience
- # yang diantara 20% dibawahnya 50 dan 20% diatasnya 50, jadi ada rentang experience
- # gitu lah.
- #
- # Update versi 1.1
- # Kamu bisa setting sendiri rate terendah dan rate tertinggi exp musuh dengan
- # notetag seperti ini :
- # <exp lower rate: x>
- # <exp upper rate: x>
- # Dimana x adalah persentasenya. Misalnya, slime mempunyai notetag seperti ini :
- # <exp lower rate: 20>
- # <exp upper rate: 60>
- # Berarti, slime itu akan memberikan exp dengan rentang 20% dibawah base exp, dan
- # 60% diatas base exp. Kalau tidak mau ada ratenya, berikan angka 0 pada persentasenya
- $imported = {} if $imported.nil?
- $imported[:TroyZ_RandomEXPDrop] = true
- module X_Random_EXP_Drop_X
- module RandomRate
- DEFAULT_LOWER_RATE = 20 # random rate ini dalam persen
- DEFAULT_UPPER_RATE = 20 # random rate ini dalam persen
- end
- module NOTETAGS_RANDOM_RATE
- LOWER_RATE = /<(?:EXP LOWER RATE|exp lower rate):[ ]*(\d+)>/i
- UPPER_RATE = /<(?:EXP UPPER RATE|exp upper rate):[ ]*(\d+)>/i
- end
- end
- module DataManager
- class << self
- alias agung_load_random_exp_dbase_x load_database
- end
- def self.load_database
- agung_load_random_exp_dbase_x
- agung_load_random_exp_notetags_x
- end
- def self.agung_load_random_exp_notetags_x
- [$data_enemies].each do |enemies|
- enemies.compact.each do |obj|
- next unless obj
- obj.agung_load_random_exp_notetags_x
- end
- end
- end
- end
- class RPG::Enemy
- include X_Random_EXP_Drop_X
- attr_accessor :random_exp_lower
- attr_accessor :random_exp_upper
- def agung_load_random_exp_notetags_x
- @random_exp_lower = RandomRate::DEFAULT_LOWER_RATE
- @random_exp_upper = RandomRate::DEFAULT_UPPER_RATE
- self.note.split(/[\r\n]+/).each { |baris|
- case baris
- when NOTETAGS_RANDOM_RATE::LOWER_RATE
- @random_exp_lower = $1.to_i
- when NOTETAGS_RANDOM_RATE::UPPER_RATE
- @random_exp_upper = $1.to_i
- end
- }
- end
- end
- class Game_Enemy < Game_Battler
- def exp
- exp_default = enemy.exp
- exp_batas_bawah = (exp_default * (100 - enemy.random_exp_lower) / 100)
- exp_batas_atas = (exp_default * (100 + enemy.random_exp_upper) / 100)
- exp_didapat = exp_batas_bawah + rand(exp_batas_atas - exp_batas_bawah + 1)
- return exp_didapat
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement