¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3396 miembros registrados.
El último usuario registrado es Discorded.

Nuestros miembros han publicado un total de 79808 mensajes en 11257 argumentos.
Navega con Google Chrome
[DESCARGA]

[RMXP] [Herramienta de Enginer] Map Calling

 :: RPG Maker :: Scripts

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP [RMXP] [Herramienta de Enginer] Map Calling

Mensaje por Wecoc el 2014-01-05, 08:26

Éste script que hice es una tremenda tontería (no se si mía o de Enterbrain xD), porque fue poner 4 líneas por ahí, pero bueno lo hice para un engine que he estado haciendo y parace que cumple su función.

No sé si os ha pasado nunca que tenéis problemas con la transición y los procesos paralelos en mapa, por según qué cosa (me gustaría saber si os ha pasado o no xD a mí pocas veces, pero sí). Primero se ejecuta lo de la transición, que viene del Scene_Title o Scene_Menu o donde sea y luego ¡FLOP! lo del evento en un "salto", y no hay manera de arreglar eso que se ve tan feo.

Lo más típico es en el primer mapa del juego; pones un proceso paralelo que haga algo, y te salta un error raro debido a que según el maker aún estas en el Scene_Title, y si le pones para que no salte un if $scene.is_a?(Scene_Map) o un Esperar x frames, luego se ve el salto de los cojones xDD

El script soluciona ese bug, o al menos hasta donde he podido testear.

No pido créditos.
Ponedlo encima de main

Código:
#==============================================================================
# ** Game_Temp
#------------------------------------------------------------------------------
#  Esta clase almacena los datos temporales no incluidos en las partidas guardadas.
#  Llama a "$game_temp" para acceder a las variables globales incluidas aquí.
#==============================================================================

class Game_Temp
  attr_accessor :map_calling
  alias map_calling_ini initialize unless $@
  def initialize
    @map_calling = false
    map_calling_ini
  end
end

#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  This class performs map screen processing.
#==============================================================================

class Scene_Map
  def main
    @spriteset = Spriteset_Map.new
    @message_window = Window_Message.new
    $game_temp.map_calling = true
    $game_temp.transition_processing = true
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @spriteset.dispose
    @message_window.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
  end

  def update
    loop do
      $game_map.update
      $game_system.map_interpreter.update
      $game_player.update
      $game_system.update
      $game_screen.update
      unless $game_temp.player_transferring
        break
      end
      transfer_player
      if $game_temp.transition_processing
        break
      end
    end
    @spriteset.update
    @message_window.update
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.map_calling == true
        Graphics.transition
        $game_temp.map_calling = false
      else
        if $game_temp.transition_name == ""
          Graphics.transition(20)
        else
          Graphics.transition(40, "Graphics/Transitions/" +
            $game_temp.transition_name)
        end
      end
    end
    if $game_temp.message_window_showing
      return
    end
    if $game_player.encounter_count == 0 and $game_map.encounter_list != []
      unless $game_system.map_interpreter.running? or
             $game_system.encounter_disabled
        n = rand($game_map.encounter_list.size)
        troop_id = $game_map.encounter_list[n]
        if $data_troops[troop_id] != nil
          $game_temp.battle_calling = true
          $game_temp.battle_troop_id = troop_id
          $game_temp.battle_can_escape = true
          $game_temp.battle_can_lose = false
          $game_temp.battle_proc = nil
        end
      end
    end
    if Input.trigger?(Input::B)
      unless $game_system.map_interpreter.running? or
             $game_system.menu_disabled
        $game_temp.menu_calling = true
        $game_temp.menu_beep = true
      end
    end
    if $DEBUG and Input.press?(Input::F9)
      $game_temp.debug_calling = true
    end
    unless $game_player.moving?
      if $game_temp.battle_calling
        call_battle
      elsif $game_temp.shop_calling
        call_shop
      elsif $game_temp.name_calling
        call_name
      elsif $game_temp.menu_calling
        call_menu
      elsif $game_temp.save_calling
        call_save
      elsif $game_temp.debug_calling
        call_debug
      end
    end
  end
end

PD.- No me extrañaría que ya existiera algo así para un bug tan tonto, pero la verdad es que nunca leí sobre ello.

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Scripts

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