RMRK is retiring.
Server is paid up for the rest of 2026, but the forum may go after that. See here for more information. Please archive or save anything you would like to keep before 2027.
Main Menu
  • Welcome to The RPG Maker Resource Kit.

Falcao Minimap Set 1.1 RMXP

Started by Dark_falcao, April 28, 2011, 09:29:37 PM

0 Members and 1 Guest are viewing this topic.

Dark_falcao

[size=150]Falcao Minimap Set 1.1[/size]

Introduction

This script allow you to display a set of minimaps where the player can teleport or just display a minimap of your current location, also display events locations on minimpas such as chest, npc etc.

Features

- Display a minimap of the player current location
- 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
All commands are on the script notes, please read.

Credits

By Falcao

Demo
http://www.mediafire.com/?a6dvdckx1r200ge

Script in code just copy and paste (I recomend you to download demo)

Code (text) Select

#===========================================================================#
#  #*****************#         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 = {
 
  1=> 'Lugar de recreacion donde los usuarios de Maker Palace descansan',
  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 = "015-Diamond01"
 
  # Font for the script
  FalFont = "Georgia"
 
  # Icons
  Point = "047-Skill04"
  Chest = "034-Item03"
  Boss = "046-Skill03"
  Teleport = "035-Item04"
  Npc = "011-Head02"
 
  # Vacabulary
  Vocab_Title  = "Map list"
  Saved = "Saved Maps"
  Dungeon = "Dungeon Maps"
 
  #Icons vocabulary
  Vocab_Point = "Key Point"
  Vocab_Chest = "Chest"
  Vocab_Boss = "Boss"
  Vocab_Teleport = "Teleport"
  Vocab_Npc = "Npc"
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="Current location")
    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, "No data", 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, ["Yes", "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("Saved maps") :
        @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("Dungeon set")
        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



License:

This script is for non-comercial games, for comercial games please contact me.

Screens





Enjoy

modern algebra

Nice! This looks pretty sweet falcao!

Dark_falcao

Quote from: modern algebra on April 28, 2011, 09:54:33 PM
Nice! This looks pretty sweet falcao!

Jaja Thanks modern!

I took a break from rpg maker for a year

I hope you still remember me

modern algebra

That I do. I thought you were mostly a VX scripter though. Have you reverted to the dark side? :P

Acolyte


Dark_falcao


QuoteThat I do. I thought you were mostly a VX scripter though. Have you reverted to the dark side?

I start learning RGSS on RMXP, i write scripts for both makers

Quote...........sex cavern?

Jajaja i know that sound funny but i maped that cavern to be a sex cavern ;D

I hope all of you enjoy the script, may be i would rewhrite the code for RMVX

JOJguy66

 :police: Sex cavern???? REALLY?! I grinned and though about the place. I want to go there.  ;) ;) :B

swick

is there a way to call the map, and show only the map without all the menu stuff around it?