Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
425 connectés actuellement
30729746 visiteurs depuis l'ouverture
3363 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
❤ 0 Auteur : S. F. LaValle, édité par ASHKA
Logiciel : RPG Maker VX
Nombre de scripts : 1
Fonctionnalités
Ce script permet de mapper une couche haute en utilisant une nouvelle map pour représenter cette couche. (Plusieurs couches possibles)
Installation
A placer au-dessus de Main.
Utilisation
Faites donc une nouvelle map avec le nom de la carte parente en ajoutant L1.
Exemple :
- Test : La carte parente
- TestL1 : Un nouvelle carte, qui apparaitra au dessus de la carte Test
On peut continuer en créant des cartes TestL2 TestL3 ect ect. (Je ne sais pas si il y a une limite.)
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
| #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[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(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 (1301 messages postés)
| Inferno | si je comprends bien, on fait deux maps qui se retrouveront une part dessus l'autre
|
42 |
Monos -
posté le 30/09/2008 à 13:17:40 (57322 messages postés)
| Vive le homebrew | 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.
|
Signer du nez ? |
Falco -
posté le 30/09/2008 à 18:00:54 (19772 messages postés)
- | Indie game Developer | Dommage, ça partait d'une bonne intention.
|
Inexistence Rebirth - Inexistence - Portfolio |
Monos -
posté le 30/09/2008 à 19:31:54 (57322 messages postés)
| Vive le homebrew | la c'est bon. Script débugé par Ashka.
|
Signer du nez ? |
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é :
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 :
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
|
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 -
posté le 29/10/2008 à 22:41:11 (17 messages postés)
| | 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 ça
bon bref, sinon ça a l'air cool, faudrait que j'essai
|
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 -
posté le 06/12/2008 à 22:50:25 (8 messages postés)
| | Je comprends pas, ça me met 'terrain_tags='for#<Game_map:0x33a3c80> par rapport à la ligne 137
|
Final Fantasy en force!!!!! |
tomix16 -
posté le 23/12/2008 à 19:32:28 (37 messages postés)
| | ué mais il faut comprendre se qui est mon cas ^^
|
RaZ -
posté le 25/02/2009 à 20:07:10 (1894 messages postés)
| Je suis toi | Excusez moi, mais où on place le script ?
|
Twitter c'est cool |
Monos -
posté le 25/02/2009 à 20:08:11 (57322 messages postés)
| Vive le homebrew | Ba dans l'éditeur de script comme tous les scripts. Au dessus du script Main.
|
Signer du nez ? |
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
|
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
|
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.
Y'a une solution?
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!
|
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
|
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 !
|
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...
|
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 | |
|
|