Oniromancie: Scripts - Changer de tileset comme de chemise


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (24 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

70 connectés actuellement

9173750 visiteurs
depuis l'ouverture

931 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

RMXP Forum

Hellsoft

RPG Architect

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Changer de tileset comme de chemise
Script pour RPG Maker XP
Ecrit par PJj82

Qui n'a jamais rêvé de changer de tileset en restant sur la même map ? PERSONNE !
C'est pourquoi je vous propose ce script trouvé sur le net et fonctionnel à 100% !



Portion de code:






$game_map.change_tileset(id)


Il suffit tout simplement de changer "id" par l'id du tileset que vous souhaitez !

Exemple:



Portion de code:






$game_map.change_tileset(007)


Et voilà ! C'était tous simple non ? Clin d'oeil


Monos - posté le 14/04/2009 à 20:28:55. (56268 messages postés) - admin

Vive le making libre

Attentions: Suite du script.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 
#==========================================================
 
# Script de changement de Tileset
 
#
 
#
 
# Dooxe version
 
#
 
#==========================================================
 
#--------------------------------------------------------
 
# Redefinition de la methode update
 
# pour mettre a jour la Map
 
#--------------------------------------------------------
 
class Spriteset_Map
 
  alias old_update update
 
  def update
 
    old_update
 
    if @tilemap.tileset != RPG::Cache.tileset($game_map.tileset_name)
 
      @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
 
    end
 
  end
 
end
 
#--------------------------------------------------------
 
# Game_Map  #
 
# - - - - - -
 
# Definition de la methode de changement de tileset
 
#--------------------------------------------------------
 
class Game_Map
 
  def change_tileset(id)
 
    tileset = $data_tilesets[id]
 
    @tileset_name = tileset.tileset_name
 
    @autotile_names = tileset.autotile_names
 
    @panorama_name = tileset.panorama_name
 
    @panorama_hue = tileset.panorama_hue
 
    @fog_name = tileset.fog_name
 
    @fog_hue = tileset.fog_hue
 
    @fog_opacity = tileset.fog_opacity
 
    @fog_blend_type = tileset.fog_blend_type
 
    @fog_zoom = tileset.fog_zoom
 
    @fog_sx = tileset.fog_sx
 
    @fog_sy = tileset.fog_sy
 
    @battleback_name = tileset.battleback_name
 
    @passages = tileset.passages
 
    @priorities = tileset.priorities
 
    @terrain_tags = tileset.terrain_tags
 
  end  
 
end
 
#--------------------------------------------------------
 
# Interpreter #
 
# - - - - - - -
 
# Definition de la methode de changement de tileset
 
# Va permetrre d'appeller la methode de Game_Map
 
# depuis un appel de script dans un evenement
 
#--------------------------------------------------------
 
class Interpreter
 
  def change_tileset(id)
 
    $game_map.change_tileset(id)  
 
    return true
 
  end  
 
end
 
#--------------------------------------------------------
 



Puis faîtes un événement avec :

Portion de code : Tout sélectionner

1
2
3
 
$game_map.change_tileset(id)
 



Et là ça marche ;)












======================
Pour XP vu que Vx c'est limité.
Tips sympa.

(Tien, sur Xp il y a pas d'option pour changer le chipset. encore un truc en moins par apport à 2003 sans passer par du script/commande ruby)

Pixner|Offgame | Le comptoire des clikeurs


Toy master - posté le 14/04/2009 à 20:34:59. (2553 messages postés)

Programmeur confirmé et à la retraite !

Citation:

(Tien, sur Xp il y a pas d'option pour changer le chipset. encore un truc en moins par apport à 2003 sans passer par du script/commande ruby)



En même temps c'est pas super utile !

--Citation : L'homme n'est pas fait pour travailler, la preuve c'est que ça le fatigue !--Un petit rpg totalement debile !--Ma galerie !--Un petit rpg totalement débile 2 !


Ephy - posté le 14/04/2009 à 20:40:08. (27090 messages postés) - honor

Mort vivant. Pas de drama SVP.

Citation:

En même temps c'est pas super utile !


Ca dépend. Si c'est bien géré, ça peut être vachement utile.

Power Level: 1 148 355,38|Mystic Slayer|Le monde d'Adélaïde|Reikon no Yume|★ H-Project|Toho Danmaku Arena|Loli versus Ponies|Mes vidéos|Ma galerie|Débuter sur VX:10, 11|Tuto: Importation de ressources|Mapper avec les RTP VX|Touhou|Fan de Omenides|Fan de Estheone|Eph'ille: 14


kmi81 - posté le 15/04/2009 à 10:07:09. (103 messages postés)

Buvez, c'est mon sang. Mangez, c'est mon corps. Touchez pas c'est mon cul.

Citation:

Si c'est bien géré, ça peut être vachement utile.


En effet, quand on utilise un système de temps, avec météo, saisons et tout le blabla, c'est super pratique lorsqu'on veut passer à un tileset enneigé, ou automnal... enfin m'avez compris 8-)

Commence tout, ne fini rien...


PJj82 - posté le 15/04/2009 à 11:04:34. (4 messages postés)

Ah mince ...

J'ai posté trop vite et j'ai uoblié la moitié du script :s

Donc je le poste ici , mais complet ^^

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
 
#==========================================================
 
# Script de changement de Tileset
 
#
 
#
 
# Dooxe version
 
#
 
#==========================================================
 
#--------------------------------------------------------
 
# Redefinition de la methode update
 
# pour mettre a jour la Map
 
#--------------------------------------------------------
 
class Spriteset_Map
 
  alias old_update update
 
  def update
 
    old_update
 
    if @tilemap.tileset != RPG::Cache.tileset($game_map.tileset_name)
 
      @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
 
    end
 
  end
 
end
 
#--------------------------------------------------------
 
# Game_Map  #
 
# - - - - - -
 
# Definition de la methode de changement de tileset
 
#--------------------------------------------------------
 
class Game_Map
 
  def change_tileset(id)
 
    tileset = $data_tilesets[id]
 
    @tileset_name = tileset.tileset_name
 
    @autotile_names = tileset.autotile_names
 
    @panorama_name = tileset.panorama_name
 
    @panorama_hue = tileset.panorama_hue
 
    @fog_name = tileset.fog_name
 
    @fog_hue = tileset.fog_hue
 
    @fog_opacity = tileset.fog_opacity
 
    @fog_blend_type = tileset.fog_blend_type
 
    @fog_zoom = tileset.fog_zoom
 
    @fog_sx = tileset.fog_sx
 
    @fog_sy = tileset.fog_sy
 
    @battleback_name = tileset.battleback_name
 
    @passages = tileset.passages
 
    @priorities = tileset.priorities
 
    @terrain_tags = tileset.terrain_tags
 
  end  
 
end
 
#--------------------------------------------------------
 
# Interpreter #
 
# - - - - - - -
 
# Definition de la methode de changement de tileset
 
# Va permetrre d'appeller la methode de Game_Map
 
# depuis un appel de script dans un evenement
 
#--------------------------------------------------------
 
class Interpreter
 
  def change_tileset(id)
 
    $game_map.change_tileset(id)  
 
    return true
 
  end  
 
end
 
#--------------------------------------------------------
 



Puis faîtes un événement avec :

Portion de code : Tout sélectionner

1
2
3
 
$game_map.change_tileset(id)
 



Et là ça marche ;)


Mikltov - posté le 15/04/2009 à 11:53:00. (1459 messages postés)

Makeuse tarée et Agent du FBI...

Pour VX ou XP ? Car il n'y a rien qui le précise.

Makeuse à la crosse de street-hockey. Livestream.


d arkangel - posté le 16/04/2009 à 07:57:28. (322 messages postés)

bidouilleur professionnel

Personnellement j'utilise cette technique pour le système jour/nuit mais avec ce code :

A placer dans Spriteset_Map, en dessous de la ligne :

Portion de code : Tout sélectionner

1
@tilemap = Tilemap.new(@viewport1)



Portion de code : Tout sélectionner

1
2
3
4
5
if $game_switches[X]  ==  true 
      @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
    else
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name+"_nuit")
    end



Explication :
- $game_switches[X] désigne l'interrupteur numéro X, très pratique car vous appelez un interrupteur ''jour'' et quand il est activé c'est le premier tilset et lorsqu'il est désactivé c'est le second qui est utilisé.
- +"_nuit" sert à désigner le tilset à prendre par le nom càd le même que celui de la map + _nuit. Très pratique pour la gestion des tilset dans la base de donnée.


Amélioration possible : si vous voulez faire des saisons rempalcez l'interrupteur par une variable et augmentez le nombre de possibilité.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
if $game_variables[X]  ==  1
      @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name+"_hiver")
    elsif $game_variables[X]  ==  2
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name+"_printemps")
elsif $game_variables[X]  ==  3
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name+"_été")
elsif $game_variables[X]  ==  4
    @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name+"_automne")
    end




Remarque : Le changement est instantané et c'est plus facile à utiliser !

La théorie, c'est quand on comprend tout mais que rien ne marche. La pratique, c'est quand ça marche mais personne ne sait pourquoi. Ici, on fait les deux : rien ne marche et personne ne sait pourquoi !


SINEN Kamui - posté le 27/04/2009 à 14:33:58. (64 messages postés)

【引き篭もり】

Ce script marche à merveille !:D
Merci beaucoup !! :sourit

Ce serait bien un petit dégradé entre tilesets, mais bon, j'vais m'arranger pour voir si je 'peux pas me bidouiller ça moi-même. Ehe!

EDIT ::

Voilà, j'ai ajouté mon petit dégradé entre tilesets, ça marche impect et ça me donne le résultat dont j'avais besoin. Le problème, c'est les autotiles... O_O

Exemple : Lorsque je suis sur le tileset A, c'est les autotiles B qui apparaissent. Lorsque je suis sur le tileset B, c'est les autotiles A qui apparaissent.

Comme je n'ai rien modifié du script, je ne vois pas d'où viens le problème ! :'(

:help :help :help :help

||| Tramp Boy System ||| Kamuy Mosir | Act.1 - Uwasurani mon Erampokinu |||


nafyos - posté le 03/05/2009 à 22:10:54. (32 messages postés)

salut vous allez tous me prendre pour un con, mais désoler je ne comprend pas du tout la démarche.
le script se met ou exactement s'il vous plait ?? enfin si je peut avoir plus de détail ca serait cool merci d'avance. Oui je sais monos j'avais dis que je viendrais plus poster mais bon....: doute1
Merci d'avance !!!!!!!!!


jonamigh - posté le 26/06/2009 à 18:06:29. (66 messages postés)

vous pouriez etre plus claire ou est ce que l'on doit mettre se script parce qu'on y comprend rien et franchement il me le faut
expliquer s'il vous play:help

je passe des heure sur rpgmaker xp j'adore ca !!!!


Tata Monos - posté le 26/06/2009 à 18:14:36. (56268 messages postés) - admin

Vive le making libre

Réfléchie 5 minutes Jona.

Le gros script ou veux tu le placer ? (DMC je sais)
Et les petits commande ? Quand je parle d'événement ?
Il y a pas un événement Code ou RGSS ou script pour placer des petits morceau script directement dans le jeu via un événement ?

Pixner|Offgame | Le comptoire des clikeurs


jonamigh - posté le 26/06/2009 à 23:00:40. (66 messages postés)

mais je sais sa je l'avais compris mais je ne savais pas dans quoi mettre se script mais c dans sprite_map non? ou audessu de main?
a la suite?
et sa marche pas
je vais dans proprieter de la carte je change de tileset mais sa me change tous les truc par exemple les maison devienne des arbres
je comprend pas :sriden

je passe des heure sur rpgmaker xp j'adore ca !!!!


Tata Monos - posté le 26/06/2009 à 23:20:13. (56268 messages postés) - admin

Vive le making libre

Comme d'habe, comme tous les scripts au dessus du script Main.

Pixner|Offgame | Le comptoire des clikeurs


jonamigh - posté le 26/06/2009 à 23:28:17. (66 messages postés)

sa marche pas
:'(
une vidéo serai la bien venu
:)

je passe des heure sur rpgmaker xp j'adore ca !!!!


adi0 - posté le 05/07/2009 à 23:59:22. (1 messages postés)

euh, jvais me faire passée pour un c** mais comment on voit quand les tileset change parceque moi franchement les script et moi sa fait 2


Sykodeus - posté le 02/09/2009 à 14:45:09. (23 messages postés)

Ces quelques lignes ne valent absolument pas le coup d'être lues.

Moi je comrpends pas le principe :doute1
Si on change de tileset, les éléments deviennent complètement n'importe quoi... autant téléporter l'équipe, non ?

A moins que ce ne soit à utiliser avec des tilesets, persos, et là je comprends.

Don't look at this


Heavy Rain - posté le 03/03/2010 à 18:28:29. (1053 messages postés)

Ca sert a rien ce script !XD

A si ! Si t'a envie de pourrir ton jeu pardon j'avais oublié qu'il existait des gens bizarres.


Floow - posté le 26/06/2010 à 02:32:41. (1 messages postés)

Saluut,
j'ai essayé ce script :
j'ai bien mis un événement avc le code mais...
keski fo faire aprés ? psk perso, sa ne change rien pr moi.
G fé jouer mon jeu pr voir mais tjrs rien...

Aidez moi svp ! :'(


SuperGregMaker - posté le 30/07/2010 à 00:11:50. (111 messages postés)

J'aime les trains.

jonamigh a dit:


sa marche pas
:'(
une vidéo serai la bien venu
:)




Euh tu veux un tapis rouge aussi ??
Si tu ne sais même pas ou placer un script, qu'est-ce que tu fous sur ce topic ?
Donc viens pas râler ...

Tu le fous au dessus de main, et pour l'appeler il y a une SUPER commande, page 3, qui s'appelle "Inserer script" !!!!!

C'est si compliqué ?
Pourquoi tu voudrais le foudre dans Spriteset_Map ? Reflechis un peu bon dieu ...
Surtout si au début il est marqué class Spriteset_Map, on va pas faire deux même classes dans un seul script !

Que Dieu vous garde, j'ai plus de place chez moi ...


Seikame - posté le 28/04/2012 à 13:15:10. (43 messages postés)

Si je peux me permettre une remarque, ce script est superbe pour changer simplement les fonds de combats en gardant la "même" map !

Il suffit de faire plusieurs tilesets avec les mêmes éléments en changeant juste les backgrounds de combat (ou ce qu'on veut) et placer les évènements de changement de tilesets aux frontières des zones où l'on souhaite avoir un fond différent en combat.

Voilà, ça coule peut être de source pour certains mais si ça peut en aider. :grossourire

Je vais tout faire pour ne rien faire.


esziaprez game - posté le 07/12/2012 à 16:57:02. (372 messages postés) - bocauxharam

Je suis dans le game !

Moi je vais m'en servir pour animer mes tileset c'est possible?

Est-ce que le script fonctionne en temps reel, le jeu risque pas de lag si les changement sont trop frequent.

En faite je voullais alterner entre deux tiles (voire trois ou quatre) pour que chaque tile fonctionne comme une frame.

ACTUEL : NEOTORI /// Pause : L'ANKH DE KINBRA /// Pause : GRASS SHOPPER  /// GALERIE


Seikame - posté le 14/07/2014 à 01:13:21. (43 messages postés)

Bonjour/bonsoir, je déterre encore ce sujet :

J'ai remarqué que les priorités de superpositions n'étaient pas prises en compte lors du changement de tileset. Les permissions de passage sont actualisées sans problème mais pas les priorités de superposition. C'est normal ? Et sinon y a-t-il un moyen d'y remédier ?

EDIT : bon ben merci à h3osss qui a réglé le problème en interne, je laisse sa modification à disposition dans le cas improbable où ça puisse servir à quelqu'un d'autre que moi :

http://paste.awesom.eu/umTL

Je vais tout faire pour ne rien faire.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis