/admini

Započeo Goku ^, Jul 08, 2021, 02:30:00 PRE PODNE

prethodna tema - sledeća tema

0 članova i 3 gostiju pregledaju ovu temu.

Citat: tutankamon poslato Jul 08, 2021, 17:14:38 POSLE PODNE
Tako ce uzeti admin level od tebe koji gledas listu, probaj ovako:

                else
		{
			format(atext, sizeof atext, "\t%d", tempAdminData[i][1]);
		}

Znam skontao sam odmah pa sam izmenio u skripti nisam ovde fixao sam to odmah ae probacu ovo sto si napisao

E sada radi lepo pise sad Admin koji je dal je al1 al2 al3 al4 itd ali i dalje bleji Test Admin dole ispod koji ne radi cisto onako bleji a ako stavim sebi Test Admina pise Test admin i lepo radi ali i dalje ispod bleji opet Test Admin koji ne radi
Poslednja Izmena: Jul 08, 2021, 17:18:01 POSLE PODNE od Dime123

Dole bleji test admin iz razloga sto ti cuvas test admin level i admin level na dva razlicita mesta.
Sknini sebi test admina kada si admin i nece biti dole.

Citat: tutankamon poslato Jul 08, 2021, 17:36:25 POSLE PODNE
Dole bleji test admin iz razloga sto ti cuvas test admin level i admin level na dva razlicita mesta.
Sknini sebi test admina kada si admin i nece biti dole.
i kad skinem i kad ne skinem bleji dole Test Admin

Mozes poslati deo gde prikazuje dialog kako si do sada uradio?

Citat: tutankamon poslato Jul 08, 2021, 17:44:53 POSLE PODNE
Mozes poslati deo gde prikazuje dialog kako si do sada uradio?
CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera[playerid] == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
	}

	new tempAdminData[20][2]; // [20] => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
	new idx = 0;
	foreach(new i : Player)
	{
		if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTA] == 1)
		{
			tempAdminData[idx][0] = playerid;

			if(PlayerInfo[i][pTA] == 1)
			{
				tempAdminData[idx][1] = 0;
			}
			else
			{
				tempAdminData[idx][1] = PlayerInfo[i][pAdmin];
			}

			idx++;
		}
	}
	if(idx == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
	}
	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}");
		strcat(string, GetName(pid));
		strcat(string, "\t");
		if(AdminDuty[i] == 0)
	    {
	   	    strcat(string, "{F81414}Van Duznosti");
	    }
	    if(AdminDuty[i] == 1)
	    {
	   	    strcat(string, "{6EF83C}Na duznosti");
	    }
		if(tempAdminData[i][1] == 0)
		{
			format(atext, sizeof atext, "\t%s", "Test Admin");
		}
		else
		{
			format(atext, sizeof atext, "\t%d", tempAdminData[i][1]);
		}
		strcat(string, atext);
		strcat(string, "\n");
	}
	ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");
	return 1;
}

Probaj ovo:

dole sam stavio umesto i u pid za duty posto bi i proveravao indeks, a pid za igraca tako da nece biti pogresnih informacija
i stavio sam umesto <= u < kod poslednjeg for loopa

CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera[playerid] == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
	}

	new tempAdminData[20][2]; // [20] => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
	new idx = 0;
	foreach(new i : Player)
	{
		if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTA] == 1)
		{
			tempAdminData[idx][0] = playerid;

			if(PlayerInfo[i][pTA] == 1)
			{
				tempAdminData[idx][1] = 0;
			}
			else
			{
				tempAdminData[idx][1] = PlayerInfo[i][pAdmin];
			}

			idx++;
		}
	}
	if(idx == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
	}
	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}");
		strcat(string, GetName(pid));
		strcat(string, "\t");
		if(AdminDuty[pid] == 0)
	    {
	   	    strcat(string, "{F81414}Van Duznosti");
	    }
	    if(AdminDuty[pid] == 1)
	    {
	   	    strcat(string, "{6EF83C}Na duznosti");
	    }
		if(tempAdminData[i][1] == 0)
		{
			format(atext, sizeof atext, "\t%s", "Test Admin");
		}
		else
		{
			format(atext, sizeof atext, "\t%d", tempAdminData[i][1]);
		}
		strcat(string, atext);
		strcat(string, "\n");
	}
	ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");
	return 1;
}

Citat: tutankamon poslato Jul 08, 2021, 17:52:21 POSLE PODNE
Probaj ovo:

dole sam stavio umesto i u pid za duty posto bi i proveravao indeks, a pid za igraca tako da nece biti pogresnih informacija
i stavio sam umesto <= u < kod poslednjeg for loopa

CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera[playerid] == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
	}

	new tempAdminData[20][2]; // [20] => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
	new idx = 0;
	foreach(new i : Player)
	{
		if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTA] == 1)
		{
			tempAdminData[idx][0] = playerid;

			if(PlayerInfo[i][pTA] == 1)
			{
				tempAdminData[idx][1] = 0;
			}
			else
			{
				tempAdminData[idx][1] = PlayerInfo[i][pAdmin];
			}

			idx++;
		}
	}
	if(idx == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
	}
	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}");
		strcat(string, GetName(pid));
		strcat(string, "\t");
		if(AdminDuty[pid] == 0)
	    {
	   	    strcat(string, "{F81414}Van Duznosti");
	    }
	    if(AdminDuty[pid] == 1)
	    {
	   	    strcat(string, "{6EF83C}Na duznosti");
	    }
		if(tempAdminData[i][1] == 0)
		{
			format(atext, sizeof atext, "\t%s", "Test Admin");
		}
		else
		{
			format(atext, sizeof atext, "\t%d", tempAdminData[i][1]);
		}
		strcat(string, atext);
		strcat(string, "\n");
	}
	ShowPlayerDialog(playerid, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");
	return 1;
}

E sad nema dole da bleji Test Admin sad dobro radi, nego aj mi reci kako bi ja mogo sad da testiram to

Ukljuci sandbox i par gta sa ili raksamp pa im daj admina i isprobaj.

Citat: tutankamon poslato Jul 08, 2021, 18:07:23 POSLE PODNE
Ukljuci sandbox i par gta sa ili raksamp pa im daj admina i isprobaj.
Ne radi kada udjem preko sandbox i idem /admini budu dvojca na listi isti nick sve isto a kad gledam sa drugog acca isto tako nema ono Testic ispod Testic 2 pa na primer na duznost jedan a drugi ne i level e nije tako nego je na oba isto

Pokusaj sa iteratorima

foreach(new i : Iterator_ZaAdmine)
{
   if(PlayerInfo[i][varijablazaadmina] == 6)
   {
      formatiraj poruku i stavis admin level i ime igraca
      
      // i onda admin 5 4 3 2 1 0 -1 -2 -3 -trilion
   }
}

Citat: ʟᴀᴋᴇʀɪɴɢ poslato Jul 08, 2021, 21:25:44 POSLE PODNE
Pokusaj sa iteratorima

foreach(new i : Iterator_ZaAdmine)
{
   if(PlayerInfo[i][varijablazaadmina] == 6)
   {
      formatiraj poruku i stavis admin level i ime igraca
      
      // i onda admin 5 4 3 2 1 0 -1 -2 -3 -trilion
   }
}

Ne mogu to jer onda nece pisati Tes Admin nego samo Al1+ probao sam vec to :D

ako me razumes sta ocu reci sa ovime iznad ako ne snimicu ti

format(atext, sizeof atext, "\t%s", "Test Admin");



Big brain moments left the chat.


Sta je problem sa ovim kodom sto je decko ispisao cini se kao funkcionalan ?

Citat: __vedran.xyz77 poslato Jul 09, 2021, 12:40:39 POSLE PODNE
format(atext, sizeof atext, "\t%s", "Test Admin");



Big brain moments left the chat.


Sta je problem sa ovim kodom sto je decko ispisao cini se kao funkcionalan ?
Da li se cini funkcionalan ili ne ne radi kako treba

Probaj ovo, u sortiranju je postavljeno da svakome postavi id pozivaoca komande, logicka greska  :-[

CMD:admini(const playerid, const params[])
{
    if(UlogovanProvera[playerid] == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE,"* Moras se ulogovati da bi koristio ovu komandu!");
	}

	new tempAdminData[20][2]; // [20] => max broj admina, ovo je privremeni multidimenzionalni niz za cuvanje id-a i admin levela
	new idx = 0;
	foreach(new i : Player)
	{
		if (PlayerInfo[i][pAdmin] >= 1 || PlayerInfo[i][pTA] == 1)
		{
			tempAdminData[idx][0] = i;

			if(PlayerInfo[i][pTA] == 1)
			{
				tempAdminData[idx][1] = 0;
			}
			else
			{
				tempAdminData[idx][1] = PlayerInfo[i][pAdmin];
			}

			idx++;
		}
	}
	if(idx == 0)
	{
		return SendClientMessage(playerid, NS_ORANGE, "* Nijedan Admin nije trenutno online!");
	}
	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}");
		strcat(string, GetName(pid));
		strcat(string, "\t");
		if(AdminDuty[pid] == 0)
	    {
	   	    strcat(string, "{F81414}Van Duznosti");
	    }
	    if(AdminDuty[pid] == 1)
	    {
	   	    strcat(string, "{6EF83C}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, 21400, DIALOG_STYLE_TABLIST_HEADERS, "Admini online", string, "Izlaz", "");
	return 1;
}