Oniromancie: Scripts - Couche Haute


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  (26 connectés)

Bienvenue
visiteur !






publicité RPG Maker!

Statistiques

Liste des
membres


Contact

52 connectés actuellement

9179877 visiteurs
depuis l'ouverture

951 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

Kingdom Ultimate

HeyMakeGames

Kerox Production

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





Couche Haute
Script pour RPG Maker VX
Ecrit par Monos

Auteur S. F. LaValle
Ce script permet de maper une couche haute en utilisant une nouvelle map pour représenter cette couche. (Plusieurs couche possible)

Faite donc une nouvelle map avec le nom de la carte parent en ajoutant L1.

Exemple:

Test : La carte parente
TestL1 : Un nouvelle carte, qui apparaitra au dessus de la carte Test
On peux continuer en fessant des cartes TestL2 TestL3 ect ect. (Je ne sais pas si il y a une limite. )






Portion de code:






#script débugé par Ashka bis



class Scene_Map < Scene_Base
alias start_2 start
alias update_2 update
attr_reader :map_layer_spritesets
#--------------------------------------------------------------------------
# * Start processing
#--------------------------------------------------------------------------
def start
start_2
setup_map_layers
end

def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose # Dispose of sprite set
for i in 0...@map_layer_spritesets.size
@map_layer_spritesets.dispose
end
$game_player.perform_transfer # Execute player transfer
$game_map.autoplay # Automatically switch BGM and BGS
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new # Recreate sprite set
setup_map_layers
fadein(30) if fade
Input.update
end

def setup_map_layers
maps = load_data("Data/MapInfos.rvdata")
game_map_name = maps[$game_map.map_id].name
@map_layers = []
@map_layer_spritesets = []
map_names = []
layer_map_names = []
layer_index = []
c = maps.keys
d = c.max
for i in 1..d
unless maps == nil
a = nil
map_names.push(maps.name)
a = maps.name =~ /(l|L)\d+/
layer_map_names.push(maps.name) if a != nil
layer_index.push(maps.index(maps)) if a != nil
end
end
for string in layer_map_names
string.chop! until string == game_map_name or string == ""# nil
end
if layer_map_names.include?(game_map_name)
for i in 0...layer_map_names.size
if layer_map_names != ""
map = Game_Map.new
map.setup(layer_index)
@map_layer_spritesets.push(Spriteset_Map_2.new(map))
@map_layers.push(map)
end
end
end
end

def update
update_2
for i in 0...@map_layer_spritesets.size
@map_layers.update
@map_layer_spritesets.update
end
end
end
class Spriteset_Map_2 < Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(layer)
@layer = layer
create_viewports
create_tilemap
update
end

def update
update_tilemap
update_viewports
end

def dispose
@tilemap.dispose
end

#--------------------------------------------------------------------------
# * Create Tilemap
#--------------------------------------------------------------------------
def create_tilemap(a1 = nil, a2 = nil, a3 = nil, a4 = nil, a5 = nil, b = nil, c = nil, d = nil, e = nil)
@tilemap = Tilemap.new(@viewport1)
@tilemap.bitmaps[0] = (a1 == nil ? Cache.system("TileA1") : a1)
@tilemap.bitmaps[1] = (a2 == nil ? Cache.system("TileA2") : a2)
@tilemap.bitmaps[2] = (a3 == nil ? Cache.system("TileA3") : a3)
@tilemap.bitmaps[3] = (a4 == nil ? Cache.system("TileA4") : a4)
@tilemap.bitmaps[4] = (a5 == nil ? Cache.system("TileA5") : a5)
@tilemap.bitmaps[5] = (b == nil ? Cache.system("TileB") : b)
@tilemap.bitmaps[6] = (c == nil ? Cache.system("TileC") : c)
@tilemap.bitmaps[7] = (d == nil ? Cache.system("TileD") : d)
@tilemap.bitmaps[8] = (e == nil ? Cache.system("TileE") : e)
@tilemap.map_data = @layer.data
@tilemap.passages = @layer.passages
end
#--------------------------------------------------------------------------
# * Update Tilemap
#--------------------------------------------------------------------------
# def update_tilemap
# @tilemap.ox = @layer.display_x / 8
# @tilemap.oy = @layer.display_y / 8
# @tilemap.update
# end
#--------------------------------------------------------------------------
# * Update Viewport
#--------------------------------------------------------------------------
def update_viewports
@viewport1.tone = @layer.screen.tone
@viewport1.ox = @layer.screen.shake
@viewport2.color = @layer.screen.flash_color
@viewport3.color.set(0, 0, 0, 255 - @layer.screen.brightness)
@viewport1.update
@viewport2.update
@viewport3.update
end
end








darksmile - posté le 30/09/2008 à 13:15:51. (1300 messages postés)

Inferno

si je comprends bien, on fait deux maps qui se retrouveront une part dessus l'autre:D

42


Monos - posté le 30/09/2008 à 13:17:40. (56278 messages postés) - admin

Vive le making libre

C'est exactement ça.

Ca vaut ce que cela vaut.

J'ai testé de démarré le jeu sur la carte qui est la couche haute, je retrouve en bas. C'est dommage quand même, j'aurais bien vu jouer avec les hauteurs.

======
Script bugé, lors des téléportation et qu'on reviens sur la map cela ne fonctionne plus.

Pixner|Offgame | Le comptoire des clikeurs


Falco - posté le 30/09/2008 à 18:00:54. (15290 messages postés) - heberge

L'homme à Abattre

Dommage, ça partait d'une bonne intention.

Pixold - Site web sur mes créations - Inexistence - Disponible sur Steam- Zelda Creator -Suivez moi sur Twitter


Monos - posté le 30/09/2008 à 19:31:54. (56278 messages postés) - admin

Vive le making libre

la c'est bon. Script débugé par Ashka.

Pixner|Offgame | Le comptoire des clikeurs


ASHKA - posté le 01/10/2008 à 12:08:41. (404 messages postés)

FIGHT THE POWER !!

Le script posté par Monos n'est pas compatible avec le multiple tileset.
Pour cela, il faut utiliser la version ci-dessous, legerement modifié :

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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
class Scene_Map < Scene_Base
  alias start_2 start
  alias update_2 update
  attr_reader :map_layer_spritesets
  #--------------------------------------------------------------------------
  # * Start processing
  #--------------------------------------------------------------------------
  def start
    start_2
    setup_map_layers
  end
  
  def update_transfer_player
    return unless $game_player.transfer?
    fade = (Graphics.brightness > 0)
    fadeout(30) if fade
    @spriteset.dispose              # Dispose of sprite set
    for i in 0...@map_layer_spritesets.size
      @map_layer_spritesets[i].dispose
    end
    $game_player.perform_transfer   # Execute player transfer
    $game_map.autoplay              # Automatically switch BGM and BGS
    $game_map.update
    Graphics.wait(15)
    @spriteset = Spriteset_Map.new  # Recreate sprite set
    setup_map_layers
    fadein(30) if fade
    Input.update
  end
    
  def setup_map_layers
    maps = load_data("Data/MapInfos.rvdata")
    game_map_name = maps[$game_map.map_id].name
    @map_layers = []
    @map_layer_spritesets = []
    map_names = []
    layer_map_names = []
    layer_index = []
    c = maps.keys
    d = c.max
    for i in 1..d
      unless maps[i] == nil
        a = nil
        map_names.push(maps[i].name)
        a = maps[i].name =~ /(l|L)\d+/
        layer_map_names.push(maps[i].name) if a != nil
        layer_index.push(maps.index(maps[i])) if a != nil
      end
    end
    for string in layer_map_names
      string.chop! until string == game_map_name or string == ""# nil
    end
    if layer_map_names.include?(game_map_name)
      for i in 0...layer_map_names.size
        if layer_map_names[i] != ""
          map = Game_Map.new
          map.setup(layer_index[i])
          @map_layer_spritesets.push(Spriteset_Map_2.new(map))
          @map_layers.push(map)
        end
      end
    end
  end
  
  def update
    update_2
    for i in 0...@map_layer_spritesets.size
      @map_layers[i].update
      @map_layer_spritesets[i].update
    end
  end  
end
class Spriteset_Map_2 < Spriteset_Map
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(layer)
    @layer = layer
    create_viewports
    create_tilemap
    update
  end
 
  def update
    update_tilemap
    update_viewports
  end
  
  def dispose
    @tilemap.dispose
  end
 
  #--------------------------------------------------------------------------
  # * Create Tilemap
  #--------------------------------------------------------------------------
  def create_tilemap
    if !$data_map_tilesets
     begin
       $data_map_tilesets=load_data("Data/MapTilesets.rvdata")
     rescue
       $data_map_tilesets=nil
     end
    end
    if !$data_tilesets
     begin
       $data_tilesets=load_data("Data/Tilesets.rvdata")
     rescue
       $data_tilesets=nil
     end
    end
    @tilemap = Tilemap.new(@viewport1)
    tileset=nil
    if $data_map_tilesets && $data_tilesets
      mapset=$data_map_tilesets[@layer.map_id]
      tileset=$data_tilesets[mapset] if mapset && mapset>0
    end
    if tileset
      @tilemap.bitmaps[0] = loadTileset(tileset.bitmapNames[0])
      @tilemap.bitmaps[1] = loadTileset(tileset.bitmapNames[1])
      @tilemap.bitmaps[2] = loadTileset(tileset.bitmapNames[2])
      @tilemap.bitmaps[3] = loadTileset(tileset.bitmapNames[3])
      @tilemap.bitmaps[4] = loadTileset(tileset.bitmapNames[4])
      @tilemap.bitmaps[5] = loadTileset(tileset.bitmapNames[5])
      @tilemap.bitmaps[6] = loadTileset(tileset.bitmapNames[6])
      @tilemap.bitmaps[7] = loadTileset(tileset.bitmapNames[7])
      @tilemap.bitmaps[8] = loadTileset(tileset.bitmapNames[8])
    else
      @tilemap.bitmaps[0] = Cache.system("TileA1")
      @tilemap.bitmaps[1] = Cache.system("TileA2")
      @tilemap.bitmaps[2] = Cache.system("TileA3")
      @tilemap.bitmaps[3] = Cache.system("TileA4")
      @tilemap.bitmaps[4] = Cache.system("TileA5")
      @tilemap.bitmaps[5] = Cache.system("TileB")
      @tilemap.bitmaps[6] = Cache.system("TileC")
      @tilemap.bitmaps[7] = Cache.system("TileD")
      @tilemap.bitmaps[8] = Cache.system("TileE")
      $game_map.terrain_tags = nil
    end
    @tilemap.map_data = @layer.data
    @tilemap.passages = @layer.passages
  end
  #--------------------------------------------------------------------------
  # * Update Viewport
  #--------------------------------------------------------------------------
  def update_viewports
    @viewport1.tone = @layer.screen.tone
    @viewport1.ox = @layer.screen.shake
    @viewport2.color = @layer.screen.flash_color
    @viewport3.color.set(0, 0, 0, 255 - @layer.screen.brightness)
    @viewport1.update
    @viewport2.update
    @viewport3.update
  end
end
 
 



Chaques couches pourra avoir son tileset par la methode propre à ce systeme.



Que l'on utilise l'un ou l'autre, le script ne fait qu'afficher le decor de la map-couche au dessus de la map normale.
Ce qui signifie :
- Au dessus des events en position "au dessus du héros" de la map normale.
- Les events de la map-couche ne seront pas affiché.
- Un sol placé sur la map-couche s'affichera au dessus de la map normal ( et aussi au dessus du héros ).
- Les elements de la map-couche sont tous passables quelque soit ce qui est defini.

Un screen d'exemple :

image

En haut, sans utilisation de couche :
La barriere, l'herbe et le chemin sont coupé par l'autotile "maison", le player ne peut pas passer derriere le toit.

En bas, avec utilisation de couche :
La barriere, l'herbe, le chemin et le player peuvent passer derriere le toit.
Si l'ombre est double, c'est parce que je n'ai pas supprimé celle de la map normal ( script : "Kill autoshadow" de Modern Algebra par exemple ).
L'ombre placé sur la map-couche s'affiche au dessus du player.

ASHKA


Bastienre4 - posté le 11/10/2008 à 10:09:58. (21 messages postés)

Petit Maker ^^

cool merci ashka :biere

J'apprends le C++ (c'est pas gagner :F)


killerearth - posté le 19/10/2008 à 15:11:14. (27 messages postés)

Killer de monstre !

Sa à l'air excellent bravo !

Maker and killer du Dimanche, et aussi du Samedi ! =)


ptiteuf (visiteur non enregistré) - posté le 29/10/2008 à 22:41:11.

mdr quand j'ai vu "couche haute" dans le nom du topic je me suis dit: "mais ça va pas dans leur tête sur ce forum??? il parlent de couches pour bébé???" et en faite ça parlait pas de çaXD

bon bref, sinon ça a l'air cool, faudrait que j'essai :D


franck james - posté le 10/11/2008 à 22:14:36. (23 messages postés)

Rock'n'roll

Problème avec la ligne 137:

$game_map.terrain_tags = nil

Décidemment, j'ai pas de chance avec les scripts :'(

edit: en fait si, il marche nikel, c'est moi qui suis bête ^^
Merci beaucoup, ça permet vraiment des choses superbes en matière de mapping :)

www.myspace.fr/Zizitoudurh


Alpha (visiteur non enregistré) - posté le 06/12/2008 à 22:50:25.

Je comprends pas, ça me met 'terrain_tags='for#<Game_map:0x33a3c80> par rapport à la ligne 137 :help


tomix16 - posté le 23/12/2008 à 19:32:28. (37 messages postés)

ué mais il faut comprendre se qui est mon cas ^^:wouah


RaZ - posté le 25/02/2009 à 20:07:10. (1818 messages postés)

Je suis toi

Excusez moi, mais où on place le script ?

Je fais des lives de dessin. Les gens aiment bien.


Monos - posté le 25/02/2009 à 20:08:11. (56278 messages postés) - admin

Vive le making libre

Ba dans l'éditeur de script comme tous les scripts. Au dessus du script Main.

Pixner|Offgame | Le comptoire des clikeurs


Tarasck - posté le 15/03/2009 à 00:24:48. (6 messages postés)

Problème avec la ligne 137:

$game_map.terrain_tags = nil
terrain_tags='for#Game_map:0x198fac0
bonjour! kelk1 pourais m'aider pour ce petit probleme merci:)

Quand tu vis pour le monde virtuel, soit pret à de virtualiser


Randal - posté le 29/03/2009 à 14:44:40. (230 messages postés)

pour ceux qui on un problème à la ligne 137, mettez là en commentaire ou supprimer-là, elle ne sert à rien

c'est-à-dire, ça: $game_map.terrain_tags = nil

Black Heaven sur Oniromancie | Site officiel | Farewell / Goodbye


petit-maker - posté le 15/10/2009 à 18:25:46. (12 messages postés)

Je suis gelé

moi je voudrais savoir si on pouvais faire en sorte que quand on est sur la map test on puisse aller sur la map testL1 merci:inter

Entre le dessin, le making, la musique et le collège, j'ai plus de temps libre !


Certere - posté le 23/01/2010 à 13:17:05. (105 messages postés)

Ah c'est pas mal ! Je vais faire un labyrhinte avec :D


seidici - posté le 12/04/2010 à 21:03:24. (20 messages postés)

Y'a un petit problème, la couche L1 peu être L2 j'ai pas essayé ne varie pas en fonction des modification de ton, elle reste parfaitement éclairée même quand le reste est sombre.:s
Y'a une solution?:ange
Sinon, le script est génial merci beaucoup :)

Seidici


koolroc - posté le 06/05/2010 à 19:13:32. (4 messages postés)

super! je peut faire passer mon perso derrière le toit de mes maisons mnt! un très bon script, merci!:sonic

http://www.filefront.com/15398341/DEMOLe-sauveur-des-couleurs-My-little-big-project.exe/


--ayoub-- - posté le 15/05/2010 à 13:09:27. (96 messages postés)

C'est moi la meileur

Merci pour le script :sonic

78


dequec64 - posté le 02/08/2010 à 23:59:14. (1 messages postés)

[size=18][/size]
vous allez peut etre me trouver noob, mais mon projet avance bien, jai plusieurs chose dans le scripts qui sont modifier mais je ne comprends pas celui la. pourriez vous maidez en me montrant un tutorial ou simplement des explication claires..

Merci

bientot avec un site pour jeu a télécharger(rpg maker) et jeu flash ek des potes


yayasimsa - posté le 18/08/2010 à 15:46:13. (1 messages postés)

Incombatible avec le script Popup pour les objets !
:feu:'(


R2MI390 - posté le 10/04/2011 à 16:18:36. (66 messages postés)

Statut de marbre...

Petit problème: quand on fait un game over sur la carte, ben la map sur laquelle on est disparait puis celle de la couche haute...:sriden

Moi, je m'appelle R2MI. Et après le reste j'ai oublié...


Skatino - posté le 18/06/2013 à 23:21:13. (53 messages postés)

Vive rpg-maker.fr !

Je ne vois pas trop ce que ca apporte, mais ca peut etre amusant pour certains rpg. Merci, beau travail :)


cari974 - posté le 10/08/2013 à 07:17:09. (38 messages postés)

Bin ça permet de superposer des plans, comme dans XP, regarde le screen de ASHKA.

MMORPG : VX => http://www.rpg-maker.fr/scripts-342-net-gaming.html //\\ XP => http://www.rpg-maker.fr/scripts-425-netplay-master-script-mmorpg.html

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