1 Como colocar 4 players num jogo (Demo incluída) Dom 09 Jun 2013, 11:48
Halt
Administrador
[Autor: Avenger_B7]
[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]
[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:
[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:
É 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:
[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!
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.
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ó.
[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]
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
[size=12pt]C[/size][size=10pt]lique aqui para fazer o download. Hospedado pelo Media Fire.[/size]
[size=12pt]C[/size][size=10pt]réditos a Avenger_B7 por ter criado o tutorial e o sistema.[/size]
[center][Tens de ter uma conta e sessão iniciada para poderes visualizar 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]
[Tens de ter uma conta e sessão iniciada para poderes visualizar 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:
- [Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
[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: [Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
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ó.
[Tens de ter uma conta e sessão iniciada para poderes visualizar 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]
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
[size=12pt]C[/size][size=10pt]lique aqui para fazer o download. Hospedado pelo Media Fire.[/size]
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
[size=12pt]C[/size][size=10pt]réditos a Avenger_B7 por ter criado o tutorial e o sistema.[/size]