Balkan SA:MP

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

Naslov: Aj neko ako zna da mi pomogne
Poruka od: Kajsije ^ poslato Jul 12, 2021, 18:06:07 POSLE PODNE
Problem(error/warning): Pa ubacio sam cmd /lociraj za pd ali kada policajac locira igraca pokaze mu samo jedan check point koji stoji samo bez obzira da li se igrac kojeg je lociraj pomera, zna li neko kako da taj check point prati tog igraca (check point je ono crveno)
Deo skripte: Moja
Evo kako sam ja ubacio to (dole)
Kod: [Izaberi]
CMD:lociraj(playerid, params[],help)
{
    #pragma unused help
   if( PlayerInfo[ playerid ][ xRank ] < 1 ) return GRESKA( playerid, "Niste u mogucnosti koristiti ovu komandu" );
   if( GetFactionType( playerid ) != ORG_TIP_PD && GetFactionType( playerid ) != ORG_TIP_MD ) return GRESKA( playerid, "Niste u mogucnosti koristiti ovu komandu" );
   if( PoliceDuty[ playerid ] == false ) return GRESKA( playerid, "Da bi koristio ovu komandu moras biti policajac na duznosti!");
   {
   new id;
   if(sscanf(params, "i", id)) return SCM(playerid,-1, ""col_srvboja"LOCIRANJE | "BELAA"/lociraj [ID/Ime]");
   if(PlayerInfo[id][xWanted] == 0) return SCM(playerid, -1, ""col_srvboja"[GRESKA] "BELAA"Igrac nema Wanted Level!");
   new Float:Poz[3];
    GetPlayerPos(id, Poz[0], Poz[1], Poz[2]);
   SetPlayerCheckpoint(playerid, Poz[0], Poz[1], Poz[2], 5.0);
   SendClientMessageEx( playerid, BELA, "Igrac %s je oznacen crveno na mapi (/ponistilociranje).", ImeIgraca( id ) );
   Lociranje[playerid] = 1;
   }
   return 1;
}
Naslov: Odg: Aj neko ako zna da mi pomogne
Poruka od: Ljubiša poslato Jul 12, 2021, 19:31:44 POSLE PODNE
Mislim da je vec ovde okej objasnjeno
https://balkan-samp.com/forum/index.php?topic=139206.msg1005524#msg1005524
Naslov: Odg: Aj neko ako zna da mi pomogne
Poruka od: Fergosonn poslato Jul 12, 2021, 19:34:50 POSLE PODNE
Ja sam to uradio na sledeci nacin i radilo je super
[pawn]new Locira[MAX_PLAYERS];
new Lociranje[MAX_PLAYERS];
CMD:lociraj(playerid, params[])
{

   if(PlayerInfo[playerid][pClan] == 1 || PlayerInfo[playerid][pLider] == 1)
   {
   new id;
   if(sscanf(params, "u", id)) return SCM(playerid,-1, ""SRWBOJA"[POMOC] | "BELA"/lociraj [ID/Ime]");
   if( id == INVALID_PLAYER_ID ) return SCM(playerid, -1, ""SRWBOJA"[GRESKA] "SIVA"Igrac nije online!");
   if(PlayerInfo[id][pTrazeniLevel] == 0) return SCM(playerid, -1, ""SRWBOJA"[GRESKA] "SIVA"Igrac nema Wanted Level!");
   new Float:Poz[3];
   GetPlayerPos(id, Poz[0], Poz[1], Poz[2]);
   SetPlayerCheckpoint(playerid, Poz[0], Poz[1], Poz[2], 5.0);
   new string[50];
   format(string, sizeof(string), ""ZUTA"(LSPD) "SIVA"Igrac %s je oznacen crveno na mapi (/ponistilociranje)!",GetName(id)); //conver
   SCM(playerid,-1, string);
   Lociranje[playerid] = 1;
   Locira[playerid] = id;  // Ovde setamo vrednost ID  kako bi mogli kasnije da ga lociram konstantno
   }
   return 1;
}[/pawn]
[pawn]CMD:ponistilociranje(playerid, params[])
{
   if(Lociranje[playerid] == 0) return SendClientMessage(playerid, -1, ""SRWBOJA"[GRESKA]: "SIVA"Nikog ne locirate!");
   SCM(playerid,-1,""SIVA"Prekinuli ste lociranje!");
   Lociranje[playerid] = 0;
   Locira[playerid] = false;
   DisablePlayerCheckpoint(playerid);
   return 1;
}[/pawn]
[pawn]public OnPlayerUpdate(playerid)
{
   if(Lociranje[playerid] == 1)
   {
       new id = Locira[playerid];
       new Float:Poz[3];
      GetPlayerPos(id, Poz[0], Poz[1], Poz[2]);
      DisablePlayerCheckpoint(playerid);
      SetPlayerCheckpoint(playerid, Poz[0], Poz[1], Poz[2], 5.0);
   }
    return 1;
}[/pawn]
Naslov: Odg: Aj neko ako zna da mi pomogne
Poruka od: Fr0z3n poslato Jul 12, 2021, 20:52:07 POSLE PODNE
Ubaci neki tajmer da ti updatuje na tipa 3 4 sec gde se nalazi i tjt...
Naslov: Odg: Aj neko ako zna da mi pomogne
Poruka od: Galardo poslato Jul 12, 2021, 22:58:55 POSLE PODNE
[pawn]public OnPlayerUpdate(playerid)
{
   if(Lociranje[playerid] == 1)
   {
       new id = Locira[playerid];
       new Float:Poz[3];
      GetPlayerPos(id, Poz[0], Poz[1], Poz[2]);
      DisablePlayerCheckpoint(playerid);
      SetPlayerCheckpoint(playerid, Poz[0], Poz[1], Poz[2], 5.0);
   }
    return 1;
}[/pawn]
Cemu svaki put provjera u OnPlayerUpdate, napravi neki timer koji ce se pokretati po potreb i raditi i isto, kada vise ne treba kill.