Moin, hier ist der Befehl, und OnGameModeExit wird nicht aufgerufen und die funktionen darin werden nicht ausgeführt.
Das selbe mit der Funktion Disconnect, dies ist eine SpeicherFunktion für den Spieler, funktioniert aber unter onPlayerdisconnect hat wer ne ahnung?
dcmd_gmx(playerid,params[])
{
#pragma unused params
if(GetPlayerInt(playerid,"Admin") < 6) return SendClientMessage(playerid, COLOR_GREY, " Du bist kein Admin!");
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
Disconnect(i);
}
}
OnGameModeExit();
SendRconCommand("gmx");
return 1;
}
/gmx speichert keine Daten.
- RunAway
- 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
-
-
Zeig mal deinen Stock "Disconnect".
MfG
-
Disconnect(playerid)
{
Admin_OnPlayerDisconnect(playerid);
new Float:pX,Float:pY,Float:pZ,Float:pR;
GetPlayerFacingAngle(playerid,pR);
GetPlayerPos(playerid,pX,pY,pZ);
new id[10];
format(id,10,"%d",GetPlayerID(playerid));
mysql_SetInt("accounts","Spawn",1,"ID",id);
mysql_SetInt("accounts","SpawnInt",GetPlayerInterior(playerid),"ID",id);
mysql_SetInt("accounts","SpawnVW",GetPlayerVirtualWorld(playerid),"ID",id);
mysql_SetFloat("accounts","SpawnX",pX,"ID",id);
mysql_SetFloat("accounts","SpawnY",pY,"ID",id);
mysql_SetFloat("accounts","SpawnZ",pZ,"ID",id);
mysql_SetFloat("accounts","SpawnR",pR,"ID",id);
return 1;
}
Wie gesagt auch OnGameModeExit wird nicht aufgerufen... -
Mach dir mal einen Befehl, /saveaccounts oder so und füge das ein
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
Disconnect(i);
SendClientMessage(playerid,FARBE,"Alle Accounts gespeichert.");
return 1;
}
}MfG
-
Und wo ist jetzt der unterschied
-
Guck mal ob dort die Funktion abgerufen wird, denn es kann ja sein, dass genau beim Serverrestart das Script nicht schafft die Accounts zu speichern.
Setzt vlt. einen Timer, z.B. "GMX in 5 Sekunden" dann bei dem Ausführen des Befehls speichert er alle Accounts und in 5 Sekunden kommt der Serverrestart.
MfG
-
Geh mal zu OnGameModeExit und füg das mal ein:
public OnGameModeExit()
{
for(new i=0; i<MAX_PLAYERS; i++) //Durchläuft alle Spieler, die gerade auf dem Server Online sind.
{
if(IsPlayerConnected(i))
{
SpeicherBefehl(i); //SpeicherBefehl durch deinen Stock / Public ersetzen, der die Spieler speichert
}
}
} -
Guck mal ob dort die Funktion abgerufen wird, denn es kann ja sein, dass genau beim Serverrestart das Script nicht schafft die Accounts zu speichern.
Setzt vlt. einen Timer, z.B. "GMX in 5 Sekunden" dann bei dem Ausführen des Befehls speichert er alle Accounts und in 5 Sekunden kommt der Serverrestart.
MfG
Hab ich auch schon gemacht !
Geh mal zu OnGameModeExit und füg das mal ein:
public OnGameModeExit()
{
for(new i=0; i<max_players; i++)="" durchläuft="" alle="" spieler,="" die="" gerade="" auf="" dem="" server="" online="" sind.
{
if(IsPlayerConnected(i))
{
SpeicherBefehl(i); //SpeicherBefehl durch deinen Stock / Public ersetzen, der die Spieler speichert
}
}
}unterschied?
-
Guck dir die "for" schleife einfach an ...
-
Das ist kein unterschied, da eine new gesetzte Variable eigentlich immer den Wert 0 trägt bringt es die schleife nicht und würde meine while schleife in OnGameModExit, die eine mysql tabelle durchläuft
-
-
Du brauchst einen SpielerSpeichern stock -_-
Edit: und mit der Forschleife die Funktion abrufen
-
Du brauchst einen SpielerSpeichern stock -_-
Edit: und mit der Forschleife die Funktion abrufen
omg wie wärs mal erstmal schauen und dann die fresse aufreisen?jeder spammt hier drunter ohne zu lesen
-
breadfish.de
Hat das Thema geschlossen.