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;
}
Mislim da je vec ovde okej objasnjeno
https://balkan-samp.com/forum/index.php?topic=139206.msg1005524#msg1005524
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]
Ubaci neki tajmer da ti updatuje na tipa 3 4 sec gde se nalazi i tjt...
[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.