Estranho, parece que estou muito enferrujado do fórum, tem ano que não mexo com RPG Maker, só agora vi que postei na área errada, perdoem, não foi por mal. Algum mod pode mover?
A mais o menos um ano atrás um Maker desenvolveu o script abaixo pra mim (creio que tenha sido o DeadMaker).
Ele basicamente serve como add-on do Ace Core Engine/Sideview, basicamente o que ele faz é:
-> todos os personagens possuem chars pequenos para movimentação no mapa, porém cada um deles, ao entrar na batalha mudam o gráfico para um char de mesmo nome com o sufixo "_b". (exemplo: Actor1_b)
Até aí tudo bem, porém ao finalizar a batalha acho que ele esqueceu de retornar o gráfico para o normal, assim quando entro em uma batalha pela segunda vez o script porcura um gráfico com "Actor1_b_b".
Será que alguém pode solucionar isso?
Script 1 - Transformation Skill
module TFSK
#=> ID das skills de transformação
Morph_Skill = [0]
#ID Classe Antiga => [Gráfico, [Face, Face Index], ID Classe Nova]
Morphs = { }
end
module RBAS
Switch = 14 #=> Switch para retirar 1º Player do Grupo
end
class Game_Battler < Game_BattlerBase
alias remaking_skills_use_item use_item
def use_item(*args)
if args[0].is_a?(RPG::Skill) and TFSK::Morph_Skill.include?(args[0].id) &&
TFSK::Morphs.keys.include?(self.class.id)
vms_morph_index = TFSK::Morphs.keys.index(self.class.id)
vms_morph_settings(TFSK::Morphs.values[vms_morph_index])
end
remaking_skills_use_item(*args)
end
def vms_morph_settings(data)
character = data[0] ; face = data[1]
self.class.learnings.each { |forget|
forget_skill(forget.skill_id) }
self.change_class(data[2],true)
self.class.learnings.each { |learn|
if self.level >= learn.level
learn_skill(learn.skill_id)
end }
self.set_graphic(character, 0, face[0], face[1])
new_char = Cache.character(character + "_b")
origin_sprite = SceneManager.scene.spriteset.actor_sprites[self.index]
origin_sprite.character_sprite.bitmap = new_char
$game_player.refresh
end
end
class Game_System
def lock_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
actor = $game_actors[actor_id]
actor.locked = true
end
def unlock_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
actor = $game_actors[actor_id]
actor.locked = false
end
def require_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
return if $game_system.formation_disabled
actor = $game_actors[actor_id]
actor.required = true
end
def unrequire_actor(actor_id)
return unless YEA::PARTY::ENABLE_MENU
return if $game_system.formation_disabled
actor = $game_actors[actor_id]
actor.required = false
end
end
class Scene_Battle < Scene_Base
alias removed_battle_actor_main main
def main
recreate_correct_morph
if $game_switches[RBAS::Switch] == true && $game_party.members.size > 1
rbas_actor = $game_party.members[0]
@vmbr_removed_actor = true
$game_party.remove_actor(rbas_actor.id)
end
removed_battle_actor_main
recreate_correct_morph(true)
if @vmbr_removed_actor != nil
$game_party.add_actor(rbas_actor.id)
$game_system.lock_actor(rbas_actor.id)
$game_system.require_actor(rbas_actor.id)
end
end
def recreate_correct_morph(dispose=false)
old = $game_party.members
old.size.times do |i|
fn = old[i].face_name ; fi = old[i].face_index
if dispose == true
cn = old[i].character_name.split("-")[0]
else
cn = old[i].character_name + "_b" #Seria _b mas eu tirei de entre os ""
end
$game_party.members[i].set_graphic(cn, 0, fn, fi)
end
end
end
Script 2 - Transformation Skill Bug Fix
class Game_Interpreter
def command_322
actor = $game_actors[@params[0]]
if actor
actor.set_graphic(@params[1], @params[2], @params[3], @params[4])
end
return if !SceneManager.scene_is?(Scene_Battle)
$game_party.battle_members.each { |actor|
if actor.id == @params[0]
index = $game_party.battle_members.index(actor)
rbas0x1 = Cache.character(@params[1])
battle_scene = SceneManager.scene.spriteset.actor_sprites[index]
battle_scene.character_sprite.bitmap = rbas0x1
SceneManager.scene.spriteset.update_actors
$game_player.refresh
end }
end
end