Aj neko ako zna da mi pomogne


Započeo Kajsije ^, Jul 12, 2021, 18:06:07 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

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;
}
Poslednja Izmena: Jul 13, 2021, 00:46:27 PRE PODNE od M Ө M Σ N Z I


Ja sam to uradio na sledeci nacin i radilo je super
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;
}

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;
}

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;
}

Ubaci neki tajmer da ti updatuje na tipa 3 4 sec gde se nalazi i tjt...

Galardo

*

mgWhosyGD

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;
}

Cemu svaki put provjera u OnPlayerUpdate, napravi neki timer koji ce se pokretati po potreb i raditi i isto, kada vise ne treba kill.