#include <a_samp> #pragma tabsize 0 #define GPS 7505 public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp("/gps", cmdtext, true)) { ShowPlayerDialog(playerid, GPS, DIALOG_STYLE_LIST, "TITULO DO DIALOG", "LOCAL 1 \nLOCAL 2", "Selecionar", "Cancelar"); return 1; } return 0; } // PARA CRIAR MAIS LOCAIS, BASTA COPIAR, COLAR E ADICIONAR O LOCAL NA DIALOG, NUNCA ESQUECENDO DE ALTERAR O LISTITEM PARA O NUMERO SEGUINTE AO ANTERIOR.. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == GPS) { if(response) { if(listitem == 0) // LOCAL 1 { SetPlayerCheckpoint(playerid, x,y,z,8.0); // COLOQUE SUA CORDENADA.. || 8.0 = Distancia da Identificaзгo SendClientMessage(playerid, 0xFFFFFFAA, "Foi criado um Checkpoint em seu mapa.."); return 1; } if(listitem == 1) // LOCAL 2 { SetPlayerCheckpoint(playerid, x,y,z,8.0); // COLOQUE SUA CORDENADA.. || 8.0 = Distancia da Identificaзгo SendClientMessage(playerid, 0xFFFFFFAA, "Foi criado um Checkpoint em seu mapa.."); return 1; } } } return 0; } public OnPlayerEnterCheckpoint(playerid) { DisablePlayerCheckpoint(playerid); // Destroi o CheckPoint Ao Ficar Encima do Mesmo.. return true; } // SISTEMA DE GPS // //--------------------------------CREDITOS------------------------------------// //------------------------- -...MarcoAurelio...-------------------------------// //-----------------------------...ipsLeon...----------------------------------// //DEIXAR SEMPRE O ULTIMO RETURN DA PUBLIC ONDIALOGRESPONSE NO VALOR 0(FALSE):D// //----------------------------------------------------------------------------// // FAЗA BOM USO :D //
Olha cara, achei uma boa iniciativa o que vocк tentou fazer. Mas deve aprimorar mais este FS, mas jб serve de alguma base para os que querem fazer um "Sistema de GPS"
|
#include < a_samp >
#include < zcmd >
const GPS = 7505;
enum gpsi {
lName[ 30 ],
Float:lX,
Float:lY,
Float:lZ
};
new GPSlocais[][gpsi] = {
//{"", X, Y, Z} Para adicionar mais locais й sу seguir este exemplo abaixo !
{"Ammu Nation", 1362.3555,-1280.6729,13.3828},
{"Delegacia", 872.8074,-1505.2509,12.9742},
{"Loterica", 1631.2495,-1166.9482,24.0781},
{"Burguer Shot", 812.6113,-1616.2592,13.5469}
}
CMD:gps( playerid) {
static str[ 30 ];
new Box[ 500 ];
for(new item = 0; item < sizeof GPSlocais; item++){
format(str, sizeof(str), "%s\n", GPSlocais[item][lName]);
strcat(box, str);
}
ShowPlayerDialog(playerid, GPS, DIALOG_STYLE_LIST, "Locais disponiveis", box, "Selecionar", "Cancelar");
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == GPS) {
if(!response) return true;
SetPlayerGPS(playerid, listitem);
}
return 0;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(GetPVarInt(playerid, "GpsAtivo")){
DisablePlayerCheckpoint(playerid);
DeletePVar( playerid, "GpsAtivo");
}
return true;
}
SetPlayerGPS( playerid, gpsid){
SetPVarInt(playerid, "GpsAtivo", 1);
SetPlayerCheckpoint(playerid, GPSlocais[gpsid][lX], GPSlocais[gpsid][lY], GPSlocais[gpsid][lZ], 5.0);
static str[ 129 ], Float:dist;
dist = GetPlayerDistanceFromPoint(playerid, GPSlocais[gpsid][lX], GPSlocais[gpsid][lY], GPSlocais[gpsid][lZ]);
format(str, sizeof str, "{FFFFFF}Gps ligado, Local de destino: {FFFF00}%s{FFFFFF}, Distвncia: {FFFF00}%04f {FFFFFF}metros!", GPSlocais[gpsid][lName], dist);
SendClientMessage(playerid, -1, str);
return true;
}
Saudaзхes !
Fiz uma melhoria no seu sistema para torna-lo um sistema mais avanзado e atй plausнvel de estudar ! pega este como base para vocк estudar, neste caso o fiz dinвmico para adicionar mais um local basta alterar a array.. Neste caso dei atй uma incrementada na sua ideia e adicionei o nome e distвncia do local .. Faзa bom proveito ^^ PHP код:
|