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:
[pawn]
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;
}
[/pawn]
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

[pawn]
        GetNearestZone( playerid );
   {
       if(Zonezona[playerid] == 1)
            return 0;
   }
[/pawn]
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
[pawn]
foreach(new i : szona)
       {
          if(IsPlayerInDynamicArea(issuerid,ZonaInfo[ i ][ ZonaZoneAngle ]))
          {
             if(IgracPolicajac(issuerid)) { return 1; }
             else if(!IgracPolicajac(issuerid)) { return 0; }
          }
      }
[/pawn]