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 ..
PHP код:
#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;
}