OnPlayerDamage


Započeo Goku ^, Oktobar 18, 2022, 18:07:37 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Zelim napraviti zonu gde igraci ukoliko su unutar nje da ne mogu koristit /zavezi, /ukradi i da se pucaju u njoj. Napravio sam to i /zavezi /ukradi ne radi dok su u njoj, dok sa druge strane pucanje ne, zelim napraviti da PD moze pucati unutar te zone dok obicni igraci ne mogu. I to pravi problem sto nikako ne mogu ubosti kako. U sustini zelim napraviti da PD moze pucati unutar toga da diluje damage a obicni igraci van toga da mogu unutar toga da ne mogu da dilaju damage.
Deo skripte:
GetNearestZone( playerid ) 
{ 
	foreach(new i : szona)
	{
	    if(!IgracPolicajac(playerid))
	    {
	    	Zonezona[playerid] = 1;
 			if(IsPlayerInDynamicArea(playerid, ZoneInfo[ i ][ ZoneZoneAngle ])) { return i; }
		}
    }
    Zonezona[playerid] = 0;
    return -1;
}

Ovo je GetNearestZone gde je provera ukolio je igrac unutar zone, ZoneZona[playerid] = 1; oznacava ako je obican igrac u slucaju da nije stavice ZoneZona[playerid] = 0;

Zatim kod OnPlayerDamage

        GetNearestZone( playerid );
	{
	    if(Zonezona[playerid] == 1) 
            return 0;
	}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem):

jednostavno izbaci taj kod iz onplayerdamage

Citat: Tebrix poslato Oktobar 18, 2022, 18:09:21 POSLE PODNE
jednostavno izbaci taj kod iz onplayerdamage
Ok izbacim i kako onda da napravim da obican igrac ne diluje damage?


Imas vec IgracPolicajac(playerid), koja ce ti vratiti true ili false, zasto deklarises jos jednu varijablu?

Citat: Slade poslato Oktobar 19, 2022, 18:28:02 POSLE PODNE
Imas vec IgracPolicajac(playerid), koja ce ti vratiti true ili false, zasto deklarises jos jednu varijablu?
Fixao sam ga
foreach(new i : szona)
	    {
	    	if(IsPlayerInDynamicArea(issuerid,ZonaInfo[ i ][ ZonaZoneAngle ])) 
	    	{
	    		if(IgracPolicajac(issuerid)) { return 1; }
	    		else if(!IgracPolicajac(issuerid)) { return 0; }
	    	}
		}