SA-MP Forums Archive
[FilterScript] Sistema de GPS - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [FilterScript] Sistema de GPS (/showthread.php?tid=589816)



Sistema de GPS - MarcoAurelio - 22.09.2015

Olб.. eu sempre busquei sistemas de GPS pro meu servidor, porem nunca encontrei um que realmente me ajuda-se, entгo decidi criar um eu mesmo..

Код:
#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                                //
Espero que gostem..

Credits: MarcoAurelio | ipsLeon


Re: Sistema de GPS - .Skool_. - 22.09.2015

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"


Re: Sistema de GPS - MarcoAurelio - 22.09.2015

Quote:
Originally Posted by .Skool_.
Посмотреть сообщение
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"
Sou iniciante kkkk, mais oque vale й a intenзгo


Re: Sistema de GPS - MkeY - 23.09.2015

Vlw por postar, vai ajudar muita gente.
Rep


Re: Sistema de GPS - MarcoAurelio - 23.09.2015

Quote:
Originally Posted by MkeY
Посмотреть сообщение
Vlw por postar, vai ajudar muita gente.
Rep
Obrigd..



Re: Sistema de GPS - Sky™ - 24.09.2015

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 код:
#include <    a_samp    >
#include <    zcmd    >
const GPS 7505;
enum gpsi {
    
lName30 ],
    
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:gpsplayerid) {
    static 
str30 ];
    new 
Box500 ];
    
    for(new 
item 0item sizeof GPSlocaisitem++){
        
format(strsizeof(str), "%s\n"GPSlocais[item][lName]);
        
strcat(boxstr);
    } 
    
ShowPlayerDialog(playeridGPSDIALOG_STYLE_LIST"Locais disponiveis"box"Selecionar""Cancelar");
    return 
true;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == GPS) {
        if(!
response) return true;
    
        
SetPlayerGPS(playeridlistitem);
    }    
    return 
0;
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    if(
GetPVarInt(playerid"GpsAtivo")){
        
DisablePlayerCheckpoint(playerid);
        
DeletePVarplayerid"GpsAtivo");
    }
    return 
true;
}
SetPlayerGPSplayeridgpsid){
    
    
SetPVarInt(playerid"GpsAtivo"1);
    
SetPlayerCheckpoint(playeridGPSlocais[gpsid][lX], GPSlocais[gpsid][lY], GPSlocais[gpsid][lZ], 5.0);
    
    static 
str129 ], Float:dist;
    
    
dist GetPlayerDistanceFromPoint(playeridGPSlocais[gpsid][lX], GPSlocais[gpsid][lY], GPSlocais[gpsid][lZ]);
    
format(strsizeof str"{FFFFFF}Gps ligado, Local de destino: {FFFF00}%s{FFFFFF}, Distвncia: {FFFF00}%04f {FFFFFF}metros!"GPSlocais[gpsid][lName], dist);
    
SendClientMessage(playerid, -1str);
    return 
true;




Re: Sistema de GPS - MarcoAurelio - 24.09.2015

Quote:
Originally Posted by Sky™
Посмотреть сообщение
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 код:
#include <    a_samp    >
#include <    zcmd    >
const GPS 7505;
enum gpsi {
    
lName30 ],
    
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:gpsplayerid) {
    static 
str30 ];
    new 
Box500 ];
    
    for(new 
item 0item sizeof GPSlocaisitem++){
        
format(strsizeof(str), "%s\n"GPSlocais[item][lName]);
        
strcat(boxstr);
    } 
    
ShowPlayerDialog(playeridGPSDIALOG_STYLE_LIST"Locais disponiveis"box"Selecionar""Cancelar");
    return 
true;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == GPS) {
        if(!
response) return true;
    
        
SetPlayerGPS(playeridlistitem);
    }    
    return 
0;
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    if(
GetPVarInt(playerid"GpsAtivo")){
        
DisablePlayerCheckpoint(playerid);
        
DeletePVarplayerid"GpsAtivo");
    }
    return 
true;
}
SetPlayerGPSplayeridgpsid){
    
    
SetPVarInt(playerid"GpsAtivo"1);
    
SetPlayerCheckpoint(playeridGPSlocais[gpsid][lX], GPSlocais[gpsid][lY], GPSlocais[gpsid][lZ], 5.0);
    
    static 
str129 ], Float:dist;
    
    
dist GetPlayerDistanceFromPoint(playeridGPSlocais[gpsid][lX], GPSlocais[gpsid][lY], GPSlocais[gpsid][lZ]);
    
format(strsizeof str"{FFFFFF}Gps ligado, Local de destino: {FFFF00}%s{FFFFFF}, Distвncia: {FFFF00}%04f {FFFFFF}metros!"GPSlocais[gpsid][lName], dist);
    
SendClientMessage(playerid, -1str);
    return 
true;

De fato, ficou muito bom.. Obrgd