Change Class With New Skills
Versi: 1.1
Tipe: Addon
PengenalanMencoba membuat sesuatu ini >>
https://rmid.forumotion.net/t6991p10-ask-transform-saat-battle#108298Biasanya, jika anda mengganti class, skill yang lama akan tetap ada, nah dengan script ini skill yang lama akan terbuang digantikan oleh skill yang baru sesuai dengan class.
Script ini khusus untuk battle. Kompatibel untuk battle system default vxace.
Fitur
- Ganti skill saat berganti class
- Otomatis ganti ke class awal saat selesai battle
- Bisa milih langsung learn meskipun level belum cukup atau tidak
Screenshotsgak perlu
Demogak perlu, tinggal copas aja
Scripts - Code:
-
#-------------------------------------------------------------------------------
# Change Class With New Skill
# Author : larkuzo
# Versi : 1.0
# Fungsi : Ketika mengganti class, skill yang lama akan digantikan oleh
# skill yang baru yang sesuai dengan class
#-------------------------------------------------------------------------------
module BattleManager
def self.battle_start
@class_array = []
for i in 1..$game_party.max_battle_members
@class_array[i] = $game_actors[i].class_id
end
$game_system.battle_count += 1
$game_party.on_battle_start
$game_troop.on_battle_start
$game_troop.enemy_names.each do |name|
$game_message.add(sprintf(Vocab::Emerge, name))
end
if @preemptive
$game_message.add(sprintf(Vocab::Preemptive, $game_party.name))
elsif @surprise
$game_message.add(sprintf(Vocab::Surprise, $game_party.name))
end
wait_for_message
end
#-----------------------------------------------------------------------
# Battle Berakhir
#-----------------------------------------------------------------------
def self.battle_end(result)
@phase = nil
for o in 1..$game_party.max_battle_members
$game_actors[o].change_class(@class_array[o])
end
@event_proc.call(result) if @event_proc
$game_party.on_battle_end
$game_troop.on_battle_end
SceneManager.exit if $BTEST
end
end
class Game_Actor < Game_Battler
def change_class(class_id, keep_exp = true)
# Forget all skills
self.class.learnings.each do |learning|
forget_skill(learning.skill_id)
end
@exp[class_id] = exp if keep_exp
@class_id = class_id
change_exp(@exp[@class_id] || 0, false)
# Learn all skills
self.class.learnings.each do |learning|
if learning.note =~ /<dl>/
learn_skill(learning.skill_id) if learning.level <= @level
else
learn_skill(learning.skill_id)
end
end
refresh
end
end
Cara pakai : Tinggal copas aja ke script editor
tambahkan <dl> di note skill yang ada di class supaya tidak akan di learn jika level belum cukup
Credits