Hi Community,
Mein Enum speichert irgendwie keine Werte. Ab und zu hat es funktioniert aber jetzt geht es garnicht mehr. Hier ein beispiel:
Das ist erstmal mein Enum:
enum sDaten
{
loggedin,
passwort,
geld,
level,
kills,
deaths,
adminlevel, -- Hier das Beispiel fürs Adminlevel
exp,
spielerpayday,
spielzeit,
Float:sx,
Float:sy,
Float:sz,
Float:sr
}
new spielerD[MAX_PLAYERS][sDaten];
Dann ist hier ein Command womit ich das Adminlevel setten kann:
ocmd:makeadmin(playerid,params[])
{
new pID, alevel, name[MAX_PLAYER_NAME], name2[MAX_PLAYER_NAME], string[400], string2[400], Spieler[200];
if(spielerD[playerid][adminlevel] >= 3)
{
if(sscanf(params,"ui",pID,alevel)) return SendClientMessage(playerid,rot,"Befehl: /makeadmin [ID] [Level 1-3]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online.");
if(alevel >= 0 && alevel <= 3)
{
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(pID,name2,sizeof(name2));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name2);
dini_IntSet(Spieler,"Adminlevel",alevel);
format(string,sizeof(string),"Du wurdest vom Admin %s zum Adminlevel %i ernnant.",name,alevel);
format(string2,sizeof(string2),"Du hast den Spieler %s zum Adminlevel %i ernnant.",name2,alevel);
SendClientMessage(playerid,blau,string2);
SendClientMessage(pID,blau,string);
aktuSpieler(pID);
return 1;
}
}
return 1;
}
Und hier aktuSpieler(playerid), speicherSpieler(playerid) und ladeSpieler(playerid) um die Daten in der textdatei zu aktualisieren/zu laden/zu speichern:
stock ladeSpieler(playerid)
{
new Spieler[200], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name);
spielerD[playerid][geld] = dini_Int(Spieler,"Geld");
spielerD[playerid][level] = dini_Int(Spieler,"Level");
spielerD[playerid][deaths] = dini_Int(Spieler,"Deaths");
spielerD[playerid][kills] = dini_Int(Spieler,"Kills");
spielerD[playerid][adminlevel] = dini_Int(Spieler,"Adminlevel");
spielerD[playerid][exp] = dini_Int(Spieler,"Erfahrungspunkte");
spielerD[playerid][spielerpayday] = dini_Int(Spieler,"Payday");
spielerD[playerid][spielzeit] = dini_Int(Spieler,"Spielzeit");
spielerD[playerid][sx] = dini_Float(Spieler,"X-Spawn");
spielerD[playerid][sy] = dini_Float(Spieler,"Y-Spawn");
spielerD[playerid][sz] = dini_Float(Spieler,"Z-Spawn");
spielerD[playerid][sz] = dini_Float(Spieler,"R-Spawn");
GivePlayerMoney(playerid,spielerD[playerid][geld]);
SetPlayerScore(playerid,spielerD[playerid][level]);
dini_IntSet(Spieler,"loggedin",1);
return 1;
}
stock speicherSpieler(playerid)
{
new Spieler[200], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name);
GetPlayerPos(playerid,spielerD[playerid][sx],spielerD[playerid][sy],spielerD[playerid][sz]);
dini_IntSet(Spieler,"Geld",spielerD[playerid][geld]);
dini_IntSet(Spieler,"Level",spielerD[playerid][level]);
dini_IntSet(Spieler,"Deaths",spielerD[playerid][deaths]);
dini_IntSet(Spieler,"Kills",spielerD[playerid][kills]);
dini_IntSet(Spieler,"Adminlevel",spielerD[playerid][adminlevel]);
dini_IntSet(Spieler,"Erfahrungspunkte",spielerD[playerid][exp]);
dini_IntSet(Spieler,"Payday",spielerD[playerid][spielerpayday]);
dini_IntSet(Spieler,"Spielzeit",spielerD[playerid][spielzeit]);
dini_FloatSet(Spieler,"X-Spawn",spielerD[playerid][sx]);
dini_FloatSet(Spieler,"Y-Spawn",spielerD[playerid][sy]);
dini_FloatSet(Spieler,"Z-Spawn",spielerD[playerid][sz]);
dini_FloatSet(Spieler,"R-Spawn",spielerD[playerid][sr]);
dini_IntSet(Spieler,"loggedin",0);
return 1;
}
stock aktuSpieler(playerid)
{
new Spieler[200], name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name);
GetPlayerPos(playerid,spielerD[playerid][sx],spielerD[playerid][sy],spielerD[playerid][sz]);
dini_IntSet(Spieler,"Geld",spielerD[playerid][geld]);
dini_IntSet(Spieler,"Level",spielerD[playerid][level]);
dini_IntSet(Spieler,"Deaths",spielerD[playerid][deaths]);
dini_IntSet(Spieler,"Kills",spielerD[playerid][kills]);
dini_IntSet(Spieler,"Adminlevel",spielerD[playerid][adminlevel]);
dini_IntSet(Spieler,"Erfahrungspunkte",spielerD[playerid][exp]);
dini_IntSet(Spieler,"Payday",spielerD[playerid][spielerpayday]);
dini_IntSet(Spieler,"Spielzeit",spielerD[playerid][spielzeit]);
GetPlayerFacingAngle(playerid,spielerD[playerid][sr]);
dini_FloatSet(Spieler,"X-Spawn",spielerD[playerid][sx]);
dini_FloatSet(Spieler,"Y-Spawn",spielerD[playerid][sy]);
dini_FloatSet(Spieler,"Z-Spawn",spielerD[playerid][sz]);
dini_FloatSet(Spieler,"R-Spawn",spielerD[playerid][sr]);
return 1;
}
Mein Problem ist jetzt das zum beispiel. Wenn ich den Command /makeadmin [ID] [adminlevel] eingebe das sich die Daten in der .txt Datei nicht aktualisieren/speichern.
Das gleich ist beim Level und Geld so.
Kann mir da jmd. bitte helfen?
mfg FaPlays