Mundo Maker
¡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 4150 miembros registrados.
El último usuario registrado es Nikerah.

Nuestros miembros han publicado un total de 84846 mensajes en 12081 argumentos.

Llamar este evento con Evento

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Llamar este evento con Evento

Mensaje por Ganelan el 2015-07-27, 14:52

Buenas, estoy utilizando el Script de Falcao de mapa (ya que es justo lo que buscaba), pero tiene una pega... no se puede (al menos que y sepa Sweat ) llamar mediante evento.

Alguien que tenga mas maña (ya que yo tengo nula), ¿sabe si es posible llamar este script por evento?

Aquí os lo dejo, gracias.

Código:
#===========================================================================#
#  #*****************#         Minimap Set 1.1 Falcao script, display a set #
#  #*** By Falcao ***#         of minimaps where the player can teleport,   #
#  #*****************#         event objects can be displayed on minimap    #
#         RMXP                 Release date:    25/4/2011                   #
# makerpalace.onlinegoo.com    Translated date: 28/4/2011                   #
#===========================================================================#

#----------------------------------------------------------------------------
# * Main features
#
# - Display a minimap where the player
# - Allow to save minimaps and then teleport
# - Display player location on the minimap
# - Display exact location of events on mainimaps
# - Support a second index called dungeon
# - Allow you to hide your current location wherever you want
# - Easy to use

#----------------------------------------------------------------------------
# * Instructions
#
# Copy and paste the script above main.
#
# Press 'ALT' button to call the script, but it can be called manually using
# the following command:   $scene = Teletrans.new
#
# - To save or remove maps from the map list use the followings commands
#
# $game_map.savemap(X)     Add map id 'X' to the map list (Saved Maps)
#                          Example: $game_map.savemap(1) add map id 1
#
#
# $game_map.remove_map(X)  Remove map 'X' form the list (Saved Maps)
#                          Example: $game_map.remove_map(1) remove map id 1
#
# Coodenates are added automatically, but it can be added manually using the
# following command:
#
# $game_map.savemap(id,x,y)  id = map id
#                            x  = map x   y = map y
#----------------------------------------------------------------------------
#
# - To add or clear maps form the dungeon map set use the followings commands
#
# $game_map.dungeon(X)     Add map id 'X' to the dungeon list
#                          Example: $game_map.dungeon(1) add map 1 as dungeon
#
# $game_map.dungeon_clear  Clear dungeon map set
#----------------------------------------------------------------------------
#
# $game_map.hide_player          Hide player location on the minimap
# $game_map.display_player       Show player location on the minimap
#
# $game_map.hide_minimap(value)  Hide current minimap, so you cannot see where
#                                you are, change value for true or false
#                                Example: $game_map.hide_minimap(true)
#----------------------------------------------------------------------------
#
# * Type the following commads on the 'Comment' from the events commands
#   Allows you to displays events on minimaps such as chests, bosses, npc etc.
#
# EVENT_POINT          Display a point icon on minimap
# EVENT_CHEST          Display a chest icon on minimap
# EVENT_BOSS           Display a boss icon on minimap
# EVENT_TELEPORT       Display a teleport icon on minimap
# EVENT_NPC            Display a npc icon on minimap
#---------------------------------------------------------------------------
#                          
# License: This script is for non-comercial games, for comercial games please
#          contact me.
#---------------------------------------------------------------------------

module Faltrans
  
  # Each map descriptions
  # A = Map id    B = Description (A=>B)
  MapDescription = {
  
  60=> 'Sala principal del Castillo de Ponsferrata.',
  2=> 'Espeso bosque donde los mas probable es perderse xd',
  3=> 'Caverna con muchas sorpresas lo mejor es tener una linterna',
  5=> 'Lugar donde Falcao descansa en paz y se inspira',
  4=> 'Kysis Dungeon salon prinsipal',
  6=> 'Kysis Dungeon salon acuatico',
  7=> 'Kysis Dungeon trono del Rey Falcao',
  
  }
  
  # Script call button
  Call_Script = Input::ALT
  
  # Disable script call by the button
  Disable_Trans_call = false
  
  # Transition
  Transition = "Angel"
  
  # Font for the script
  FalFont = "Estrangelo Edessa"
  
  # Icons
  Point = "Bichos"
  Chest = "Madera"
  Boss = "Mineral"
  Teleport = "Hielo"
  Npc = "Caballo"
  
  # Vacabulary
  Vocab_Title  = "Mapas"
  Saved = "Mapas Guardados"
  Dungeon = "Mazmorras"
  
  #Icons vocabulary
  Vocab_Point = "Insectos"
  Vocab_Chest = "Tala"
  Vocab_Boss = "Minería"
  Vocab_Teleport = "Cristal"
  Vocab_Npc = "Corcel"
end

#-----------------------------------------------------------------------
# * Game map
#-----------------------------------------------------------------------
class Game_Map
  attr_accessor :falmap_data
  attr_accessor :falmap_added
  attr_accessor :falhide    
  attr_accessor :mess_var
  attr_accessor :read_index
  attr_reader   :hideminimap
  alias falcaominimapset_ini initialize
  def initialize
    @falmap_data = {}
    @falmap_added = []
    @falhide = false
    @read_index = 0
    @mess_var = [tranfer = false, time = 0, [], []]
    @falcmap = load_data("Data/MapInfos.rxdata")
    @faldelay = 0
    @hideminimap = false
    falcaominimapset_ini
  end
  
  alias falcaoset_fade_setup setup
  def setup(map_id)
    falcaoset_fade_setup(map_id)
    if @mess_var[0]
      $game_screen.start_tone_change($falcao_tone_rescue, 15)
      @mess_var[1] = 16
    end
  end
  
  def savemap(id, x=$game_player.x, y=$game_player.y)
    unless @falmap_data.has_key?(id)
      @falmap_data[id] = [load_data(sprintf("Data/Map%03d.rxdata", id)),
      @falcmap[id].name, id, x, y] rescue ala_mierda(id)
      @falmap_added.push(id) unless $from_falmenu
    end
  end
  
  def remove_map(id)
    if @falmap_data.has_key?(id)
      @falmap_data.delete(id)
    end
  end
  
  def dungeon(id)
    unless @mess_var[2].include?(id)
      @mess_var[2].push(id)
    end
  end
  
  def dungeon_clear
     return @mess_var[2] = []
  end
  
  def ala_mierda(id)
    p "Falcao script error: Map id #{id.to_s} has not been created"
    $scene = nil
  end
  
  def hide_player
    player_manager(true)
  end
  
  def display_player
    player_manager(false)
  end
  
  def player_manager(value)
    @falhide = value
    $game_player.refresh
  end
  
  def hide_minimap(value)
    @hideminimap = value
    $game_player.refresh
  end
  
  def delaytime(time)
    loop do
      Graphics.freeze
      @faldelay += 1
      if @faldelay == time
        @faldelay = 0
        Graphics.transition
        break
      end
    end
  end
end

#-----------------------------------------------------------------------
# * Minimap display
#-----------------------------------------------------------------------
class MapDisplay
  attr_reader   :map
  attr_reader   :panorama
  def initialize
    @panorama = Sprite.new
    @panorama.bitmap = RPG::Cache.panorama($game_map.panorama_name,
    $game_map.panorama_hue)
    @panorama.x = 192
    @panorama.y = 68
    @panorama.zoom_x = 0.94
    @panorama.zoom_y = 0.684
    @map_width =  448
    @map_height =  328  
    @map = Sprite.new
    @map.bitmap = Bitmap.new(width, height)
    @map.x = 191
    @map.y = 68
  end
  
  def dispose
    @map.bitmap.dispose
    @map.dispose
    @panorama.dispose
    @panorama.bitmap.dispose
  end
  
  def width
    return @map_width
  end

  def height
    return @map_height
  end
  
  def refresh(showmap)
    if Input.press?(Input::UP) or Input.press?(Input::DOWN) or
       Input.press?(Input::RIGHT) or Input.press?(Input::LEFT)
      @map.bitmap.clear
    end
    tileset = $data_tilesets[showmap.tileset_id]  
    if $game_map.read_index != $game_map.map_id
      @panorama.bitmap = RPG::Cache.panorama(tileset.panorama_name,
      tileset.panorama_hue)
    else
      @panorama.bitmap = RPG::Cache.panorama($game_map.panorama_name,
      $game_map.panorama_hue)
    end  
    bitmap = Bitmap.new(showmap.width * 32, showmap.height * 32)
    for i in 0...(showmap.width * showmap.height)
      x = i % showmap.width
      y = i / showmap.width
      for level in 0...3
        tile_id = showmap.data[x, y, level]
        if tile_id >= 384
          tileset_bitmap = RPG::Cache.tile(tileset.tileset_name, tile_id, 0)
          src_rect = Rect.new(0, 0, 32, 32)
          bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
        end
        if tile_id >= 48 and tile_id < 384
          id = tile_id / 48 - 1
          tileset_bitmap = RPG::Cache.autotile(tileset.autotile_names[id])
          src_rect = Rect.new(32, 64, 32, 32)
          bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)
        end
      end
    end
    d_rect = Rect.new(0, 0, width, height)
    s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
    @map.bitmap.stretch_blt(d_rect, bitmap, s_rect)
    bitmap.clear
    bitmap.dispose
  end
end

#-----------------------------------------------------------------------
# * Window icons
#-----------------------------------------------------------------------
class Window_KeyIcons < Window_Base
  include Faltrans
  def initialize
    super(0, 315, 190, 165)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
 
  def refresh
    self.contents.clear
    draw_icons(Point, 0, 0)
    draw_icons(Chest, 0, 28)
    draw_icons(Boss, 0, 54)
    draw_icons(Teleport, 0, 79)
    draw_icons(Npc, 0, 105)
    self.contents.draw_text(35, 0, self.width, 32, Vocab_Point)
    self.contents.draw_text(35, 27, self.width, 32, Vocab_Chest)
    self.contents.draw_text(35, 52, self.width, 32, Vocab_Boss)
    self.contents.draw_text(35, 78, self.width, 32, Vocab_Teleport)
    self.contents.draw_text(35, 103, self.width, 32, Vocab_Npc)
  end
  
  def draw_icons(name, x, y)
    src_rect = Rect.new(0, 0, 24, 24)
    icon = RPG::Cache.icon(name)    
    self.contents.blt(x , y,icon, src_rect)
  end
end

#-----------------------------------------------------------------------
# * Indice de mapas
#-----------------------------------------------------------------------
class Map_Indice < Window_Selectable
  def initialize(x=0,y=0, act = false)
    super(x, y, 190, 226)
    @column_max = 1
    @action = act
    $from_falmenu = true
    refresh
    self.index = 0
  end
  
  def map
    return @data[self.index]
  end

  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    #---
    if @action
      data_save = $game_map.falmap_data
      $game_map.falmap_data = {}
      for d in $game_map.mess_var[2]
        $game_map.savemap(d)
      end
      for i in $game_map.falmap_data.values
        @data.push(i)
      end
      $game_map.falmap_data = data_save
    else
      $game_map.savemap($game_map.map_id)
      for i in $game_map.falmap_data.values
        @data.push(i)
      end
    end
    if not @action
      for c in @data
        if c[2] == $game_map.map_id
          @data.delete(c)
          temp = @data[0]
          @data[0] = c
        end
      end
      @data.push(temp) unless $game_map.falmap_added.empty? or temp.nil?
    end
    #----
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  
  def draw_item(index)
    map_name = @data[index]
    x, y = 4, index * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    if contents.text_size(map_name[1]).width > self.width - 12
      letters = map_name[1].scan(/./)
      map_name[1] = ""
      for i in letters
        text_size = contents.text_size(map_name[1]).width
        break if text_size > self.width - 55
        map_name[1] += i
      end
      map_name[1] += "..."
    end
    
    if not @action
      index > 0 ? self.contents.font.color = normal_color :
      self.contents.font.color = Color.new(128, 255, 128, 255)
    end
    self.contents.draw_text(x, y, self.width, 32,  map_name[1])
  end
end

#-----------------------------------------------------------------------
# * Each map description
#-----------------------------------------------------------------------
class Falmap_info < Window_Base
  include Faltrans
  def initialize
    super(189, 400, 451, 80)
    self.contents = Bitmap.new(width - 32, height - 32)
    @tiempo = 0
    @scroll = 0
  end
  
  def clear_data(cont=false)
    @tiempo = 0
    @scroll = 0
    self.contents.clear if cont
  end
  
  def refresh(map_id)
    self.contents.clear
    draw_description(map_id)
  end
  
  def draw_description(map_id)
    if MapDescription.has_key?(map_id)
      MapDescription.each do |id, value|
        if id == map_id
          cx = contents.text_size(value).width
          scroll_text(value)
          self.contents.draw_text(@scroll, -4, cx + 10, 32 , value)
        end
      end
    else
      text = "                                                  
                                                        
             Descripcion no disponible
             Falcao Script Minimap Teletransport v 1.1"      
      
      scroll_text(text,false)
      cx = contents.text_size(text).width
      self.contents.draw_text(@scroll, -4, cx + 10, 32, text)
    end
  end
  
  def scroll_text(texto, result_ok=true)
    cx = contents.text_size(texto).width
    if cx > self.width - 25
      @tiempo += 1
      if @tiempo > 60
        @scroll -= 1 if @result == nil
        if @scroll == -cx
          @result = true
        end
      end
    end
    if @result
      result_ok ? @scroll += 10 :  @scroll = 0
      if @scroll >= 0
        @scroll = 0;  @tiempo = 0
        @result = nil
      end
    end
    if Input.press?(Input::UP) or Input.press?(Input::DOWN)
      @scroll = 0; @tiempo = 0; @result = nil
    end
  end
end

#-----------------------------------------------------------------------
# * Extra windows
#-----------------------------------------------------------------------
class Extra_Info < Window_Base
  include Faltrans
  def initialize(x=0, y=0, w=190, h=91)
    super(x, y, w, h)
    self.contents = Bitmap.new(width - 32, height - 32)
  end
  
  def draw_title_contents(action="Lugar Actual")
    self.contents.clear
    self.contents.draw_text(0, 0, self.width, 32, Vocab_Title)
    self.contents.draw_text(0, 30, self.width, 32, action)
  end
  
  def draw_texto(map_name)
    self.contents.clear
    self.contents.draw_text(0, 0, self.width, 32,
    "Teletrasportarse a #{map_name}?")
  end
  
  def draw_nodata
    self.contents.clear
    self.opacity = 0
    self.z = 500
    self.contents.fill_rect(0, 0, 448, 328, Color.new(0, 0, 0, 255))
    self.contents.font.size = 30
    self.contents.draw_text(-12, 120, self.width, 32, "Sin Mapas", 1)
  end
end

#-----------------------------------------------------------------------
# * Seleccion inicial
#-----------------------------------------------------------------------
class Ini_Selection < Window_Selectable
  def initialize(x=0,y=0)
    super(x, y, 451, 64)
    @column_max = 2
    refresh
    self.index = 0
  end
  
  def ini_index
    return @data[self.index]
  end

  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    ini = [Faltrans::Saved, Faltrans::Dungeon]
    for i in ini
      @data.push(i)
    end
    @item_max = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
  
  def draw_item(index)
    name = @data[index]
    x = 4 + index % 2 * (237 - 9)
    y = 0
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.draw_text(x, y, self.width, 32,  name)
  end
end

#-----------------------------------------------------------------------
# * Scene Teletrans
#-----------------------------------------------------------------------
class Teletrans
  include Faltrans
  def initialize
    $falcao_tone_rescue = $game_screen.tone
    $game_screen.start_tone_change(Tone.new(-255, -255, -255, 0), 0)
  end
  def main
    @viewport1 = Viewport.new(191, 68, 448, 328)
    @viewport1.z = 200
    @indice_map = Map_Indice.new(0, 90)
    @key_sprites = []
    @time_count = 0
    @temp_data = []
    @keyicon_window = Window_KeyIcons.new
    @dungeon_indice = Map_Indice.new(0, 90, true)
    @dungeon_indice.active = false
    @dungeon_indice.visible = false
    @nodata = Extra_Info.new(175, 52, 481, 360)
    @nodata.draw_nodata
    $game_map.hideminimap ? @nodata.visible = true : @nodata.visible = false
    @display_map = MapDisplay.new
    @info_map = Falmap_info.new
    @title = Extra_Info.new
    @sprite =Sprite_Pos.new(@viewport1,@indice_map.map[0],$game_party.actors[0])
    @title.draw_title_contents
    @selection_ini = Ini_Selection.new(189, 0)
    @question = Extra_Info.new(0, 0, 330, 64)
    @question.visible = false
    @question.z = 600
    @question.x = 250
    @question.y = 137
    @command_question = Window_Command.new(330, ["Sí", "No"])
    @command_question.active = false
    @command_question.visible = false
    @command_question.x = 250
    @command_question.y = 200
    @command_question.z = 600
    if !$game_map.falmap_data.empty?
      @display_map.refresh(@indice_map.map[0])
      @info_map.refresh(@indice_map.map[2])
      @sprite.update_direction(@indice_map.map[0])
      $game_map.mess_var[3] = @indice_map.map[0]
      $game_map.read_index = @indice_map.map[2]
    end
    draw_icons(@indice_map.map[0], @indice_map.map[2])
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    unless $game_map.falmap_added.include?($game_map.map_id)
      $game_map.remove_map($game_map.map_id)
    end
    @display_map.dispose
    @info_map.dispose
    @title.dispose
    @dungeon_indice.dispose
    @nodata.dispose
    @selection_ini.dispose
    @indice_map.dispose
    @viewport1.dispose
    @keyicon_window.dispose
    @sprite.dispose
    @command_question.dispose
    @question.dispose
    for sprite in @key_sprites
      sprite.dispose
    end
    $from_falmenu = false
    if $game_map.mess_var[0]
      Graphics.transition(60, "Graphics/Transitions/" + Faltrans::Transition)
    else
      $game_screen.start_tone_change($falcao_tone_rescue, 0)
    end  
  end
  
  def update
    @indice_map.update
    @dungeon_indice.update
    @sprite.update
    @selection_ini.update
    @command_question.update if @command_question.active
    for sprite in @key_sprites
      sprite.update
    end
    refresh_display
    refresh_icons
    update_teletrans
    if Input.trigger?(Input::B) or
      Input.trigger?(Faltrans::Call_Script)
      salir
    end
  end
  
  def refresh_display
    return if @command_question.active
    case @selection_ini.index
    when 0
      @dungeon_indice.active = false
      @dungeon_indice.visible = false
      @indice_map.visible = true
      @indice_map.active = true
      if $game_map.hideminimap and @indice_map.index == 0
        @nodata.visible = true
      else
        @nodata.visible = false
      end
      if Input.press?(Input::UP) or Input.press?(Input::DOWN) or
        Input.press?(Input::RIGHT) or Input.press?(Input::LEFT)
        @info_map.clear_data
        @indice_map.index > 0 ? @title.draw_title_contents("Mapas Guardados") :
        @title.draw_title_contents
        if !$game_map.falmap_data.empty?
          @time_count = 1
          @temp_data = [@indice_map.map[0], @indice_map.map[2]]
          $game_map.mess_var[3] = @indice_map.map[0]
          @display_map.refresh(@indice_map.map[0])
        end
      end
      @info_map.refresh(@indice_map.map[2]) if !$game_map.falmap_data.empty?
      $game_map.read_index = @indice_map.map[2]
      @sprite.update_direction(@indice_map.map[0])
    when 1
      @indice_map.active = false
      @indice_map.visible = false
      @dungeon_indice.active = true
      @dungeon_indice.visible = true
      if Input.press?(Input::UP) or Input.press?(Input::DOWN) or
        Input.press?(Input::RIGHT) or Input.press?(Input::LEFT)
        @info_map.clear_data
        @title.draw_title_contents("Mazmorras")
        if $game_map.mess_var[2].empty?
          @nodata.visible = true
          @info_map.clear_data(true)
        else
          @nodata.visible = false
        end
        if !$game_map.falmap_data.empty? and !$game_map.mess_var[2].empty?
          @time_count = 1
          @temp_data = [@dungeon_indice.map[0], @dungeon_indice.map[2]]
          $game_map.mess_var[3] = @dungeon_indice.map[0]
          @display_map.refresh(@dungeon_indice.map[0])
        end
      end
      if !$game_map.falmap_data.empty? and !$game_map.mess_var[2].empty?
        @info_map.refresh(@dungeon_indice.map[2])
        $game_map.read_index = @dungeon_indice.map[2]
        @sprite.update_direction(@dungeon_indice.map[0])
      end
    end
  end
  
  def refresh_icons
    if @time_count > 0
      @time_count += 1
      case @time_count
      when 1..3
        clear_icons
      when 4
        draw_icons(@temp_data[0], @temp_data[1])
        @time_count = 0
      end
    end
  end
  
  def draw_icons(map, map_id)
    @events = {}
    for i in map.events.keys
      @events[i] = Game_Event.new(map_id, map.events[i])
    end
    for event in @events.values
      next if event.page.nil?
      if event.event_point
        sprite = Sprite_Keys.new(@viewport1, map, Point, event)
        @key_sprites.push(sprite)
      elsif event.event_chest
        sprite = Sprite_Keys.new(@viewport1, map, Chest, event)
        @key_sprites.push(sprite)
      elsif event.event_boss
        sprite = Sprite_Keys.new(@viewport1, map, Boss, event)
        @key_sprites.push(sprite)
      elsif event.event_teleport
        sprite = Sprite_Keys.new(@viewport1, map, Teleport, event)
        @key_sprites.push(sprite)
      elsif event.event_npc
        sprite = Sprite_Keys.new(@viewport1, map, Npc, event)
        @key_sprites.push(sprite)
      end
    end
  end
  
  def clear_icons
    for sprite in @key_sprites
      @key_sprites.delete(sprite)
      sprite.dispose
    end
  end
  
  def update_teletrans
    return if @selection_ini.index > 0
    return if $game_map.falmap_data.empty?
    if Input.trigger?(Input::C) and !@command_question.active
      $game_system.se_play($data_system.decision_se)
      if @indice_map.map[2] == $game_map.map_id
        salir
        return
      end
      @command_question.index = 0
      @question.draw_texto(@indice_map.map[1])
      @indice_map.active = false
      @selection_ini.active = false
      @command_question.active = true
      @command_question.visible = true
      @question.visible = true
      $game_map.delaytime(50)
    end
    if Input.trigger?(Input::C) and @command_question.active
      case @command_question.index
      when 0
        Audio.se_play("Audio/SE/010-System10")
        $game_temp.player_transferring = true
        $game_temp.player_new_map_id = @indice_map.map[2]
        $game_temp.player_new_x = @indice_map.map[3]
        $game_temp.player_new_y = @indice_map.map[4]
        $game_temp.player_new_direction = 2
        $game_temp.transition_processing = true
        $game_map.mess_var[0] = true
        $scene = Scene_Map.new
        $game_map.autoplay
      when 1
        $game_system.se_play($data_system.cancel_se)
        @indice_map.active = true
        @selection_ini.active = true
        @command_question.active = false
        @command_question.visible = false
        @question.visible = false
      end
    end
  end
  
  def salir
    $game_system.se_play($data_system.cancel_se)
    $scene = Scene_Map.new
    return
  end
end

#-----------------------------------------------------------------------
# * Scene_Map, update aliased
#-----------------------------------------------------------------------
class Scene_Map
  alias falcao_teletrans_call update
  def update
    if $game_map.mess_var[1] > 0
      $game_map.mess_var[1] -= 1
      if $game_map.mess_var[1] == 1
        $game_map.mess_var[0] = false
        $game_map.mess_var[1] = 0
      end
    end
    falcao_teletrans_call
    managercall
  end
  def managercall
    return if Faltrans::Disable_Trans_call or
    $game_temp.message_window_showing or $game_system.map_interpreter.running?
    if Input.trigger?(Faltrans::Call_Script)
      $scene = Teletrans.new if !$game_map.mess_var[0]
      return
    end
  end
end

#-----------------------------------------------------------------------
# * Fuente
#-----------------------------------------------------------------------
class Font
  alias falcaoBest4_font initialize
  def initialize
    falcaoBest4_font
    if $scene.is_a?(Teletrans)
      self.name = Faltrans::FalFont
      self.size = 20
    end
  end
end

#-----------------------------------------------------------------------
# * Sprite que muestra la posision del jugador
#-----------------------------------------------------------------------
class Sprite_Pos < RPG::Sprite
  def initialize(viewport, realmap, character = nil)
    super(viewport)
    @character = character
    @sx = 0;  @counter = 0
    create_bitmap
    update_direction(realmap)
    update
  end
  def update
    super
    return if $game_map.read_index != $game_map.map_id and !self.visible
    update_src_rect
  end
  def create_bitmap
    self.bitmap = RPG::Cache.character(@character.character_name,
    @character.character_hue)
    @cw = bitmap.width / 4
    @ch = bitmap.height / 4
    self.ox = @cw / 2
    self.oy = @ch
    self.zoom_x = 0.6
    self.zoom_y = 0.6
    if $game_map.read_index != $game_map.map_id or $game_map.falhide
      self.visible = false
    else; self.visible = true; end
  end
  def update_src_rect
    if $game_map.read_index != $game_map.map_id or $game_map.falhide
      self.visible = false
    else; self.visible = true; end
    @counter += 1
    case @counter
    when 10; @sx = 0 * @cw
    when 20; @sx = 1 * @cw
    when 30; @sx = 2 * @cw
    when 40; @sx = 3 * @cw
      @counter = 0
    end
    self.src_rect.set(@sx, 0, @cw, @ch)
  end
  
  def update_direction(realmap)
    real_x = $game_player.x  * 448 / realmap.width
    real_y = $game_player.y * 328 / realmap.height
    self.x = real_x + 10
    self.y = real_y + 16
    self.z = 200
  end
end

#-----------------------------------------------------------------------
# * Key sprites
#-----------------------------------------------------------------------
class Sprite_Keys < RPG::Sprite
  def initialize(viewport, realmap, icon, character = nil)
    super(viewport)
    @character = character
    self.zoom_x = 0.8
    self.zoom_y = 0.8
    @counter = 0
    self.bitmap = RPG::Cache.icon(icon)
    update_direction(realmap)
    update
  end
  
  def update
    super
    @counter += 1
    case @counter
    when 1; self.visible = true
    when 20; self.visible = false
    when 40; @counter = 0
    end
  end
  
  def update_direction(realmap)
    real_x = @character.x  * 448 / realmap.width
    real_y = @character.y * 328 / realmap.height
    self.x = real_x
    self.y = real_y
    self.z = 200
  end
end

#-----------------------------------------------------------------------
# * Game_Event. refresh aliased
#-----------------------------------------------------------------------
class Game_Event < Game_Character
  attr_reader     :event_point
  attr_reader     :event_chest
  attr_reader     :event_boss
  attr_reader     :event_teleport
  attr_reader     :event_npc
  attr_accessor   :page
  alias falpoint_refresh refresh
  def refresh
    @event_point = false
    @event_chest = false
    @event_boss = false
    @event_teleport = false
    @event_npc = false
    falpoint_refresh
    create_falcomments
  end
  
  def create_falcomments
    return if @page.nil?
    for i in @page.list
      if i.code == 108 or i.code == 408
        if i.parameters[0].upcase[/EVENT_POINT/] != nil
          @event_point = true
        end
        if i.parameters[0].upcase[/EVENT_CHEST/] != nil
          @event_chest = true
        end
        if i.parameters[0].upcase[/EVENT_BOSS/] != nil
          @event_boss = true
        end
        if i.parameters[0].upcase[/EVENT_TELEPORT/] != nil
          @event_teleport = true
        end
        if i.parameters[0].upcase[/EVENT_NPC/] != nil
          @event_npc = true
        end
      end
    end
  end
end

#-----------------------------------------------------------------------
# * Game_Character modificacion, alias
#-----------------------------------------------------------------------
class Game_Character
  alias fal_moveto moveto
  def moveto(x, y)
    if $scene.is_a?(Teletrans)
      falmoveto(x, y, $game_map.mess_var[3])
      return
    end
    fal_moveto(x, y)
  end
  
  def falmoveto(x, y, map)
    @x = x % map.width
    @y = y % map.height
    @real_x = @x * 128
    @real_y = @y * 128
  end
end
avatar
Ganelan
Veterano
Veterano

0/3

Créditos 585

Gracias : 23

Volver arriba Ir abajo

RPG Maker XP Re: Llamar este evento con Evento

Mensaje por jehyknaria el 2015-07-27, 15:31

Hola, parece que si pones en un evento el comando de script siguiente se podría hacer:
Código:
$scene = Teletrans.new

No lo he podido probar, pero ya dirás si así funciona Sweat

avatar
jehyknaria
Principiante
Principiante

0/3

Créditos 489

Gracias : 16

Volver arriba Ir abajo

RPG Maker XP Re: Llamar este evento con Evento

Mensaje por Ganelan el 2015-07-27, 15:40

Funciona perfectamente! Muchas gracias! Very Happy
avatar
Ganelan
Veterano
Veterano

0/3

Créditos 585

Gracias : 23

Volver arriba Ir abajo

RPG Maker XP Re: Llamar este evento con Evento

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.