radek02 - Czw 08 Kwi, 2010 06:27 Temat postu: Klika Warstw dla MapWitam . Buszując na necie , znalazłem ten oto skrypt , który pozwala zrobić dodatkowe warstwy do map .
Autor :
Lavalle SF ( email'a nie posiadam )
Screen :
Spoiler:
Skrypt :
Spoiler:
Kod:
class Scene_Map < Scene_Base
alias start_2 start
alias update_2 update
attr_reader :map_layer_spritesets
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
for i in 0...@map_layer_spritesets.size
@map_layer_spritesets[i].dispose
end
$game_player.perform_transfer
$game_map.autoplay
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new
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 == ""
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
def initialize(layer)
@layer = layer
create_viewports
create_tilemap
update
end
Aby skrypt działał , należy :
- Wkleić go nad Main, w edytorze skryptu
- Zrobić 2 mapy (jedną główną, a drugą z takim samym napisem co pierwsza, tylko z dodaniem "L1" / "L2" itd.
- Pierwszą mapkę, w drugiej tylko dodatki.Ayene - Czw 08 Kwi, 2010 07:49 Świetny skrypt. Jedna tylko uwaga (dodałam już informację w powyższym poście):
Warstw z mapami może być wiele. W chwili gdy stworzymy trzy mapy, główną nazwiemy TEST, to kolejne powinny się nazywać: TEST L1 i TEST L2 - z czego ta z dopiskiem L2 będzie warstwą wierzchnią. Tym sposobem możemy nałożyć na siebie z 10 warstw (tylko po co?!)
Niemniej jednak skrypt jest bardzo pomysłowy i oczywiście przydatny Na pewno skorzystam Agumon - Czw 15 Kwi, 2010 18:38 Ale skrypt jest bardzo przydatny. Bo jak ja chcę dać na stolik szklanki to mi stolik ucina.radek02 - Pią 16 Kwi, 2010 04:42 Agumon, ale czy dodałeś mapę z L1 ? czy normalnie postawiłeś szklanki w podstawowej mapie ?cj2 - Pon 03 Sty, 2011 17:32 chodziło mu pewnie że bez tego skryptu.Poster27 - Pon 03 Sty, 2011 21:18 Ciekawy skrypt. Dzięki niemu można tworzyć efektowniejsze mapy i zawsze miałem problem z tym, jak dodać 2 rzeczy na kupce. Mam nadzieję, że to nie są takie warstwy jak do XP, bo przez nie przestałem w nim tworzyć.Drawestien - Pon 03 Sty, 2011 21:29 No nareszcie ktoś wstawił ten skrypt,po całym internecie buszowałem żeby go znaleźć.Przydami się...Avara - Sro 20 Lip, 2011 13:14 Chciałam ten skrypt wypróbować, więc zrobiłam nowy projekt bez żadnych dodatkowych skryptów poza tym. Zrobiłam dwie mapy Test L1 i Test L2 i niezależnie od tego, gdzie umieszczę pozycję startową gracza, to tylko jedna mapa jest widoczna (nie nakładają się na siebie). Co zrobiłam nie tak?Ayene - Sro 20 Lip, 2011 13:46 Czyli rozumiem, że pierwszą mapę, an której ustawiłaś start nazwałaś 'Test', a mapę, która ma się na nią nałożyć - 'Test L1'?Avara - Sro 20 Lip, 2011 13:50 Dobra, już wiem, gdzie zrobiłam błąd. Nie było mapy Test, tylko od razu Test L1. Źle zrozumiałam instrukcje. Dzięki Ayene