SWAPXT - Il ne veut pas sauvegarder les tiles d'une map.
Auteur
Message
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 17:29
Bonjour à tous, ou peut-être bonsoir.
Mon soucis :
Ayant absolument besoin de SWAPXT pour une map très importante, je l'ai donc utiliser. J'ai donc copier/coller le script, installer le logiciel, etc... etc... Et je me retrouve maintenant prêt devant mon logiciel. Je change donc les tilesets, je mappe. Une fois cela fini, j'enregistre donc les tiles et la passabilité avec l'ID de ma map. J'ai regardé la vidéo pour voir si j'ai fais pareil que lui, c'est le cas. Mais, quand je teste, je n'ai pas les tiles que j'ai mis à la place des actuels. J'ai donc un truc très moche qui ne ressemble a rien. Non je ne veux pas passer sous Ace pour ceux qui vont me le dire.
Ma question :
Je voudrais savoir comment faire pour que ce fichu logiciel marche, j'en ai énormement besoin. Je répète que j'ai tout fais correctement.
Merci d'avance.
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 17:55
Yop, Est-ce que tu as bien collé le gros script à mettre dans la liste des scripts? Et l'appel du script qu'il te donne lorsque tu as enregistré tes tiles et tes passabilités? As-tu bien mis l'évènement en automatique? (ou du moins le mets-tu en marche?)
Je ne crois pas que ce soit le logiciel qui bug, pourquoi y aurait-il que toi où ça bug? ^^
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 18:19
L'appel de script ? Ah j'ai loupé un truc alors. Tu pourrais un peu plus me l'expliquer car je suis perdu *_*
Merci d'avance (:
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 18:46
Je reprends de zéro.
I Script
Tu as un script à mettre dans la liste des scripts. Celui-ci:
Code:
=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.
#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 ###################################
#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
#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
############################# 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
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
Il vaut mieux le mettre au-dessus de "Materials" je crois... J'en suis pas sûr, mais ça marche!
II Choix des tiles et des passabilités Tu choisis tes tiles sur SwapXT, tu fais les passabillités. Comme j'ai eu du mal pour ces dernières, je vais te l'expliquer.
Tu créer une nouvelle passabilité (2ème onglet). Tu l'appelles par exemple "Donjon" pour des tiles donjons. Il te crée le groupe. Ensuite tu re-clique et choisis "Donjon". Là ce sera bon. Les prochaines fois tu n'auras pas forcément avoir besoin de les mettre directement, tu pourras les mettre une fois que tu auras choisi les tiles et les passabilités pour chaque map (dans le troisième onglet).
Mapping et enregistrement de la map Tu map. Puis tu fais les passabilités sur ton jeu. Ensuite tu enregistres ce que tu as fait. Puis tu vas sur le 3ème onglet de Swap. Tu appuies sur le petit coché vert, et tu rentres l'ID de ta map (clique droit sur le nom de la map, Propriétés). Tu vérifies dans le petite boîte à droite que tout est bon, dans le pire des cas tu séléctionnes ce qui est à changer dans la barre déroulante et tu séléctionnes ce qui faut.
Changement de Tiles In game Ensuite tu cliques sur le petit bouton bleu en bas, "Create a Real-Time..." Puis tu cliques sur "Apply..." Il va te donner un code, type "$game_map.swapxt(32591)"
Tu le copies (Ctrl + C) et tu le colles dans un évènement automatique (ou qui s'enclenche au bout d'un moment) dans ton jeu.
Réinitialiser les tiles et les passabilités Ensuite retourne sur SwapXT, va sur le premier onglet. En haut, clique sur Tools, puis "Restore all tilesets...." Puis vas sur le 2ème onglet et clique sur "Restore...." à droite de la barre déroulante où tu avais mis les passabilités (pense bien à enregistrer juste avant hein!). Tu devras faire cette étape à chaque fois que tu changeras les tiles et/ou les passabilités. Notes qu'à chaque fois que tu changeras les passabilités, il te demandera de réinitialiser le jeu, donc inutile de les mettre dans un profil!
(Les profils permettent de sauvegarder un pack de tiles et/ou les passabilités. Tu pourras créer un profil pour les forêts, un autre pour les grottes, encore un autre pour l'intérieur des maisons...)
Puis reviens sur ton jeu, replace ton personnage sur la map voulue (il aura sûrement changé de place entre-temps), sauvegarde et test!
Pour les prochaines map types donjon (si je suis mon exemple) tu n'auras qu'à récupéré ce code et le mettre un nouvel évènement sur cette map (à moins que tu l'ai déjà mis sur une autre map donjon). Par contre il faudra quand même "cocher" la map (petit bouton vert )
Dernière édition par Pakodar le Jeu 23 Fév 2012 - 20:12, édité 3 fois
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 19:52
Tout d'abord, merci d'avoir pris autant de temps pour ma demande (:
Des images seront plus efficace que les mots :
Spoiler:
_ _ _ _ __ _
Spoiler:
_ _ _ _ __ _
Spoiler:
J'ai encore du oublier un passage de ton explication --' Enfin je viens d'apprendre un truc avec ces appels de script merci
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 19:58
Ah oui! Excuse moi!
Reprends à cette étape:
Spoiler:
Là tu as fini de mapper, sauvegardé, etc.
Sur SwapXT, va sur le premier onglet. En haut, clique sur Tools, puis "Restore all tilesets...." Puis vas sur le 2ème onglet et clique sur "Restore...." à droite de la barre déroulante où tu avais mis les passabilités (pense bien à enregistrer juste avant hein!) Puis reviens sur ton jeu, replace ton personnage sur la map voulue (il aura sûrement changé de place entre-temps), sauvegarde et test!
Tu devras faire cette étape à chaque fois que tu changeras les tiles et/ou les passabilités. Notes qu'à chaque fois que tu changeras les passabilités, il te demandera de réinitialiser le jeu, donc inutile de les mettre dans un profil!
Edit: les profils permettent de sauvegarder un pack de tiles et/ou les passabilités. Tu pourras créer un profil pour les forêts, un autre pour les grottes, encore un autre pour l'intérieur des maisons...
P.S: je complète mon message plus haut
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 20:06
Malgrès ces étapes en plus, le problème persiste :/
Toujours le même message.
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 20:16
--' Je pensais connaître le message, mais je l'ai pas lu jusqu'au bout... Dans tous les cas, l'étape que je viens de citer plus haut est à faire obligatoirement de toute façon...
Il ne voit pas RealTime donc... Crées en un nouveau et change l'appel du code de l'évènement pour voir.
Sinon va dans le dossier de ton jeu, swapxt, puis realtime, et vérifies que le numéro entre parenthèses dans le code y soit (dans ton cas tu devrais avoir 9010.rtx exactement.
Dernière édition par Pakodar le Jeu 23 Fév 2012 - 20:40, édité 1 fois
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 20:28
Il est bien dans le dossier. Je vais devenir fou U_u
J'ai essayé plusieurs fois, sans résultat... J'ai aussi désintaller, réinstaller SwapXT, sans résultat.
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 20:37
Tu ne changes pas de projet entre temps? C'est la seule chose que je vois... Après... Je ne sais pas ^^' Désolé!
Edit: non ça peut pas être ça, faudrait être con en plein... a moins que?
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Jeu 23 Fév 2012 - 21:25
Non ce n'est pas cela x)
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Ven 24 Fév 2012 - 7:35
^^
On va faire un test: Créer un nouveau projet, créer un nouveau jeu sur SwapXT en sélectionnant le-dit projet. Change les tiles et les passabilités. Map. Enregistre la map avec les tiles et les passabilités, enregistre les passabilités mets les tiles dans graphics, swapxt... Créer le realtime et met le code obtenu dans un évènement automatique, et test.
Si ça ne marche toujours pas... je pourrais soit te conseiller de changer d'ordi... soit je pourrais plus rien pour toi x)
Boroniste
Citadin Lv.7
Age : 26 Inscrit le : 19/11/2010 Messages : 182
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Ven 24 Fév 2012 - 8:41
ça ne marche pas mieu... Merci quand même d'avoir voulu m'aider. (: Je ne sais absolument pas comment je vais faire maintenant...
Brahim474
Va-nu-pieds Lv.4
Age : 27 Inscrit le : 20/02/2012 Messages : 50
Sujet: re Sam 25 Fév 2012 - 10:35
je crois connaitre ton probleme: faut que tu va au 3e onglet dans SWAPXT: tu appui sur le petit bouton avec un V just en bas, tu rentre L'ID de ta map ensuite tu appui sur ok, et tu va en bas tu appui sur le bouton a coté de "create a real-time swap" puis t'appui sur le bouton appui and creat juste juste en bas du code a insérer dans ta map, ensuite tu copie le code, et tu le met dans ta map en event processus parraléle, tu fait appeler le script avec le code [$game.map.swapxt("nombre_alléatoir_dans swapxt")] et tu met juste en bas effacer l'evenement pour pas laguer.
j'utilise swapxt moi
Hamburger
Voyageur Lv.10
Age : 27 Inscrit le : 01/08/2011 Messages : 446
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Sam 25 Fév 2012 - 11:37
J'ai le même problème que Boroniste. Je mappe tout comme il faut, mais SWAPTX n'enregistre pas la map.
Brahim474
Va-nu-pieds Lv.4
Age : 27 Inscrit le : 20/02/2012 Messages : 50
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Sam 25 Fév 2012 - 13:50
...moi j'avais enregistrer un profile...essaie peut-être que sa va marcher
sa marche bien chez moi pourtant, les maps se translatent facilement
Pakodar
Citadin Lv.7
Age : 28 Inscrit le : 16/09/2011 Messages : 179
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Sam 25 Fév 2012 - 14:07
Pakodar a écrit:
Je reprends de zéro.
I Script
Tu as un script à mettre dans la liste des scripts. Celui-ci:
Code:
=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.
#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 ###################################
#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
#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
############################# 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
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
Il vaut mieux le mettre au-dessus de "Materials" je crois... J'en suis pas sûr, mais ça marche!
II Choix des tiles et des passabilités Tu choisis tes tiles sur SwapXT, tu fais les passabillités. Comme j'ai eu du mal pour ces dernières, je vais te l'expliquer.
Tu créer une nouvelle passabilité (2ème onglet). Tu l'appelles par exemple "Donjon" pour des tiles donjons. Il te crée le groupe. Ensuite tu re-clique et choisis "Donjon". Là ce sera bon. Les prochaines fois tu n'auras pas forcément avoir besoin de les mettre directement, tu pourras les mettre une fois que tu auras choisi les tiles et les passabilités pour chaque map (dans le troisième onglet).
Mapping et enregistrement de la map Tu map. Puis tu fais les passabilités sur ton jeu. Ensuite tu enregistres ce que tu as fait. Puis tu vas sur le 3ème onglet de Swap. Tu appuies sur le petit coché vert, et tu rentres l'ID de ta map (clique droit sur le nom de la map, Propriétés). Tu vérifies dans le petite boîte à droite que tout est bon, dans le pire des cas tu séléctionnes ce qui est à changer dans la barre déroulante et tu séléctionnes ce qui faut.
Changement de Tiles In game Ensuite tu cliques sur le petit bouton bleu en bas, "Create a Real-Time..." Puis tu cliques sur "Apply..." Il va te donner un code, type "$game_map.swapxt(32591)"
Tu le copies (Ctrl + C) et tu le colles dans un évènement automatique (ou qui s'enclenche au bout d'un moment) dans ton jeu.
Réinitialiser les tiles et les passabilités Ensuite retourne sur SwapXT, va sur le premier onglet. En haut, clique sur Tools, puis "Restore all tilesets...." Puis vas sur le 2ème onglet et clique sur "Restore...." à droite de la barre déroulante où tu avais mis les passabilités (pense bien à enregistrer juste avant hein!). Tu devras faire cette étape à chaque fois que tu changeras les tiles et/ou les passabilités. Notes qu'à chaque fois que tu changeras les passabilités, il te demandera de réinitialiser le jeu, donc inutile de les mettre dans un profil!
(Les profils permettent de sauvegarder un pack de tiles et/ou les passabilités. Tu pourras créer un profil pour les forêts, un autre pour les grottes, encore un autre pour l'intérieur des maisons...)
Puis reviens sur ton jeu, replace ton personnage sur la map voulue (il aura sûrement changé de place entre-temps), sauvegarde et test!
Pour les prochaines map types donjon (si je suis mon exemple) tu n'auras qu'à récupéré ce code et le mettre un nouvel évènement sur cette map (à moins que tu l'ai déjà mis sur une autre map donjon). Par contre il faudra quand même "cocher" la map (petit bouton vert )
J'ai tout dit plus haut.
Ou alors, essaie de tester:
Pakodar a écrit:
On va faire un test: Créer un nouveau projet, créer un nouveau jeu sur SwapXT en sélectionnant le-dit projet. Change les tiles et les passabilités. Map. Enregistre la map avec les tiles et les passabilités, enregistre les passabilités mets les tiles dans graphics, swapxt... Créer le realtime et met le code obtenu dans un évènement automatique, et test.
Pouet
Ex-Grand Œil des projets
Age : 39 Inscrit le : 10/06/2009 Messages : 1137
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map. Lun 12 Mar 2012 - 20:44
Merci pour ton aide Pako. + 3 en participation pour ta patience et ton dévouement D'ailleurs, si tu es motivé pour faire un tuto sur l'utilisation de ce script... (peut-être que ça existe déjà mais je suis pas très au courant, je ne traine que dans le forum des problèmes et celui des projets XD)
Je déplace donc dans "abandonné" mais ce serait bien d'avoir une trace de ton aide PAko
Contenu sponsorisé
Sujet: Re: SWAPXT - Il ne veut pas sauvegarder les tiles d'une map.
SWAPXT - Il ne veut pas sauvegarder les tiles d'une map.