Hey mein admin level setzt sich nach jeden restart auf 0.
Adminlevel setzt sich immerwieder auf 0
- xbluehazzex
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
bissel code währe guT?
speichern laden
-
jop momentstock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
//SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
//SpielerInfo[playerid][Fraktion]=dini_Int(Spielerdatei,"Fraktion");
return 1;
}stock SpielerSpeichern(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
return 1;
} -
Zitat
setzt sich nach jeden restart auf 0.
Was hast du bei OnPlayerDisconnect und bei OnGameModeExit stehen? -
Wann wird dieser abgerufen?
-
Deinen Adminmake Befehl bitte
-
Zitat
Deinen Adminmake Befehl bitte
Wenn man keine Ahnung hat..Zitatsetzt sich nach jeden restart auf 0.
Heißt bei OnGameModeExit speichert er nicht
-
Ich habe noch keinen Adminmake Befehl. Ich ändere es über die Datei und Speicher es ab.
onPlayer Dis/Connect...
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid,GELB,"Herzlich Willkommen auf iLife.");
SendClientMessage(playerid,GELB,"Wir sind noch in der Beta-Phase.");
SendClientMessage(playerid,ROT,"Deshalb melde Bugs den Admins. Danke!");new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(fexist(Spielerdatei))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Account gefunden... Gib bitte dein Passwort ein.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib das gewünschte Passwort ein.","Register","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
SpielerSpeichern(playerid);
return 1;
} -
Und jetzt bitte das was bei OnGameModeExit steht
-
noch nix
-
-
wass ist bei login stock und register stock
-
steht oben
-
public OnGameModeExit(){
for(new i = 0; i <MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
Speichern(i); //Deine Speicher Funktion hier hin
}
}
return 1;
}Erklärung: Wenn du ein GMX machst, dann speichert er alle Spieler die Online sind
-
den stock und nicht connect und disconnect
z.b.
Spoiler anzeigen
stock login
stock register
-
Hat er doch schon oben gepostet! -.-
/e:
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
//SpielerInfo[playerid][Adminlevel]=dini_Int(Spielerdatei,"Adminlevel");
//SpielerInfo[playerid][Fraktion]=dini_Int(Spielerdatei,"Fraktion");
return 1;
}stock SpielerSpeichern(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
return 1;
} -
Zitat
en stock und nicht connect und disconnect
Wenn man kein Plan hat.. Meine Lösung steht da -
Kriege 1 Errors
C:\Program Files (x86)\Symnatec\Selfmade-Server\gamemodes\iLife-Alpha.pwn(72) : error 017: undefined symbol "playerid"
C:\Program Files (x86)\Symnatec\Selfmade-Server\gamemodes\iLife-Alpha.pwn(76) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error.
Fehler zeilen public OnGameModeExit()
{
for(new i = 0; i <MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
SpielerSpeichern(playerid);
return 1;
}
}
return 1;}
-
SpielerSpeichern(i);
Die For-Schleife durchläuft die Variable "i", deswegen "i" anstatt "playerid".
-
Danke Shiix
Das Speichern Funktioniert immer noch nicht -
Arbeitest du mit OCMD?
Wenn ja, bau diesen Befehl bei dir ein:
ocmd:adm(playerid, params[])
{
Spieler[playerid][Admin] = 5; //Anpassen
SendClientMessage(playerid, Lila, "Du hast dich zum Level 5 Admin gemacht!"); //Farbe anpassen
SpielerSpeichern(playerid);
return 1;
}
Dann tippe im Spiel "/adm" ein, mach einen Serverrestart und schau ob es sich verändert hat.Hier ein Befehl um dein Adminlevel zu Checken:
ocmd:getadmlevel(playerid, params[])
{
new string[64];
new AdmLevel = Spieler[playerid][Admin]; //Anpassen
format(string, sizeof(string), "Dein Adminlevel: %d", AdmLevel);
SendClientMessage(playerid, Blau, string); //Farbe anpassen
return 1;
}