ID 0 bug


Započeo unkown337, Avgust 18, 2020, 17:20:42 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Problem je u tome kada ja udjem na server meni server dodeli id 0, zatim kada moj prijatelj udje njemu normalno dodeli id 1, prvo sam ovo primetio na admin listi (/admini), Moj prijatelj i ja imamo setanog admina, i vidimo se na listi, ali kada ja kao id 0 izadjem sa servera, ja ostanem na admin listi, pise mi id 0, admin level, ali ime ne prikazuje, a zatim kada udjem na server meni vraca id 0 i tjt, a kada moj prijatelj koji je id 1 njemu sve normalno radi, kada izadje nestane s liste i tjt, ako ima neko ko zna neka pomogne.
Deo skripte:
Dacu sta bude trebalo

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Nista//

daddyDOT

*

Balkan SA:MP designer

Whaaaat?
Prvom igraču koji se konektuje na server naravno da će mu dodijeliti ID 0, svakom narednom za 1 više.
Dalje, pojasni bolje u vezi admin liste, ti kao id 0 ostaješ na listi i kada se disconnectuješ ili šta?
Pošalji komandu ovdje i bolje objasni.

Posalji komandu za admin listu

Citat: daddy. poslato Avgust 18, 2020, 17:29:08 POSLE PODNE
Whaaaat?
Prvom igraču koji se konektuje na server naravno da će mu dodijeliti ID 0, svakom narednom za 1 više.
Dalje, pojasni bolje u vezi admin liste, ti kao id 0 ostaješ na listi i kada se disconnectuješ ili šta?
Pošalji komandu ovdje i bolje objasni.
Da dodeli mu id 0 to ok, ali kada se disconnektujem kao id 0 ja ostajem na admin listi bez imena, nije do komande jer sam i pregledavao u drugim skriptama da li se razlikuje i nije do toga, ne znam jel bi moglo da bude do nekog include-a. Jos nesto, imam komandu srecni id, koja proverava koliko ima online igraca, i daje im nagradu, ja kad se disconnectujem, moj prijatelj ostane sam na serveru, i komanda ucitava kao da je i id 0 na serveru..

daddyDOT

*

Balkan SA:MP designer

Postavi komandu ovdje da vidimo

Citat: daddy. poslato Avgust 18, 2020, 17:42:24 POSLE PODNE
Postavi komandu ovdje da vidimo
CMD:admini(playerid, params[])
{
	new string[1024],atext[20];
	format(string, sizeof(string), "");
	for(new i = 0; i <= GetPlayerPoolSize(); i++)
	{
		if (PlayerInfo[i][pAdmin] >= 1)
		{
			format(atext, sizeof(atext), "{FFFFFF}ID: %d ", i);
			strcat(string, atext);
			strcat(string, "{607ca8}| ");
			strcat(string, "{FFFFFF}");
   			strcat(string, GetName(i));
			strcat(string, "{607ca8} | ");
			if(PlayerInfo[playerid][pAdmin] == 10)
			{
				format(atext, sizeof(atext), "{FFFFFF}Vlasnik ");
				strcat(string, atext);
			}
			else if(PlayerInfo[playerid][pAdmin] > 0 && PlayerInfo[playerid][pAdmin] < 8)
			{
				strcat(string, "{FFFFFF}Admin Level: ");
				format(atext, sizeof(atext), "%d ", PlayerInfo[i][pAdmin]);
				strcat(string, atext);	
			}
   			if(AdminDuty[i] == 0)
		    {
            	strcat(string, "{607ca8}| {FFFFFF}Duty: {f81414}Off");
            }
            if(AdminDuty[i] == 1)
	        {
            	strcat(string, "{607ca8}| {FFFFFF}Duty: {00ff04}On");
            }
			strcat(string, "\n");
		}
	}
	if(strlen(string) == 0) return Error(playerid, "{FFFFFF}Trenutno nema online Admina!");
	g_SPD(playerid, D_STLIST, DIALOG_STYLE_MSGBOX, "{607ca8}Online Administratori", string, "OK", "");
	return 1;
}

N.D

*

CMD:admins(playerid, params[]) 
{ 
    new count = 0, string19[256]; 
    SendClientMessage(playerid, COLOR_GREEN, ""); 
    SendClientMessage(playerid, COLOR_GREEN, "|======== Online Admins =======|");  
    for(new i = 0; i < MAX_PLAYERS; i ++) 
    { 
    if(IsPlayerConnected(i)) 
    { 
    if(pInfo[i][Adminlevel] == 1) 
    {
    format(string19, sizeof(string19), "Trial Moderator : %s (%i)",GetName(i), i); 
    SendClientMessage(playerid, COLOR_WHITE, string19); 
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 2) 
    { 
    format(string19, sizeof(string19), "Moderator : %s (%i)",GetName(i), i);
    SendClientMessage(playerid, COLOR_WHITE, string19);  
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 3) 
    { 
    format(string19, sizeof(string19), "Admin : %s (%i)",GetName(i), i);
    SendClientMessage(playerid, COLOR_WHITE, string19); 
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 4) 
    { 
    format(string19, sizeof(string19), "Server Manager : %s (%i)",GetName(i), i);
    SendClientMessage(playerid, COLOR_WHITE, string19); 
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 5) 
    { 
    format(string19, sizeof(string19), "Server Owner : %s (%i)",GetName(i), i); 
    SendClientMessage(playerid, COLOR_WHITE, string19);
    count++; 
    } 
    } 
    } 
    if(count == 0) 
    SendClientMessage(playerid, COLOR_WHITE, "- No Admins Online at this Time!"); 
    SendClientMessage(playerid, COLOR_GREEN, "|==============================|"); 
    SendClientMessage(playerid, COLOR_GREEN, ""); 
    return 1; 
}  

stock GetName(playerid)
{
     new pname[MAX_PLAYER_NAME];
     GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
     return pname;
}

https://forum.sa-mp.com/showthread.php?t=568180

Citat: N.D poslato Avgust 18, 2020, 17:57:01 POSLE PODNE
CMD:admins(playerid, params[]) 
{ 
    new count = 0, string19[256]; 
    SendClientMessage(playerid, COLOR_GREEN, ""); 
    SendClientMessage(playerid, COLOR_GREEN, "|======== Online Admins =======|");  
    for(new i = 0; i < MAX_PLAYERS; i ++) 
    { 
    if(IsPlayerConnected(i)) 
    { 
    if(pInfo[i][Adminlevel] == 1) 
    {
    format(string19, sizeof(string19), "Trial Moderator : %s (%i)",GetName(i), i); 
    SendClientMessage(playerid, COLOR_WHITE, string19); 
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 2) 
    { 
    format(string19, sizeof(string19), "Moderator : %s (%i)",GetName(i), i);
    SendClientMessage(playerid, COLOR_WHITE, string19);  
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 3) 
    { 
    format(string19, sizeof(string19), "Admin : %s (%i)",GetName(i), i);
    SendClientMessage(playerid, COLOR_WHITE, string19); 
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 4) 
    { 
    format(string19, sizeof(string19), "Server Manager : %s (%i)",GetName(i), i);
    SendClientMessage(playerid, COLOR_WHITE, string19); 
    count++; 
    } 
    if(pInfo[i][Adminlevel] == 5) 
    { 
    format(string19, sizeof(string19), "Server Owner : %s (%i)",GetName(i), i); 
    SendClientMessage(playerid, COLOR_WHITE, string19);
    count++; 
    } 
    } 
    } 
    if(count == 0) 
    SendClientMessage(playerid, COLOR_WHITE, "- No Admins Online at this Time!"); 
    SendClientMessage(playerid, COLOR_GREEN, "|==============================|"); 
    SendClientMessage(playerid, COLOR_GREEN, ""); 
    return 1; 
}  

stock GetName(playerid)
{
     new pname[MAX_PLAYER_NAME];
     GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
     return pname;
}

https://forum.sa-mp.com/showthread.php?t=568180
Brate nije meni to problem, ne citas lepo, ja kada izadjem meni cuva id 0, i zato mi ispisuje na admin listi, nije problem do admin liste, vec do necega sto ima veze s onplayerdisconnect/onplayerconnect a ne znam sta..

N.D

*

Citat: unkown337 poslato Avgust 18, 2020, 17:59:20 POSLE PODNE
Brate nije meni to problem, ne citas lepo, ja kada izadjem meni cuva id 0, i zato mi ispisuje na admin listi, nije problem do admin liste, vec do necega sto ima veze s onplayerdisconnect/onplayerconnect a ne znam sta..

Pa posalji nam onda to , objasnio si gore toliko nepovazano...

Verovatno ti fali sačuvavanje negde sa sve igrače tj

for(new i=0; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            
        }
    }
    return 1;
}

credits: Xunder, Ino420, Muma

Citat: Pottus;3903994
SetPlayerPos("dreni1998", 666.666, 666.666, 666.666, 666.666);    ///// GO IN HELL MOTHERFUCKER

https://i.imgur.com/XHLx9oj.gif
https://i.ibb.co/ZJqQKWT/NXRX.gif

Bolje koristi foreach umesto ovoga.
Pročitaj na wiki šta vraća funkcija `GetPlayerPoolSize()`

for (new i = GetPlayerPoolSize(); i >= 0; i --) {
    
    if (IsPlayerConnected(i)) {
        ...
    }
}

Citat: Terza Lazarevic poslato Avgust 18, 2020, 19:10:05 POSLE PODNE
Bolje koristi foreach umesto ovoga.
Pročitaj na wiki šta vraća funkcija `GetPlayerPoolSize()`

for (new i = GetPlayerPoolSize(); i >= 0; i --) {
    
    if (IsPlayerConnected(i)) {
        ...
    }
}

Resio sam s admin listom, umesto getplayerpoolsize stavio sam foreach, ja sam zamenio sve getplayerpoolsize funkcije s foreach, jel to dobro ili?

Citat: unkown337 poslato Avgust 18, 2020, 19:19:15 POSLE PODNE
Resio sam s admin listom, umesto getplayerpoolsize stavio sam foreach, ja sam zamenio sve getplayerpoolsize funkcije s foreach, jel to dobro ili?
Da