Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Softic poslato Septembar 29, 2017, 10:13:27 PRE PODNE

Naslov: cmd /rac
Poruka od: Softic poslato Septembar 29, 2017, 10:13:27 PRE PODNE
Skripta koju koristim: SA
Detaljan opis problema: Evo ovako kada kucam /rac zabaga mi server i posle nekog vremena odbaga i respawnuje vozila... Ako je neko imao isti problem neka javi :)
Dio skripte: DOLE
Neke slike/video za lakse dobivanje pomoci(neobavezno): //
EVO CMD :
YCMD:rac(playerid, params[], help)
{
    #pragma unused help
    if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""PLAVA"(( "SIVA"Greska "PLAVA")) Moras se ulogovati da bi koristio ovu komandu!");
   if(PlayerInfo[playerid][pAdmin] < 4) return SCM(playerid, -1, ""PLAVA"(( "SIVA"Greska "PLAVA")) Samo Admini (AL 4+)!");
   if(RespawnVozila) return SCM(playerid, -1, ""PLAVA"(( "SIVA"Greska "PLAVA")) Respawn je vec pokrenut!");
   new string[512]; RespawnVozila = 1;
   format(string,sizeof string, ""CRVENA"Respawn Vozila ~ "BELA"Admin %s je respawnovao sva nekoristena vozila "CRVENA"~", GetName(playerid));
   SCMTA(-1, string);
   SetTimer("Respawn", 1000, false);
   return 1;
}
EVO FORWARD
forward Respawn();
public Respawn()
{
   new bool:unwanted[MAX_VOZILA];
   for(new player=0; player<MAX_PLAYERS; player++)
   {
      if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
   }
   for(new car = 1; car < MAX_VOZILA; car++)
   {
      if(!unwanted[car]) SetVehicleToRespawn(car);
   }
   RespawnVozila = 0; SCMTA(-1, ""CRVENA"~ "BELA"Vozila Respawnovana "CRVENA"~");
   return 1;
}
Max vozila mi je na 1k
Naslov: Odg: cmd /rac
Poruka od: delete poslato Septembar 29, 2017, 10:18:04 PRE PODNE
Ovo se i mn desava,ako neko zna moze pomoci? ???
Naslov: Odg: cmd /rac
Poruka od: Slade poslato Septembar 29, 2017, 10:27:07 PRE PODNE
Na mjestu gdje brojiš igrače koristi foreach, i server ti zabaguje jer mora izbrojati igrače, provjeru dal je svaki od njih u vozilu, te provjerit sva vozila i respawnovat ona koja nemaju vozača, što treba vremena da skripta izvrši, vidi da si skratiš to nekako, ja sam ti predložio foreach, jer on loopuje samo konektovane igrače.
Naslov: Odg: cmd /rac
Poruka od: Tosic ツ poslato Septembar 29, 2017, 10:28:45 PRE PODNE
[pawn]
forward Respawn();
public Respawn()
{
   for(new car = 1; car <= MAX_VOZILA; car++)
   {
       if(!OwnableVozilo(car))
       {
           if(IsVehicleEmpty(car))
         {
              if(GetVehicleModel(car) != 435 && GetVehicleModel(car) != 584 && GetVehicleModel(car) != 591)
              {
               SetVehicleToRespawn(car);
            }
         }
      }
   }
   return true;
}
[/pawn]
Malo jednostavnija i bolja provera od te tvoje. Respawn ce ti vozila koja nisu ownable. Ovo je primer pa sam skontaj kako ces za ownable :)

P.S. Zasto koristis ovo u komandama
[pawn]
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""PLAVA"(( "SIVA"Greska "PLAVA")) Moras se ulogovati da bi koristio ovu komandu!");
[/pawn]
kad mozes samo ubaciti tu proveru ovde OnPlayerCommandReceived? :P