PARTNERI:
-UPOZORENJE-

Samo registrovani članovi mogu da vide/koriste forum u celini.
Prijavite se ili registrujte nalog na Balkan SA-MP forumu.


Autor Tema: [TUT] Kreiranje Advanced GPS Systema  (Pročitano 1716 puta)

0 članova i 1 gost pregledaju ovu temu.

Van mreže Vuzimir

[TUT] Kreiranje Advanced GPS Systema
« poslato: Oktobar 26, 2015, 10:28:04 pre podne »
UVOD:

- Pozdrav svima, u ovom tutorialu cu vam pokazati kako koristiti Advanced GPS Plugin by Gamer_Z.
  Zasto ovaj tut? Pa u zadnje vrijeme dobijam puno pitanja kako korstiti ovaj plugin i vidim da mnogo njih ne razumje ovaj plugin kako radi i kako se
  koristi


POTREBNO:

KREIRANJE:
Na vrh skripte dodajte:
Pawno Code: [Izaberi]
#include < RouteConnector >
enum RouteInformation
{
Destination,
CreatedObjects[1024],
bool:calculating,
Lenght
};
new PlayerRoute[MAX_PLAYERS][RouteInformation];

Poslje toga pod OnPlayerConnect dodajte:
Pawno Code: [Izaberi]
PlayerRoute[playerid][Destination] = -1;
Pod OnPlayerDisconnect:
Pawno Code: [Izaberi]
if(PlayerRoute[playerid][Destination] != -1) {
DisableGPS(playerid);
}

KOMANDE:
Pawno Code: [Izaberi]
CMD:gpslokacija(playerid, params[]) {
if(PlayerRoute[playerid][calculating]) { //ovo ce provjeravti dali je ruta kreirana
SendClientMessage(playerid,GRAD2,"Prvo obrisite vasu izabranu rutu. /gpsoff");
return 1;
}
if(PlayerRoute[playerid][Destination] != -1) { //ovo ce biti sigurnosna provjera da ne kreira igracu 2 rute prvo da iskljuci staru
DisableGPS(playerid);
}
new PlayerClosest = NearestPlayerNode(playerid); //ovo ce uzeti najblizu tacku gdje se igrac nalazi
new TempDestination = NearestNodeFromPoint(X,Y,Z); //ovo se uzeti najblizu tacku na odredjenim kordinatama X,Y,Z

if(PlayerClosest == TempDestination) { //ako se igrac vec nalazi na odredistu
    SCM(playerid,GRAD2,"Nalazite se vec na tom odredistu.");
    return 1;
}
if(PlayerClosest == -1) { //ukoliko je igrac daleko od najblize tacke na putu
SendClientMessage(playerid,GRAD2,"Satelit ne moze da vas pronadje na ovoj lokacij, izadjite na najblizu cestu.");
return 1;
}
if(TempDestination == -1) { //ukoliko je odrediste X,Y,Z daleko od najblize tacke na putu
SendClientMessage(playerid,GRAD2,"Satelit ne moze da pronadje odrediste, molimo pokusajte ponovo.");
return 1;
}
if(CalculatePath(PlayerClosest,TempDestination,playerid, .GrabNodePositions = true)) { //ukoliko se ruta kreira
PlayerRoute[playerid][calculating] = true;
SendClientMessage(playerid,GRAD2,"Kreiranje rute, molimo sacekajte.");
}
else { //ako se desi neka greska...
SendClientMessage(playerid,GRAD2,"Nepoznata greska, molimo pokusajte ponovo.");
}
return 1;
}

Pawno Code: [Izaberi]
CMD:gpsoff(playerid, params[]) {
if(PlayerRoute[playerid][Destination] == -1) return SCM(playerid,-1,"Vas GPS nije ukljucen.");
SCM(playerid,-1,"Vas GSP je iskljucen!");
DisableGPS(playerid);
return 1;
}

NA DNO SKRIPTE:
Pawno Code: [Izaberi]
public OnPlayerClosestNodeIDChange(playerid,old_NodeID,new_NodeID) { //kada igrac stigne na odrediste
if(new_NodeID != -1) {
if(PlayerRoute[playerid][Destination] == new_NodeID) {
SendClientMessage(playerid,-1,"Stigli ste na odrediste.");
DisableGPS(playerid);
}
}
return 1;
}

Pawno Code: [Izaberi]
public GPS_WhenRouteIsCalculated(routeid,node_id_array[],amount_of_nodes,Float:distance,Float:Polygon[],Polygon_Size,Float:NodePosX[],Float:NodePosY[],Float:NodePosZ[])//Kada se ruta kreira
{
PlayerRoute[routeid][calculating] = false; //stavlja kreiranje rute na false
if(amount_of_nodes > 1) { //ako je broj tacaka na putu vece od 1
    for(new i = 0; i < amount_of_nodes; ++i) {
PlayerRoute[routeid][CreatedObjects][i] = CreatePlayerObject(routeid,1318,NodePosX[i],NodePosY[i],NodePosZ[i]+1.0,0.0,0.0,0.0,150.0); //kreiranje objekata po putu...
    }
    PlayerRoute[routeid][Lenght] = amount_of_nodes; //postavlja broj tacaka na putu
PlayerRoute[routeid][Destination] = node_id_array[amount_of_nodes-1]; //postavlja destinaciju
    gps_AddPlayer(routeid); //dodaje igraca na tu rutu
    SendClientMessage(routeid,-1,"Ruta kreirana, srecan put!");
}
else {
SendClientMessage(routeid,GRAD2,"Satelit ne moze da vas pronadje na ovoj lokacij, izadjite na najblizu cestu.");
}

return 1;
}

Pawno Code: [Izaberi]
forward DisableGPS(playerid);
public DisableGPS(playerid)//iskljucivanje GPS
{
for(new i = 0; i < PlayerRoute[playerid][Lenght]; ++i)
{
DestroyPlayerObject(playerid,PlayerRoute[playerid][CreatedObjects][i]); //brisanje objekata
}
PlayerRoute[playerid][Lenght] = 0;
PlayerRoute[playerid][Destination] = -1;
gps_RemovePlayer(playerid);
return 1;
}

SLIKE:



« Poslednja izmena: Oktobar 26, 2015, 11:34:47 pre podne Vuzimir »
My Bike KTM 450 SXF 2008
 

Van mreže Kunnaâ„¢

Odg: [TUT] Kreiranje Advanced GPS Systema
« Odgovor #1 poslato: Oktobar 26, 2015, 11:06:16 pre podne »
Fino objasnjeno pohvale
 

Van mreže Vuzimir

Odg: [TUT] Kreiranje Advanced GPS Systema
« Odgovor #2 poslato: Oktobar 26, 2015, 11:34:08 pre podne »
My Bike KTM 450 SXF 2008
 

Van mreže []Flynâ„¢

  • Never look down on anybody unless you're helping them up.
  • Balkan SA:MP Legenda
  • High Roller
  • *
  • Poruke: 1196
  • Broj zahvalnica: 1
  • Pol: Muškarac
  • My mistakes are my life.
Odg: [TUT] Kreiranje Advanced GPS Systema
« Odgovor #3 poslato: Oktobar 26, 2015, 13:00:53 posle podne »
Super, lepo objasnjeno :-)
 

Van mreže Vuzimir

Odg: [TUT] Kreiranje Advanced GPS Systema
« Odgovor #4 poslato: Oktobar 26, 2015, 19:56:55 posle podne »
My Bike KTM 450 SXF 2008