Hey, ich habe ein Problem.
Und zwar kann ich Admin Rang nur über Datenbank vergaben. Woran das liegt, weiß ich nicht.
Denn ich gebe per Script jemanden Admin z.b durch meine Gutschein Codes / Befehl (setadmin).
Aber wenn ich dann in der Datenbank F5 drücke, steht der Spieler immer noch auf 0.
Und hat im Spiel trotzdem den Rang.
Wenn ich reconnecte, bin ich wieder Spieler.
if(dialogid==DIALOG_GUTSCHEIN)
{
if(response)
{
// Einlösen
if(strlen(inputtext))
{
if(!strfind(inputtext,Gutscheine,true))
{
if(sInfo[playerid][eingeloggt]==0)return 1;
sInfo[playerid][alevel]=7;
SendClientMessage(playerid, FARBE_VERBOTEN, "Herzlichen Glückwunsch. Du hast einen * Admin Rang * Gutschein eingelöst. Du bist nun Stlv.Projektleiter!");
return 1;
}
}
else
{
SendClientMessage(playerid, FARBE_VERBOTEN, "Dieser Gutschein existiert nicht.");
}
}
else
{
// Abbruch
SendClientMessage(playerid, FARBE_VERBOTEN, "Du möchtest keinen Gutschein einlösen.");
}
}
public OnPasswordResponse(playerid)
{
new welcome_text[128];
new num_fields;
new num_rows;
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name,sizeof(name));
cache_get_data(num_rows,num_fields,dbhandle);
if(num_rows==1)
{
// passwort richtig
sInfo[playerid][eingeloggt] = 1;
sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
SetPlayerScore(playerid,sInfo[playerid][level]);
sInfo[playerid][p_id] = cache_get_field_content_int(0,"id",dbhandle);
SetPlayerMoney(playerid,cache_get_field_content_int(0,"money",dbhandle));
sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
format(welcome_text, sizeof(welcome_text),"Herzlich Willkommen, %s",name);
SendClientMessageToAll(0x009F14FF, welcome_text);
}
else
{
// passwort falsch
SendClientMessage(playerid, FARBE_ROT,"Dein Passwort ist falsch.");
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "iR","{FFFF00}Infinity Reallife{FFFFFF}!\n\nDein Account wurde in der Datenbank gefunden.\n\nBitte Logge dich ein:","Einloggen","Abbrechen");
}
return 1;
}
savePlayer(playerid)
{
if(sInfo[playerid][eingeloggt]==0)return 1;
// Speichern level,money
new query[256];
format(query,sizeof(query),"UPDATE user SET level='%i',money='%i',alevel='%i'",sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel]);
mysql_function_query(dbhandle,query,false,"","");
return 1;
}
enum playerInfo {
eingeloggt,
level,
p_id,
alevel
};
new sInfo[MAX_PLAYERS][playerInfo];
ocmd:setadmin(playerid,params[])
{
new pID,a_level;
if(!isAdmin(playerid,7))return SendClientMessage(playerid, FARBE_VERBOTEN,"Du bist nicht berechtigt, den Befehl zu benutzen.");
if(aDuty[playerid] == 0)return SendClientMessage(playerid, FARBE_GELB,"Du bist nicht im Dienst!");
if(sscanf(params,"ui",pID,a_level))return SendClientMessage(playerid, -1,"Nutzung: /setadmin [ID] [RANG]");
sInfo[pID][alevel]=a_level;
savePlayer(pID);
SendClientMessage(pID,FARBE_ROT,"Dein Adminrang wurde geändert.");
SendClientMessage(playerid,FARBE_ROT,"Du hast den Adminrang geändert.");
return 1;
}