Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1Script XS - Teleport em Sab 24 Nov 2012, 10:50

Tiaguu

avatar
Membro - semi experiente
Membro - semi experiente
XS - Teleport
Version 1.0

Introdução:
Um script de teletransporte extensa totalmente personalizado preenchido com algumas características úteis. Leia mais abaixo para saber mais!

Características:
A capacidade de mudar windowskin e configurações de fonte para as janelas.
Fácil de adicionar / excluir um ID de teleporte da lista.
Posições simples de mudar o ID de mapa, X e Y para cada ID de teleporte é.
A opção para ativar ou desativar um id se já estiver acrescentou. (ou seja, pode ser útil se você quiser desativar temporariamente um local para ser teletransportado para)
Dispondo de uma janela de descrição, bem como uma imagem de sua escolha para cada ID de teletransporte do.
Uma janela de confirmação para o teletransporte.
Uma animação para ser jogado após o teletransporte foi total.
Suporte ícone.
E mais!

Screenshot:
Spoiler:

Como usar?:
Instruções de como usá-lo pode ser achado dentro do script.
Para instalar esse script, abra seu editor de script e copiar / colar este script para um slot aberto abaixo Materiais mas acima principal. Lembre-se de salvar.

Script:
Código:
#==============================================================================
#  XaiL System - Teleport
#  Author: Nicke
#  Created: 10/01/2012
#  Edited: 03/04/2012
#  Version: 1.0a
#==============================================================================
# Instructions
# -----------------------------------------------------------------------------
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ? Materials but above ? Main. Remember to save.
#
# To call this scene in a menu or on the map simply use the following code:
# SceneManager.call(Scene_Teleport)
#
# To add/del a teleport, do this in a script call:
# tp(id, type, enabled = true)
# Examples:
# tp(2, :add)  # This will add id 2.
# tp(2, :del)  # This will delete id 2.
#
# To check if id is added or enabled/disabled do the following, preferably in a
# conditional branch:
# tp_added?(id)
# tp_enable?(id)
# Examples:
# tp_added?(2)    # Is id 2 added?
# tp_enabled?(1)  # Is id 1 enabled?
# !tp_enabled?(3) # Same method used but returns true if it is disabled.
#
# To enable/disabling a id do like this:
# tp_enable(1, true)  # Enable id 1.
# tp_enable(2, false) # Disable id 2.
#
# If you want to add/delete all the id's in the list use this method:
# Note: This method uses the normal way of adding a tp. I created this method
# to save some space in the event page when adding a large amount of id's.
# tp_all(:add) # Add all id's.
# tp_all(:del) # Remove all id's.
#
# Read the settings carefully when setting up new teleport location as well as
# how to change certain settings. Make sure you change the settings as you
# want them and hopefully you will be pleased. Enjoy!
#
# *** Only for RPG Maker VX Ace. ***
#==============================================================================
($imported ||= {})["XAIL-XS-TELEPORT-SCENE"] = true

module XAIL
  module TELEPORT
    #--------------------------------------------------------------------------#
    # * Settings
    #--------------------------------------------------------------------------#
    # TP_FONT = [ name, size, color, bold, italic, shadow ]
    TP_CMD_FONT = [["Verdana"], 16, Color.new(255,255,255), true, false, false]
    TP_INFO_FONT = [["Verdana"], 14, Color.new(155,205,205), true, false, true]
   
    # The windowskin to use for the windows. Set to nil to disable.
    # SKIN = string
    SKIN = nil
   
    # Use this template when adding a long string to the map details.
    # Use \n to get to a new line.
    # TP_INFO_ID = long string
    TP_INFO_1 = "This is a very long string so that you can see how it may\nwork when using a super long string. :-)"
    TP_INFO_2 = "This is just a text explaining the map info."
    TP_INFO_3 = "Since this map is disabled i.e no teleporting allowed the\ncommand is disabled as well as the text."
   
    # How many lines the info window should display.
    # If you do have long strings in the info I suggest changing this.
    # TP_INFO_LINES = number
    TP_INFO_LINES = 3
   
    # Sets the padding of the text in the info window.
    TP_INFO_PADDING = 10 # Default: 12.
   
    # TELEPORT_LIST:
    # ID = ['Title', :symbol, map_id, x & y, map_image(nil), map_info(nil),
    #      enabled, icon_index]
    TP_LIST = [] # Don't remove!
    TP_LIST[0] = ['Weird Lake', :weird_map,  1, [15,11], "map_test", TP_INFO_1, true, 321]
    TP_LIST[1] = ['World Map',  :world_map,  2, [12,3],"map_test2", TP_INFO_2, true, nil]
    TP_LIST[2] = ['Disabled Map', :disabled, 2, [1,1],"map_test2", TP_INFO_3, false, 327]
   
    # Empty icon index. Which icon should be in use if TP_LIST icon_index is nil.
    # EMPTY_ICON_INDEX = icon_index
    EMPTY_ICON_INDEX = 0
   
    # Display texts. Should be easy enough to understand what they are for.
    TEXT_NO_TELEPORTS = "You haven't found a location to teleport to."
    OK_NAME = "Teleport" # Dialog box ok.
    OK_CANCEL = "Cancel" # Dialog box cancel.
   
    # Transition, nil to use default.
    # TRANSITION [ SPEED, TRANSITION, OPACITY ]
    # TRANSITION = [40, "Graphics/Transitions/1", 50]
    TRANSITION = nil
   
    # Background image (System folder)
    # Note: You might want to decrease the opacity as well as arrange
    # the windows so that you can properly see the background.
    # Set to nil to use default.
    BACK = nil
   
    # Should a animation be used when teleporting to a new map.
    # Set it to nil to disable it.
    ANIM_ID = 81
   
    # Fade out time when teleporting to a new map.
    # 1000 (1 second)
    # ANIM_SCENE_FADE/ANIM_AUDIO_FADE = number
    ANIM_SCENE_FADE = 500  # Fade out time for scene.
    ANIM_AUDIO_FADE = 500  # Fade out time for audio.
   
  end
end
# *** Don't edit below unless you know what you are doing. ***
#==============================================================================#
# ** Game_System
#------------------------------------------------------------------------------
#  Method for checking the teleport list.
#==============================================================================#
class Game_System
 
  attr_accessor :tp_list
 
  alias xail_teleport_sys_initialize initialize
  def initialize(*args, &block)
    xail_teleport_sys_initialize(*args, &block)
    @tp_list = []
  end
 
end
#==============================================================================#
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  Method for adding and deleting a teleport.
#==============================================================================#
class Game_Interpreter
 
  def tp(id, type) 
    # // Method to add a item to the list. 
    case type
      when :add # // Add teleport id.
      unless $game_system.tp_list.include?(XAIL::TELEPORT::TP_LIST[id])
        $game_system.tp_list.push(XAIL::TELEPORT::TP_LIST[id])
      end unless XAIL::TELEPORT::TP_LIST[id].nil?
      when :del # // Remove teleport id.
      unless XAIL::TELEPORT::TP_LIST[id].nil?
        $game_system.tp_list.delete(XAIL::MENU::TP_LIST[id])
      end
    end
  end
 
  def tp_enabled?(id)
    # // Method to check if id is enabled.
    # (Must be added in the list or else it returns nil).
    return if $game_system.tp_list[id].nil?
    return $game_system.tp_list[id][6]
  end
 
  def tp_added?(id)
    # // Method to check if id is added.
    return $game_system.tp_list[id]
  end
 
  def tp_enable(id, enabled)
    # // Method to enable id.
    $game_system.tp_list[id][6] = enabled
  end
 
  def tp_all(type = :add)
    # // Method to add/delete all teleport id's.
    id = 0
    while id < XAIL::TELEPORT::TP_LIST.size
      case type
      when :add
        tp(id, :add)
      else
        tp(id, :del)
      end
      id += 1
    end
  end
 
end
#==============================================================================#
# ** Window_TeleportCommand
#------------------------------------------------------------------------------
#  New Window :: Window_TeleportCommand - A window for creating the commands.
#==============================================================================#
class Window_TeleportCommand < Window_Command
 
  def window_width
    # // Method to return the width.
    return 160
  end
 
  def window_height
    # // Method to return the height.
    return Graphics.height
  end
 
  def menu_color(color, enabled = true)
    # // Method to set the color and alpha if not enabled.
    contents.font.color.set(color)
    contents.font.color.alpha = 100 unless enabled
  end
 
  def draw_item(index)
    # // Method to draw the command item.
    contents.font.name = XAIL::TELEPORT::TP_CMD_FONT[0]
    contents.font.size = XAIL::TELEPORT::TP_CMD_FONT[1]
    menu_color(XAIL::TELEPORT::TP_CMD_FONT[2], menu_enabled?(index))
    contents.font.bold = XAIL::TELEPORT::TP_CMD_FONT[3]
    contents.font.italic = XAIL::TELEPORT::TP_CMD_FONT[4]
    contents.font.shadow = XAIL::TELEPORT::TP_CMD_FONT[5]
    draw_text(item_rect_for_icons(index), command_name(index), alignment)
    draw_tp_icons(index)
    reset_font_settings
  end
 
  def draw_tp_icons(index)
    # // Method to draw the icons.
    # If there is no icon as in nil return a empty
    # icon index
    y = 0
    for i in @tp_list
      icon = i[7].nil? ? XAIL::TELEPORT::EMPTY_ICON_INDEX : i[7]
      draw_icon(icon, 0, y, menu_enabled?(index))
      y += 24
    end
  end

  def item_rect_for_icons(index)
    # // Method to draw the text with icons.
    rect = item_rect(index)
    rect.x += 24
    rect.width -= 8
    rect
  end
 
  def menu_enabled?(index)
    # // Method to check if item is enabled.
    return @tp_list[index][6]
  end
 
  alias xail_mk_cmd_list_tp make_command_list
  def make_command_list(*args, &block)
    # // Method to add the commands.
    xail_mk_cmd_list_tp(*args, &block)
    @tp_list = $game_system.tp_list
    for i in @tp_list
      add_command(i[0], i[1], i[6])
    end
  end

end
#==============================================================================#
# ** Window_OK_Command
#==============================================================================#
class Window_OK_Command < Window_Command
 
  def window_width
    # // Method to return the width.
    return 120
  end
 
  def alignment
    # // Method to return the alignment.
    return 1
  end
 
  alias xail_mk_cmd_list_ok make_command_list
  def make_command_list(*args, &block)
    # // Method to add the commands.
    xail_mk_cmd_list_ok(*args, &block)
    add_command(XAIL::TELEPORT::OK_NAME, :ok)
    add_command(XAIL::TELEPORT::OK_CANCEL, :cancel)
  end
 
end
#==============================================================================#
# ** Window_tpInfo
#==============================================================================#
class Window_tpInfo < Window_Base
 
  def initialize(x, y, width, height)
    # // Method to initialize the window.
    super(0, 0, width, window_height)
    @tp_list = $game_system.tp_list
    refresh
  end
 
  def set_text(text, enabled)
    # // Method to set a new the tp text to the window.
    if text != @text
      @text = text
      menu_color(XAIL::TELEPORT::TP_INFO_FONT[2], enabled)
      refresh
    end
  end
 
  def window_height
    # // Method to return the height.
    return fitting_height(XAIL::TELEPORT::TP_INFO_LINES)
  end
 
  def standard_padding
    # // Method to set the padding for text.
    return XAIL::TELEPORT::TP_INFO_PADDING
  end

  def refresh
    # // Method to refresh the window.
    contents.clear
    draw_tp_text
  end
 
  def menu_color(color, enabled = true)
    # // Method to set the color and alpha if not enabled.
    contents.font.color.set(color)
    contents.font.color.alpha = 150 unless enabled
  end
 
  def draw_tp_ex(x, y, text)
    # // Special method to draw a text.
    text = convert_escape_characters(text)
    pos = {:x => x, :y => y, :new_x => x, :height => calc_line_height(text)}
    process_character(text.slice!(0, 1), text, pos) until text.empty?
  end
 
  def draw_tp_text
    # // Method to draw the tp text to the window.
    contents.font.name = XAIL::TELEPORT::TP_INFO_FONT[0]
    contents.font.size = XAIL::TELEPORT::TP_INFO_FONT[1]
    contents.font.bold = XAIL::TELEPORT::TP_INFO_FONT[3]
    contents.font.italic = XAIL::TELEPORT::TP_INFO_FONT[4]
    contents.font.shadow = XAIL::TELEPORT::TP_INFO_FONT[5]
    draw_tp_ex(0, 0, @text)
    reset_font_settings
  end
 
end
#==============================================================================#
# ** Window_tpImage
#==============================================================================#
class Window_tpImage < Window_Base
 
  def initialize(x, y, width, height)
    # // Method to initialize the window.
    super(0, 0, width, height)
    refresh
  end
 
  def refresh
    # // Method to refresh the window.
    contents.clear
  end
 
  def draw_tp_map(x, y, source, enabled = true)
    # // Method to draw the teleport map.
    rect = Rect.new(0, 0, Graphics.width, Graphics.height)
    return clear_tp_map(rect) if source.nil?
    clear_tp_map(rect)
    tp_map = Cache.picture(source)
    contents.blt(x, y, tp_map, rect, enabled ? 255 : 150)
  end
 
  def clear_tp_map(rect)
    # // Method to clear tp_map rect.
    contents.clear_rect(rect)
  end
 
end
#==============================================================================#
# ** Scene_TeleportBase
#------------------------------------------------------------------------------
#  New Scene :: Scene_TeleportBase - The teleport scene.
#==============================================================================#
class Scene_TeleportBase < Scene_Base
 
  alias xail_tpbase_start start
  def start(*args, &block)
    # // Method to start the scene
    xail_tpbase_start(*args, &block)
    @tp_list = $game_system.tp_list
    create_background
  end
 
  def post_start
    # // Method to post_start the scene.
    perform_transition unless @tp_list.empty?
  end
 
  alias xail_tpbase_terminate terminate
  def terminate(*args, &block)
    # // Method to terminate the scene.
    xail_tpbase_terminate(*args, &block)
  end
 
  def create_background
    # // Method to create the background.
    @background_sprite = Sprite.new
    if XAIL::TELEPORT::BACK.nil?
      @background_sprite.bitmap = SceneManager.background_bitmap
      @background_sprite.color.set(16, 16, 16, 128)
    else
      @background_sprite.bitmap = Cache.system(XAIL::TELEPORT::BACK)
    end
  end

  alias xail_tpbase_transition perform_transition
  def perform_transition(*args, &block)
    # // Method to create the transition.
    if XAIL::TELEPORT::TRANSITION.nil?
      Graphics.transition(15)
    else
      Graphics.transition(XAIL::TELEPORT::TRANSITION[0],XAIL::TELEPORT::TRANSITION[1],XAIL::TELEPORT::TRANSITION[2])
    end
    xail_tpbase_transition(*args, &block)
  end
 
end
#==============================================================================#
# ** Scene_Teleport
#------------------------------------------------------------------------------
#  New Scene :: Scene_Teleport - The teleport scene.
#==============================================================================#
class Scene_Teleport < Scene_TeleportBase
 
  alias xail_tpbase_init initialize
  def initialize(*args, &block)
    # // Method to initialize scene teleport.
    xail_tpbase_init(*args, &block)
    @tp_list = $game_system.tp_list
  end
 
  def start
    # // Method to start scene teleport.
    super
    return command_map if @tp_list.empty?
    create_tp_command_window
    create_tp_info
    create_tp_image
    on_index_change(0) # // Draw id 0 when scene is loaded.
  end
 
  def create_tp_command_window
    # // Method to create command list window.
    @command_window = Window_TeleportCommand.new(0, 0)
    @command_window.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
    for i in @tp_list
      @command_window.set_handler(i[1], method(:command_ok_dialog))
    end
    @command_window.set_handler(:cancel, method(:return_scene))
  end
 
  def create_ok_window
    # // Method to create ok command window.
    @ok_window = Window_OK_Command.new(0, 0)
    @ok_window.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
    @ok_window.x = (Graphics.width - @ok_window.width) / 2
    @ok_window.y = (Graphics.height - @ok_window.height) / 2
    @ok_window.set_handler(:ok, method(:command_teleport))
    @ok_window.set_handler(:cancel, method(:command_cancel_dialog))
  end
 
  def create_tp_info
    # // Method to create teleport info window.
    width = Graphics.width - @command_window.width
    height = 80
    @tp_info = Window_tpInfo.new(0, 0, width, height)
    @tp_info.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
    @tp_info.x = @command_window.width
    @tp_info.y = 0
  end
 
  def create_tp_image
    # // Method to create teleport image window.
    width = Graphics.width - @command_window.width
    height = Graphics.height - @tp_info.height
    @tp_image_window = Window_tpImage.new(0, 0, width, height)
    @tp_image_window.windowskin = Cache.system(XAIL::TELEPORT::SKIN) unless XAIL::TELEPORT::SKIN.nil?
    @tp_image_window.x = @command_window.width
    @tp_image_window.y = @tp_info.height
  end
 
  def create_tp_message_window
    # // Method to create the message window.
    @message_window = Window_Message.new
  end
   
  def command_ok_dialog
    # // Method to open ok dialog.
    create_ok_window
  end
 
  def command_cancel_dialog
    # // Method to close ok dialog.
    @ok_window.close
    @command_window.active = true
  end
 
  def command_teleport
    # // Method to teleport the player.
    teleport_player(@command_window.index)
  end
 
  def command_map
    # // command_map (Don't remove)
    create_tp_message_window
    $game_message.texts << XAIL::TELEPORT::TEXT_NO_TELEPORTS
    SceneManager.call(Scene_Map)
  end
 
  def teleport_player(index)
    # // Method for teleporting the player to the spawn event. (if exists)
    $game_map.setup(@tp_list[index][2])
    $game_player.moveto(@tp_list[index][3][0], @tp_list[index][3][1])
    fadeout_scene
    $game_map.autoplay
    $game_map.refresh
    $game_player.animation_id = XAIL::TELEPORT::ANIM_ID unless XAIL::TELEPORT::ANIM_ID.nil?
    SceneManager.call(Scene_Map)
  end
 
  def fadeout_scene
    time = XAIL::TELEPORT::ANIM_AUDIO_FADE
    # // Method to fade out the scene.
    RPG::BGM.fade(time)
    RPG::BGS.fade(time)
    RPG::ME.fade(time)
    Graphics.fadeout(XAIL::TELEPORT::ANIM_SCENE_FADE * Graphics.frame_rate / 1000)
    RPG::BGM.stop
    RPG::BGS.stop
    RPG::ME.stop
  end
 
  def draw_tp_image(index)
    # // Draw teleport image.
    image = @tp_list[index][4]
    enabled = @tp_list[index][6]
    @tp_image_window.draw_tp_map(0, 0, image, enabled)
  end
 
  def draw_tp_info(index)
    # // Draw teleport details.
    title = @tp_list[index][0]
    info = @tp_list[index][5]
    enabled = @tp_list[index][6]
    text = "#{title}\n#{info}" unless @tp_list[index][5].nil?
    @tp_info.set_text(text, enabled)
  end
 
  alias xail_upd_tp_index_change update
  def update(*args, &block)
    # // Method for updating the scene.
    old_index = @command_window.index
    xail_upd_tp_index_change(*args, &block)
    on_index_change(@command_window.index) if old_index != @command_window.index
  end

  def on_index_change(index)
    # // If index changes redraw the image and info.
    draw_tp_image(index)
    draw_tp_info(index)
  end
 
end # END OF FILE

#=*==========================================================================*=#
# ** END OF FILE
#=*==========================================================================*=#


Créditos:
Nicke - Xail System

Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum