Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

[XP] Cambiar sonido de encuentro de batalla

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [XP] Cambiar sonido de encuentro de batalla

Mensaje por AsFzKakarotto el 2018-02-09, 18:02

Hola... vengo a hacer una pequeña adaptación a un script que me compartió el maestro wecoc, de hecho el script es de él.

El Script permite cambiar el SE que da comienzo a la batalla, esto cumple su trabajo perfectamente, pero
si se llega a cambiar a un SE con más duración se combina horriblemente con el BGM.

Lo se, lo se....
¿Muchos diran que por que no los junto con un editor musical?

1. No quedaría bien escuchar la intro de la batalla cuando debería escucharse el BGM.
2. Como la adpatación da un pleno control al tiempo de inicio en combate, ahora esto aplica un efecto
  que combina el casi terminar del SE y el inicio de BGM. Más accesible y sin necesidad de usar un editor musical.

Lo he hecho para que el tiempo pueda ser controlado por una variable.

El valor de la variable admite valores decimales, ejemplo 0.5, como en el comando de eventos la opción de variables
no admite decimales puedes hacerlo con este llamado de script:

$game_variables[ID] = n

En Donde:

ID = ID de la variable a cambiar su valor
n = El nuevo valor a sustituir.

Código:
#==============================================================================
# ** [XP] Cambiar sonido de encuentro de batalla
#------------------------------------------------------------------------------
# No requiere créditos
#==============================================================================
class Game_System
  
  # ID de la variable que controlará el tiempo en que comenzaran
  # las batallas despues del Sound Effect [SE].
  
  VARIABLE_FADE = 1
  
  attr_accessor :battle_start_se
  alias battle_se_ini_fix initialize unless $@
  def initialize
    battle_se_ini_fix
    @battle_start_se = $data_system.battle_start_se
  end
end

class Scene_Map
  def call_battle
    $game_temp.battle_calling = false
    $game_temp.menu_calling = false
    $game_temp.menu_beep = false
    $game_player.make_encounter_count
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    $game_system.se_play($game_system.battle_start_se) ## Edit
    sleep($game_variables[Game_System::VARIABLE_FADE])
    $game_system.bgm_play($game_system.battle_bgm)
    $game_player.straighten
    $scene = Scene_Battle.new
  end
end

Quisas alguien lo adapte mucho mejor que yo, con otro tipo de códigos, pero que más da, peor es NO dar ideas ¿no?.
avatar
AsFzKakarotto
Soñador
Soñador

0/3

Créditos 252

Gracias : 52

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cambiar sonido de encuentro de batalla

Mensaje por Wecoc el 2018-02-09, 21:00

Ahm... ¿Qué?

El Script permite cambiar el SE que da comienzo a la batalla, esto cumple su trabajo perfectamente, pero si se llega a cambiar a un SE con más duración se combina horriblemente con el BGM.

El hecho de cambiarlo manualmente mediante Game_System tal como hice no hace que la duración entre el sonido y la batalla sean distintos. No tiene nada que ver. Si usas un sonido muy largo como inicio de batalla siempre se solapan, no tiene nada que ver con mi script y en verdad es bastante lógico porque por defecto van seguidos solo con la transition en medio.

Entonces si quieres que espere a que acabe el sonido la mejor forma es definir una variable similar a la del propio sonido, y asignarlas a la vez. Entonces habrá que esperar a que acabe ese contador para iniciar la batalla. Es importante usar un contador en vez de usar sleep tal como hiciste. Ese método congela toda la ventana del juego, por lo que baja los FPS a 0. En general sleep no debe usarse prácticamente nunca, solo en scripts muy especiales, igual que exit o fatal entre otros.

Aquí lo tienes tal como debería ser:

Código:
#==============================================================================
# ** [XP] Cambiar sonido de encuentro de batalla
#------------------------------------------------------------------------------
# No requiere créditos
#==============================================================================

class Game_System
  
  attr_accessor :battle_start_se
  attr_accessor :battle_start_wait
  
  alias battle_se_ini_fix initialize unless $@
  def initialize
    battle_se_ini_fix
    @battle_start_se = $data_system.battle_start_se
    @battle_start_wait = 0
  end
end

class Scene_Map
  def call_battle
    $game_temp.battle_calling = false
    $game_temp.menu_calling = false
    $game_temp.menu_beep = false
    $game_player.make_encounter_count
    $game_temp.map_bgm = $game_system.playing_bgm
    $game_system.bgm_stop
    $game_system.se_play($game_system.battle_start_se)
    @battle_calling_frame = 0
    @battle_calling = true
  end
  
  alias battle_calling_upd update unless $@
  def update
    if @battle_calling
      @battle_calling_frame += 1
      if @battle_calling_frame >= $game_system.battle_start_wait
        @battle_calling_frame = 0
        @battle_calling = false
        $game_system.bgm_play($game_system.battle_bgm)
        $game_player.straighten
        $scene = Scene_Battle.new
      end
      return
    end
    battle_calling_upd
  end
end

Para cambiar de sonido de inicio de batalla:

[line]$game_system.battle_start_se = RPG::Audio.new(name, volume, pitch)
$game_system.battle_start_wait = n[/line]

- name es el nombre del SE
- volume es el volúmen del SE, por defecto vale 80
- pitch es la frecuencia del SE, por defecto vale 100
- n es el tiempo que esperará a que termine el sonido.

Para asignar un tiempo de espera por defecto, busca en el script [line]@battle_start_wait = 0[/line] y le cambias ahí el valor.
avatar
Wecoc
Administrador
Administrador



Créditos 12334

Gracias : 578

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cambiar sonido de encuentro de batalla

Mensaje por AsFzKakarotto el 2018-02-09, 21:38

Disculpa si se ha entiendo mal.
El script que has hecho va Genial y yo ya savia que se junta el SE y BGM cuando se inicia el combate por default en el maker de hecho por lo mismo he hecho esta pequeña adaptación.

Más que nada he mencionado que si se coloca un SE de mayor duración se escucha mal con la melodía de fondo y esto no tiene nada que ver con tu script, si no que con el maker. Lo he mencionado para los que no lo sabían es solo eso.

Lo que si realmente no sabia es sobre sleep y que código usar, probé con count_frames con @wait_count y la verdad es que solo me funciono sleep.

Fantástico Lo has dejado todo en un llamado de script.

Muchas gracias no quería molestarte pero finalmente lo vuelvo hacer.
avatar
AsFzKakarotto
Soñador
Soñador

0/3

Créditos 252

Gracias : 52

Volver arriba Ir abajo

RPG Maker XP Re: [XP] Cambiar sonido de encuentro de batalla

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.