- Joined
- Apr 10, 2019
- Messages
- 11
- Reaction score
- 4
- First Language
- English
- Primarily Uses
- RMVXA
Hello there, sorry to be asking this, but I was stuck on this issue for awhile...
I'm using Moghunter's Actor Picture CM script, and it creates an actor image in the format of (Actor+Battler.id.png) in battles. I was wondering if there's someone kind enough to help me out by adding a function which can CHANGE the actor image mid-battle by, for example, flipping a switch. So for example normally I'd use Actor1.png for Actor1 which is Eric, but Eric casts a spell called "Transform" which will change his actor image to Actor2.png instead.
(I initially wanted to add a swapping actor functionality to achieve this effect, but this seems incompatible with Moghunter scripts overall).
Thank you for reading! Here's the code and the demo.
It can be found in the demo here:
https://atelierrgss.wordpress.com/download-page-1/
=========Edit:
Hi,
Sorry for posting again so quickly, but this is a post for the solution, so don't want anyone to miss this...
After a few more intense Google searches, changing the battler images are in the BATTLE_HUD script, NOT the Actor Picture. What you'll need to do is call this script in the battle field:
See Glasses' post in this link for further details:
https://www.rpgmakercentral.com/topic/29730-need-help-with-atelier-rgsss-battle-hud-ex-modification/
Thanks a lot
I'm using Moghunter's Actor Picture CM script, and it creates an actor image in the format of (Actor+Battler.id.png) in battles. I was wondering if there's someone kind enough to help me out by adding a function which can CHANGE the actor image mid-battle by, for example, flipping a switch. So for example normally I'd use Actor1.png for Actor1 which is Eric, but Eric casts a spell called "Transform" which will change his actor image to Actor2.png instead.
(I initially wanted to add a swapping actor functionality to achieve this effect, but this seems incompatible with Moghunter scripts overall).
Thank you for reading! Here's the code and the demo.
Code:
#==============================================================================
# +++ MOG - ACTOR PICTURE CM (v2.1) +++
#==============================================================================
# By Moghunter
# https://atelierrgss.wordpress.com/
#==============================================================================
# Apresenta a imagem do personagem durante a seleção de comandos, com efeitos
# animados.
#==============================================================================
# ● Definindo o nome das imagens dos battlers.
#==============================================================================
# 1 - As imagens devem ser gravadas na pasta
#
# GRAPHICS/PICTURES
#
# 2 - Nomeie os arquivos de imagens da seguinte forma.
#
#
# ACTOR + ID
#
# EG
#
# ACTOR1.png
#
#==============================================================================
# ● Histórico (Version History)
#==============================================================================
# v2.1 - Melhoria na codificação.
# v2.0 - Correção de não atualizar as imagens dos battlers quando se
# adiciona ou remove um battler no meio da batalha.
#==============================================================================
module MOG_ACTOR_PICTURE_CM
#Posição da imagem do battler. (Para fazer ajustes)
PICTURE_POSITION = [0, 0]
#Definição da opacidade da imagem.
PICTURE_OPACITY = 255
#Velocidade de deslize
SLIDE_SPEED = 40
#Ativar o efeito da imagem respirando.
BREATH_EFFECT = true
#Definição da prioridade da imagem na tela.
PICTURE_PRIORITY_Z = 101
end
$imported = {} if $imported.nil?
$imported[:actor_picture_cm] = true
#===============================================================================
# ■ Game Temp
#===============================================================================
class Game_Temp
attr_accessor :bpicture_cm_need_refresh
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
alias mog_battler_cm_initialize initialize
def initialize
@bpicture_cm_need_refresh = false
mog_battler_cm_initialize
end
end
#===============================================================================
# ■ Sprite_Battler_CM
#===============================================================================
class Sprite_Battler_CM < Sprite
include MOG_ACTOR_PICTURE_CM
#--------------------------------------------------------------------------
# ● Initialize
#--------------------------------------------------------------------------
def initialize(viewport = nil,battler_id = -1)
super(viewport)
filename = "Actor" + battler_id.to_s
self.bitmap = Cache.picture(filename) rescue nil
self.bitmap = Cache.picture("") if self.bitmap == nil
sc = (Graphics.width / 2) - (self.bitmap.width / 2) + PICTURE_POSITION[0]
@size = [self.bitmap.width + PICTURE_POSITION[0] ,sc]
self.visible = false ; self.opacity = 0 ; self.z = PICTURE_PRIORITY_Z
self.ox = 0 ; self.oy = self.bitmap.height ; self.x = -@size[0]
self.y = (Graphics.height + 10) + PICTURE_POSITION[1] ; @cm_visible = false
@breach_effect = [1.0,0] ; @battler_id = battler_id ; @active = false
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
def dispose
super
self.bitmap.dispose
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
def update
super
update_slide
end
#--------------------------------------------------------------------------
# ● Active Battler
#--------------------------------------------------------------------------
def active_battler(battler_id)
@active = @battler_id == battler_id ? true : false
self.visible = true if @active ; @cm_visible = false if !@active
end
#--------------------------------------------------------------------------
# ● Refresh Battler CM
#--------------------------------------------------------------------------
def refresh_battler(cm_visible, battler_index)
@cm_visible = cm_visible
active_battler(battler_index)
end
#--------------------------------------------------------------------------
# ● Update Slide
#--------------------------------------------------------------------------
def update_slide
if !@cm_visible
self.x -= SLIDE_SPEED if self.x > -@size[0]
self.opacity -= 25
if self.x <= -@size[0] or self.opacity == 0
self.visible = false ; self.opacity = 0 ; self.x = -@size[0]
end
else
self.x += SLIDE_SPEED if self.x < @size[1]
self.x = @size[1] if self.x > @size[1]
self.opacity += 10 if self.opacity < PICTURE_OPACITY
self.opacity = PICTURE_OPACITY if self.opacity > PICTURE_OPACITY
update_breath_effect
end
self.visible = false if can_force_hide?
end
#--------------------------------------------------------------------------
# ● Can Force Hide
#--------------------------------------------------------------------------
def can_force_hide?
return true if $game_temp.blitz_commands_phase if $imported[:mog_blitz_commands]
return true if $game_temp.chain_action_phase if $imported[:mog_active_chain]
return false
end
#--------------------------------------------------------------------------
# ● Update Breath Effect
#--------------------------------------------------------------------------
def update_breath_effect
return if !BREATH_EFFECT
@breach_effect[1] += 1
case @breach_effect[1]
when 0..30 ; @breach_effect[0] += 0.0004
when 31..50 ; @breach_effect[0] -= 0.0004
else ; @breach_effect[1] = 0 ; @breach_effect[0] = 1.truncate
end
self.zoom_y = @breach_effect[0]
end
#--------------------------------------------------------------------------
# ● Force Hide
#--------------------------------------------------------------------------
def force_hide
@cm_visible = false ; self.visible = false ; self.x = -@size[0]
self.opacity = 0
end
end
#===============================================================================
# ■ Spriteset_Battle
#===============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# ● Create Actors
#--------------------------------------------------------------------------
alias mog_battler_cm_create_actors create_actors
def create_actors
mog_battler_cm_create_actors
create_battler_pictures
end
#--------------------------------------------------------------------------
# ● Dispose
#--------------------------------------------------------------------------
alias mog_battler_cm_dispose dispose
def dispose
mog_battler_cm_dispose
dispose_battler_cm
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
alias mog_battler_cm_update update
def update
mog_battler_cm_update
update_battler_cm
end
#--------------------------------------------------------------------------
# ● Create Battler Pictures
#--------------------------------------------------------------------------
def create_battler_pictures
@battler_pictures = []
for i in $game_party.battle_members
@battler_pictures.push(Sprite_Battler_CM.new(nil,i.id))
end
end
#--------------------------------------------------------------------------
# ● Dispose Battler CM
#--------------------------------------------------------------------------
def dispose_battler_cm
return if @battler_pictures == nil
@battler_pictures.each {|sprite| sprite.dispose if sprite != nil }
end
#--------------------------------------------------------------------------
# ● Update Battler CM
#--------------------------------------------------------------------------
def update_battler_cm
refresh_battler_cm if $game_temp.bpicture_cm_need_refresh
return if @battler_pictures == nil
@battler_pictures.each {|sprite| sprite.update }
end
#--------------------------------------------------------------------------
# ● Update CM Pictures
#--------------------------------------------------------------------------
def update_cm_picture(cm_visible, battler_index)
return if @battler_pictures == nil
@battler_pictures.each {|sprite| sprite.refresh_battler(cm_visible, battler_index) }
end
#--------------------------------------------------------------------------
# ● CM Force Hide
#--------------------------------------------------------------------------
def cm_force_hide
return if @battler_pictures == nil
@battler_pictures.each {|sprite| sprite.force_hide }
end
#--------------------------------------------------------------------------
# ● Refresh Battler CM
#--------------------------------------------------------------------------
def refresh_battler_cm
$game_temp.bpicture_cm_need_refresh = false
dispose_battler_cm ; create_battler_pictures
end
end
#===============================================================================
# ■ Scene_Battle
#===============================================================================
class Scene_Battle < Scene_Base
if $imported["YEA-CommandEquip"]
#--------------------------------------------------------------------------
# * Command Equip
#--------------------------------------------------------------------------
alias mog_yfcm_command_equip command_equip
def command_equip
@spriteset.cm_force_hide
mog_yfcm_command_equip
end
end
#--------------------------------------------------------------------------
# ● Update
#--------------------------------------------------------------------------
alias mog_cm_picture_update_basic update_basic
def update_basic
mog_cm_picture_update_basic
update_picture_visible
end
#--------------------------------------------------------------------------
# ● Update Battler CM Active
#--------------------------------------------------------------------------
def update_picture_visible
return if @actor_command_window.nil?
cm_visible = can_cm_picture_visible?
cm_id = BattleManager.actor.id rescue -1
@spriteset.update_cm_picture(cm_visible, cm_id)
end
#--------------------------------------------------------------------------
# ● Can CM Picture Visible
#--------------------------------------------------------------------------
def can_cm_picture_visible?
if $imported[:mog_atb_system]
return false if $game_system.atb_type != 0
return false if $game_message.visible
return false if $game_temp.battle_end
return false if $game_temp.end_phase_duration[1] > 0
end
return false if $imported[:mog_active_chain] and $game_temp.active_chain
return false if $imported[:mog_blitz_commands] and $game_temp.blitz_commands_phase
return false if @party_command_window.active
return false if BattleManager.actor.nil?
return false if @actor_window.active
return false if @enemy_window.active
return true if @actor_command_window.active
return true if @item_window.active
return true if @skill_window.active
return false
end
end
#==============================================================================
# ** Game Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● Command_129
#--------------------------------------------------------------------------
alias mog_bpic_cm_command_129 command_129
def command_129
mog_bpic_cm_command_129
$game_temp.bpicture_cm_need_refresh = true if SceneManager.scene_is?(Scene_Battle)
end
#--------------------------------------------------------------------------
# ● Command 335
#--------------------------------------------------------------------------
alias mog_bpic_cm_command_335 command_335
def command_335
mog_bpic_cm_command_335
$game_temp.bpicture_cm_need_refresh = true if SceneManager.scene_is?(Scene_Battle)
end
end
#==============================================================================
# ** Game Party
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ● Swap Order
#--------------------------------------------------------------------------
alias mog_bpic_cm_swap_order swap_order
def swap_order(index1, index2)
mog_bpic_cm_swap_order(index1, index2)
$game_temp.bpicture_cm_need_refresh = true if SceneManager.scene_is?(Scene_Battle)
end
end
It can be found in the demo here:
https://atelierrgss.wordpress.com/download-page-1/
=========Edit:
Hi,
Sorry for posting again so quickly, but this is a post for the solution, so don't want anyone to miss this...
After a few more intense Google searches, changing the battler images are in the BATTLE_HUD script, NOT the Actor Picture. What you'll need to do is call this script in the battle field:
Code:
battler_face_name(1,"Face_2")
See Glasses' post in this link for further details:
https://www.rpgmakercentral.com/topic/29730-need-help-with-atelier-rgsss-battle-hud-ex-modification/
Thanks a lot
Last edited: