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): ///
Pa verovatno ne getujes dobro varijablu pZatvor jer ti bude razlicita od 1 i onda igrac ne udje u tu proveru
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]
uradi [pawn]printf("pZatvor = %d", PlayerInfo[playerid][pZatvor]);[/pawn]
iznad toga
pa pogledaj konzolu
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...
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
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.
Znaci kad je u zatvoru pZatvor mu je na 0 ?
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
Uhhh jbt ne verujem da je to moguce stavi na kraj te komande da printa PlayerInfo[ID][pZatvor]
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
Ne kontam kad kucas /jail bude na 0 kad kucas /unjail bude na 2 lol
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.
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
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]