Night.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

377 connectés actuellement

30737476 visiteurs
depuis l'ouverture

1061 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

New RPG Maker

Zarok

Kingdom Ultimate

Offgame

Tous nos partenaires

Devenir
partenaire



Changer de tileset en cours de jeu

Permet de changer le tileset sur une map en cours de jeu (par exemple pour des changements de saisons, jour/nuit, météo...)

Script pour RPG Maker XP
Ecrit par Dooxe
Publié par PJj82 (lui envoyer un message privé)
Signaler un script cassé

❤ 0

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% !

Version 1.1

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
#==========================================================
# Script de changement de Tileset
# Version 1.1
#
# Dooxe, corrigé par h3osss
# Version 1.1 (2014) : correction des priorités de superposition.
#==========================================================
#--------------------------------------------------------
# Redefinition de la methode update
# pour mettre a jour la Map
#--------------------------------------------------------
class Spriteset_Map
  alias old_update update
  def update
    @tilemap.priorities = $game_map.priorities
    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
#--------------------------------------------------------



Utilisation

Voici le modèle de formule, à appeler dans un appel de script :

Portion de code : Tout sélectionner

1
$game_map.change_tileset(id)



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

Exemple:

Portion de code : Tout sélectionner

1
$game_map.change_tileset(007)



Et voilà ! C'était tous simple non ? image

Mis à jour le 18 octobre 2020.






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

❤ 0

Vive le homebrew

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)

Signer du nez ?


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

❤ 0

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 (30104 messages postés) - honor

❤ 0

[BIG SHOT]

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 (Value!+)|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 (102 messages postés)

❤ 0

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)

❤ 0

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 (1530 messages postés)

❤ 0

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)

❤ 0

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)

❤ 0

【引き篭もり】

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)

❤ 0

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)

❤ 0

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 (28 messages postés)

❤ 0

Compte Non utilisé

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 ?


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

❤ 0

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 (28 messages postés)

❤ 0

Compte Non utilisé

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


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

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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)

❤ 0

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 (57 messages postés)

❤ 0

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

Twitter (les dessins) - UPBF (jeu de baston)


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

❤ 0

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.

Projet en cours: INRAL / En pause :NEOTORI /// Pause : L'ANKH DE KINBRA /// Pause : GRASS SHOPPER  /// GALERIE


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

❤ 0

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

Twitter (les dessins) - UPBF (jeu de baston)

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 - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers