Er sagt SavePlayer ist nicht dasselbe wie SaveGame.
Account Save Problem
- ElDiabolo
- 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
-
-
Schon klar, habe ich aber auch nie behauptet
-
Wenn ich von SavePlayer spreche kannst du doch nicht einfach auf SaveGame schließen
Der Fehler liegt immer noch bei SavePlayer
-
stock SaveGame()
{
for(new i=0; i<GetMaxPlayers(); i++)
{
SavePlayer(i);
SendAdminMessage(cGelb, "Die Accounts wurden gespeichert.");
//return 1;
}
return 1;
}Deine SendAdminMessage ergibt iwie keinen Sinn... Überleg mal warum...
-
Wenn ich von SavePlayer spreche kannst du doch nicht einfach auf SaveGame schließen
Der Fehler liegt immer noch bei SavePlayer
Nope. Denn wenn Onplayerdisconnect auftritt, speichert es korrekt.
stock SaveGame()
{
for(new i=0; i<getmaxplayers(); i++)
{
SavePlayer(i);
SendAdminMessage(cGelb, "Die Accounts wurden gespeichert.");
//return 1;
}
return 1;
}Deine SendAdminMessage ergibt iwie keinen Sinn... Überleg mal warum...
Weil sie in der Schleife gesendet wird?
edit: Zitat eingefügt.
-
Mach es unter OnPlayerDisconnect
-
Schon klar, aber es soll ja ausgeführt werden, wenn ich den Server restarte
edit: Verdeutlicht. -
for(new i; i!=MAX_PLAYERS; i++)
GetMaxPlayers in OnGameModeExit verwenden sehr schlau... -
Also wenn einer Disconnected, funktioniert es...
for(new i=1;i<MAX_PLAYERS;i++)
{
OnPlayerDisconnect(i, 1);
return 1;
}
Unter ongamemodeexit funktioniert nicht. Genauso wenig wie SavePlayer(i); -
for(new i=1;i<MAX_PLAYERS;i++)
1. Wo ist hier bitte die logik?
2. OnPlayerDiscconnect kannst du nicht mit OnGameModeExit vergleichen -
-
Und wie kann ich es dann machen, dass die User beim Exit des Gamemodes alle gespeichert werden?
-
Zitat
stock SavePlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
}
}
return 1;
}
Ich geh einfach mal davon aus das dein SavePlayer noch so aussieht,
jetzt denk mal logisch nach.
Ein Spieler kann bei OnGameModeExit NICHT connected sein, ist aber noch solange für den Server Connected wie OnPlayerDisconnect braucht um komplett ausgeführt worden zu sein.
Was solltest du ändern?
A: IsPlayerNPC
B: IsPlayerConnected
oder C: gar nichts -
Ist doch schon geändert. Dumm bin ich auch nicht
-
Gut das wusst ich nicht ...
Mhm dann liegt es an der MySQL Connection die abbricht.
Vorschlag, schreib alles In eine Datei und beim Laden speicherst du es in die DB -
Geht es nicht auch anderst bzw. einfacher?
-
Denke mal nicht, wie willst du denn biite gewährleisten das die Connection in OnGameModeExit noch schnell genug zum speichern ist?
-
Und wenn ich das ganze vorher machen würde, würde es dann korrekt funktionieren? Muss ich mal probieren.
-
Du könntest einen Timer setzen dann wäre das alles kein Problem
-
Das weiß ich schon. Die Frage ist nur, ob die Funktion richtig ist.
-
breadfish.de
Hat das Thema geschlossen.