-
Hi!
Van egy /admins parancsom,de csak a nevet,IDt és a szintet mutassa,nekem úgy kellene,hogy a rangot is mutassa!
1es:Moderátor
2es:Adminiztrátor
3as:Fõ Adminisztrátor
4es:Tulajdonos
/admins parancs:
CMD:admins(playerid,params[])//Online Adminisztrátorok lekérdezése(Player)
{
new string[256], name[MAX_PLAYER_NAME];
for(new x, level; x < MAX_PLAYERS; x++) {
level = PlayerInfo
if(level) {
GetPlayerName(x, name, sizeof(name));
format(string, sizeof(string), \"{F81414}%s%s{6EF83C}(ID:%i) - {FFAF00}Szint:{FF00EA} %i\\n\", string, name, x, level);
}
}
if(!strlen(string)) SendClientMessage(playerid, COLOR_ULTRARED, \"Jelenleg nincs Online Adminisztrátor!\");
else ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_MSGBOX, \"Online Adminisztrátorok:\", string, \"Bezár\", \"\");
return 1;
}
Így kellene:
Név:XY (ID:XY) - Szint:XY [Rang]
Elõre is köszönöm! :D
-
new adminstr[20];
switch(PlayerInfo[playerid][Admin])
{
case 1: adminstr = \"Moderátor\";
case 2: adminstr = \"Admin\";
//STB....
}
Ezzel az \"adminstr\" változóba lesz hogy milyen rangú.
case 1: tehát hogyha az Admin változód értéke 1.
case 2: tehát hogyha az Admin változód értéke 2.
és 3 és 4.
Én így oldom meg mindig.
UI:
CMD:admins(playerid,params[])//Online Adminisztrátorok lekérdezése(Player)
{
new string[256], name[MAX_PLAYER_NAME],adminstr[20];
for(new x, level; x < MAX_PLAYERS; x++) {
level = PlayerInfo
switch(PlayerInfo
{
case 1: adminstr = \"Moderátor\";
case 2: adminstr = \"Admin\";
case 3: adminstr = \"FõAdmin\";
case 4: adminstr = \"Tulaj\";
}
if(level) {
GetPlayerName(x, name, sizeof(name));
format(string, sizeof(string), \"{F81414}%s%s[%s]{6EF83C}(ID:%i) - {FFAF00}Szint:{FF00EA} %i\\n\", string, name, adminstr,x, level);
}
}
if(!strlen(string)) SendClientMessage(playerid, COLOR_ULTRARED, \"Jelenleg nincs Online Adminisztrátor!\");
else ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_MSGBOX, \"Online Adminisztrátorok:\", string, \"Bezár\", \"\");
return 1;
}
-
Szerintem ez a ciklus ebben a formában nem helyes:
for(new x, level; x < MAX_PLAYERS; x++)
Én így csinálnám meg:
CMD:admins(playerid,params[])//Online Adminisztrátorok lekérdezése(Player)
{
new string[256], name[MAX_PLAYER_NAME],adminstr[20];
for(new x = 0;x < MAX_PLAYERS; x++)
{
if(!IsPlayerConnected(x)) continue;
switch(PlayerInfo
{
case 1: adminstr = \"Moderátor\";
case 2: adminstr = \"Admin\";
case 3: adminstr = \"FõAdmin\";
case 4: adminstr = \"Tulaj\";
}
if(PlayerInfo
{
GetPlayerName(x, name, sizeof(name));
format(string, sizeof(string), \"{F81414}%s%s[%s]{6EF83C}(ID:%i) - {FFAF00}Szint:{FF00EA} %i\\n\", string, name, adminstr,x, PlayerInfo
}
}
if(!strlen(string)) SendClientMessage(playerid, COLOR_ULTRARED, \"Jelenleg nincs Online Adminisztrátor!\");
else ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_MSGBOX, \"Online Adminisztrátorok:\", string, \"Bezár\", \"\");
return 1;
}
-
Kipróbálom;majd írok!Köszi,megy a +.