Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Fergosonn poslato Jul 07, 2021, 12:46:16 POSLE PODNE

Naslov: Pitanje
Poruka od: Fergosonn poslato Jul 07, 2021, 12:46:16 POSLE PODNE
Problem(error/warning): Ovako interesuje me kako da napravim da kad policajac ide /lociraj i locira odrjednjenog igraca da se marker stalno pomera a ne celo vreme /lociraj [ID]
Deo skripte: [pawn]Vaš odgovor[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): Vaš odgovor
Naslov: Odg: Pitanje
Poruka od: V01D poslato Jul 07, 2021, 12:53:12 POSLE PODNE
[pawn]new locateID[MAX_PLAYERS]; //Promenljiva koja ce sluziti da odredimo koga locira

public OnPlayerConnect(playerid) {

   locateID[playerid] = -1; //Resetujemo na -1

   return 1;
}

CMD:locateoff(playerid) {

   locateID[playerid] = -1;
   DisablePlayerCheckpoint(playerid);

   return 1;
}

CMD:locate(playerid, params[]) {

   new id;
   if(sscanf(params, "u", id)) return SendClientMessage(playerid, -1, "Use : /locate [ID]"); //Proverimo da li je ukucao ID i koji je iD

   locateID[playerid] = id; //Postavimo promenljivu na id igraca koga lociramo

   new Float:X, Float:Y, Float:Z; //Napravimo 3 nove promenljive za poziciju igraca
   GetPlayerPos(id, X, Y, Z); //Uzmemo poziciju igraca koga pratimo

   DisablePlayerCheckpoint(playerid); //Iskljucimo checkpoint
   SetPlayerCheckpoint(playerid, X, Y, Z, 2.0); //Upalimo checkpoint na lokaciju

   defer locationCheck(playerid); //Neki timer da proverava lokaciju

   return 1;
}

timer locationCheck[500](playerid) { //Timer koji vrti svakih 500ms

   if(locateID[playerid] != -1) { //Proverimo da li prati nekoga

      new Float:X, Float:Y, Float:Z; //Napravimo 3 nove promenljive za poziciju igraca
      GetPlayerPos(locateID[playerid], X, Y, Z); //Uzmemo poziciju igraca koga pratimo

      DisablePlayerCheckpoint(playerid); //Iskljucimo checkpoint
      SetPlayerCheckpoint(playerid, X, Y, Z, 2.0); //Upalimo checkpoint na lokaciju

      defer locationCheck(playerid); //Neki timer da proverava lokaciju

      return 1;
   }

   return 1;
}

public OnPlayerEnterCheckpoint(playerid) { //Mozes i ovo

   if(locateID[playerid] != -1) { //Ovo je ako ikada dodje do njega da izgasi CP

      locateID[playerid] = -1;
      DisablePlayerCheckpoint(playerid);

      return 1;
   }

   return 1;
}[/pawn]

Ako ti nesto nije jasno, pitaj :)