| Script pour couches hautes | |
|
|
Auteur | Message |
---|
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Script pour couches hautes Jeu 13 Mai 2010, 11:11 | |
| Salut tout l'monde ! Le nom du sujet est pas super mais je savais pas trop quoi mettre. Voici un script pour faire plusieurs couches sous RMVX. - 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[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 script par Monos, (pas sûr mais c'est lui qui l'a posté ici et n'a pas cité d'auteur => http://www.rpg-maker.fr/scripts-175-couche-haute-pour-rm-vx.html) et débugé par Ashka. - Citation :
Monos: 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. ) - Citation :
Ashka: 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: - Code:
-
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
J'espère que ce sera utile. | |
|
| |
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: Re: Script pour couches hautes Jeu 13 Mai 2010, 18:48 | |
| Merci ! Personne n'en a vraiment besoin ici je pense... mais merci de l'attention. Pense à être sûr que l'auteur veuille bien qu'on diffuse son script. ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
| |
Manderr Zigouilleur de makeurs Lv 32
Nombre de messages : 2447 Age : 29
| |
| |
Kamikaz93 Mega Maker Lv 19
Nombre de messages : 737 Age : 26
| |
| |
cheikh35 Maker de Bronze Lv 22
Nombre de messages : 858 Age : 29
| Sujet: Re: Script pour couches hautes Ven 27 Aoû 2010, 13:14 | |
| Merci, mortel le script. Étant donné que je programme en ce moment sur VX sa va m'être très utile ! :happy:
____________ - Spoiler:
| |
|
| |
Naqqah Maker de Légende Lv 46
Nombre de messages : 3377 Age : 28
| Sujet: Re: Script pour couches hautes Ven 27 Aoû 2010, 13:46 | |
| Kamikaz, pense à regarder la date des posts ^^' A part ça oui, ce script est excellent. | |
|
| |
Kamikaz93 Mega Maker Lv 19
Nombre de messages : 737 Age : 26
| |
| |
cheikh35 Maker de Bronze Lv 22
Nombre de messages : 858 Age : 29
| Sujet: Re: Script pour couches hautes Ven 27 Aoû 2010, 15:01 | |
| Peut être faut-il upper un sujet pour une bonne raison ou quelque chose dans le genre. ____________ - Spoiler:
| |
|
| |
AlexRE Admin trop trizo Lv 65
Nombre de messages : 29934 Age : 37
| Sujet: Re: Script pour couches hautes Ven 27 Aoû 2010, 15:06 | |
| Oui. Remercier le créateur d'un script en est une, surtout si ce dernier passe toujours sur ce forum. ____________ - Relm a écrit:
- Merci pour la confirmation Gary et fuck my life.
| |
|
| |
Contenu sponsorisé
| Sujet: Re: Script pour couches hautes | |
| |
|
| |
| Script pour couches hautes | |
|