[FilterScript] Sistema de GPS
#1

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
Reply
#2

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"
Reply
#3

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
Reply
#4

Vlw por postar, vai ajudar muita gente.
Rep
Reply
#5

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

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;

Reply
#7

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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)