Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Klika Warstw dla Map
Autor Wiadomość
radek02 



Preferowany:
RPG Maker VX

Pomógł: 13 razy
Dołączył: 17 Lut 2010
Posty: 257
Skąd: klikasz ?
Wysłany: Czw 08 Kwi, 2010 07:27
Klika Warstw dla Map
Witam . Buszując na necie , znalazłem ten oto skrypt , który pozwala zrobić dodatkowe warstwy do map :mrgreen: .

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

  def update
    update_tilemap
    update_viewports
  end

  def dispose
    @tilemap.dispose
  end

  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

#  def update_tilemap
#    @tilemap.ox = @layer.display_x / 8
#    @tilemap.oy = @layer.display_y / 8
#    @tilemap.update
#  end

  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




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.
________________________
2009-10-12 - dzień , od którego jestem uczestnikiem na polskiej scenie RPG Makera [/b]

Dołącz do grupy makerowiczów na nk ! http://nk.pl/#grupy/29610
 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Czw 08 Kwi, 2010 08: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 




Preferowany:
RPG Maker VX

Ranga RM:
1 gra

Pomógł: 53 razy
Dołączył: 30 Gru 2009
Posty: 515
Skąd: Ruda Śląska
Wysłany: Czw 15 Kwi, 2010 19:38
Ale skrypt jest bardzo przydatny. Bo jak ja chcę dać na stolik szklanki to mi stolik ucina.
________________________
Pomogłem? Daj ""
Piszę poprawnie po polsku

 
 
radek02 



Preferowany:
RPG Maker VX

Pomógł: 13 razy
Dołączył: 17 Lut 2010
Posty: 257
Skąd: klikasz ?
Wysłany: Pią 16 Kwi, 2010 05:42
Agumon, ale czy dodałeś mapę z L1 ? czy normalnie postawiłeś szklanki w podstawowej mapie ?
________________________
2009-10-12 - dzień , od którego jestem uczestnikiem na polskiej scenie RPG Makera [/b]

Dołącz do grupy makerowiczów na nk ! http://nk.pl/#grupy/29610
 
 
 
cj2 




Preferowany:
RPG Maker VXAce

Ranga RM:
1 gra

Pomógł: 6 razy
Dołączył: 07 Mar 2010
Posty: 261
Skąd: Gliwice
Wysłany: Pon 03 Sty, 2011 17:32
chodziło mu pewnie że bez tego skryptu.
________________________
Porady dla twórców gier
Nie ma śniegu, a zgubiłem normalny avatar :I
 
 
Poster27 




Preferowany:
RPG Maker VX

Pomógł: 22 razy
Dołączył: 27 Kwi 2010
Posty: 136
Skąd: że znowu
Wysłany: 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 




Preferowany:
RPG Maker VX

Pomógł: 1 raz
Dołączył: 01 Gru 2010
Posty: 127
Wysłany: Pon 03 Sty, 2011 21:29
No nareszcie ktoś wstawił ten skrypt,po całym internecie buszowałem żeby go znaleźć.Przydami się...
 
 
Avara 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Sro 20 Lip, 2011 14: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?
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Sro 20 Lip, 2011 14: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 





Pomogła: 32 razy
Dołączyła: 15 Gru 2010
Posty: 331
Skąd: Łódź
Wysłany: Sro 20 Lip, 2011 14: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 :-)
________________________


Drakensang - przeglądarkowa gra RPG online
Spoiler:

 
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene