Hallo,
Ich sitze derzeit an meinem Adminsystem und habe eine Frage.
Und zwar würde ich gerne die Adminränge mit in der Datenbank speicher lassen.
Also nicht das z.b bei
/setadmin player adminlevel Nur die 1 Ausgegeben wird.
Ich habe derzeit folgendes angefangen umzusetzen.
Die Adminränge werden per #Define dekladiert:
#define ADMIN_LEVEL_1_NAME "Supporter"
#define ADMIN_LEVEL_2_NAME "Admin"
Dafür hab ich eine Funktion geschrieben:
GetAdminRank(playerid)
{
new arank[64];
switch(PlayerInfo[playerid][pAdmin])
{
case 2: arank = ADMIN_LEVEL_2_NAME;
case 1: arank = ADMIN_LEVEL_1_Name;
}
return arank;
}
Und würde gerne die Funktion in meinem Befehl nutzen:
CMD:setadmin(playerid,params[])
{
new string[128];
if(PlayerInfo[playerid][pAdmin] >= 1)
{
if(sscanf(params,"ui",p_id ,pAdmin))return SendClientMessage(playerid,0x00FF00,"[Info] /setadmin [playerid][adminlevel]");
PlayerInfo[p_id][pAdmin] = pAdmin;
mysql_format(handle, string, sizeof(string), "UPDATE `users` SET `admin` = '%d' WHERE `id` = %d", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][p_id]);
mysql_pquery(handle, string);
SendClientMessage(playerid,0x00FF00,"Du hast den Adminrang geändert");
}
else
{
SendClientMessage(playerid,0x00FF00, "[ ! ] Du besitzt keine Rechte um diesen Befehl auszuführen!"); // Keine Rechte
}
return 1;
}
Ich weiß man könnte es über die Funktion / Variable Case : probieren.
Nur leider weiß ich nicht genau wie ich da Ansetzen soll.
Habe derzeit nur folgende Idee im Kopf:
switch(PlayerInfo[playerid][pAdmin])
{
case 1: format(string, sizeof(string), "%s (%d) - Level %d (%s)", pName(i), i, PlayerInfo[i][pAdmin], ADMIN_LEVEL_1_NAME);
}
Leider komme ich nicht bei der Umsetzung weiter.