Noble Lv.8
Inscrit le : 03/11/2012 Messages : 290
| Sujet: [VX] Multi Tileset Jeu 7 Mar 2013 - 20:39 | |
| N'étant pas fan du tileset editor, swap tiles ou encore behemot machin truc... Le truc qui est chiant avec, c'est qu'on passe énormément de temps dans l'éditeur pour faire des tonnes de config. qui aux finales font bugger notre projet. A lire avant utilisation L'avantage de celui-ci c'est que tout ce fait dans le script, pas d'éditeur pas de bug, bref il marche très bien sur mon projet maintenant que j'ai vraiment compris comment il fonctionnait. L'inconvénient de celui-ci car oui il y en à un voir même deux c'est qu'il est impossible de régler la passibilité de ses tiles et il est déconseiller d'utiliser des event de ses tiles de basedans. En voici les raisons: Si sur le tile de base TileB on va dire vous prenez un bout d'arbre pour un event, ensuite vous allez sur une map ou vos utilisez un autre tileB et que vous quittez le jeu, le script va garder celui de cette map en mémoire comme tile de base donc l'event ne sera pas le même. Par exemple moi sur le tileC de base j'avais mis des assiettes en event et quand j'ai quitté mon jeu dans la mine les assiettes étaient remplacés par des bouts de métaux xD, donc c'est assez dangereux d'utiliser ses tiles pour faire des events. Pour la passibilité sur les tiles A1, A2, A3, A4 et A5 c'est pas gênant, après il faut vraiment faire des tiles solides pour ne pas trop être embêter, le TileC de base remplacer par le Tile intérieur de Mac&Blue est pas trop trop chiant car les endroits normalement impossibles à franchir peuvent être facilement corrigé à l'aide d'un event qui bouche l'accès par exemple. Voici le script Auteur: Darkleo - Spoiler:
- Code:
-
#============================================================================== # ** Auto_Tilesets # Version 1.0 #02/2009 # By Darkleo (cestleonard@aol.com) #============================================================================== module Data_Tileset module_function #-------------------------------------------------------------------------- def [](map_id) tileA1 = "TileA1" tileA2 = "TileA2" tileA3 = "TileA3" tileA4 = "TileA4" tileA5 = "TileA5" tileB = "TileB" tileC = "TileC" tileD = "TileD" tileE = "TileE" # Les modifications sont à faire içi ! case map_id when 1 # ID de la map tileA1 = "defaut_TileA1" # Nom du Tilea1 etc ... tileA2 = "defaut_TileA2" tileA3 = "defaut_TileA3" tileA4 = "defaut_TileA4" tileA5 = "defaut_TileA5" tileB = "defaut_TileB" tileC = "defaut_TileC" tileD = "defaut_TileD" tileE = "defaut_TileE" when 6 # A vous maintenant ! end # Fin, ne modifiez plus rien ! return [tileA1, tileA2, tileA3, tileA4, tileA5, tileB, tileC, tileD, tileE] end #-------------------------------------------------------------------------- def change_tileset map_id = load_data("Data/System.rvdata").edit_map_id path = "Graphics/System/" default = self[0] ext = ".png" for i in 0..8 tileset = self[map_id][i] default_tileset = default[i] tileset = "defaut_" + tileset if tileset == default_tileset file1 = File.open(path + tileset + ext, 'rb') file2 = File.open(path + default_tileset + ext, 'wb') file2.write(file1.read) file1.close file2.close end end change_tileset if $TEST #-------------------------------------------------------------------------- end #============================================================================== class Spriteset_Map #-------------------------------------------------------------------------- alias old_create_tilemap create_tilemap def create_tilemap tab = Data_Tileset[$game_map.map_id] @tilemap = Tilemap.new(@viewport1) for i in 0..8 @tilemap.bitmaps[i] = Cache.system(tab[i]) end @tilemap.map_data = $game_map.data @tilemap.passages = $game_map.passages end #-------------------------------------------------------------------------- end #==============================================================================
On nomme nos tiles de base defaut_.... par exemple TileA1" sera renommer "defaut_TileA1 Il est impératif de faire la configuration du script comme ceci: when 1 # Mappemonde tileA1 = "defaut_TileA1" tileA2 = "defaut_TileA2" tileA3 = "defaut_TileA3" tileA4 = "defaut_TileA4" tileA5 = "defaut_TileA5" tileB = "defaut_TileB" tileC = "defaut_TileC" tileD = "defaut_TileD" tileE = "defaut_TileE" when 2 # L'id de la map tileA1 = "defaut_TileA1" tileA2 = "A2mo" tileA4 = "A4mo" tileA5 = "A5mo" tileB = "Bmo" tileC = "defaut_TileC" tileD = "defaut_TileD" tileE = "Emo" Si certaines maps ne sont pas configurer il est possible de rencontrer des bugs donc il faut absolument TOUTES les mettre. Pour changer les tiles par exemple si votre map 2 comme dans mon exemple comporte des tiles différents, créer un event ou votre équipe commencera sur la map 2 lancer le jeu et une fois sur cette map quittez le, vous retourner dans votre projet allez sur la map 1 juste pour la regarder et les tiles que vous avez choisies seront disponible. |
|