Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Aziz_Jesus poslato Septembar 04, 2020, 22:29:43 POSLE PODNE

Naslov: Jail System
Poruka od: Aziz_Jesus poslato Septembar 04, 2020, 22:29:43 POSLE PODNE
Problem(error/warning): Imam problem sa Jail Sistemom na DM serveru, kada zatvorite igraca i on odlezi sve je okej, tajmer radi i kad prodje vreme pusti ga. Medjutim kada igrac /q dok je zatvoren kad udje na loginu mu odbrojava i nekad ga spawnuje u zatvoru a nekad na spawnu...
Deo skripte: [pawn]CMD:jail(playerid, params[])
{
    //if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""COL_LIGHTBLUE"[K:DM] "col_bela"Moras biti prijavljen.");
   if(PlayerInfo[playerid][pAdmin] >= 1)
   {
      new ID;
      new vremes;
      new razlog[64];
      if(sscanf(params, "uis[64]", ID, vremes, razlog)) return SendCommandMessage(playerid, "/jail [ID/Nick] [Vreme - minuta] [Razlog]");
      if(!IsPlayerConnected(ID)) return SendErrorMessage(playerid, "Taj igrac nije online.");
      if(PlayerInfo[ID][pZatvor] > 0) return SendErrorMessage(playerid, "Taj igrac je vec u zatvoru.");
      //if(PI[playerid][Admin] < 6 && PI[ID][Admin] >= 6) return SendErrorMessage(playerid, "Ne mozete staviti u zatvor vlasnika servera.");
      if(vremes > 5 || vremes < 5000)
       {
         ResetPlayerWeapons(ID);
         SetPlayerInterior(ID, 5);
         new rand = random(sizeof(RandomZatvor));
         SetPlayerPos(ID, RandomZatvor[rand][0], RandomZatvor[rand][1], RandomZatvor[rand][2]);
         PlayerInfo[ID][pZatvor] = 1;
         PlayerInfo[ID][pZatvorenVreme] = vremes*60;
         new string2[256];
         new string3[256];
         format(string2, sizeof(string2), "{F23A0D}[Zatvor]: {FFFFFF}Zatvoreni ste na %d minuta od strane admina.", vremes);
         SCM(ID, GRAD2, string2);
         format(string3, sizeof(string3), "{F23A0D}[Zatvor]: {FFFFFF}%s je stavljen u zatvor od strane Admin Tima, razlog: %s", Ime_Igraca(ID), razlog);
         SCMTA(GRAD2, string3);
         format(conelys, sizeof(conelys), "[A]: Admin %s je stavio igraca %s u zatvor na %d minut/a,razlog: %s.", Ime_Igraca(playerid), Ime_Igraca(ID),vremes, razlog);
          Adminima4(COLOR_YELLOW, conelys);
          format(logstring, sizeof logstring, "| Admin: %s | Igrac: %s | Razlog: %s | Vreme: %d minut/a", Ime_Igraca(playerid),Ime_Igraca(ID),razlog, vremes);
         UpisiLog(FILE_PRISON, logstring);
      }
      else
      {
      return   SendErrorMessage(playerid, "Ne mozete manje od 5 i vise od 5000 min.");
      }
   }
   else return SendErrorMessage(playerid,"Niste Ovlasceni.");
   return 1;
}
CMD:unjail(playerid, params[])
{
    //if(UlogovanProvera[playerid] == 0) return Error(playerid, "Moras biti prijavljen.");
   if(PlayerInfo[playerid][pAdmin] >= 2)
   {
      new id,string[128];
      if(sscanf(params, "u", id)) return SendCommandMessage(playerid, "/Unjail [ID/Nick]");
      if(!IsPlayerConnected(id)) return SendErrorMessage(playerid, "Igrac je offline.");
      if(PlayerInfo[id][pZatvor] == 0) return SendErrorMessage(playerid, "Igrac nije zatvoren.");
      PlayerInfo[id][pZatvor] = 0;
      PlayerInfo[id][pZatvorenVreme] = 0;
      SetPlayerInterior(id, 18);
      SetPlayerPos(id, 1728.1906,-1668.1489,22.6219);
      SetPlayerVirtualWorld(id, 0);
        SetPlayerFacingAngle(playerid,43.5554);
      SCMF(id, SERVERBOJA, "* Admin %s vas je pustio iz zatvora.", Ime_Igraca(playerid));
      format(string, sizeof(string), "[A]: Admin %s je oslobodio %s iz zatvora.", Ime_Igraca(playerid),Ime_Igraca(id));
      Adminima4(COLOR_YELLOW, string);
      format(logstring, sizeof logstring, "| Igrac: %s | Admin: %s", Ime_Igraca(playerid),Ime_Igraca(id));
      UpisiLog(FILE_UNPRISON, logstring);
   }
   else return SendErrorMessage(playerid,"Niste Ovlasceni");
   return 1;
}
// evo ga tajmer //
forward Odbrojavanja();
public Odbrojavanja()
   {
   foreach(Player,i)
   {
      if(PlayerInfo[pZatvorenVreme] > 0)
      {
          PlayerInfo[pZatvorenVreme]--;
          new odbrojav[128];
          format(odbrojav,sizeof(odbrojav),"~n~~n~~n~~n~~n~~n~~n~~r~~h~~h~Vreme zatvora:~n~~w~%s",KonvertujVreme(PlayerInfo[pZatvorenVreme]));
         GameTextForPlayer(i, odbrojav, 1100, 3);
      }
      else if(PlayerInfo[pZatvorenVreme] <= 0 && PlayerInfo[pZatvor] > 0)
      {
      PlayerInfo[pZatvor] = 0;
      PlayerInfo[pZatvorenVreme] = 0;
      //SetPlayerWorldBounds(i,20000.0000,-20000.0000,20000.0000,-20000.0000);
      SetPlayerInterior(i, 18);
      SetPlayerVirtualWorld(i, 0);
      SetPlayerPos(i, 1728.0427,-1667.9297,22.6094);
      SetPlayerFacingAngle(i, 281.0);
      SetCameraBehindPlayer(i);
      GameTextForPlayer(i, "~g~Sloboda~n~~w~Pokusajte biti bolji gradjanin", 5000, 1);
      SetPlayerColor(i, TEAM_HIT_COLOR);
      }
   }
   return 1;
}
// --------- OVO JE POD PLAYERSPAWN --------- //
   if(PlayerInfo[playerid][pZatvor] == 1)
   {
       new rand = random(sizeof(RandomZatvor));
       SetPlayerPos(playerid, RandomZatvor[rand][0], RandomZatvor[rand][1], RandomZatvor[rand][2]);
      SetPlayerInterior(playerid, 5);
      SCMF(playerid,-1,""SIVA"Vracas se na odsluzenje zatvorske kazne | Ostalo ti je jos %d sekundi!",PlayerInfo[playerid][pZatvorenVreme]);
       TogglePlayerControllable(playerid, 0);
      freeze[playerid] = SetTimerEx("Freeze",5000, false, "i", playerid);
      return 1;
   }
[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): ///
Slika/video ingame problema(obavezno ako je ingame problem): ///
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 05, 2020, 00:57:56 PRE PODNE
Pa verovatno ne getujes dobro varijablu pZatvor jer ti bude razlicita od 1 i onda igrac ne udje u tu proveru
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 05, 2020, 01:38:19 PRE PODNE
Citat: __vedran.xyz77 poslato Septembar 05, 2020, 00:57:56 PRE PODNE
Pa verovatno ne getujes dobro varijablu pZatvor jer ti bude razlicita od 1 i onda igrac ne udje u tu proveru
(https://imgur.com/a/EekwhyT)
[pawn]if(PlayerInfo[playerid][pZatvor] = 1)[/pawn] Promenio sam umesto 1 na 2 i radi, ali tajmer krece pre nego sto igrac ukuca sifru..
[pawn]if(PlayerInfo[playerid][pZatvor] == 2)[/pawn]
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 05, 2020, 01:58:53 PRE PODNE
uradi [pawn]printf("pZatvor = %d", PlayerInfo[playerid][pZatvor]);[/pawn]
iznad toga
pa pogledaj konzolu
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 05, 2020, 02:18:32 PRE PODNE
Citat: __vedran.xyz77 poslato Septembar 05, 2020, 01:58:53 PRE PODNE
uradi [pawn]printf("pZatvor = %d", PlayerInfo[playerid][pZatvor]);[/pawn]
iznad toga
pa pogledaj konzolu
(https://imgur.com/a/ta9LyNZ)
U pravu si, negde promeni na 0...
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 05, 2020, 02:24:35 PRE PODNE
Onda na pocetku diskonekta i na kraju
isto stavi pa proveri da li se u toku diskonekta postavi na nulu ili slicno.


Ako tu bude na 0 proveri SavePlayer ili probaj da trazis pZatvor pa vidi rezultate
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 05, 2020, 02:32:09 PRE PODNE
Citat: __vedran.xyz77 poslato Septembar 05, 2020, 02:24:35 PRE PODNE
Onda na pocetku diskonekta i na kraju
isto stavi pa proveri da li se u toku diskonekta postavi na nulu ili slicno.


Ako tu bude na 0 proveri SavePlayer ili probaj da trazis pZatvor pa vidi rezultate
https://imgur.com/a/bPRjtKk
Kad zatvorim igraca menja na 0. Kad igrac izadje menja na 2, a druga slika je kad se igrac konektuje, ponovo vraca na 2. I baca me u zatvor, ali tajmer broji a nisam jos ni sifru ukucao.
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 05, 2020, 11:45:09 PRE PODNE
Znaci kad je u zatvoru pZatvor mu je na 0 ?
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 05, 2020, 14:05:49 POSLE PODNE
Citat: __vedran.xyz77 poslato Septembar 05, 2020, 11:45:09 PRE PODNE
Znaci kad je u zatvoru pZatvor mu je na 0 ?
Kad ga jailam ispise pZatvor = 0, ali ne mogu da ga ponovo jailam, a unjail takodje radi... Kad odem /q ispise 2, a kad se vracam ako sam u jailu vrati me, a ako nisam ne vraca ali ispise pZatvor = 2
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 05, 2020, 16:46:33 POSLE PODNE
Uhhh jbt ne verujem da je to moguce stavi na kraj te komande da printa PlayerInfo[ID][pZatvor]
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 05, 2020, 17:14:01 POSLE PODNE
Citat: __vedran.xyz77 poslato Septembar 05, 2020, 16:46:33 POSLE PODNE
Uhhh jbt ne verujem da je to moguce stavi na kraj te komande da printa PlayerInfo[ID][pZatvor]
Sve lepo radi, ali evo baci pogled na log...
https://imgur.com/a/eULE42u
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 05, 2020, 17:46:28 POSLE PODNE
Ne kontam kad kucas /jail bude na 0 kad kucas /unjail bude na 2 lol
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 05, 2020, 19:09:00 POSLE PODNE
Citat: __vedran.xyz77 poslato Septembar 05, 2020, 17:46:28 POSLE PODNE
Ne kontam kad kucas /jail bude na 0 kad kucas /unjail bude na 2 lol

Jail system radi lepo, osim sto u logu kad /jail i /unjail pise naopako.
Naslov: Odg: Jail System
Poruka od: __vedran.xyz77 poslato Septembar 06, 2020, 00:07:30 PRE PODNE
ispisivanje u logu ti nikad nece biti problem ono je ispisalo ono sto si ti hteo problem je u tvom sistemu, a ne u logu -.-


isprati tu varijablu pZatvor ili daj ostavi ovde sve delove gde se koristi
Naslov: Odg: Jail System
Poruka od: Aziz_Jesus poslato Septembar 06, 2020, 00:14:59 PRE PODNE
Citat: __vedran.xyz77 poslato Septembar 06, 2020, 00:07:30 PRE PODNE
ispisivanje u logu ti nikad nece biti problem ono je ispisalo ono sto si ti hteo problem je u tvom sistemu, a ne u logu -.-


isprati tu varijablu pZatvor ili daj ostavi ovde sve delove gde se koristi
[pawn]if(PlayerInfo[playerid][pZatvor] == 2)
   {
       new rand = random(sizeof(RandomZatvor));
       SetPlayerPos(playerid, RandomZatvor[rand][0], RandomZatvor[rand][1], RandomZatvor[rand][2]);
      SetPlayerInterior(playerid, 5);
      SCMF(playerid,-1,""SIVA"Vracas se na odsluzenje zatvorske kazne | Ostalo ti je jos %d sekundi!",PlayerInfo[playerid][pZatvorenVreme]);
       TogglePlayerControllable(playerid, 0);
      freeze[playerid] = SetTimerEx("Freeze",5000, false, "i", playerid);
      return 1;
   }[/pawn]
[pawn]forward Odbrojavanja();
public Odbrojavanja()
   {
   foreach(Player,i)
   {
      if(PlayerInfo[pZatvorenVreme] > 0)
      {
          PlayerInfo[pZatvorenVreme]--;
          new odbrojav[128];
          format(odbrojav,sizeof(odbrojav),"~n~~n~~n~~n~~n~~n~~n~~r~~h~~h~Vreme zatvora:~n~~w~%s",KonvertujVreme(PlayerInfo[pZatvorenVreme]));
         GameTextForPlayer(i, odbrojav, 1100, 3);
      }
      else if(PlayerInfo[pZatvorenVreme] <= 0 && PlayerInfo[pZatvor] > 0)
      {
      PlayerInfo[pZatvor] = 0;
      PlayerInfo[pZatvorenVreme] = 0;
      //SetPlayerWorldBounds(i,20000.0000,-20000.0000,20000.0000,-20000.0000);
      SetPlayerInterior(i, 18);
      SetPlayerVirtualWorld(i, 0);
      SetPlayerPos(i, 1728.0427,-1667.9297,22.6094);
      SetPlayerFacingAngle(i,43.5554);
      SetCameraBehindPlayer(i);
      nijenigde = 1;
      GameTextForPlayer(i, "~g~Sloboda~n~~w~Pokusajte biti bolji gradjanin", 5000, 1);
      SetPlayerColor(i, TEAM_HIT_COLOR);
      }
   }
   return 1;
}[/pawn]
[pawn]CMD:jail(playerid, params[])
{
    //if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,""COL_LIGHTBLUE"[K:DM] "col_bela"Moras biti prijavljen.");
   if(PlayerInfo[playerid][pAdmin] >= 1)
   {
      new ID;
      new vremes;
      new razlog[64];
      if(sscanf(params, "uis[64]", ID, vremes, razlog)) return SendCommandMessage(playerid, "/jail [ID/Nick] [Vreme - minuta] [Razlog]");
      if(!IsPlayerConnected(ID)) return SendErrorMessage(playerid, "Taj igrac nije online.");
      if(PlayerInfo[ID][pZatvor] > 0) return SendErrorMessage(playerid, "Taj igrac je vec u zatvoru.");
      printf("pZatvor = %d", PlayerInfo[playerid][pZatvor]);
      //if(PI[playerid][Admin] < 6 && PI[ID][Admin] >= 6) return SendErrorMessage(playerid, "Ne mozete staviti u zatvor vlasnika servera.");
      if(vremes > 5 || vremes < 5000)
       {
         ResetPlayerWeapons(ID);
         SetPlayerInterior(ID, 5);
         new rand = random(sizeof(RandomZatvor));
         SetPlayerPos(ID, RandomZatvor[rand][0], RandomZatvor[rand][1], RandomZatvor[rand][2]);
         PlayerInfo[ID][pZatvor] = 2;
         PlayerInfo[ID][pZatvorenVreme] = vremes*60;
         new string2[256];
         new string3[256];
         format(string2, sizeof(string2), "{F23A0D}[Zatvor]: {FFFFFF}Zatvoreni ste na %d minuta od strane admina.", vremes);
         SCM(ID, GRAD2, string2);
         format(string3, sizeof(string3), "{F23A0D}[Zatvor]: {FFFFFF}%s je stavljen u zatvor od strane Admin Tima, razlog: %s", Ime_Igraca(ID), razlog);
         SCMTA(GRAD2, string3);
         format(conelys, sizeof(conelys), "[A]: Admin %s je stavio igraca %s u zatvor na %d minut/a,razlog: %s.", Ime_Igraca(playerid), Ime_Igraca(ID),vremes, razlog);
          Adminima4(COLOR_YELLOW, conelys);
          format(logstring, sizeof logstring, "| Admin: %s | Igrac: %s | Razlog: %s | Vreme: %d minut/a", Ime_Igraca(playerid),Ime_Igraca(ID),razlog, vremes);
         UpisiLog(FILE_PRISON, logstring);
      }
      else
      {
      return   SendErrorMessage(playerid, "Ne mozete manje od 5 i vise od 5000 min.");
      }
   }
   else return SendErrorMessage(playerid,"Niste Ovlasceni.");
   return 1;
}
CMD:unjail(playerid, params[])
{
    //if(UlogovanProvera[playerid] == 0) return Error(playerid, "Moras biti prijavljen.");
   if(PlayerInfo[playerid][pAdmin] >= 2)
   {
      new id,string[128];
      if(sscanf(params, "u", id)) return SendCommandMessage(playerid, "/Unjail [ID/Nick]");
      if(!IsPlayerConnected(id)) return SendErrorMessage(playerid, "Igrac je offline.");
      if(PlayerInfo[id][pZatvor] == 0) return SendErrorMessage(playerid, "Igrac nije zatvoren.");
      printf("pZatvor = %d", PlayerInfo[playerid][pZatvor]);
      PlayerInfo[id][pZatvor] = 0;
      PlayerInfo[id][pZatvorenVreme] = 0;
      SetPlayerInterior(id, 18);
      SetPlayerPos(id, 1728.7982,-1668.4337,22.6094);
      SetPlayerVirtualWorld(id, 0);
        SetPlayerFacingAngle(playerid,43.5554);
        nijenigde[id] = 1;
      SCMF(id, SERVERBOJA, "* Admin %s vas je pustio iz zatvora.", Ime_Igraca(playerid));
      format(string, sizeof(string), "[A]: Admin %s je oslobodio %s iz zatvora.", Ime_Igraca(playerid),Ime_Igraca(id));
      Adminima4(COLOR_YELLOW, string);
      format(logstring, sizeof logstring, "| Igrac: %s | Admin: %s", Ime_Igraca(playerid),Ime_Igraca(id));
      UpisiLog(FILE_UNPRISON, logstring);
   }
   else return SendErrorMessage(playerid,"Niste Ovlasceni");
   return 1;
}[/pawn]