wistiecutie

Veteran
Veteran
Joined
May 3, 2015
Messages
35
Reaction score
4
First Language
french
Primarily Uses
RMVXA
Hello !
I've noticed a glitch in my game since then.
My rpg maker game (using ace) is in form of a visual novel, so it uses a lot of picture commands.
THe issue is that, at some point in my game, the character teleports to another map and when doing so, the pictures oddly disappear without any command.
I've tried everything !
Changing picture command numbers, changing the map teleportation, changing switches and all.
However, when I removed MOGhunter picture effect script, it oddly worked.
So why does this script makes my picture glitchy and dissapear when I change locations ?
Isn't there an alternative script for picture effects then ?
Thank you !
 

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,340
Reaction score
1,357
First Language
Spanish
Primarily Uses
RMVXA
it could be rigged to wipe all the pictures after a map transfer, for safety purposes, just in case another picture would overwrite an existing one, and not be properly unloaded.

if you're making a visual novel, and it's not necessary to have a player avatar, you could try VN Maker which is built to work with pictures.
 

wistiecutie

Veteran
Veteran
Joined
May 3, 2015
Messages
35
Reaction score
4
First Language
french
Primarily Uses
RMVXA
it could be rigged to wipe all the pictures after a map transfer, for safety purposes, just in case another picture would overwrite an existing one, and not be properly unloaded.

if you're making a visual novel, and it's not necessary to have a player avatar, you could try VN Maker which is built to work with pictures.


Well, I've already spent a year working on it, I hope you understand that I don't really feel like starting it all over again.

Also, the thing is that, by exemple, I have a picture 2 and 3 acting like two huds in the corner of each top corner (one is to indicate the player's name and the other one the day time), when I transfer to another map, it erases picture 2 and 3, but when I want to add picture 2 and 3 again , it won't appear either.
 

slimmmeiske2

Little Red Riding Hood
Global Mod
Joined
Sep 6, 2012
Messages
8,256
Reaction score
5,433
First Language
Dutch
Primarily Uses
RMXP
General Discussion is for talking about broad topics concerning game development, not support questions. :)

I've moved this thread to RGSS Script Support. Please be sure to post your threads in the correct forum next time. Thank you.

 

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,340
Reaction score
1,357
First Language
Spanish
Primarily Uses
RMVXA
Well, I've already spent a year working on it, I hope you understand that I don't really feel like starting it all over again.
I don't know the intricacies of VNM, but if you already have the resources, it should be a case of simply moving them to VNM and copying the dialogue over.... that is, IF you can do without a player character as the game is so far, then you probably don't need it at all, so might as well cut it out for good and focus on the pictures which VNM can handle much better. (big IF there)

when I transfer to another map, it erases picture 2 and 3, but when I want to add picture 2 and 3 again , it won't appear either.

could be a number of things, but just to rule out a general wipe by the plugin, go into the script editor and do a broad search (Ctrl-shift-F) for "@screen.clear_pictures" or simply ".erase"
if the plugin is listed on the results, then that might be the case.
 

wistiecutie

Veteran
Veteran
Joined
May 3, 2015
Messages
35
Reaction score
4
First Language
french
Primarily Uses
RMVXA
General Discussion is for talking about broad topics concerning game development, not support questions. :)
[move]RGSS Script Support[/move]

Oops, sorry :c ! I'll be careful next time.

I don't know the intricacies of VNM, but if you already have the resources, it should be a case of simply moving them to VNM and copying the dialogue over.... that is, IF you can do without a player character as the game is so far, then you probably don't need it at all, so might as well cut it out for good and focus on the pictures which VNM can handle much better. (big IF there)



could be a number of things, but just to rule out a general wipe by the plugin, go into the script editor and do a broad search (Ctrl-shift-F) for "@screen.clear_pictures" or simply ".erase"
if the plugin is listed on the results, then that might be the case.


Well saddly, it would be to complicated , but anyway , I went in the script editor, no result for the first suggestion but for ".erase" , it led me to this :


#--------------------------------------------------------------------------
# ● Erase
#--------------------------------------------------------------------------
alias mog_picture_ex_erase erase
def erase
init_effect_ex
mog_picture_ex_erase
end

#--------------------------------------------------------------------------
# ● Init Effect EX
#--------------------------------------------------------------------------
def init_effect_ex
@effect_ex = [] ; @anime_frames = [] ; @position = [0,nil,0,0]
end

end



Does it mean something to you ?
(By the way, thanks for helping me!)
 

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,340
Reaction score
1,357
First Language
Spanish
Primarily Uses
RMVXA
where is that "erase" located? what root script?
 

wistiecutie

Veteran
Veteran
Joined
May 3, 2015
Messages
35
Reaction score
4
First Language
french
Primarily Uses
RMVXA
where is that "erase" located? what root script?

Excuse me, I'm french and have zero knowledge concerning scripting, what is the root script ?
 

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,340
Reaction score
1,357
First Language
Spanish
Primarily Uses
RMVXA
when you do the search, what script does that go to?
what is the class or module that brackets that alias statement.
go up from that alias line until you find a class xxxxx, or module xxxxxx line
I'm betting it is declared under Game_Picture, and if that is the case, then that might be the problem, although I can't see how *that* instruction is going to clear the pictures by itself, because "erase" is called from "picture.erase", in "clear_pictures", which you say doesn't show up.

set up the plugin again as it were, and comment out the init_effect_ex line line this
Code:
alias mog_picture_ex_erase erase
def erase
  #init_effect_ex
  mog_picture_ex_erase
end

and see if that changes anything.
if it doesn't, then it is doing that through other method, and it might be hard to find it like this.
 

wistiecutie

Veteran
Veteran
Joined
May 3, 2015
Messages
35
Reaction score
4
First Language
french
Primarily Uses
RMVXA
So, I tried again to make a broad search with ".clear", it showed a lot of scripts with this command and effectively, there's moghunter's picture effect script that appears. It showed that : (i joined a picture)
Now, to answer your question, the "erase" was located in Moghunter's picture effect .
Anyway, for easier purposes, here's the script :



Code:
#==============================================================================
# +++ MOG - Picture Effects (v1.0) +++
#==============================================================================
# By Moghunter
# https://atelierrgss.wordpress.com/
#==============================================================================
# O script adicina novos efeitos na função mostrar imagem, possibilitando
# criar animações complexas de maneira simples e rápida.
# O script também adiciona a função definir a posição da imagem baseado
# na posição do character ou na posição real XY da tela.
#==============================================================================
# EFEITOS
#==============================================================================
# 0 - Tremer Tipo A
# 1 - Tremer Tipo B
# 2 - Efeito de Respirar
# 3 - Efeito de Auto Zoom (Loop)
# 4 - Efeito de Fade (Loop)
# 5 - Efeito de Rolar em duas direções.
# 6 - Efeito de Wave.
# 7 - Efeito de Animação por frames, estilo GIF.
#
# É possível utilizar todos os efeitos ao mesmo tempo.
#
#==============================================================================
# UTILIZAÇÃO
#==============================================================================
# Use o comando abaixo através do comando evento.
#
# picture_effect(PICTURE_ID ,EFFECT_TYPE ,POWER , SPEED)
#
# PICTURE_ID = ID da imagem.
# EFFECT TYPE = Tipo de efetio da imagem. (0 a 7)
# POWER = Poder do efeito.
# SPEED = Velocidade do efeito.
#
# Exemplo
#
# picture_effect(6,5,17,51)
#
#==============================================================================
# Efeito de animação por frames. (Efeito tipo 7)
#==============================================================================
# Para ativar o efeito de animação por frames é necessário ter e nomear os
# arquivos da seguinte forma.
#
# Picture_Name.png  (A imagem que deve ser escolhida no comando do evento.)
# Picture_Name0.png
# Picture_Name1.png
# Picture_Name2.png
# Picture_Name3.png
# Picture_Name4.png
# ...
#
#==============================================================================
# Posições Especiais para as imagens
#==============================================================================
# Use o comando abaixo para definir a posiçao da imagem.
#
# picture_position(PICTURE ID, TARGET ID)
#
# PICTURE ID = ID da imagem
# TARGET ID = ID do alvo
#
# 0        = Posição normal.
# 1..999   = Posição do evento (ID).
# -1       = Posição do player.
# -2       = Posição fixa da imagem.
#
#==============================================================================
# Cancelar o Efeito
#==============================================================================
# Você pode usar o comando apagar imagem do evento, ou usar o comando abaixo.
#
# picture_effects_clear(PICTURE_ID)
#
#==============================================================================
module MOG_PICURE_EFFECTS
  # Definição da posição Z das pictures.
  # É possível usar o comando "set_picture_z(value)" para mudar o valor Z
  # no meio do jogo
  DEFAULT_SCREEN_Z = 20
end

$imported = {} if $imported.nil?
$imported[:mog_picture_effects] = true

#==============================================================================
# ■ Game Picture
#==============================================================================
class Game_Picture
  attr_accessor :effect_ex
  attr_accessor :anime_frames
  attr_accessor :position
 
  #--------------------------------------------------------------------------
  # ● Init Basic
  #--------------------------------------------------------------------------
  alias mog_picture_ex_init_basic init_basic
  def init_basic
      init_effect_ex
      mog_picture_ex_init_basic
  end

  #--------------------------------------------------------------------------
  # ● Erase
  #--------------------------------------------------------------------------
  alias mog_picture_ex_erase erase
  def erase
      init_effect_ex
      mog_picture_ex_erase
  end

  #--------------------------------------------------------------------------
  # ● Init Effect EX
  #--------------------------------------------------------------------------
  def init_effect_ex
      @effect_ex = [] ; @anime_frames = [] ; @position = [0,nil,0,0]
  end
    
end

#==============================================================================
# ■ Game System
#==============================================================================
class Game_System
  attr_accessor :picture_screen_z

  #--------------------------------------------------------------------------
  # ● Initialize
  #--------------------------------------------------------------------------
  alias mog_picture_ex_initialize initialize
  def initialize
      @picture_screen_z = MOG_PICURE_EFFECTS::DEFAULT_SCREEN_Z
      mog_picture_ex_initialize     
  end
 
end

#==============================================================================
# ■ Game Interpreter
#==============================================================================
class Game_Interpreter

  #--------------------------------------------------------------------------
  # ● Set Pictures
  #--------------------------------------------------------------------------
  def set_pictures
      return $game_troop.screen.pictures if SceneManager.scene_is?(Scene_Battle)
      return $game_map.screen.pictures if SceneManager.scene_is?(Scene_Map)
  end 

  #--------------------------------------------------------------------------
  # ● Picture Effect
  #--------------------------------------------------------------------------
  def picture_effect(id,type, power = nil,speed = nil,misc = nil)
      pictures = set_pictures
      return if pictures.nil?
      power = set_standard_power(type) if power == nil
      power = 1 if type == 4 and power < 1
      speed = set_standard_speed(type) if speed == nil
      pictures[id].effect_ex[0] = nil if type == 1
      pictures[id].effect_ex[1] = nil if type == 0
      pictures[id].effect_ex[type] = [power,speed,0]
      pictures[id].effect_ex[type] = [0,0,0,power * 0.00005,speed, 0,0] if [2,3].include?(type)
      pictures[id].effect_ex[type] = [255,0,0,255 / power, power,speed,0] if type == 4
      pictures[id].effect_ex[type] = [0,0,power,speed,0] if type == 5
      pictures[id].effect_ex[type] = [true,power * 10,speed * 100] if type == 6   
      pictures[id].anime_frames = [true,[],power,0,0,speed,0] if type == 7
  end

  #--------------------------------------------------------------------------
  # ● Set Standard Power
  #--------------------------------------------------------------------------
  def set_standard_power(type)
      return 6   if type == 2
      return 30  if type == 3
      return 120 if type == 4
      return 10
  end   
 
  #--------------------------------------------------------------------------
  # ● Set Standard Speed
  #--------------------------------------------------------------------------
  def set_standard_speed(type)
      return 3 if [0,1].include?(type)
      return 0 if [2,3,4].include?(type)
      return 2 if type == 5
      return 0 if type == 7
      return 10
  end 
    
  #--------------------------------------------------------------------------
  # ● Picture Position
  #--------------------------------------------------------------------------
  def picture_position(id,target_id)
      pictures = set_pictures
      return if pictures.nil?
      pictures[id].position = [0,nil,0,0] if [-2,0].include?(pictures[id].position[0])
      pictures[id].effect_ex.clear
      target = 0 ; target = $game_player if target_id == -1
      if target_id > 0
      $game_map.events.values.each do |e| target = e if e.id == target_id end
      end
      pictures[id].position[0] = target_id
      pictures[id].position[1] = target
  end 
 
  #--------------------------------------------------------------------------
  # ● Set Picture Z
  #--------------------------------------------------------------------------
  def set_picture_z(value)
      $game_system.picture_screen_z = value
  end
    
  #--------------------------------------------------------------------------
  # ● Picture Effects Clear
  #--------------------------------------------------------------------------
  def picture_effects_clear(id)
      pictures = set_pictures
      return if pictures.nil?
      pictures[id].effect_ex.clear ; pictures[id].anime_frames.clear
      pictures[id].position = [0,nil,0,0]
  end   
 
end

#==============================================================================
# ■ Game Map
#==============================================================================
class Game_Map
 
  #--------------------------------------------------------------------------
  # ● Setup
  #--------------------------------------------------------------------------
  alias mog_picture_ex_setup setup
  def setup(map_id)
      mog_picture_ex_setup(map_id)
      clear_picture_position rescue  nil
  end
 
  #--------------------------------------------------------------------------
  # ● Clear Picture Position
  #--------------------------------------------------------------------------
  def clear_picture_position
      pictures = $game_troop.screen.pictures if SceneManager.scene_is?(Scene_Battle)
      pictures = $game_map.screen.pictures if SceneManager.scene_is?(Scene_Map)
      return if pictures == nil
      pictures.each {|p|
      p.position = [-1000,nil,0,0] if p.position[0] > 0 or p.position[1] == nil}   
  end
 
end

#==============================================================================
# ■ Sprite Picture
#==============================================================================
class Sprite_Picture < Sprite 
 
  #--------------------------------------------------------------------------
  # ● Dispose
  #--------------------------------------------------------------------------
  alias mog_picture_ex_dispose dispose
  def dispose
      mog_picture_ex_dispose
      @picture.effect_ex[6][0] = true if @picture.effect_ex[6]
      @picture.anime_frames[0] = true if @picture.effect_ex[7]
      dispose_pic_frames if !@picture.effect_ex[7]
  end 
 
  #--------------------------------------------------------------------------
  # ● Dispose Pic Frames
  #--------------------------------------------------------------------------
  def dispose_pic_frames
      return if @pic_frames.nil?
      @pic_frames.each {|picture| picture.dispose } ; @pic_frames = nil
  end
 
  #--------------------------------------------------------------------------
  # ● Update Bitmap
  #--------------------------------------------------------------------------
  alias mog_picture_ex_update_bitmap update_bitmap
  def update_bitmap
      refresh_effect_ex if @old_name_ex != @picture.name
      if !@picture.anime_frames.empty? and self.bitmap
         update_picture_animation ; return
      end
      mog_picture_ex_update_bitmap
      create_picture_animation if can_create_frame_picture?
      set_wave_effect if can_set_wave_effect?
  end
 
  #--------------------------------------------------------------------------
  # ● Refresh effect EX
  #--------------------------------------------------------------------------
  def refresh_effect_ex
     (self.wave_amp = 0 ; self.wave_length = 1 ; self.wave_speed = 0) if !@picture.effect_ex[6]
      @old_name_ex = @picture.name
      create_picture_animation if @picture.effect_ex[7]
      set_wave_effect if can_set_wave_effect?
  end
 
  #--------------------------------------------------------------------------
  # ● Can Create Frame Picture
  #--------------------------------------------------------------------------
  def can_create_frame_picture?
      return false if !@picture.anime_frames[0]
      return false if !self.bitmap
      return true
  end
 
  #--------------------------------------------------------------------------
  # ● Update Picture Animation
  #--------------------------------------------------------------------------
  def update_picture_animation
      return if @pic_frames == nil
      if @picture.anime_frames[6] > 0 ; @picture.anime_frames[6] -= 1 ; return
      end
      @picture.anime_frames[4] += 1
      return if @picture.anime_frames[4] < @picture.anime_frames[2]
      self.bitmap = @pic_frames[@picture.anime_frames[3]]
      @picture.anime_frames[4] = 0 ; @picture.anime_frames[3] += 1
      if @picture.anime_frames[3] >= @pic_frames.size 
         @picture.anime_frames[3] = 0 ; @picture.anime_frames[6] = @picture.anime_frames[5]
      end   
  end 
 
  #--------------------------------------------------------------------------
  # ● Create Picture Animation
  #--------------------------------------------------------------------------
  def create_picture_animation
      dispose_pic_frames ; @pic_frames = [] ; @picture.anime_frames[0] = false     
      for index in 0...999
          @pic_frames.push(Cache.picture(@picture.name + index.to_s)) rescue nil
          break if @pic_frames[index] == nil
      end
      if @pic_frames.size <= 1
         dispose_pic_frames ; @pic_frames = nil ; @picture.anime_frames.clear
         @picture.effect_ex[7] = nil ; return
      end 
      self.bitmap = @pic_frames[@picture.anime_frames[3]]
      update_picture_animation
  end
 
  #--------------------------------------------------------------------------
  # ● Update Position
  #--------------------------------------------------------------------------
  def update_position     
      self.z = @picture.number + $game_system.picture_screen_z
      if @picture.effect_ex[0] ; update_shake_effect(0) ; return ; end
      if @picture.effect_ex[1] ; update_shake_effect(1) ; return ; end 
      self.x = pos_x ; self.y = pos_y ; set_oxy_correction     
  end

  #--------------------------------------------------------------------------
  # ● Pos X
  #--------------------------------------------------------------------------
  def pos_x
      return @picture.x
  end
 
  #--------------------------------------------------------------------------
  # ● Pos Y
  #--------------------------------------------------------------------------
  def pos_y
      return @picture.y
  end

  #--------------------------------------------------------------------------
  # ● Set Oxy Correction
  #--------------------------------------------------------------------------
  def set_oxy_correction
      return if @picture.position[0] == -2
      self.x += self.ox if @picture.effect_ex[3] or @picture.effect_ex[5]
      self.y += self.oy if @picture.effect_ex[2] or @picture.effect_ex[3] or @picture.effect_ex[5]
  end
 
  #--------------------------------------------------------------------------
  # ● Update Position
  #--------------------------------------------------------------------------
  def update_shake_effect(type)
      @picture.effect_ex[type][2] += 1
      return if @picture.effect_ex[type][2] < @picture.effect_ex[type][1]
      @picture.effect_ex[type][2] = 0
      self.x = pos_x + shake_effect(type)
      self.y = @picture.effect_ex[1] ? pos_y + shake_effect(type) : pos_y
      set_oxy_correction
  end

  #--------------------------------------------------------------------------
  # ● Shake Effect
  #--------------------------------------------------------------------------
  def shake_effect(type)
      -(@picture.effect_ex[type][0] / 2) +  rand(@picture.effect_ex[type][0])
  end

  #--------------------------------------------------------------------------
  # ● Update Other
  #--------------------------------------------------------------------------
  def update_other
      if @picture.effect_ex[4] ; update_opacity_ex
      else ; self.opacity = @picture.opacity
      end
      self.blend_type = @picture.blend_type
      if @picture.effect_ex[5] ; update_angle_ex
      else ; self.angle = @picture.angle
      end   
      self.tone.set(@picture.tone)
  end 

  #--------------------------------------------------------------------------
  # ● Update Angle EX
  #--------------------------------------------------------------------------
  def update_angle_ex
      @picture.effect_ex[5][4] += 1
      return if @picture.effect_ex[5][4] < @picture.effect_ex[5][3]
      @picture.effect_ex[5][4] = 0 ; @picture.effect_ex[5][1] += 1
      case @picture.effect_ex[5][1]
        when 0..@picture.effect_ex[5][2]
             @picture.effect_ex[5][0] += 1
        when @picture.effect_ex[5][2]..(@picture.effect_ex[5][2] * 3)
             @picture.effect_ex[5][0] -= 1
        when (@picture.effect_ex[5][2] * 3)..(-1 + @picture.effect_ex[5][2] * 4)
             @picture.effect_ex[5][0] += 1
        else ; @picture.effect_ex[5][0] = 0 ; @picture.effect_ex[5][1] = 0
      end
      self.angle = @picture.angle + @picture.effect_ex[5][0]
  end
 
  #--------------------------------------------------------------------------
  # ● Update Opacity EX
  #--------------------------------------------------------------------------
  def update_opacity_ex
      @picture.effect_ex[4][6] += 1
      return if @picture.effect_ex[4][6] < @picture.effect_ex[4][5]
      @picture.effect_ex[4][6] = 0 ; @picture.effect_ex[4][2] += 1
      case @picture.effect_ex[4][2]
        when 0..@picture.effect_ex[4][4]
          @picture.effect_ex[4][0] -= @picture.effect_ex[4][3]
        when @picture.effect_ex[4][4]..(-1 + @picture.effect_ex[4][4] * 2)
          @picture.effect_ex[4][0] += @picture.effect_ex[4][3]         
        else
          @picture.effect_ex[4][0] = 255 ; @picture.effect_ex[4][2] = 0
      end
      self.opacity = @picture.effect_ex[4][0]
  end
 
  #--------------------------------------------------------------------------
  # ● Update Origin
  #--------------------------------------------------------------------------
  def update_origin
      return if !self.bitmap
      if force_center_oxy?
         self.ox = @picture.effect_ex[2] ? n_ox : (bitmap.width / 2) + n_ox
         self.oy = (bitmap.height / 2) + n_oy
         if @picture.position[0] > 0 or @picture.position[0] == -1
            execute_move(0,@picture.position[2],-@picture.position[1].screen_x) rescue nil
            execute_move(1,@picture.position[3],-@picture.position[1].screen_y) rescue nil
         end 
         return
      end
      if @picture.effect_ex[2] ; self.oy = (bitmap.height + n_oy) ; return ; end
      if @picture.origin == 0
         self.ox = n_ox ; self.oy = n_oy
      else
         self.ox = (bitmap.width / 2) + n_ox
         self.oy = (bitmap.height / 2) + n_oy
      end       
  end

  #--------------------------------------------------------------------------
  # ● Force Center Oxy
  #--------------------------------------------------------------------------
  def force_center_oxy?
      return false if @picture.position.empty?
      return true if @picture.position[0] == -1
      return true if @picture.position[0] > 0
      return true if @picture.effect_ex[3]
      return true if @picture.effect_ex[5]
      return false
  end
 
  #--------------------------------------------------------------------------
  # ● N Ox
  #--------------------------------------------------------------------------
  def n_ox
      return @picture.position[2] if @picture.position[0] > 0 and @picture.position[2]
      return @picture.position[2] if @picture.position[0] == -1 and @picture.position[2]
      return $game_map.display_x * 32 if @picture.position[0] == -2
      return 1000 if @picture.position[0] == -1000
      return 0
  end
 
  #--------------------------------------------------------------------------
  # ● N Oy
  #--------------------------------------------------------------------------
  def n_oy
      return @picture.position[3] if @picture.position[0] > 0 and @picture.position[3]
      return @picture.position[3] if @picture.position[0] == -1 and @picture.position[3]
      return $game_map.display_y * 32 if @picture.position[0] == -2
      return 1000 if @picture.position[0] == -1000
      return 0
  end
 
  #--------------------------------------------------------------------------
  # ● Execute Move
  #--------------------------------------------------------------------------     
  def execute_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     
      @picture.position[2] = cp if type == 0
      @picture.position[3] = cp if type == 1
  end   
 
  #--------------------------------------------------------------------------
  # ● Update Zoom
  #--------------------------------------------------------------------------
  alias mog_picture_ex_update_zoom update_zoom
  def update_zoom
      if @picture.effect_ex[2] ;  update_breath_effect ; return ; end
      if @picture.effect_ex[3] ;  update_auto_zoom_effect ; return ; end
      mog_picture_ex_update_zoom
  end   
    
  #--------------------------------------------------------------------------
  # ● Update Breath Effect
  #--------------------------------------------------------------------------
  def update_breath_effect
      self.zoom_x = @picture.zoom_x / 100.0
      self.zoom_y = @picture.zoom_y / 101.0 + auto_zoom(2)
  end 

  #--------------------------------------------------------------------------
  # ● Update Auto Zoom Effect
  #--------------------------------------------------------------------------
  def update_auto_zoom_effect
      self.zoom_x = @picture.zoom_x / 100.0 + auto_zoom(3)
      self.zoom_y = @picture.zoom_y / 100.0 + auto_zoom(3)
  end
 
  #--------------------------------------------------------------------------
  # ● Auto Zoom
  #--------------------------------------------------------------------------
  def auto_zoom(type)
      if @picture.effect_ex[type][6] == 0
         @picture.effect_ex[type][6] = 1
         @picture.effect_ex[type][0] = rand(50)
      end
      if @picture.effect_ex[type][5] < @picture.effect_ex[type][4]
         @picture.effect_ex[type][5] += 1
         return @picture.effect_ex[type][1]
      end   
      @picture.effect_ex[type][5] = 0
      @picture.effect_ex[type][2] -= 1
      return @picture.effect_ex[type][1] if @picture.effect_ex[type][2] > 0
      @picture.effect_ex[type][2] = 2 ; @picture.effect_ex[type][0] += 1
      case @picture.effect_ex[type][0]
         when 0..25 ; @picture.effect_ex[type][1] += @picture.effect_ex[type][3]         
         when 26..60 ; @picture.effect_ex[type][1] -= @picture.effect_ex[type][3]
         else ; @picture.effect_ex[type][0] = 0 ; @picture.effect_ex[type][1] = 0
      end
      @picture.effect_ex[type][1] = 0 if @picture.effect_ex[type][1] < 0
      @picture.effect_ex[type][1] = 0.25 if @picture.effect_ex[type][1] > 0.25 if type == 2
      return @picture.effect_ex[type][1]
  end

  #--------------------------------------------------------------------------
  # ● Can Set Wave Effect?
  #--------------------------------------------------------------------------
  def can_set_wave_effect?
      return false if !@picture.effect_ex[6]
      return false if !@picture.effect_ex[6][0]
      return false if !self.bitmap
      return true
  end

  #--------------------------------------------------------------------------
  # ● Set Wave Effect
  #--------------------------------------------------------------------------
  def set_wave_effect
      @picture.effect_ex[6][0] = false
      self.wave_amp = @picture.effect_ex[6][1]
      self.wave_length = self.bitmap.width
      self.wave_speed = @picture.effect_ex[6][2]
  end 
  
end
 

Attachments

  • Capture.PNG
    Capture.PNG
    23.2 KB · Views: 4

gstv87

Veteran
Veteran
Joined
Oct 20, 2015
Messages
2,340
Reaction score
1,357
First Language
Spanish
Primarily Uses
RMVXA
Code:
alias mog_picture_ex_setup setup
  def setup(map_id)
     mog_picture_ex_setup(map_id)
     clear_picture_position rescue  nil
  end

that is the problem
a player transfer calls for map.setup(id), which in turn calls for picture clear, which seems to be just a reposition so they're out of the frame.
I was initially hoping he'd be wiping the pictures from the screen, which you do with screen.clear_pictures, which is called from the map.
but no, he's moving them individually, with pictures.each{}, under clear_picture_position, called from the map setup, called from the player transfer.

after invoking a player transfer, instead of reloading the pictures on your game, try a picture move, and put them back in position.

if you want to further isolate the problem, make a small map and transfer the player from one end to the other, as you would normally do over to another map, but in the same map.
if the pictures remain in place, that's the confirmation you need: they're being moved after a transfer to another map, which is the only thing that invokes a map reload through map.setup()
 
Last edited:

Sixth

Veteran
Veteran
Joined
Jul 4, 2014
Messages
2,193
Reaction score
841
First Language
Hungarian
Primarily Uses
RMVXA
A simple google translate would have been enough to know what's the source of the issue...
Code:
#==============================================================================
# Special Positions for images
#==============================================================================
# Use the command below to set the image position.
#
# picture_position(PICTURE ID, TARGET ID)
#
# PICTURE ID = ID da imagem
# TARGET ID = ID do alvo
#
# 0 = Normal position.
# 1..999 = Event Position (ID).
# -1 = Position of the player.
# -2 = Fixed image position.

"Normal position" means "default position" actually, but google translate is... well, google translate, I guess.
In any case, set up the image position type (use 0 for the TARGET ID) for your images before you show them, and your issue should be fixed.
No idea why he changed the default way, he should have kept the default behavior instead of what he did, but ohh well.

It moves the images automatically because they are tied to the player or the events "by default" with this script installed, and obviously, the positions of the player/events they are tied to will change on map transfers.
 

wistiecutie

Veteran
Veteran
Joined
May 3, 2015
Messages
35
Reaction score
4
First Language
french
Primarily Uses
RMVXA
Thank you the both of you !
It was really bothering me but it's fixed now !
Actually, I simply removed this part of the script. Primarily, I was expecting some glitches but nothing, everything works perfectly.
Thank you a bunch, and I feel very grateful that you spent time trying to solve my problem!
Have a nice day.
 

Latest Threads

Latest Posts

Latest Profile Posts

Raptor Revolt Demo 4_10_2021 3_12_09 PM.png

Latest custom tileset work for RAPTOR REVOLT in this beach scene set in the acheroraptor capital in Ridge City, Hell Creek.
unknown.png


I figured it was about time to update the battle sprite for one of my characters. The old one was the first time I ever drew a battle sprite, and filled with lines that shouldn't be there. So far, the new one is cleaner.
EQAQeW8.png

This was supposed to become her neutral talking stance, but now i just feel like she looks a little puzzled :D
I'm also open for any name suggestions, as i seriously suck at those. In my notes everything is just THE CITY or THAT GUY and THIS PRIESTESS or whatever :D
Nearing completion of the first major city of Albert, a vacation getaway city built a long time ago by a king who really didn't want to be invaded.
It’s definitely a great day to fit in some time for me to play no mans sky on PS4

Forum statistics

Threads
110,280
Messages
1,051,938
Members
143,299
Latest member
L_Aede_Aveugle
Top