Requesting a patch for Animated Battlers by Jet

deathsia

Pegisister
Veteran
Joined
Feb 26, 2014
Messages
648
Reaction score
55
First Language
English
Primarily Uses
Link to Animated battlers: http://www.rpgmakervxace.net/topic/500-animated-battlers/

Link to MOG Cursor: https://atelierrgss.wordpress.com/rgss3-battle-cursor/

Sprite Actor: https://atelierrgss.wordpress.com/rgss3-sprite-actor/

I have managed to get these two scripts to play nicely with one another but there is one thing that I can't overcome and that's the fact that Mog's Cursor script is

hardwired into the rest of his scripts, primarily, his Mog Sprite actor script.

Placing the script here to save people the trouble of downloading the demo:

#==============================================================================# +++ MOG - Sprite Actor (v1.5) +++#==============================================================================# By Moghunter # https://atelierrgss.wordpress.com/#==============================================================================# O script adiciona o sprite dos aliados na batalha.# É possível escolher entre o sprite do character ou uma imagem do battler.#==============================================================================#==============================================================================# NOTA - È necessário ter o script BATTLER MOTION para este script funcionar#==============================================================================#==============================================================================# ● DESATIVAR / ATIVAR O AJUSTE AUTOMÁTICO DE POSIÇÃO#==============================================================================## position_auto(false)##==============================================================================#==============================================================================# ● POSIÇÂO DO BATTLER#==============================================================================# Para mudar a posição do battler no meio do jogo use o código abaixo.# (É necessário que o ajuste autómatico de posição esteja desativado)## change_battler_position( ID , X , Y, DIRECTION)## Exemplo ## change_battler_position(1,400,200,6)##==============================================================================#==============================================================================# ● AÇÃO DE IR ATÈ O ALVO#==============================================================================# Para ativar o movimento do battler ir até o alvo use o comentário abaixo na# caixa de notas da habilidade ou item.## <Move to Target>### <Move to Target x y>##==============================================================================#==============================================================================# ● ARMAS DE LONGO ALCANCE (BOW & GUN)#==============================================================================# Para definir armas de long alcance use o cometário abaixo na caixa de notas# da arma.## <Icon Angle = X>## X = Ângulo do ícone##==============================================================================#==============================================================================# ● OCULTAR SPRITES#==============================================================================# Para ocultar os sprites na hora da ação use o código abaixo.## <Hide User>##==============================================================================#==============================================================================# ● Histórico (Version History)#==============================================================================# v1.5 - Melhoria na codificação.# v1.4 - Melhoria na compatibilidade com MOG Battle Camera.# v1.3 - Adição com comando <Move to Target x y>.# v1.2 - Melhoria na execução dos movimentos.# v1.1 - Adição do efeito de animação de dano.# - Correção do requerimento do MOG ATB.# - Correção de não atualizar a posição ao adicionar ou remover o battler.#==============================================================================$imported = {} if $imported.nil?$imported[:mog_sprite_actor] = true#==============================================================================module MOG_SPRITE_ACTOR #-------------------------------------------------------------------------- # Definição da direção do sprite # 2 - DOWN 4 - LEFT 6 - RIGHT 8 - UP #-------------------------------------------------------------------------- ACTOR_DIRECTION = 4 #-------------------------------------------------------------------------- # Definição do tipo de formação de batalha. de (0 a 4) #-------------------------------------------------------------------------- # OBS as formações 1,2 e 4 requerem 5 membros na batalha. #-------------------------------------------------------------------------- INITIAL_FORMATION_TYPE = 3 #-------------------------------------------------------------------------- # Definição da posição e da direção do sprite #-------------------------------------------------------------------------- # # ACTOR_DEFAULT_POSITION = [X,Y,D] # # X = Posição na horizontal. # Y = Posição na vertical. #-------------------------------------------------------------------------- ACTOR_DEFAULT_POSITION = [0,0] #-------------------------------------------------------------------------- # Ajustar automáticamente a posição dos battler, essa posição já cálcula o # espaço baseado na quantidade de battlers na tela. #-------------------------------------------------------------------------- ACTOR_AUTO_ADJUST_POSITION = false #-------------------------------------------------------------------------- # Definição específica das posição dos battlers, para essa opção funcionar # é necessário desativar a opção de ACTOR_AUTO_ADJUST_POSITION = false #-------------------------------------------------------------------------- # # ACTOR_POSITION = { ID = >[X,Y,D] } # # ID = ID da posição. # X = Posição na horizontal. # Y = Posição na vertical. # D = Direção do sprite. # #-------------------------------------------------------------------------- ACTOR_POSITION = { #0=>[260,330,8], #1=>[100,300,6], #2=>[420,300,4], #3=>[460,210,4], #4=>[60,210,6] } #-------------------------------------------------------------------------- # Definição do zoom do sprite. #-------------------------------------------------------------------------- SPRITE_ZOOM = 1.50 #-------------------------------------------------------------------------- # Ativar pose de carregar magia. (Breath Effect) #-------------------------------------------------------------------------- CAST_POSE = true #-------------------------------------------------------------------------- # Ativar o battler o tremendo quando recebe dano. #-------------------------------------------------------------------------- DAMAGE_ANIMATION = true #-------------------------------------------------------------------------- # Definição da quantidade de passos para executar a ação. #-------------------------------------------------------------------------- MOVE_NUMBER_OF_STEPS = 64 #-------------------------------------------------------------------------- # Ativar animação de fugir. #-------------------------------------------------------------------------- ESCAPE_ANIMATION = true #-------------------------------------------------------------------------- # Ativar o cursor de seleção. (É necessário ter o MOG ATB) #-------------------------------------------------------------------------- CURSOR_ACTOR = true CURSOR_ACTOR_POSITION = [0,-25] CURSOR_ACTOR_Z = 100 CURSOR_ACTOR_FLOAT_EFFECT = trueendif $imported[:mog_battler_motion]#==============================================================================# ■ Game Temp#==============================================================================class Game_Temp attr_accessor :cursor_actor_data attr_accessor :sprite_actor_need_refresh attr_accessor :battle_end #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_bact_temp_initialize initialize def initialize @cursor_actor_data = [nil,nil,0] ; @sprite_actor_need_refresh = false @battle_end = false mog_bact_temp_initialize end #-------------------------------------------------------------------------- # ● Sprite Visible #-------------------------------------------------------------------------- def sprite_visible return false if $game_message.visible return false if $game_temp.battle_end return true end end#===============================================================================# ■ Game Interpreter#===============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # ● Change Battler Position #-------------------------------------------------------------------------- def change_battler_position(id,x,y,d = 4) d = [2,4,6,8].include?(d) ? d : 4 $game_party.battlers_position[id] = [x,y,d] end #-------------------------------------------------------------------------- # ● Change M Steps #-------------------------------------------------------------------------- def change_m_steps(value = 32) $game_party.battlers_m_steps = value end #-------------------------------------------------------------------------- # ● Position Auto #-------------------------------------------------------------------------- def position_auto(value = true) $game_party.battlers_position_auto = value end #-------------------------------------------------------------------------- # ● Formation Type #-------------------------------------------------------------------------- def formation_type(type = 0) type = 0 if ![0,1,2,3,4].include?(type) $game_party.formation_type = type end #-------------------------------------------------------------------------- # ● Formation Direction #-------------------------------------------------------------------------- def formation_direction(type) type = 0 if ![2,4,6,8].include?(type) $game_party.f_direction = type end end#===============================================================================# ■ Game Party#===============================================================================class Game_Party < Game_Unit attr_accessor :battlers_position attr_accessor :battlers_position_auto attr_accessor :battlers_m_steps attr_accessor :formation_type attr_accessor :f_direction #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_bact_initialize initialize def initialize mog_bact_initialize @formation_type = MOG_SPRITE_ACTOR::INITIAL_FORMATION_TYPE ;@fp = [0,0] @f_direction = [2,4,6,8].include?(MOG_SPRITE_ACTOR::ACTOR_DIRECTION) ? MOG_SPRITE_ACTOR::ACTOR_DIRECTION : 4 @battlers_position = [] ; @battlers_m_steps = MOG_SPRITE_ACTOR::MOVE_NUMBER_OF_STEPS ajust_battler_original_position @battlers_position_auto = MOG_SPRITE_ACTOR::ACTOR_AUTO_ADJUST_POSITION end #-------------------------------------------------------------------------- # ● Ajust Battler Original Position #-------------------------------------------------------------------------- def ajust_battler_original_position @battlers_position = [] for i in 0...max_battle_members @battlers_position.push(MOG_SPRITE_ACTOR::ACTOR_POSITION) rescue nil end end #-------------------------------------------------------------------------- # ● Auto Ajust Battler Position #-------------------------------------------------------------------------- def auto_ajust_battler_position return if !@battlers_position_auto return if battle_members.size < 1 @f_direction = [2,4,6,8].include?(@f_direction) ? @f_direction : 4 @battlers_position.clear ; @fp = [0,0] ; execute_formation end #-------------------------------------------------------------------------- # ● Execute Formation #-------------------------------------------------------------------------- def execute_formation n_index = 0 for i in 0...battle_members.size n_index += 1 ; n_index = 0 if n_index > 1 make_formation(i,n_index) @battlers_position.push([@fp[0],@fp[1],@f_direction]) end end #-------------------------------------------------------------------------- # ● Make Formation #-------------------------------------------------------------------------- def make_formation(i,n_index) i = set_real_index(i) ; i = 0 if i == nil case @formation_type when 1 ; attack_formation(i) when 2 ; defence_formation(i) when 3 ; fight_formation(i,n_index) when 4 ; cross_formation(i) else ; free_formation(i) end end #-------------------------------------------------------------------------- # ● Free Formation #-------------------------------------------------------------------------- def free_formation(i) case @f_direction when 2 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) y2 = 0 @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 48 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 when 4 y1 = (Graphics.height / 3) / battle_members.size y2 = (y1 / 2) + (y1 * i) @fp[0] = 420 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] + (12 * i) @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 6 y1 = (Graphics.height / 3) / battle_members.size y2 = (y1 / 2) + (y1 * i) @fp[0] = 100 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] - (12 * i) @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 8 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = (Graphics.height - 96) + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] end end #-------------------------------------------------------------------------- # ● Attack Formation #-------------------------------------------------------------------------- def attack_formation(i) return free_formation(i) if battle_members.size != 5 case @f_direction when 2 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) ln = battle_members.size / 2 if i < ln ; y2 = -32 * i elsif i > ln ; y2 = (32 * (i - ln)) + (-32 * ln) else ; y2 = (-32 * ln) end @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 60 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 when 4 y1 = (Graphics.height / 3) / battle_members.size y2 = (y1 / 2) + (y1 * i) ln = battle_members.size / 2 if i < ln ; x2 = -32 * i elsif i > ln ; x2 = (32 * (i - ln)) + (-32 * ln) else ; x2 = (-32 * ln) end @fp[0] = 400 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] - x2 @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 6 y1 = (Graphics.height / 3) / battle_members.size y2 = (y1 / 2) + (y1 * i) ln = battle_members.size / 2 if i < ln ; x2 = -32 * i elsif i > ln ; x2 = (32 * (i - ln)) + (-32 * ln) else ; x2 = (-32 * ln) end @fp[0] = 120 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] + x2 @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 8 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) ln = battle_members.size / 2 if i < ln ; y2 = 32 * i elsif i > ln ; y2 = (-32 * (i - ln)) + (32 * ln) else ; y2 = (32* ln) end @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = (Graphics.height - 128) + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 end end #-------------------------------------------------------------------------- # ● Defence Formation #-------------------------------------------------------------------------- def defence_formation(i) return free_formation(i) if battle_members.size != 5 case @f_direction when 2 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) ln = battle_members.size / 2 if i < ln ; y2 = -32 * i elsif i > ln ; y2 = (32 * (i - ln)) + (-32 * ln) else ; y2 = (-32 * ln) end @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 30 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] - y2 when 4 y1 = (Graphics.height / 3) / battle_members.size y2 = (y1 / 2) + (y1 * i) ln = battle_members.size / 2 if i < ln ; x2 = -32 * i elsif i > ln ; x2 = (32 * (i - ln)) + (-32 * ln) else ; x2 = (-32 * ln) end @fp[0] = 464 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] + x2 @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 6 y1 = (Graphics.height / 3) / battle_members.size y2 = (y1 / 2) + (y1 * i) ln = battle_members.size / 2 if i < ln ; x2 = -32 * i elsif i > ln ; x2 = (32 * (i - ln)) + (-32 * ln) else ; x2 = (-32 * ln) end @fp[0] = 56 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] - x2 @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 8 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) ln = battle_members.size / 2 if i < ln ; y2 = 32 * i elsif i > ln ; y2 = (-32 * (i - ln)) + (32 * ln) else ; y2 = (32* ln) end @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = (Graphics.height - 64) + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] - y2 end end #-------------------------------------------------------------------------- # ● Fight Formation #-------------------------------------------------------------------------- def fight_formation(i,n_index) return free_formation(i) if [2,8].include?(@f_direction) and battle_members.size < 3 case @f_direction when 2 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) y2 = [1,3].include?(i) ? 32 : 0 @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 64 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] - y2 when 4 y1 = (Graphics.height / 3) / max_battle_members y2 = (y1 / 2) + (y1 * i) x2 = [1,3].include?(i) ? 32 : 0 x2 += 8 * i @fp[0] = 404 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] + x2 + 16 @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 6 y1 = (Graphics.height / 3) / max_battle_members y2 = (y1 / 2) + (y1 * i) x2 = [1,3].include?(i) ? 32 : 0 x2 += 8 * i @fp[0] = 68 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] - x2 + 32 @fp[1] = 190 + y2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] when 8 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) y2 = [1,3].include?(i) ? 32 : 0 @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = (Graphics.height - 128) + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 end end #-------------------------------------------------------------------------- # ● Cross Formation #-------------------------------------------------------------------------- def cross_formation(i) return free_formation(i) if battle_members.size != 5 case @f_direction when 2 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) x = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] c = Graphics.width / 2 if i == 0 ; x2 = c y2 = -32 elsif i.between?(1,3) x2 = c - 128 + (64 * i) y2 = 32 else x2 = c y2 = 96 end @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 96 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 - 32 when 4 y1 = (Graphics.height / 3) / battle_members.size y3 = (y1 / 2) + (y1 * i) x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) x = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] c = Graphics.width / 2 if i == 0 ; x2 = c y2 = -32 elsif i.between?(1,3) x2 = c - 128 + (64 * i) y2 = 32 else x2 = c y2 = 96 end @fp[0] = 148 + x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 299 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 - 64 when 6 y1 = (Graphics.height / 3) / battle_members.size y3 = (y1 / 2) + (y1 * i) x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) x = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] c = Graphics.width / 2 if i == 0 ; x2 = c y2 = -32 elsif i.between?(1,3) x2 = c - 128 + (64 * i) y2 = 32 else x2 = c y2 = 96 end @fp[0] = -150 + x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] @fp[1] = 299 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 - 64 when 8 x1 = (Graphics.width / 2) / battle_members.size x2 = (x1 / 2) + (x1 * i) + ((x1 / 2) * battle_members.size) x = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] c = Graphics.width / 2 if i == 0 ; x2 = c y2 = -32 elsif i.between?(1,3) x2 = c - 128 + (64 * i) y2 = 32 else x2 = c y2 = 96 end @fp[0] = x2 + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[0] - 2 @fp[1] = (Graphics.height - 96) + MOG_SPRITE_ACTOR::ACTOR_DEFAULT_POSITION[1] + y2 - 64 end end #-------------------------------------------------------------------------- # ● set Real Index #-------------------------------------------------------------------------- def set_real_index(i) if [1,2].include?(@formation_type) p1 = [[2,3,1,4,0],[2,1,3,0,4],[2,1,3,0,4],[2,1,3,4,0]] case @f_direction when 2 ; return p1[0] when 4 ; return p1[1] when 6 ; return p1[2] when 8 ; return p1[3] end elsif @formation_type == 4 p2 = [[2,3,1,4,0],[2,0,4,1,3],[2,0,4,3,1],[2,1,3,4,0]] case @f_direction when 2 ; return p2[0] when 4 ; return p2[1] when 6 ; return p2[2] when 8 ; return p2[3] end  end return i end end#===============================================================================# ■ SceneManager#===============================================================================module SceneManager #-------------------------------------------------------------------------- # ● Face Battler? #-------------------------------------------------------------------------- def self.face_battler? return false end end #===============================================================================# ■ BattleManager#===============================================================================class << BattleManager #-------------------------------------------------------------------------- # ● Process Abort #-------------------------------------------------------------------------- alias mog_bact_ec_process_abort process_abort def process_abort $game_temp.bact_phase[0] = 1 mog_bact_ec_process_abort end end#===============================================================================# ■ Game Battler#===============================================================================class Game_Battler < Game_BattlerBase attr_accessor :bact_sprite attr_accessor :bact_sprite_need_refresh attr_accessor :bact_sprite_visiblle attr_accessor :bact_sprite_cast_ani attr_accessor :bact_sprite_dead attr_accessor :weapon_animation attr_accessor :wp_animation #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_bact_data_initialize initialize def initialize @bact_sprite = [4,nil,nil,nil,0] @bact_sprite_need_refresh = false @bact_sprite_visiblle = true @bact_sprite_cast_ani = [[],0] @weapon_animation = [false,nil] @wp_animation = [false,false] @bact_sprite_dead = [false,false] mog_bact_data_initialize end #-------------------------------------------------------------------------- # ● Step Animation #-------------------------------------------------------------------------- def step_animation return if @bact_sprite_dead[0] @bact_sprite[3] += 1 @bact_sprite[3] = 0 if @bact_sprite[3] > 2 end #-------------------------------------------------------------------------- # ● Return to Orign #-------------------------------------------------------------------------- def return_to_orign @screen_x = @bact_sprite[6] @screen_y = @bact_sprite[7] @bact_sprite_need_refresh = true end end #===============================================================================# ■ Scene Battle#===============================================================================class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● Start #-------------------------------------------------------------------------- alias mog_bact_start start def start $game_party.auto_ajust_battler_position $game_temp.bact_phase[0] = 0 $game_party.battle_members.each do |actor| actor.bact_sprite_dead = [false,false] ; end mog_bact_start end #-------------------------------------------------------------------------- # ● Appy Item Effects #-------------------------------------------------------------------------- alias mog_bact_apply_item_effects apply_item_effects def apply_item_effects(target, item) old_dead = target.dead? mog_bact_apply_item_effects(target, item) target.bact_sprite_need_refresh = true if old_dead != target.dead? end #-------------------------------------------------------------------------- # ● Show Animation #-------------------------------------------------------------------------- alias mog_bact_show_animation show_animation def show_animation(targets, animation_id) item = @subject.current_action.item rescue nil if (item != nil and item.note =~ /<Hide User>/) @subject.bact_sprite_visiblle = false if @subject.is_a?(Game_Actor) and @cp_members != nil @cp_members.each do |battler| battler.bact_sprite_visiblle = false ; end end end mog_bact_show_animation(targets, animation_id) show_user_animation_afer_action if $imported[:mog_animation_plus] @subject.bact_sprite_visiblle = true if @subject.is_a?(Game_Actor) and @cp_members != nil @cp_members.each do |battler| battler.bact_sprite_visiblle = true ; end end end #-------------------------------------------------------------------------- # ● Normal Show Animation #-------------------------------------------------------------------------- alias mog_bact_dual_wield_show_normal_animation show_normal_animation def show_normal_animation(targets, animation_id, mirror = false) execute_dual_wield_anime if btact_dual_wield? mog_bact_dual_wield_show_normal_animation(targets, animation_id,mirror) @subject.weapon_animation = [false,nil] end #-------------------------------------------------------------------------- # ● Btact Dual Wield #-------------------------------------------------------------------------- def btact_dual_wield? return false if @subject.is_a?(Game_Enemy) return false if !@subject.dual_wield? return false if @subject.atk_animation_id2 == 0 return true end #-------------------------------------------------------------------------- # ● Execute Dual Wield Anime #-------------------------------------------------------------------------- def execute_dual_wield_anime @dwl = 0 if @dwl == nil ; @dwl += 1 ; return if @dwl < 2 @subject.weapon_animation = [true,@subject.equips[1]] @dwl = nil end #-------------------------------------------------------------------------- # ● Execute Action #-------------------------------------------------------------------------- alias mog_bact_damage_execute_action execute_action def execute_action if !@subject.nil? and @subject.is_a?(Game_Actor) @subject.motion_damage[1] = 1 ; @spriteset.update end mog_bact_damage_execute_action if $game_party.all_dead? $game_party.battle_members.each do |actor| actor.bact_sprite_dead = [true,true] ; end end end end#===============================================================================# ■ Game Actor#===============================================================================class Game_Actor < Game_Battler attr_accessor :screen_x attr_accessor :screen_y attr_accessor :screen_z #-------------------------------------------------------------------------- # ● Setup #-------------------------------------------------------------------------- alias mog_bact_setup setup def setup(actor_id) @screen_x = 0 ; @screen_y = 0 ; @screen_z = 100 mog_bact_setup(actor_id) @battler_name = @character_name end #-------------------------------------------------------------------------- # ● Use Sprite? #-------------------------------------------------------------------------- def use_sprite? return true endend#===============================================================================# ■ Sprite Battler#===============================================================================class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_bact_initialize initialize def initialize(viewport, battler = nil) mog_bact_initialize(viewport, battler) end #-------------------------------------------------------------------------- # ● Update Bitmap #-------------------------------------------------------------------------- alias mog_bact_dispose dispose def dispose mog_bact_dispose (@wp_sprite.bitmap.dispose ; @wp_sprite.dispose) if @wp_sprite != nil end #-------------------------------------------------------------------------- # ● Update Bitmap #-------------------------------------------------------------------------- alias mog_bact_update_bitmap update_bitmap def update_bitmap if @battler != nil self.visible = @battler.bact_sprite_visiblle unless @battler.dead? if @battler.bact_sprite[1] == nil and self.bitmap @battler.bact_sprite[1] = self.bitmap.width @battler.bact_sprite[2] = self.bitmap.height end if update_sprite_actor? ; update_sprite_actor ; return ; end end mog_bact_update_bitmap end #-------------------------------------------------------------------------- # ● Update Cast Animation? #-------------------------------------------------------------------------- def update_cast_animation? return false if !$imported[:mog_atb_system] return false if !MOG_SPRITE_ACTOR::CAST_POSE return false if @battler.is_a?(Game_Enemy) return false if bitmap == nil set_cast_pose if @battler.bact_sprite_cast_ani[0] != @battler.atb_cast return false if @battler.atb_cast.empty? return true end #-------------------------------------------------------------------------- # ● Set Cast Pose #-------------------------------------------------------------------------- def set_cast_pose return if !$imported[:mog_atb_system] @battler.bact_sprite_cast_ani[0] = @battler.atb_cast @battler.bact_sprite_cast_ani[1] = 0 if @battler.atb_cast.empty? set_base_data else unless [4,6].include?(@battler.bact_sprite[5]) and $game_party.formation_type == 0 and $game_party.battlers_position_auto @battler.bact_sprite[0] = 2 end end end #-------------------------------------------------------------------------- # ● Set Base Data #-------------------------------------------------------------------------- def set_base_data set_actor_position self.zoom_x = MOG_SPRITE_ACTOR::SPRITE_ZOOM self.zoom_y = MOG_SPRITE_ACTOR::SPRITE_ZOOM self.angle = 0 end #-------------------------------------------------------------------------- # ● Update Cast Animation #-------------------------------------------------------------------------- def update_cast_animation return if !$imported[:mog_atb_system] @battler.bact_sprite_cast_ani[1] += 1 case @battler.bact_sprite_cast_ani[1] when 0..30 ; self.zoom_y += 0.003 when 31..60 ; self.zoom_y -= 0.003 else @battler.bact_sprite_cast_ani[1] = 0 self.zoom_y = MOG_SPRITE_ACTOR::SPRITE_ZOOM end set_base_data if @battler.atb_cast[1] <= 1 end #-------------------------------------------------------------------------- # ● Update Bact Bitmap? #-------------------------------------------------------------------------- def update_bact_bitmap? return false if @battler.is_a?(Game_Enemy) return false if bitmap == nil return false if @battler.bact_sprite[1] == nil return true end #-------------------------------------------------------------------------- # ● Refresh Battler Actor? #-------------------------------------------------------------------------- def update_sprite_actor? return false if @battler.is_a?(Game_Enemy) return true end #-------------------------------------------------------------------------- # ● Set Actor Position #-------------------------------------------------------------------------- def set_actor_position np = $game_party.battlers_position[@battler.index] np = [450 + 10 * @battler.index,200 + 32 * @battler.index,4,4] if np == nil @battler.screen_x = np[0] ; @battler.screen_y = np[1] @battler.bact_sprite[0] = np[2] ; @battler.bact_sprite[5] = np[2] @battler.bact_sprite[6] = np[0] ; @battler.bact_sprite[7] = np[1] end #-------------------------------------------------------------------------- # ● Update Actor Sprite Damage Effect #-------------------------------------------------------------------------- def update_actor_sprite_damage_effect @battler.motion_damage[1] -= 1 self.x += rand(10) - 5 unless @battler.motion_damage[1] == 0 if [2,4].include?(@battler.bact_sprite[5]) self.angle = @battler.bact_sprite[5] == 4 ? 350 : 10 end if @battler.motion_damage[1] == 0 self.angle = 0 ; (set_base_data ; set_dead_pose) if @battler.dead? end end #-------------------------------------------------------------------------- # ● Update Actor Sprite Damage Effect? #-------------------------------------------------------------------------- def update_actor_sprite_damage_effect? return false if !MOG_SPRITE_ACTOR::DAMAGE_ANIMATION return false if @battler.nil? return false if !@battler.is_a?(Game_Actor) return false if @battler.motion_damage[1] == 0 return true end #-------------------------------------------------------------------------- # ● Refresh Battler Actor #-------------------------------------------------------------------------- def update_sprite_actor update_bact_bitmap if update_bact_bitmap? update_cast_animation if update_cast_animation? refresh_actor_bitmap if refresh_sprite_bitmap? update_wp_sprite end #-------------------------------------------------------------------------- # ● Refresh Sprite Bitmap? #-------------------------------------------------------------------------- def refresh_sprite_bitmap? new_bitmap = Cache.character(@battler.battler_name) return true if @battler_bitmap != new_bitmap return false end #-------------------------------------------------------------------------- # ● Refresh Actor Bitmap #-------------------------------------------------------------------------- def refresh_actor_bitmap set_actor_position @battler_bitmap = Cache.character(@battler.battler_name) sign = battler.battler_name[/^[\!\$]./] if sign && sign.include?('$') @cw = @battler_bitmap.width / 3 ; @ch = @battler_bitmap.height / 4 else @cw = @battler_bitmap.width / 12 ; @ch = @battler_bitmap.height / 8 end self.bitmap = Bitmap.new(@cw,@ch) self.ox = @cw / 2 ; self.oy = @ch self.zoom_x = MOG_SPRITE_ACTOR::SPRITE_ZOOM self.zoom_y = MOG_SPRITE_ACTOR::SPRITE_ZOOM self.angle = 0 self.mirror = false @battler.bact_sprite[0] = @battler.bact_sprite[5] @battler.bact_sprite[1] = self.bitmap.width @battler.bact_sprite[2] = self.bitmap.height @battler.bact_sprite[3] = 0 @battler.bact_sprite[4] = 0 create_sprite_weapon if @wp_sprite == nil init_visibility ; refresh_actor_sprite ; update_bact_bitmap @original_set = [self.x, self.y, self.zoom_x,self.zoom_y,self.mirror,self.angle,255] end #-------------------------------------------------------------------------- # ● Update Scr Rect #-------------------------------------------------------------------------- def update_bact_bitmap refresh_actor_sprite if @battler.bact_sprite_need_refresh if @battler.bact_sprite[4] > 0 ; @battler.bact_sprite[4] -= 1 ; return ; end @battler.bact_sprite[4] = 4 self.bitmap.clear pattern = @battler.bact_sprite[3] index = @battler.character_index direction = @battler.bact_sprite[0] sx = (index % 4 * 3 + pattern) * @cw sy = (index / 4 * 4 + (direction - 2) / 2) * @ch nrect = Rect.new(sx, sy, @cw, @ch) self.bitmap.blt(0,0,@battler_bitmap,nrect) end #-------------------------------------------------------------------------- # ● Refresh Actor Sprite #-------------------------------------------------------------------------- def refresh_actor_sprite(initial_position = false) return if !refresh_actor_sprite? self.opacity = 255 ; @battler.bact_sprite_need_refresh = false set_base_data if @battler.dead? or initial_position set_dead_pose end #-------------------------------------------------------------------------- # ● Set Dead Pose #-------------------------------------------------------------------------- def set_dead_pose set_base_data if @battler.dead? case @battler.bact_sprite[5] when 2,8 self.angle = @battler.dead? ? 270 : 0 @battler.screen_x = @battler.dead? ? @battler.bact_sprite[6] - self.ox : @battler.bact_sprite[6] @battler.bact_sprite[0] = @battler.dead? ? 4 : @battler.bact_sprite[5] when 4 self.angle = @battler.dead? ? 270 : 0 @battler.screen_x = @battler.dead? ? @battler.bact_sprite[6] - self.ox : @battler.bact_sprite[6] @battler.bact_sprite[0] = @battler.bact_sprite[5] when 6 self.angle = @battler.dead? ? 90 : 0 @battler.screen_x = @battler.dead? ? @battler.bact_sprite[6] + self.ox : @battler.bact_sprite[6] @battler.bact_sprite[0] = @battler.bact_sprite[5] end end #-------------------------------------------------------------------------- # ● Refresh Actor Sprite? #-------------------------------------------------------------------------- def refresh_actor_sprite? return false if @battler.nil? return false if @battler.is_a?(Game_Enemy) return false if $imported[:mog_atb_system] and !@battler.atb_cast.empty? return false if $game_temp.bact_phase[0] == 1 return false if $game_temp.battle_end return true end #-------------------------------------------------------------------------- # ● Create Sprite Weapon #-------------------------------------------------------------------------- def create_sprite_weapon return if @battler.is_a?(Game_Enemy) @wp_sprite_icon = Cache.system("Iconset") @wp_sprite = Sprite.new @wp_sprite.bitmap = Bitmap.new(24,24) @wp_sprite.zoom_x = self.zoom_x @wp_sprite.zoom_y = self.zoom_y @wp_sprite.angle = 0 @wp_d = 60 ; @wp_index = 0 ; @wp_i = false @wp_sprite.viewport = self.viewport refresh_wp_sprite end #-------------------------------------------------------------------------- # ● Refresh WP Sprite #-------------------------------------------------------------------------- def refresh_wp_sprite @wp_sprite.visible = @battler.bact_action[0] @wp_sprite.visible = @battler.wp_animation[1] if @battler.wp_animation[0] @battler.wp_animation[0] = false @wp_sprite.bitmap.clear @bact_weap = @battler.equips[0] rescue nil @bact_weap = @battler.weapon_animation[1] if @battler.weapon_animation[1] != nil return if @bact_weap == nil icon_index = @bact_weap.icon_index wrect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24) case @battler.bact_sprite[0] when 2 @wp_data = [@battler.screen_x + 24, @battler.screen_y + 10,11,-240,false,32,-260,0] when 4 @wp_data = [@battler.screen_x - 5,@battler.screen_y - 5,6,230,false,24,260,-1] @wp_data[7] = 1 if @battler.weapon_animation[1] != nil when 6 @wp_data = [@battler.screen_x + 24, @battler.screen_y + 10,-10,180,true,24,260,-1] @wp_data[7] = 1 if @battler.weapon_animation[1] != nil when 8 @wp_data = [@battler.screen_x + 24, @battler.screen_y + 10,12,-240,false,32,-260,-1] end @wp_sprite.x = @wp_data[0] ; @wp_sprite.y = @wp_data[1] @wp_sprite.bitmap.blt(0, 0, @wp_sprite_icon, wrect) @wp_sprite.ox = 0 @wp_sprite.oy = @wp_sprite.bitmap.height / 2 @wp_sprite.angle = @wp_data[3] @wp_sprite.mirror = @wp_data[4] @wp_index = 0 loop do ; update_wp_animation(@wp_sprite,0) ; break if @wp_i ; end @wp_d = 15 ; @bow_mode = false if @battler.equips[0].note =~ /<Icon Angle = (\d+)>/i @wp_sprite.ox = @wp_sprite.bitmap.width / 2 @bow_mode = true case @battler.bact_sprite[0] when 2 ; @wp_sprite.angle = -225 + $1.to_i ; @wp_sprite.x = @battler.screen_x + 10 ; @wp_sprite.y = @battler.screen_y when 4 ; @wp_sprite.angle = 50 + $1.to_i; @wp_sprite.x = @battler.screen_x - 12 ; @wp_sprite.y = @battler.screen_y - 20 when 6 ; @wp_sprite.angle = 315 + $1.to_i; @wp_sprite.x = @battler.screen_x + 12 ; @wp_sprite.y = @battler.screen_y - 20 when 8 ; @wp_sprite.angle = 315 + $1.to_i; @wp_sprite.x = @battler.screen_x - 10 ; @wp_sprite.y = @battler.screen_y - 32 end if !char_atk_animation? @wp_sprite.angle -= 90 if @battler.bact_sprite[5] == 4 @wp_sprite.angle += 90 if @battler.bact_sprite[5] == 6 @wp_sprite.bitmap.clear if [2,8].include?(@battler.bact_sprite[5]) end end @battler.weapon_animation = [false,nil] end #-------------------------------------------------------------------------- # ● Update WP Sprite #-------------------------------------------------------------------------- def update_wp_sprite return if @battler == nil return if @wp_sprite == nil refresh_wp_sprite if refresh_wp_sprite? return if @bact_weap == nil update_wp_animation(@wp_sprite,0) return if !@wp_sprite.visible @wp_sprite.z = self.z + @wp_data[7] refresh_wp_sprite if @wp_index > 1 @wp_sprite.opacity = self.opacity @wp_sprite.opacity = 0 if (@wp_d > 10 or !@battler.bact_sprite_visiblle or @battler.dead?) @battler.bact_sprite[3] = 2 if @wp_d > 0 @wp_d -= 1 ; @wp_index = 1 if @wp_d == 0 and char_atk_animation? end update_wp_animation(@wp_sprite,0) end #-------------------------------------------------------------------------- # ● Refresh WP Sprite? #-------------------------------------------------------------------------- def refresh_wp_sprite? unless @battler.wp_animation[1] return true if @wp_sprite.visible != @battler.bact_action[0] end return true if @battler.wp_animation[0] return false end #-------------------------------------------------------------------------- # ● Long Range? #-------------------------------------------------------------------------- def char_atk_animation? item = @battler.bact_skill rescue nil return false if item == nil return true if item.note =~ /<Move to Target>/ return true if item.note =~ /<Weapon Animation>/ return true if item.physical? return true if item.is_a?(RPG::Skill) and item.id == @battler.attack_skill_id return false end #-------------------------------------------------------------------------- # ● Set Sprite Ring Position #-------------------------------------------------------------------------- def update_wp_animation(bc_sprite,index) return if @bow_mode @roll_range = @wp_data[5] ; rol_index = @wp_data[6] ; si = @wp_index now_p = rol_index * (si - index) round = (2.0 * Math::pI / 360) * -now_p case @battler.bact_sprite[0] when 2 ; @wp_index == 0 ? px = [48,13] : px = [-33,12] when 4 ; @wp_index == 0 ? px = [10,-23] : px = [5,0] when 6 ; @wp_index == 0 ? px = [0,0] : px = [44,-18] when 8 ; @wp_index == 0 ? px = [44,0] : px = [-34,0] end nx = px[0] + self.x - 12 - (@roll_range * Math.sin( round )).to_i ny = px[1] + self.y - 12 - (@roll_range * Math.cos( round )).to_i execute_wp_rg(bc_sprite,0,bc_sprite.x,nx) execute_wp_rg(bc_sprite,1,bc_sprite.y,ny) @wp_i = bc_sprite.x == nx and bc_sprite.y == ny ? true : false refresh_wp_sprite if @wp_index === 1 and @wp_i and @battler.weapon_animation[1] != nil end #-------------------------------------------------------------------------- # ● Execute WP RG #-------------------------------------------------------------------------- def execute_wp_rg(sprite,type,cp,np) sp = 5 + ((cp - np).abs / 20) if cp > np ; cp -= sp ; sprite.angle += @wp_data[2] ; cp = np if cp < np elsif cp < np ; cp += sp ; sprite.angle += @wp_data[2] ; cp = np if cp > np end sprite.x = cp if type == 0 ; sprite.y = cp if type == 1 end #-------------------------------------------------------------------------- # ● Update Escape Phase #-------------------------------------------------------------------------- def update_escape_phase if @ns == nil ; @ns = [0,0] ; m_s = 2 case @battler.bact_sprite[5] when 2 ; nd = 8 ; @ns = [0,-m_s ] when 4 ; nd = 6 ; @ns = [m_s ,0] when 6 ; nd = 4 ; @ns = [-m_s ,0] when 8 ; nd = 2 ; @ns = [0,m_s ] end @battler.bact_sprite[0] = nd end return if !self.x.between?(-128,Graphics.width + 128) return if !self.y.between?(-128,Graphics.height + 128) self.x += @ns[0] ; self.y += @ns[1] ; @battler.step_animation endend#===============================================================================# ■ Spriteset Battle#===============================================================================class Spriteset_Battle #-------------------------------------------------------------------------- # ● Initialize #-------------------------------------------------------------------------- alias mog_bact_cr_initialize initialize def initialize mog_bact_cr_initialize create_actor_cursor if $imported[:mog_atb_system] != nil end #-------------------------------------------------------------------------- # ● Dispose #-------------------------------------------------------------------------- alias mog_bact_cr_dispose dispose def dispose mog_bact_cr_dispose (@cursor_actor.bitmap.dispose ; @cursor_actor.dispose) if @cursor_actor != nil $game_temp.cursor_actor_data = [nil,nil,0] end #-------------------------------------------------------------------------- # ● Update #-------------------------------------------------------------------------- alias mog_bact_cr_update update def update mog_bact_cr_update refresh_sprite_actor if $game_temp.sprite_actor_need_refresh update_cursor_actor if @cursor_actor != nil end #-------------------------------------------------------------------------- # ● Create Actor Cursor #-------------------------------------------------------------------------- def create_actor_cursor return if !MOG_SPRITE_ACTOR::CURSOR_ACTOR @cursor_actor = Sprite.new @cursor_actor.bitmap = Cache.system("Battle_Cursor_Actor") @cursor_actor_pos = [MOG_SPRITE_ACTOR::CURSOR_ACTOR_POSITION[0] + @cursor_actor.bitmap.width / 2 , MOG_SPRITE_ACTOR::CURSOR_ACTOR_POSITION[1] - @cursor_actor.bitmap.height,Graphics.width / 2, Graphics.height / 2, @cursor_actor.bitmap.width / 2] @cursor_actor.x = @cursor_actor_pos[2] @cursor_actor.y = @cursor_actor_pos[3] @cursor_actor.ox = @cursor_actor_pos[4] @cursor_actor.z = MOG_SPRITE_ACTOR::CURSOR_ACTOR_Z @cursor_actor_float = [0,0] end #-------------------------------------------------------------------------- # ● Update Actor Cursor #-------------------------------------------------------------------------- def update_cursor_actor return if @cursor_actor == nil @cursor_actor.visible = cursor_actor_visible? opc = @cursor_actor.visible ? 25 : - 25 @cursor_actor.opacity += opc update_cursor_float_effect cursor_actor_move(0,@cursor_actor.x,c_a_xy(0)) cursor_actor_move(1,@cursor_actor.y,c_a_xy(1) + @cursor_actor_float[1]) if $imported[:mog_battle_camera] != nil @cursor_actor.ox = @cursor_actor_pos[4] + $game_temp.viewport_oxy[0] @cursor_actor.oy = $game_temp.viewport_oxy[1] end end #-------------------------------------------------------------------------- # ● C a xy #-------------------------------------------------------------------------- def c_a_xy(type) if type == 0 return $game_temp.cursor_actor_data[1].x - $game_temp.cursor_actor_data[1].ox + @cursor_actor_pos[0] if $game_temp.cursor_actor_data[1] != nil return @cursor_actor_pos[2] end if type == 1 return $game_temp.cursor_actor_data[1].y - $game_temp.cursor_actor_data[1].bitmap.height + @cursor_actor_pos[1] if $game_temp.cursor_actor_data[1] != nil return @cursor_actor_pos[3] end end #-------------------------------------------------------------------------- # ● Cursor Actor Visible? #-------------------------------------------------------------------------- def cursor_actor_visible? return false if BattleManager.actor == nil return false if $game_temp.bact_phase[0] == 1 return false if !$game_temp.sprite_visible return true end #-------------------------------------------------------------------------- # ● Update Cursor Float Effect #-------------------------------------------------------------------------- def update_cursor_float_effect return if !MOG_SPRITE_ACTOR::CURSOR_ACTOR_FLOAT_EFFECT @cursor_actor_float[0] += 1 case @cursor_actor_float[0] when 0..15 ; @cursor_actor_float[1] += 1 when 16..30 ; @cursor_actor_float[1] -= 1 else @cursor_actor_float[0] = 0 ; @cursor_actor_float[1] = 0 end end #-------------------------------------------------------------------------- # ● Cursor Actor Move #-------------------------------------------------------------------------- def cursor_actor_move(type,cp,np) sp = 5 + ((cp - np).abs / 5) if cp > np ; cp -= sp ; cp = np if cp < np elsif cp < np ; cp += sp ; cp = np if cp > np end @cursor_actor.x = cp if type == 0 ; @cursor_actor.y = cp if type == 1 end #-------------------------------------------------------------------------- # ● Refresh Sprite Actor #-------------------------------------------------------------------------- def refresh_sprite_actor $game_temp.sprite_actor_need_refresh = false $game_party.auto_ajust_battler_position @actor_sprites.each {|sprite| sprite.refresh_actor_sprite(true)} end end#===============================================================================# ■ Spriteset Battle#===============================================================================class Sprite_Battler < Sprite_Base #-------------------------------------------------------------------------- # ● Update Position #-------------------------------------------------------------------------- alias mog_bact_cursor_actor_update_position update_position def update_position update_cursor_actor_sbattler mog_bact_cursor_actor_update_position update_actor_sprite_damage_effect if update_actor_sprite_damage_effect? end #-------------------------------------------------------------------------- # ● Update Cursor Actor Sbattler #-------------------------------------------------------------------------- def update_cursor_actor_sbattler return if BattleManager.actor == nil return if BattleManager.actor != @battler $game_temp.cursor_actor_data = [@battler,self,0] end end#==============================================================================# ** Game Interpreter#==============================================================================class Game_Interpreter #-------------------------------------------------------------------------- # ● Command_129 #-------------------------------------------------------------------------- alias mog_bact_command_129 command_129 def command_129 mog_bact_command_129 $game_temp.sprite_actor_need_refresh = true if SceneManager.scene_is?(Scene_Battle) end #-------------------------------------------------------------------------- # ● Command 335 #-------------------------------------------------------------------------- alias mog_bact_command_335 command_335 def command_335 mog_bact_command_335 $game_temp.sprite_actor_need_refresh = true if SceneManager.scene_is?(Scene_Battle) end end#==============================================================================# ** Game Party#==============================================================================class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ● Swap Order #-------------------------------------------------------------------------- alias mog_bact_swap_order swap_order def swap_order(index1, index2) mog_bact_swap_order(index1, index2) $game_temp.sprite_actor_need_refresh = true if SceneManager.scene_is?(Scene_Battle) end end#==============================================================================# ■ Game_Battler#==============================================================================class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ● Execute Damage #-------------------------------------------------------------------------- alias mog_bact_execute_damage execute_damage def execute_damage(user) mog_bact_execute_damage(user) self.motion_damage[1] = 40 if self.is_a?(Game_Actor) and @result.hp_damage > 0 end endend
What this means is that the cursor script will detect the enemy sprites just fine but it WILL NOT detect the player's party because methods are being overwritten by the animated battler's script.(at least I think it does...not entirely sure)

The patch I need is a(I hope)simple one.

I want Mog's cursor script to detect my party's sprites in combat so I can select them with the cursor.

Given the fact that all my script requests thus far have been ignored, I'm not holding my breath but I hope someone will take the task.

 

Torqus

Veteran
Veteran
Joined
Aug 2, 2015
Messages
169
Reaction score
26
First Language
English
Primarily Uses
Are you using 2 scripts that adds animated battlers to the battle? Mog's along with Jet's?

I'm having a hard time to understand that.

Also, to save you some time, have you already tested all the features of Jet Animated Battlers? Because I had a catastrophic bug when an actor died, their sprite reappeared at the start of the next battle even being dead, and then someone posted a fix in the thread. But I discovered there was also another problem. When you try to give a dead actor an item, just having the actor selected, its sprite reappears ignoring if he is still dead. (just noticed it's Animated Battlers not Sideview Battle, sorry)

Mog's battle cursor had a bug when you selected an ability that cast to all enemies. Multiple cursors and the possibility to select an enemy even though it would attack all the enemies.

Did you manage to solve this bugs or they didn't appear for you?

(I'm not a scripter but I had some problems with those scripts and I want to see if I can free you being frustrated later)

Also you should check the spoiler, it didn't work.

Wow I misunderstood everything, sorry, nothing to see here.
 
Last edited by a moderator:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.
Do you Find Tilesetting or Looking for Tilesets/Plugins more fun? Personally I like making my tileset for my Game (Cretaceous Park TM) xD
How many parameters is 'too many'??

Forum statistics

Threads
105,863
Messages
1,017,053
Members
137,571
Latest member
grr
Top