赞 | 1 |
VIP | 0 |
好人卡 | 12 |
积分 | 2 |
经验 | 52910 |
最后登录 | 2024-8-20 |
在线时间 | 835 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 196
- 在线时间
- 835 小时
- 注册时间
- 2012-9-16
- 帖子
- 1811
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
表示脚本是挖来的。放了swapxt和extra_tiles文件夹后,我什么都没设置,就进游戏。。。脚本没出什么问题,只是我发现我所有的地图使用的图块都被改了,然后...。
表示英语盲,看不懂注释和作者笔记,翻译出的也都是些乱七八糟的东东...
请告诉我肿么使用吧,...怎么设置指定的地图使用指定的图块(例如1号地图就用默认的图块,2号用我那些图块中的指定一个。)- =begin
- SwapXT
- Version: 1.0
- Author: Marco Di Antonio ([email protected])
- 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
- [url=home.php?mod=space&uid=341345]@Cache[/url] = {} 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
复制代码 |
|