Conectarse
Buscar
Últimos temas
Los posteadores más activos del mes
No hay usuarios |
Estadísticas
Tenemos 98 miembros registradosEl último usuario registrado es Lawdesifi
Nuestros miembros han publicado un total de 6208 mensajes en 777 argumentos.
SwapXT -Tiles Ilimitados en VX-
2 participantes
Drupogame :: RPG Maker :: RPG Maker VX :: Scripts
Página 1 de 1.
SwapXT -Tiles Ilimitados en VX-
El SwapXT es una herramienta que se usa para cambiar los tilesets y los permisos de tilesets de sus juegos, en otras palabras, esta aplicación te permite usar cuantos tilesets quieras en tu juego de una manera rápida y sencilla.
Descarga:
Descarga SwapXT
Tambien se NECESITA este script:
Aquí dejo un video que explica como usar el SwapXT (OJO: Este video no lo hice yo, así que agradezcanle a Juancituh)
Aquí algunas preguntas frecuentes (FAQ´S) proporcionadas por Juancituh tambien.
Q: ¿Que hago con el SwapXt.rb y como lo abro?.
A: Este script sirve para que el SwapXT pueda funcionar en tu juego, y lo puedes abrir con el "Bloc de Notas", copias su contenido y lo pegas en el "Editor de Scripts" de tu juego.
Q: La primera vez que abro el SwapXT me pide que busque el RPG Maker VX.exe, ¿Que hago?.
A: Tal como te dice el mensaje, tienes que buscar la aplicación RPG Maker VX.exe en la carpeta donde instalaste el RPG Maker VX, lo seleccionas y aceptas.
Q: ¿Por que al colocar el Map ID: 2 en el SwapXT, dice que no existe?.
A: Si te aparece esto, tienes que guardar tu proyecto, cerrarlo y volverlo a abrir, sino sirve esto, luego de hacer lo anterior cierra el SwapXT y abrelo de nuevo.
Q: ¿Por que cuando cargo la configuración, me salen los tilesets anteriores?.
A: Luego de cargar tilesets extra, mapear, y aplicar los cambios, tienes que volver a colocar los tilesets por defecto. Esto hara que los cambios NO SE VEAN EN EL MAKER, PERO SI EN EL JUEGO, así que no hay problema.
IMPORTANTE
Todos los créditos a Bulletxt (Script y programa) y a Juancituh (video de explicación y las FAQ´S)
Cualquier duda, postéenla.
Descarga:
Descarga SwapXT
Tambien se NECESITA este script:
- Código:
=begin
SwapXT
Version: 1.0
Author: Marco Di Antonio (bulletxt@gmail.com)
Nickname: BulletXt
Date: 14/07/2010
This is SwapXT script that must be put in your VX game script section.
It's Plug&Play.
Use SwapXT application to do swaps once you put this into your VX game.
=end
############################# CONFIGURATION ####################################
#Switch ID.
#If ON, your events will not swap according to tiles and will use default tiles.
DISABLE_EVENT_SWAPPING = 100
=begin
IGNORE the following two switches IDs unless you are using
old 0.4 swapping script found at:
http://lodestone2d.svn.sourceforge.net/viewvc/lodestone2d/Scripts-Dev/Swap_TileSet/Swap_tile_new_passage_setting.rb .
If you are, set the 2 ID switches to ensure compatibility
with your current "old system" swaps.
The meaning of these two switches are described on the old 0.4 script, and you
should already have confidence with them if you need these.
=end
SWAP_TILE = 9999
LOAD_PASSAGE_SETTING = 9998
########################## END CONFIGURATION ###################################
#==============================================================================
# ** Cache
module Cache_Swap_Tiles
#error message in case user is swapping tiles
#on a map with both old and new system
def self.error_message(map_id)
$bulletxt_error_message_mixed_swapping_configuration = "BulletXt Message:
on this map ID " + map_id.to_s() + "
you have a dangerous configuration.
You are swapping tilesets from events and from the swapping application.
Mixed configuration is not allowed.
Please decide which system to use to swap your tiles.
I highly suggest to swap tilesets using the swapping application.
If you decide to do this, please be sure you turn off the swapping switch
ID " + SWAP_TILE.to_s() + " before entering this map.
I will close the game for security reasons."
#get rid of \n
array = $bulletxt_error_message_mixed_swapping_configuration.split("\n")
size = array.length()
n = 0
f = ""
while n < size do
message = array[n]
f = f + message
n = n + 1
end
$bulletxt_error_message_mixed_swapping_configuration = f
end
#error message in case user is swapping passage settings
#on a map with both old and new system
def self.error_message_passage(map_id)
$bulletxt_error_message_mixed_swapping_configuration = "BulletXt Message:
on this map ID " + map_id.to_s() + "
you have a dangerous configuration.
You are swapping a passage settings from events and from the swapping application.
Mixed configuration is not allowed.
Please decide which system to use to swap your passage settings.
I highly suggest to swap passage settings using the swapping application.
If you decide to do this, please be sure you turn off the swapping passage
setting switch ID " + LOAD_PASSAGE_SETTING.to_s() + " before entering this map.
I will close the game for security reasons."
#get rid of \n
array = $bulletxt_error_message_mixed_swapping_configuration.split("\n")
size = array.length()
n = 0
f = ""
while n < size do
message = array[n]
f = f + message
n = n + 1
end
$bulletxt_error_message_mixed_swapping_configuration = f
end
#--------------------------------------------------------------------------
# * Get Character Graphic
# filename : Filename
#--------------------------------------------------------------------------
def self.swap(filename)
load_bitmap("Graphics/System/extra_tiles/", filename)
end
#--------------------------------------------------------------------------
# * Clear Cache
#--------------------------------------------------------------------------
def self.clear
@cache = {} if @cache == nil
@cache.clear
GC.start
end
#--------------------------------------------------------------------------
# * Load Bitmap
#--------------------------------------------------------------------------
def self.load_bitmap(folder_name, filename, hue = 0)
@cache = {} if @cache == nil
path = folder_name + filename
if not @cache.include?(path) or @cache[path].disposed?
if filename.empty?
@cache[path] = Bitmap.new(32, 32)
else
@cache[path] = Bitmap.new(path)
end
end
if hue == 0
return @cache[path]
else
key = [path, hue]
if not @cache.include?(key) or @cache[key].disposed?
@cache[key] = @cache[path].clone
@cache[key].hue_change(hue)
end
return @cache[key]
end
end
end
################################################################################
############ CHECK IF THERE ARE SWAPPED TILES AT START PLAY TIME ###############
=begin
We must ensure user is starting game and there are physically swapped tiles or
passage settings,
tiles that have been for example swapped from the application
=end
class Scene_Title < Scene_Base
alias swapxt_start start
def start
swapxt_start
check_if_tileset_swapped_exist
check_if_passage_swapped_exist
end
def check_if_tileset_swapped_exist
tile = "Graphics/System/swapped_"
tileset_swap_loaded_message_error if FileTest.exist?(tile + "A1.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "A2.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "A3.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "A4.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "A5.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "B.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "C.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "D.png")
tileset_swap_loaded_message_error if FileTest.exist?(tile + "E.png")
end
def tileset_swap_loaded_message_error
p sprintf("SwapXT Error: You are not allowed to start your game with
swapped tilesets. You must unload your tilesets with SwapXT application
first. Open SwapXT, click at top Tools->Restore all Tilesets")
exit
end
def check_if_passage_swapped_exist
passage = "swapxt/passage_warning.stx"
passage_swap_loaded_message_error if FileTest.exist?(passage)
end
def passage_swap_loaded_message_error
p sprintf("SwapXT Error: You are not allowed to start your game with
swapped passage settings. You must unload your passage setting with
SwapXT application first. Open SwapXT, go on PassageSetting tab and
click on Restore to Default.")
exit
end
end
################################################################################
=begin
this class takes care of checking if there is a map id file. this class does
not swap tilesets but only prepares the tiles variables(if map id file found).
this class handles loading the passage setting file, for both old and
new system
=end
class Game_Map
include Cache_Swap_Tiles
alias bulletxt_goodbye_vx_limit_tile_setup setup
def setup(map_id)
#must be false at load time
$swapxt_realtime = false
#this variable must always be false at runtime.
#becomes true only if it finds a map id file
$swap_tileset_profile_bulletxt = false
#check if it must load a saved profile TILESET for this map id
profile_path_tile = "swapxt/tiles/" + map_id.to_s() + ".stx"
if FileTest.exist?(profile_path_tile)
#we must now check if user isn't fooling around with his configuration.
#he must not be swapping tiles on this map with old and new system
#at the same time. if this is the case, warn him we don't want issues and
#close the game
if $game_switches[SWAP_TILE] == true
Cache_Swap_Tiles.error_message(map_id)
p sprintf($bulletxt_error_message_mixed_swapping_configuration)
exit
end
#set this to true so we know we want to swap with new system
$swap_tileset_profile_bulletxt = true
#p sprintf(profile_path_tile + " found!")
#read the map id file, it has 8 lines with the name of the tileset to swap.
#set each tileset global variable with the corresponding found line, in order.
$tileA1,$tileA2,$tileA3,$tileA4,$tileA5,$tileB,$tileC,$tileD,$tileE = File.read(profile_path_tile).split("\n")
end
##################### SWAP PASSSAGE SETTINGS ##########################
@swap_passagesetting_bulletxt = false
#for how this works, look at the code above
profile_path_passages = "swapxt/passages/" + map_id.to_s() + ".stx"
if FileTest.exist?(profile_path_passages)
#p sprintf("passage exists on map " + map_id.to_s())
if $game_switches[LOAD_PASSAGE_SETTING] == true
Cache_Swap_Tiles.error_message_passage(map_id)
p sprintf($bulletxt_error_message_mixed_swapping_configuration)
exit
end
@swap_passagesetting_bulletxt = true
$swap_passages = (File.read(profile_path_passages).split("\n"))[0]
end
#checks if it should load default passage setting, both for old and new system
if $game_switches[LOAD_PASSAGE_SETTING] == false and @swap_passagesetting_bulletxt == false
bulletxt_goodbye_vx_limit_tile_setup(map_id)
$swap_passages = nil
return
end
path = "Graphics/System/extra_tiles/" + $swap_passages.to_s() + ".rvdata" rescue nil
#check if user set $swap_passages to nil cause he wants to load default setting.
#if user is loading with new system checks if it's equal to empty::*::
if $swap_passages == nil or $swap_passages == "empty::*::"
bulletxt_goodbye_vx_limit_tile_setup(map_id)
return
end
#when here, we are sure user wants to swap passage setting, either
#via old system or new system
#the file to swap is not default one, he wants to swap to a real new one
@map_id = map_id
@map = load_data(sprintf("Data/Map%03d.rvdata", @map_id))
@display_x = 0
@display_y = 0
# load system settings from that file
new_system_rvdata = load_data(path)
# Use passage settings from that file
@passages = new_system_rvdata.passages
#default vx code
referesh_vehicles
setup_events
setup_scroll
setup_parallax
@need_refresh = false
end
############################# REAL TIME SWAPS ##################################
#if here, player has done a $game_map.tileset call. It must reload
#map with new passage setting (if it exists) and upate map.
#OLD SYSTEM
def tileset
#if false, we must update and load default passage
if $game_switches[LOAD_PASSAGE_SETTING] == false
@passages = $data_system.passages
else
#if nil, must reset passage setting to default
if $swap_passages == nil
@passages = $data_system.passages
$scene = Scene_Map.new
return
end
path = "Graphics/System/extra_tiles/" + $swap_passages + ".rvdata" rescue nil
# load system settings from that file
new_system_rvdata = load_data(path)
# Use passage settings from that file
@passages = new_system_rvdata.passages
end
#this updates the map tiles. it does not modify events or anything else.
$scene = Scene_Map.new
end
#if here, player has done a $game_map.swapxt() call. It must reload
#map with new passage setting (if it exists) and upate map.
#NEW SWAPXT SYSTEM
def swapxt(integer)
rtx_path = "swapxt/realtime/" + integer.to_s() + ".rtx"
if !FileTest.exist?(rtx_path )
p sprintf("SwapXT Error: You have called $game_map.swapxt(" +
integer.to_s() + ") , but that Real-Time swap doesn't exist. Please
better check it inside SwapXT app, under the Real-Time section.")
exit
end
$tileA1,$tileA2,$tileA3,$tileA4,$tileA5,$tileB,$tileC,$tileD,$tileE,passage = File.read(rtx_path).split("\n")
path = "Graphics/System/extra_tiles/" + passage + ".rvdata" rescue nil
if !FileTest.exist?(path)
p sprintf("SwapXT Error: Unable to find " + path + ". Please go and
check your existant passages from SwapXT in the PassageSetting
section.")
exit
end
$swapxt_realtime = true #warning,realtime update must occur
# load system settings from that file
new_system_rvdata = load_data(path)
# Use passage settings from that file
@passages = new_system_rvdata.passages
#this updates the map tiles. it does not modify events or anything else.
$scene = Scene_Map.new
end
end
#this class handles loading tilesets
class Spriteset_Map
include Cache_Swap_Tiles
alias bulletxt_lodestone_create_tilemap create_tilemap
def create_tilemap
#if true, it means the map doesn't have to load tilesets,
#neither for old swapping system or new system.
#if true, also means no realtime update occured
#it must load DEFAULT tilesets
if $game_switches[SWAP_TILE] == false and $swap_tileset_profile_bulletxt == false and $swapxt_realtime == false
bulletxt_lodestone_create_tilemap
$tileA1 = nil
$tileA2 = nil
$tileA3 = nil
$tileA4 = nil
$tileA5 = nil
$tileB = nil
$tileC = nil
$tileD = nil
$tileE = nil
return
end
=begin
calling the original function is a trick. if there are tiles to swap
it will just replace them, otherwise if a tile is nil it won't swap anything,
but still the tile will be loaded because it has already loaded the original tile
when calling this function. in other words, if setting a tile$n = nil will simply
make the script load default tile.
=end
bulletxt_lodestone_create_tilemap
=begin
when here, some/all tiles must be swapped, either old or with new system.
the tile can be equal to "empty::*::" only if it found the file id of the
map and line$n is equal to empty::*::. in that case it must load default tileset.
there are no chances a user with old system is swapping a tileset named
"empty::*::" because you can't name files with ":" characters under
Microsoft Windows OS.
=end
path_to_graphic = "extra_tiles/"
#tileA1
if $tileA1 == "empty::*::"
@tilemap.bitmaps[0] = Cache.system("TileA1")
else
tile1 = Cache_Swap_Tiles.swap($tileA1 + ".png") rescue nil
@tilemap.bitmaps[0] = tile1 if $tileA1 != nil
end
#tileA2
if $tileA2 == "empty::*::"
@tilemap.bitmaps[1] = Cache.system("TileA2")
else
tile2 = Cache_Swap_Tiles.swap($tileA2 + ".png") rescue nil
@tilemap.bitmaps[1] = tile2 if $tileA2 != nil
end
#tileA3
if $tileA3 == "empty::*::"
@tilemap.bitmaps[2] = Cache.system("TileA3")
else
tile3 = Cache_Swap_Tiles.swap($tileA3 + ".png") rescue nil
@tilemap.bitmaps[2] = tile3 if $tileA3 != nil
end
#tileA4
if $tileA4 == "empty::*::"
@tilemap.bitmaps[3] = Cache.system("TileA4")
else
tile4 = Cache_Swap_Tiles.swap($tileA4 + ".png") rescue nil
@tilemap.bitmaps[3] = tile4 if $tileA4 != nil
end
#tileA5
if $tileA5 == "empty::*::"
@tilemap.bitmaps[4] = Cache.system("TileA5")
else
tile5 = Cache_Swap_Tiles.swap($tileA5 + ".png") rescue nil
@tilemap.bitmaps[4] = tile5 if $tileA5 != nil
end
#tileB
if $tileB == "empty::*::"
@tilemap.bitmaps[5] = Cache.system("TileB")
else
tile6 = Cache_Swap_Tiles.swap($tileB + ".png") rescue nil
@tilemap.bitmaps[5] = tile6 if $tileB != nil
end
#tileC
if $tileC == "empty::*::"
@tilemap.bitmaps[6] = Cache.system("TileC")
else
tile7 = Cache_Swap_Tiles.swap($tileC + ".png") rescue nil
@tilemap.bitmaps[6] = tile7 if $tileC != nil
end
#tileD
if $tileD == "empty::*::"
@tilemap.bitmaps[7] = Cache.system("TileD")
else
tile8 = Cache_Swap_Tiles.swap($tileD + ".png") rescue nil
@tilemap.bitmaps[7] = tile8 if $tileD != nil
end
#tileE
if $tileE == "empty::*::"
@tilemap.bitmaps[8] = Cache.system("TileE")
else
tile9 = Cache_Swap_Tiles.swap($tileE + ".png") rescue nil
@tilemap.bitmaps[8] = tile9 if $tileE != nil
end
#closes def
end
#closes class
end
########################## SWAP EVENT'S GRAPHICS #############################
#the following class handles swapping event's graphics according to the tiles
class Sprite_Character < Sprite_Base
include Cache_Swap_Tiles
alias swap_tileset_bitmap tileset_bitmap
def tileset_bitmap(tile_id)
#do not swap events if true
if $game_switches[DISABLE_EVENT_SWAPPING]
set_number = tile_id / 256
return Cache.system("TileB") if set_number == 0
return Cache.system("TileC") if set_number == 1
return Cache.system("TileD") if set_number == 2
return Cache.system("TileE") if set_number == 3
return nil
return
end
if $game_switches[SWAP_TILE] == false and $swap_tileset_profile_bulletxt == false and $swapxt_realtime == false
set_number = tile_id / 256
return Cache.system("TileB") if set_number == 0
return Cache.system("TileC") if set_number == 1
return Cache.system("TileD") if set_number == 2
return Cache.system("TileE") if set_number == 3
return nil
return
end
swap_tileset_bitmap(tile_id)
set_number = tile_id / 256
if $tileB == "empty::*::"
return Cache.system("TileB") if set_number == 0
else
return Cache_Swap_Tiles.swap($tileB) if set_number == 0 rescue nil
end
if $tileC == "empty::*::"
return Cache.system("TileC") if set_number == 1
else
return Cache_Swap_Tiles.swap($tileC) if set_number == 1 rescue nil
end
if $tileD == "empty::*::"
return Cache.system("TileD") if set_number == 2
else
return Cache_Swap_Tiles.swap($tileD) if set_number == 2 rescue nil
end
if $tileE == "empty::*::"
return Cache.system("TileE") if set_number == 3
else
return Cache_Swap_Tiles.swap($tileE) if set_number == 3 rescue nil
end
return nil
end
end
=begin
saves tiles and passage setting variables,
needed if you save on a map that has swapped stuff.
this is only needed when using old system, because new system
reads the value from the map id file
=end
class Scene_File < Scene_Base
alias bulletxt_swap_tiles_write_save_data write_save_data
def write_save_data(file)
bulletxt_swap_tiles_write_save_data(file)
Marshal.dump($tileA1, file)
Marshal.dump($tileA2, file)
Marshal.dump($tileA3, file)
Marshal.dump($tileA4, file)
Marshal.dump($tileA5, file)
Marshal.dump($tileB, file)
Marshal.dump($tileC, file)
Marshal.dump($tileD, file)
Marshal.dump($tileE, file)
Marshal.dump($swap_passages.to_s(), file)
Marshal.dump($swap_tileset_profile_bulletxt, file)
Marshal.dump($swapxt_realtime, file)
end
alias bulletxt_swap_tiles_read_save_data read_save_data
def read_save_data(file)
bulletxt_swap_tiles_read_save_data(file)
$tileA1 = Marshal.load(file)
$tileA2 = Marshal.load(file)
$tileA3 = Marshal.load(file)
$tileA4 = Marshal.load(file)
$tileA5 = Marshal.load(file)
$tileB = Marshal.load(file)
$tileC = Marshal.load(file)
$tileD = Marshal.load(file)
$tileE = Marshal.load(file)
$swap_passages = Marshal.load(file)
$swap_tileset_profile_bulletxt = Marshal.load(file)
$swapxt_realtime = Marshal.load(file)
end
end
Aquí dejo un video que explica como usar el SwapXT (OJO: Este video no lo hice yo, así que agradezcanle a Juancituh)
Aquí algunas preguntas frecuentes (FAQ´S) proporcionadas por Juancituh tambien.
Q: ¿Que hago con el SwapXt.rb y como lo abro?.
A: Este script sirve para que el SwapXT pueda funcionar en tu juego, y lo puedes abrir con el "Bloc de Notas", copias su contenido y lo pegas en el "Editor de Scripts" de tu juego.
Q: La primera vez que abro el SwapXT me pide que busque el RPG Maker VX.exe, ¿Que hago?.
A: Tal como te dice el mensaje, tienes que buscar la aplicación RPG Maker VX.exe en la carpeta donde instalaste el RPG Maker VX, lo seleccionas y aceptas.
Q: ¿Por que al colocar el Map ID: 2 en el SwapXT, dice que no existe?.
A: Si te aparece esto, tienes que guardar tu proyecto, cerrarlo y volverlo a abrir, sino sirve esto, luego de hacer lo anterior cierra el SwapXT y abrelo de nuevo.
Q: ¿Por que cuando cargo la configuración, me salen los tilesets anteriores?.
A: Luego de cargar tilesets extra, mapear, y aplicar los cambios, tienes que volver a colocar los tilesets por defecto. Esto hara que los cambios NO SE VEAN EN EL MAKER, PERO SI EN EL JUEGO, así que no hay problema.
IMPORTANTE
Todos los créditos a Bulletxt (Script y programa) y a Juancituh (video de explicación y las FAQ´S)
Cualquier duda, postéenla.
MSword23- Moderador
- Mensajes : 105
Fecha de inscripción : 08/04/2011
Edad : 32
Localización : Managua, Nicaragua
Re: SwapXT -Tiles Ilimitados en VX-
Va, eso es mucho trabajo y complica todo mucho, me quedo con mi Xp que puedo colocar cuantos quiera sin problemas.
Pero es un Excelente aporte para quien usa VX, ayuda a quitar sus limitaciones!!!
Sigue así MS!!!
Pero es un Excelente aporte para quien usa VX, ayuda a quitar sus limitaciones!!!
Sigue así MS!!!
The_King_Jaas- Co-Administrador
- Mensajes : 1737
Fecha de inscripción : 02/02/2011
Drupogame :: RPG Maker :: RPG Maker VX :: Scripts
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
Lun Ene 23, 2012 11:32 pm por edux
» edux returns
Lun Ene 23, 2012 11:30 pm por edux
» The Elder Scrolls IV: Oblivion
Vie Ene 20, 2012 11:28 pm por Aljevalsar
» Kojima promete que habrá un Metal Gear Solid de auténtico sigilo
Jue Dic 22, 2011 7:33 pm por Anime_Maker
» Este fin de semana habrá nuevos modos para Modern Warfare 3
Jue Dic 15, 2011 12:03 pm por Akeo
» Kojima quiso crear un Metal Gear Solid 5 ambientado en la Segunda Guerra Mundial
Jue Dic 15, 2011 11:01 am por Akeo
» Darksiders II se dejará ver en los Spike VGA
Miér Dic 14, 2011 11:50 am por Akeo
» El creador de Bayonetta desmiente estar implicado en el desarrollo de Metal Gear Rising
Miér Dic 14, 2011 1:54 am por Akeo
» Los creadores de Bayonetta se encargan del desarrollo de Metal Gear Rising
Miér Dic 14, 2011 1:52 am por Akeo
» En Construccion: Mundo Abismal
Lun Oct 24, 2011 4:03 am por SagahonArturo
» Visceral Games busca nuevo personal para la franquicia Dead Space
Mar Oct 11, 2011 3:22 am por The_King_Jaas
» buenas
Mar Oct 11, 2011 3:21 am por The_King_Jaas
» Batman: Arkham City llegará "sin ninguna limitación"
Sáb Oct 08, 2011 1:44 am por Akeo
» Los creadores de Bulletstorm admiten divertidos que el juego tenía demasiadas palabras malsonantes
Sáb Oct 08, 2011 1:41 am por Akeo
» PES 2012: El primer DLC estará disponible el 11 de octubre
Sáb Oct 08, 2011 1:39 am por Akeo