Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

Halt

avatar
Administrador
Administrador
[Autor: Avenger_B7]
[center][Você precisa estar registrado e conectado para ver esta imagem.]

[size=12pt]O[/size][size=10pt]pa. Que tal aprender como colocar num jogo 4 players? É muito simples. O código está mais otimizado e possui outra novidade! Foi feito, na maior parte, pelo DestinyScript. Ou seja, o seu trabalho será quase nulo. Eu tinha feito mais complexo, de um modo em que o NPC dava uma resposta para cada posição de cada herói. Mas como ninguém vai fazer isso, deixei uma resposta única. Qualquer dúvida é só responder nesse tópico! Não espero que ninguém me mande MP porque a dúvida de um pode ser a mesma dúvida do coleguinha ao lado ou de todos. Espero que gostem![/size]


[Você precisa estar registrado e conectado para ver esta imagem.]

[size=12pt]I[/size][size=10pt]rei explicar como fazer por aqui. Vamos por parte. Ok? Como eu não tenho imagens suficientes disponíveis para categorizar cada tópico, farei isso a grosso modo. PS: Não preciso nem falar que você precisa ter um conhecimento básico para que possa entender essa explicação. Inclusive eu irei evitar ensinar coisas óbvias. Por exemplo, 'abra o RPG Maker'.
Mas, antes, o que é ter um conhecimento básico? É saber mexer com switches além de abrir baús. Mexer com variáveis além de alterar a fala dos personagens. Mexer com condições. O seu conhecimento em DestinyScript deve ser um pouco maior do que 0 para que possa entender e modificar o sistema, posteriormente.


[size=14pt]Primeiro Passo[/size]



[size=10pt][É IMPORTANTE QUE OS 4 PRIMEIROS EVENTOS SEJAM OS DOS PLAYERS!][/size]

• Crie 4 eventos com gráficos pré determinados ( quaisquer ). Eles serão os players. Crie um NPC.

• Crie um evento em Início Automático com os seguintes comandos:
- Set Chara Movement (1P) Move Speed UP // Faça isso para os demais players.
- Disable Menu
- Clear Timer Events

Se tudo deu certo, deverá ficar assim:
Spoiler:
[Você precisa estar registrado e conectado para ver este link.]



[size=14pt]Segundo Passo[/size]

• Crie um evento em processo paralelo, abaixo do herói, que atribuirá o movimento aos 4 Players.

Dentro dos comandos do evento, cole os seguintes códigos:

Movimento 1P:
Código:
$
if (Keyboard.GetKeyState(VK_W))
Command.MoveEvent(1, MC_STEPUP);
endif;
if (Keyboard.GetKeyState(VK_D))
Command.MoveEvent(1, MC_STEPRIGHT);
endif;
if (Keyboard.GetKeyState(VK_S))
Command.MoveEvent(1, MC_STEPDOWN);
endif;
if (Keyboard.GetKeyState(VK_A))
Command.MoveEvent(1, MC_STEPLEFT);
endif;
Movimento 2P:
Código:
$
if (Keyboard.GetKeyState(VK_G))
Command.MoveEvent(2, MC_STEPUP);
endif;
if (Keyboard.GetKeyState(VK_N))
Command.MoveEvent(2, MC_STEPRIGHT);
endif;
if (Keyboard.GetKeyState(VK_B))
Command.MoveEvent(2, MC_STEPDOWN);
endif;
if (Keyboard.GetKeyState(VK_V))
Command.MoveEvent(2, MC_STEPLEFT);
endif;
Movimento 3P:
Código:
$
if (Keyboard.GetKeyState(VK_UP))
Command.MoveEvent(3, MC_STEPUP);
endif;
if (Keyboard.GetKeyState(VK_RIGHT))
Command.MoveEvent(3, MC_STEPRIGHT);
endif;
if (Keyboard.GetKeyState(VK_DOWN))
Command.MoveEvent(3, MC_STEPDOWN);
endif;
if (Keyboard.GetKeyState(VK_LEFT))
Command.MoveEvent(3, MC_STEPLEFT);
endif;
Movimento 4P:
Código:
$
if (Keyboard.GetKeyState(VK_NUMPAD5))
Command.MoveEvent(4, MC_STEPUP);
endif;
if (Keyboard.GetKeyState(VK_NUMPAD3))
Command.MoveEvent(4, MC_STEPRIGHT);
endif;
if (Keyboard.GetKeyState(VK_NUMPAD2))
Command.MoveEvent(4, MC_STEPDOWN);
endif;
if (Keyboard.GetKeyState(VK_NUMPAD1))
Command.MoveEvent(4, MC_STEPLEFT);
endif;


É muito melhor separá-los. Dá para copiar e colar numa boa. Ou seja, menos trabalho. (y)

Nota: Eu estou usando 4 NPC's para tomarem o papel de 4 jogadores. O hero eu deixei de lado por opção mesmo. Porque eu sou ousado. =)



[size=14pt]Terceiro Passo[/size]

• Esse terceiro passo é para consertar o bug presente no movimento. Repara que quando você tenta olhar numa direção e há um NPC do seu lado você não consegue virar o Player. Essa medida serve para consertar isso. Um efeito bacana ( bug ) que isso gera é que dá para andar e 'deslizar' com o player. Muito interativo. Recomendo.

• Crie um outro evento em Processo Paralelo também abaixo do herói.

E, nele, coloque os seguintes códigos:

Consertar 1P:
Código:
$
if (Keyboard.GetKeyState(VK_W))
Event[1].DirLook = Dir_UP;
endif;
if (Keyboard.GetKeyState(VK_D))
Event[1].DirLook = Dir_RIGHT;
endif;
if (Keyboard.GetKeyState(VK_S))
Event[1].DirLook = Dir_DOWN;
endif;
if (Keyboard.GetKeyState(VK_A))
Event[1].DirLook = Dir_LEFT;
endif;
Consertar 2P:
Código:
$
if (Keyboard.GetKeyState(VK_G))
Event[2].DirLook = Dir_UP;
endif;
if (Keyboard.GetKeyState(VK_N))
Event[2].DirLook = Dir_RIGHT;
endif;
if (Keyboard.GetKeyState(VK_B))
Event[2].DirLook = Dir_DOWN;
endif;
if (Keyboard.GetKeyState(VK_V))
Event[2].DirLook = Dir_LEFT;
endif;
Consertar 3P:
Código:
$
if (Keyboard.GetKeyState(VK_UP) != 0)
Event[3].DirLook = Dir_UP;
endif;
if (Keyboard.GetKeyState(VK_RIGHT) != 0)
Event[3].DirLook = Dir_RIGHT;
endif;
if (Keyboard.GetKeyState(VK_DOWN))
Event[3].DirLook = Dir_DOWN;
endif;
if (Keyboard.GetKeyState(VK_LEFT))
Event[3].DirLook = Dir_LEFT;
endif;
Consertar 4P:
Código:
$
if (Keyboard.GetKeyState(VK_NUMPAD5))
Event[4].DirLook = Dir_UP;
endif;
if (Keyboard.GetKeyState(VK_NUMPAD3))
Event[4].DirLook = Dir_RIGHT;
endif;
if (Keyboard.GetKeyState(VK_NUMPAD2))
Event[4].DirLook = Dir_DOWN;
endif;
if (Keyboard.GetKeyState(VK_NUMPAD1))
Event[4].DirLook = Dir_LEFT;
endif;



[size=14pt]Quarto Passo[/size]

Agora é a hora de criar os comandos no NPC.

Bem, a lógica agora é criar inúmeras posições. Vamos verificar em qual tile o player está em relação ao NPC, além de saber para qual direção ele olha. Inclusive se ele apertará a tecla de comando. Nota: Cada player tem sua tecla de ação. Para cada direção dos 4 Players, haverá um valor para uma única variável.

Cole esses códigos na página do NPC que deve estar em Processo Paralelo!

Verificar 1P:
Código:
$
if (Event[1].X == Event[THIS].X && Event[1].Y == Event[THIS].Y - 1 && Event[1].DirLook == Dir_DOWN && Keyboard.GetKeyState(VK_Z))
v[1] = 4;
endif;
if (Event[1].X == Event[THIS].X + 1 && Event[1].Y == Event[THIS].Y && Event[1].DirLook == Dir_LEFT && Keyboard.GetKeyState(VK_Z))
v[1] = 3;
endif;
if (Event[1].X == Event[THIS].X - 1 && Event[1].Y == Event[THIS].Y && Event[1].DirLook == Dir_RIGHT && Keyboard.GetKeyState(VK_Z))
v[1] = 2;
endif;
if (Event[1].X == Event[THIS].X && Event[1].Y == Event[THIS].Y + 1 && Event[1].DirLook == Dir_UP && Keyboard.GetKeyState(VK_Z))
v[1] = 1;
endif;
Verificar 2P:
Código:
$
if (Event[2].X == Event[THIS].X && Event[2].Y == Event[THIS].Y - 1 && Event[2].DirLook == Dir_DOWN && Keyboard.GetKeyState(VK_SPACE))
v[1] = 4;
endif;
if (Event[2].X == Event[THIS].X + 1 && Event[2].Y == Event[THIS].Y && Event[2].DirLook == Dir_LEFT && Keyboard.GetKeyState(VK_SPACE))
v[1] = 3;
endif;
if (Event[2].X == Event[THIS].X - 1 && Event[2].Y == Event[THIS].Y && Event[2].DirLook == Dir_RIGHT && Keyboard.GetKeyState(VK_SPACE))
v[1] = 2;
endif;
if (Event[2].X == Event[THIS].X && Event[2].Y == Event[THIS].Y + 1 && Event[2].DirLook == Dir_UP && Keyboard.GetKeyState(VK_SPACE))
v[1] = 1;
endif;
Verificar 3P:
Código:
$
if (Event[3].X == Event[THIS].X && Event[3].Y == Event[THIS].Y - 1 && Event[3].DirLook == Dir_DOWN && Keyboard.GetKeyState(VK_RETURN))
v[1] = 4;
endif;
if (Event[3].X == Event[THIS].X + 1 && Event[3].Y == Event[THIS].Y && Event[3].DirLook == Dir_LEFT && Keyboard.GetKeyState(VK_RETURN))
v[1] = 3;
endif;
if (Event[3].X == Event[THIS].X - 1 && Event[3].Y == Event[THIS].Y && Event[3].DirLook == Dir_RIGHT && Keyboard.GetKeyState(VK_RETURN))
v[1] = 2;
endif;
if (Event[3].X == Event[THIS].X && Event[3].Y == Event[THIS].Y + 1 && Event[3].DirLook == Dir_UP && Keyboard.GetKeyState(VK_RETURN))
v[1] = 1;
endif;
Verificar 4P:
$
if (Event[4].X == Event[THIS].X && Event[4].Y == Event[THIS].Y - 1 && Event[4].DirLook == Dir_DOWN && Keyboard.GetKeyState(VK_NUMPAD0))
v[1] = 4;
endif;
if (Event[4].X == Event[THIS].X + 1 && Event[4].Y == Event[THIS].Y && Event[4].DirLook == Dir_LEFT && Keyboard.GetKeyState(VK_NUMPAD0))
v[1] = 3;
endif;
if (Event[4].X == Event[THIS].X - 1 && Event[4].Y == Event[THIS].Y && Event[4].DirLook == Dir_RIGHT && Keyboard.GetKeyState(VK_NUMPAD0))
v[1] = 2;
endif;
if (Event[4].X == Event[THIS].X && Event[4].Y == Event[THIS].Y + 1 && Event[4].DirLook == Dir_UP && Keyboard.GetKeyState(VK_NUMPAD0))
v[1] = 1;
endif;
Código:

Volto a falar que o bom de estarem separados é que você pode copiar e colar numa boa!

Agora está na hora de criar as condições.

NPC gera fala única para todos os players:
Basta dar um valor único à uma variável qualquer. E mudar o código no Destiny Script, além de mudar nas condições.. Dessa maneira: [Você precisa estar registrado e conectado para ver este link.]
[/size]



Se algo ficou mal explicado, terei o maior prazer em responder aqui no tópico. Mas se não foi, não se preocupe que a demo falará por si só.

[Você precisa estar registrado e conectado para ver esta imagem.]

[size=12pt]N[/size][size=10pt]úmero de:

- Switches = 1
- Condições = 4 ( De acordo com cada NPC )
- Variáveis = 1
- Itens necessários = 0
- Eventos comuns = 0
- Controles = Explicado na demo.[/size]



[Você precisa estar registrado e conectado para ver esta imagem.]

[Você precisa estar registrado e conectado para ver este link.]

[Você precisa estar registrado e conectado para ver esta imagem.]

[size=12pt]C[/size][size=10pt]lique [Você precisa estar registrado e conectado para ver este link.] para fazer o download. Hospedado pelo Media Fire.[/size]


[Você precisa estar registrado e conectado para ver esta imagem.]

[size=12pt]C[/size][size=10pt]réditos a [Você precisa estar registrado e conectado para ver este link.] por ter criado o tutorial e o sistema.[/size]


__________________________________________
[Você precisa estar registrado e conectado para ver este link.]
Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
[Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.]

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum