Komanda /admini.

Započeo Debug, April 18, 2025, 19:32:12 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Naslov problema*: Komanda /admini.
Opis problema*: Prvi Admin na listi nikad nije AFK, cak i kada ide ESC ne pokazuje da je AFK. Dok svi ostali Admini koji su ispod prvog su uvijek AFK. Ne znam kako da rijesim to pa ako neko zna bilo bi super.
Pokušaj rešavanja*: ///
Deo programskog koda*:

YCMD:admini(playerid, params[], help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1,"* Moras se ulogovati da bi koristio ovu komandu!");
    new tempAdminData[20][2], idx = 0;
	foreach(new i : Player)
	{
		if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTAdmin] == 1)
		{
			tempAdminData[idx][0] = i;
			if(PlayerInfo[i][pTAdmin] == 1) { tempAdminData[idx][1] = 0; }
			else { tempAdminData[idx][1] = PlayerInfo[i][pAdmin]; }
			idx++;
		}
	}
	for (new i = 0; i <= idx; ++i)
	{
		for (new j = i + 1; j < idx; ++j)
		{
			if (tempAdminData[i][1] < tempAdminData[j][1])
            {
				tempAdminData[i][0] ^= tempAdminData[j][0];
				tempAdminData[j][0] ^= tempAdminData[i][0];
				tempAdminData[i][0] ^= tempAdminData[j][0];
				tempAdminData[i][1] ^= tempAdminData[j][1];
				tempAdminData[j][1] ^= tempAdminData[i][1];
				tempAdminData[i][1] ^= tempAdminData[j][1];
			}
		}
	}
	new string[1024];
	strcat(string, "Ime\tDuznost\tLevel");
	for(new i = 0; i < idx; ++i)
	{
		new pid = tempAdminData[i][0], atext[1024];
		strcat(string, "\n");
		strcat(string, "{FFFFFF}");
		if(IsPlayerPaused(pid))
		{
			strcat(string, GetName(pid)); strcat(string, " ");
			strcat(string, ""CRVENA"[AFK]");
			strcat(string, "\t");
		}
        else { strcat(string, GetName(pid)); strcat(string, "\t"); }
		if(AdminDuty[pid] == 0) { strcat(string, ""CRVENA"Van Duznosti"); }
	    if(AdminDuty[pid] == 1) { strcat(string, ""ZELENA"Na duznosti"); }
		if(tempAdminData[i][1] == 0) { format(atext, sizeof atext, "\tTest Admin"); }
		else { format(atext, sizeof atext, "\t%d", tempAdminData[i][1]); }
		strcat(string, atext);
		strcat(string, "\n");
	}
	ShowPlayerDialog(playerid, 418, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online ()", string, "Izlaz", "");
	return 1;
}



Debug informacije: ///
Fotografija problema u igri: https://imgur.com/a/rUZqGGY
Korišćene biblioteke (includes): ///
Dodatne informacije: ///
Poslednja Izmena: April 18, 2025, 19:51:33 POSLE PODNE od Debug

Postavi kod na pastebin ili preko [pawn ] [/ pawn]
Kod

Dodan kod.
Poslednja Izmena: April 19, 2025, 12:38:55 POSLE PODNE od Debug

Jos uvijek nije fixano, da li ima neko ko zna ?

for (new i = 0; i < idx; ++i)
 oh god
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Zameni liniju:
for (new i = 0; i <= idx; ++i)

sa:
for (new i = 0; i < idx; ++i)

YCMD:admini(playerid, params[], help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1,"* Moras se ulogovati da bi koristio ovu komandu!");
    new tempAdminData[20][2], idx = 0;
	foreach(new i : Player)
	{
		if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTAdmin] == 1)
		{
			tempAdminData[idx][0] = i;
			if(PlayerInfo[i][pTAdmin] == 1) { tempAdminData[idx][1] = 0; }
			else { tempAdminData[idx][1] = PlayerInfo[i][pAdmin]; }
			idx++;
		}
	}
	for (new i = 0; i < idx; ++i)
	{
		for (new j = i + 1; j < idx; ++j)
		{
			if (tempAdminData[i][1] < tempAdminData[j][1])
            {
				tempAdminData[i][0] ^= tempAdminData[j][0];
				tempAdminData[j][0] ^= tempAdminData[i][0];
				tempAdminData[i][0] ^= tempAdminData[j][0];
				tempAdminData[i][1] ^= tempAdminData[j][1];
				tempAdminData[j][1] ^= tempAdminData[i][1];
				tempAdminData[i][1] ^= tempAdminData[j][1];
			}
		}
	}
	new string[1024];
	strcat(string, "Ime\tDuznost\tLevel");
	for(new i = 0; i < idx; ++i)
	{
		new pid = tempAdminData[i][0], atext[1024];
		strcat(string, "\n");
		strcat(string, "{FFFFFF}");
		if(IsPlayerPaused(pid))
		{
			strcat(string, GetName(pid)); strcat(string, " ");
			strcat(string, ""CRVENA"[AFK]");
			strcat(string, "\t");
		}
        else { strcat(string, GetName(pid)); strcat(string, "\t"); }
		if(AdminDuty[pid] == 0) { strcat(string, ""CRVENA"Van Duznosti"); }
	    if(AdminDuty[pid] == 1) { strcat(string, ""ZELENA"Na duznosti"); }
		if(tempAdminData[i][1] == 0) { format(atext, sizeof atext, "\tTest Admin"); }
		else { format(atext, sizeof atext, "\t%d", tempAdminData[i][1]); }
		strcat(string, atext);
		strcat(string, "\n");
	}
	ShowPlayerDialog(playerid, 418, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online ()", string, "Izlaz", "");
	return 1;
}

Zamjenio sam i jos uvijek mi pokazuje da su svi Admini AFK osim prvog na listi.

YCMD:admini(playerid, params[], help)
{
    if(UlogovanProvera[playerid] == 0) return SCM(playerid, -1,"* Moras se ulogovati da bi koristio ovu komandu!");
    new string[ 1024 ];
    new aLevel;
    foreach(new i : Player)
    {
        if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTAdmin] == 1)
        {    
            if( PlayerInfo[ i ][ pAdmin >= 1]) aLevel = PlayerInfo[ i ][pAdmin ];
            else aLevel = PlayerInfo[ i ][ pTAdmin ];
            if( !IsPlayerPaused( playerid ))
                format(string, sizeof string, "%s%s\t%s\t%d\n"\
                    ,string 
                    , GetName( i )
                    , AdminDuty[i] == 0 ? "Van Duznosti" : "Na Duznosti"
                    , aLevel);
            else 
                format(string, sizeof string, "%s%s"CRVENA"[ AFK]\t"BELA"%s\t%d\n"\
                    , string
                    , GetName( i )
                    , AdminDuty[i] == 0 ? "Van Duznosti" : "Na Duznosti"
                    , aLevel);        
        }
    }
    
    new string2[2024];
    strcat(string2, "Ime\tDuznost\tLevel\n");
    strcat(string2, string );
    
    ShowPlayerDialog(playerid, 418, DIALOG_STYLE_TABLIST_HEADERS, "Admini Online ()", string2, "Izlaz", "");
    return 1;
}

Trebalo bi da radi :)
Nisam testao, jer nemam samp compiler kod sebe, prilagodi kod onome sto zelis i ne komplikuj osnovne komande.
Poslednja Izmena: April 26, 2025, 16:25:07 POSLE PODNE od xLanmi Razlog: .

One And Only
Old Member
Since AVGUST 2013. :)
GAME OVER - SCRIPTING
SINCE 2009 - 2020