RPG Maker Vx

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Comunidade de RPG Maker Vx


    Mais de 5 Tilesets no Vx

    FlyBoyUnder
    FlyBoyUnder
    Intermediário
    Intermediário


    Mensagens : 87
    Data de inscrição : 30/11/2008
    Idade : 29
    Localização : Portugal

    Mais de 5 Tilesets no Vx Empty Mais de 5 Tilesets no Vx

    Mensagem  FlyBoyUnder Dom Nov 30, 2008 4:08 pm

    Mais de 5 Tilesets no RPG Maker Vx
    Por FIKZ

    1º Passo: Adapte seu Tileset

    Umas das mais sérias limitações de sistema é que todos os tilesets devem ter a mesma
    configuração de passagem, isto é, os tiles passáveis e não passáveis devem ser os
    mesmo em todos os tile sets. Se você ainda não entendeu, deixe-me exemplificar: em
    um tileset você colocou uma pedra e a configurou para ser não-passável, se em outro
    tileset o tile estiver preenchido com grama esse grama será também não passável. Para
    lidar com o problema de forma mais simples, eu divido os tilesets em regiões como as
    da imagem abaixo.

    Mais de 5 Tilesets no Vx TileB

    Na região cinza devem ficar os tiles não passáveis, na parte amarela ficam os tiles
    passáveis e na vermelha os tiles que ficam por cima do herói. Mas claro que você pode adaptar esse template para as necessidades do seu jogo. Vou ficar devendo um template para os tilesets A.

    2º Passo: Faça o mapa

    Para fazer os mapas você deve fazer uma cópia do tileset e renomeá-lo para TileA1,
    TileA2, TileA3, TileA4, TileA5, TileB, TileC, TileD ou TileE dependendo da camada em que
    pretende usá-lo. Sempre que você quiser editar o mapa, você deve repetir esse
    procedimento. Como você deve querer voltar ao mesmo mapa várias vezes você vai se ver
    tendo que repetir esse procedimento chato milhares de vezes, o que é outra
    desvandagem do sistema. Outra proibiçao é que você não deve jamais fazer eventos
    com gráficos do tilset (embora você possa pegar o tile, transformá-lo num charset
    e usá-lo).

    3º Passo: Scripting

    Não será muito difícil essa parte. Abra o editor de scripts e vá na classe
    "Spriteset_Map". Nas linhas 36 a 49 você deve ver o seguinte:
    def create_tilemap
    @tilemap = Tilemap.new(@viewport1)
    @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")
    @tilemap.map_data = $game_map.data
    @tilemap.passages = $game_map.passages
    end
    Substiua esse segmento de código por:
    def create_tilemap
    @tilemap = Tilemap.new(@viewport1)
    @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)
    @tilemap.map_data = $game_map.data
    @tilemap.passages = $game_map.passages
    end
    Como pode ver, eu só substitui as aspas por um $ antes de cada tileset,
    transformando-os em variáveis globais. Se você tentar rodar o jogo, vai receber uma
    mensagem de erro, isso porque é preciso inciar as variáveis antes de o script ser
    executado. Para isso vá na classe "Main" e no começo adicione as seguintes linhas:
    $TileA1 = "TileA1"
    $TileA2 = "TileA2"
    $TileA3 = "TileA3"
    $TileA4 = "TileA4"
    $TileA5 = "TileA5"
    $TileB = "TileB"
    $TileC = "TileC"
    $TileD = "TileD"
    $TileE = "TileE"
    Isso faz com que os tilesets no início do jogo sejam os do RTP (se você não tiver
    nenhum tileset com mesmo nome na pasta do jogo).
    Agora vem o pulo do gato: coloque que a posição inicial do herói seja em um mapa vazio com um evento paralelo com os seguintes comandos:

    Chamar Script (digite o código aí em baixo):
    $TileA1 = "nome_do_tileset_A1_usado_no_mapa"
    $TileA2 = "nome_do_tileset_A2_usado_no_mapa"
    .
    .
    .
    $TileE = "nome_do_tileset_E_usado_no_mapa"
    Teleport para o mapa

    Pa-pum! Se você fizer isso toda vez que for fazer um teleport para outro mapa, poderá usar quantos tilesets quiser, é só mudar o nome dos tilesets quando usar o comando "Chamar Script". Mas lembre-se que o "Chamar Script" deve vir antes do teleport.

    Apêndice: O Problema do Save

    Um bug que o sistema tem é que, como na tela de título os tilesets sempre voltam ao ser o do RTP, quando se salvar o jogo e depois tentar carregá-lo, o mapa em que o jogo foi salvo vai ficar todo estragado. Para contornar este problema é necessário proibir que o jogo seja salvo através do menu e permitir apenas que se salve o jogo através de save points. Os save points devem ser feitos da seguinte maneira:

    Fade out
    Teleport para um mapa vazio

    Neste mapa vazio faça o evento paralelo:

    Chamar Menu de Save
    Chamar Script:
    $TileA1 = "nome_do_tileset_A1_usado_no_mapa"
    $TileA2 = "nome_do_tileset_A2_usado_no_mapa"
    .
    .
    .
    $TileE = "nome_do_tileset_E_usado_no_mapa"
    Teleport para o mapa anterior
    Fate in

    Pronto, apesar de ficar um pouco devagar e fazer com que cada save point precise de um mapa, o método funciona.

      Data/hora atual: Qui Nov 14, 2024 12:14 am