Vamos Criar Abaixo Um Sistema Simples De GPS e Teleporte em Dialog.
Criando Teleporte Em Dialog
Primeiramente Vamos No Topo Definir Nosso Dialog.
#define Teleporte 1 // Cuidado para Não ter Algum Dialog Definido Como " 1 "
Agora Vamos Fazer o Comando Para Que Abra Nosso Dialog. Esse e o Dialog Principal.
if(!strcmp("/teleportes", cmdtext, true)) { ShowPlayerDialog(playerid, Teleporte, DIALOG_STYLE_LIST, "Tutorial - Teleporte Avançado", "Corrida\nDM\nStunt", "Selecionar", "Sair"); // List 1(Corrida), List 2 (DM), List 3 (Stunt). return 1; }
Ao Digitar o Comando Acima Irá Aparecer o Dialog Abaixo.
if(dialogid == Teleporte)// Dialog Definido no TOPO ! { if(response) { if(listitem == 0) // Esse é o "Corrida " Ou Seja " Lista 1 do Dialog Principal " { ShowPlayerDialog(playerid, Teleporte+1, DIALOG_STYLE_LIST, "Tutorial - Teleporte - Corrida", "Corrida 1\nCorrida 2", "Correr", "Sair"); return 1; } else if(listitem == 1) // Esse é o "DM " Ou Seja " Lista 2 do Dialog Principal " { ShowPlayerDialog(playerid, Teleporte+2, DIALOG_STYLE_LIST, "Tutorial - Teleporte - DM ", "DM 1\nDM 2", "Correr", "Sair"); return 1; } else if(listitem == 2) // Esse é o "Stunt" Ou Seja " Lista 3 do Dialog Principal " { ShowPlayerDialog(playerid, Teleporte+3, DIALOG_STYLE_LIST, "Tutorial - Teleporte - Stunt", "Stunt 1\nStun 2", "Correr", "Sair"); return 1; } } }
Agora Vamos Definir Cada Dialog o +1 +2 +3, Porque Tem Isso No Final ? Para Não Definir Denovo.
Dialog +1 Ou Seja Corrida :
if(dialogid == Teleporte+1)// Dialog +1! { if(response) { if(listitem == 0) // Esse é o "Corrida 1 " Ou Seja " Lista 1 " { // Coloque a Função Do Teleporte Abaixo ! Uma Simples Abaixo : ResetPlayerWeapons(playerid); // Resetar Armas. SetPlayerPos(playerid,2077.7263,-2402.8582,13.5469); // Coodernadas Onde Ele Vai SetPlayerArmour(playerid, 100.0); // Colete SetPlayerHealth(playerid, 100.0); // Sangue return 1; } else if(listitem == 1) // Esse é o "Corrida 2 " Ou Seja " Lista 2 " { // Coloque a Função Do Teleporte Abaixo ! Uma Simples Abaixo : ResetPlayerWeapons(playerid); // Resetar Armas. SetPlayerPos(playerid,2077.7263,-2402.8582,13.5469); // Coodernadas Onde Ele Vai SetPlayerArmour(playerid, 100.0); // Colete SetPlayerHealth(playerid, 100.0); // Sangue return 1; } } }
Dialog +2 Ou Seja Corrida :
if(dialogid == Teleporte+2)// Dialog +2! { if(response) { if(listitem == 0) // Esse é o "DM 1" Ou Seja " Lista 1 " { // Coloque a Função Do Teleporte Abaixo ! Uma Simples Abaixo : ResetPlayerWeapons(playerid); // Resetar Armas. SetPlayerPos(playerid,2077.7263,-2402.8582,13.5469); // Coodernadas Onde Ele Vai SetPlayerArmour(playerid, 100.0); // Colete SetPlayerHealth(playerid, 100.0); // Sangue return 1; } else if(listitem == 1) // // Esse é o "DM 1" Ou Seja " Lista 2 " { // Coloque a Função Do Teleporte Abaixo ! Uma Simples Abaixo : ResetPlayerWeapons(playerid); // Resetar Armas. SetPlayerPos(playerid,2077.7263,-2402.8582,13.5469); // Coodernadas Onde Ele Vai SetPlayerArmour(playerid, 100.0); // Colete SetPlayerHealth(playerid, 100.0); // Sangue return 1; } } }
Dialog +3 Ou Seja Corrida :
if(dialogid == Teleporte+3)// Dialog +3! { if(response) { if(listitem == 0) // Esse é o "Stunt 1" Ou Seja " Lista 1 " { // Coloque a Função Do Teleporte Abaixo ! Uma Simples Abaixo : ResetPlayerWeapons(playerid); // Resetar Armas. SetPlayerPos(playerid,2077.7263,-2402.8582,13.5469); // Coodernadas Onde Ele Vai SetPlayerArmour(playerid, 100.0); // Colete SetPlayerHealth(playerid, 100.0); // Sangue return 1; } else if(listitem == 1) // // Esse é o "Stunt 2" Ou Seja " Lista 2 " { // Coloque a Função Do Teleporte Abaixo ! Uma Simples Abaixo : ResetPlayerWeapons(playerid); // Resetar Armas. SetPlayerPos(playerid,2077.7263,-2402.8582,13.5469); // Coodernadas Onde Ele Vai SetPlayerArmour(playerid, 100.0); // Colete SetPlayerHealth(playerid, 100.0); // Sangue return 1; } } }
Criando um GPS Avançado
Vamos Definir Nosso Dialog No Topo
#define GPS 2 // Cuidado para Não ter Algum Dialog Definido Como " 2 "
Agora Vamos Criar Nosso Comando Em Dialog.
if (strcmp(cmd, "/gps", true) == 0) { ShowPlayerDialog(playerid, GPS, DIALOG_STYLE_LIST, "CABECALHO DIALOG", "EXEMPLO:DP\nEXEMPLO:PREFEITURA\nEXEMPLO:JFS\nEXEMPLO:EUOWNA", "Selecionar", "Cancelar"); return 1; }
Vamos Criar o Dialog Agora Abaixo :
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == GPS) // Definido la em cima { if(response) { // SELECIONANDO AS OPÇÕES IRÁ ABRIR : if(listitem == 0) // LISTA 1 OU SEJA - EXEMPLO DP { // TROQUE A COODERNADA PARA ONDE IRÁ APARECER O CHECKPOINT SetPlayerCheckpoint(playerid, 1477.1025,-1764.2405,18.7958,8.0);//Checkpoint Onde aparecerar SendClientMessage(playerid, 0xFFFFFFAA, "Va Até o Checkpoint Vermelho em Seu Mapa."); return 1; } if(listitem == 1) // EXEMPLO PREFEITURA { // TROQUE A COODERNADA PARA ONDE IRÁ APARECER O CHECKPOINT SetPlayerCheckpoint(playerid, 1543.8772,-1676.4253,13.5573,8.0); SendClientMessage(playerid, 0xFFFFFFAA, "Va Até o Checkpoint Vermelho em Seu Mapa."); return 1; } if(listitem == 2) // EXEMPLO : JFS { //Uma Simples Função Abaixo // TROQUE A COODERNADA PARA ONDE IRÁ APARECER O CHECKPOINT SetPlayerCheckpoint(playerid, 641.8575,-1356.3243,13.4008,8.0); SendClientMessage(playerid, 0xFFFFFFAA, "Va Até o Checkpoint Vermelho em Seu Mapa."); return 1; } if(listitem == 3) // EXEMPLO EU OWNA { //Uma Simples Função Abaixo // TROQUE A COODERNADA PARA ONDE IRÁ APARECER O CHECKPOINT SetPlayerCheckpoint(playerid, 2478.9063,-1519.4604,23.9956,8.0); SendClientMessage(playerid, 0xFFFFFFAA, "Va Até o Checkpoint Vermelho em Seu Mapa."); return 1; } } } return 1; }
Para Destruir CheckPoint ao Chegar.
public OnPlayerEnterCheckpoint(playerid) // Ao Chegar no Checkpoint { DisablePlayerCheckpoint(playerid); // Destruirá ao Ficar em Cima Dele. return 1; }
------------------------------------------------------------------
PS: Para aprender mais sobre Dialog List: Clique aqui
------------------------------------------------------------------
Creditos: Jonathan_Feitosa