Die Funktion heißt: https://www.w3schools.com/jsref/met_win_setinterval.asp
Ja, die gibt es auch bei Server-seitigem JS
Die Funktion heißt: https://www.w3schools.com/jsref/met_win_setinterval.asp
Ja, die gibt es auch bei Server-seitigem JS
Hab's geschafft
Okay, jup aber dort wird kein Query angezeigt, das bedeutet es wird keins verschickt...
Setz mal ein print über das Query und schau, ob das ausgeführt wird.
Oder sollte das query jetzt schon ausgeführt werden oder hast du mir nur den Log nach dem Server Start gegeben?! ![]()
Ich weiß
Hast du eventuell 2x mysql_log oder sowas in deinem Skript?
Hast du es auch wirklich compilt...usw
Es muss einen Log geben, sonst würde das heißen, dass du kein MySQL nutzt ![]()
Es gibt dann eine extra Datei bei deinem Server_Log, die heißt mysql_log ![]()
und im MySQL Log steht auch nichts.
Musst natürlich auch unter OnGameModeInit das hier schreiben: mysql_log(LOG_ALL);
Alles anzeigenfor(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn])
{
SaveUserStats(i);
}
}
Hmm das was ich im Admin Befehl geschrieben hatte, schreibs mal so:
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn])
{
SaveUserStats(i);
PlayerInfo[i][pLoggedIn] = 0;
}
}
Und dann probiere es nochmal.
Wenn es dann immer noch nicht geht, lass mal den mysql_log mitlaufen und schau dann da mal rein.
Und:
Wie sieht denn die Funktion: SaveUserStats aus? ![]()
Hab ich tatsächlich schon und verwende schon:
Ahh, das freut mich ![]()
Aber das war auf das hier z.B. bezogen:
if(PlayerInfo[playerid][pLoggedIn] == 0) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht eingeloggt.");
Hatte ja gezeigt, wie man das nur noch 1x schreiben muss xD
Der /restart Befehl:
Du Restartest den Server, bevor du SaveUserStats verwendest.
Und du speicherst auch nur für den, der den restart Befehl eingibt, du Egoist ![]()
Ich empfehle dir sowas:
ocmd:restart(playerid, params[])
{
if(!isAdmin(playerid, 4)) return SendClientMessage(playerid, COLOR_GREY, "Diesen Befehl darfst du nicht benutzen!");
if(PlayerInfo[playerid][pLoggedIn] == 0) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht eingeloggt.");
new nachricht[128];
format(nachricht, sizeof(nachricht), "[Server-Restart] %s %s hat den Server neugestartet, wir bitten um einen Moment Geduld!", TeamNames[PlayerInfo[playerid][adminlevel]], SpielerName(playerid));
SendClientMessageToAll(COLOR_GREEN, nachricht);
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pLoggedIn])
{
SaveUserStats(i);
}
}
//Bisschen Zeit lassen für die Datenbank
SetTimer("@restart",1000,0);
return 1;
}
@restart();@restart()
{
SendRconCommand("gmx");
return 1;
}
Alles anzeigen
Und schau mal hier rein: Schneller & strukturierter skripten Eventuell hilft das ein wenig ![]()
Ich finde irgendwie den Fehler nicht
Du packst random Arrays in dein Query.
Wolltest du evtl ein %s nutzen bei den Spawn_Out[0] oder hast du wirklich die Spalte so genannt? ![]()
Dann probier mal sowas: `Spawn_Out[0]`
anscheinend sind das doch nicht die schwarzen schafe
In der Log Datei steht doch, wieso es scheitert, hast dir das eigentlich mal angeschaut? ![]()
[08/25/18 14:09:56] [DEBUG] retrieved and pushed value 'UPDATE `user` SET `Level` = '1', `Money` = '115', `AdminLevel` = '0', `DonateRank` = '0', `UpgradePoint` = '0', `Registered` = '1', `Sex` = '1', `Age` = '27', `OriginHerkunft` = '1', `Muted` = '0', `Bank` = '0', `Deaths` = '1' WHERE `Username` = 'Tstuser01gg''
[08/25/18 14:09:56] [ERROR] error #1054 while executing query "UPDATE `user` SET `Gun7` = '0', `Gun8` = '0', `Gun9` = '0', `Gun10` = '0', `Gun11` = '0', `Gun12` = '0', `Ammo1` = '0', `Ammo2` = '0', `Ammo3` = '0', `Ammo4` = '0', `Ammo5` = '0', `Ammo6` = '0', `Ammo7` = '0', `Ammo8` = '0', `Ammo9` = '0', `Ammo10` = '0', `Ammo11` = '0', `Ammo12` = '0' WHERE `Ùsername` = 'Tstuser01gg'": Unknown column 'Ùsername' in 'where clause'
Etwas stimmt mit deinem String, wo du den Spielernamen speicherst.
Und du solltest deine %d überprüfen, da scheint ein Fehler zu sein...
Unterlasse doch bitte vollzitate
Aufruft ? Was ist das xD
Aufruf...
denke mal die letzten beide
..ja das sage ich seid 3 Posts...printe das doch einfach mal und prüfe es dadurch ![]()
Brauchst du nicht, es reicht ja, wenn du noch ein print jeweils zu dem Aufruft packst ![]()
Denn ich glaube, der letzte Codeblock, wo du die letzten beiden Querys drinnen hast, wird einfach nicht aufgerufen.
Kriege nur 6 "wurde abgerufen" nachrichten
Keine Ahnung, was du da machst, wo sind denn die prints dazu?
Und bei dem letzten hast du das query auskommentiert, da kann also nichts kommen und bei dem anderen, wird dieser Codeblock denn überhaupt aufgerufen?!
OnPlayerDeath
Ein Fehler tritt schonmal unter OnPlayerDeath.
Du prüfst nicht, ob killerid != INVALID_PLAYER_ID ist.
Und dadurch kommt es zu Fehlern in einem Array.
Bei deinen Querys sieht doch alles gut aus:
[INFO] Callback successfully executed.
//Edit:
Gibt es eine Möglichkeit bei einem Array der ( Primary ID ) einen Wert hinzuzufügen ohne sowas z.b
Ja generell schon, aber bei genau so einer Art von Array, ist das nicht ohne weiteres möglich.
Aber ist ja auch nicht schlimm, da das ja nur 1x unter OnGameModeInit aufgerufen wird und gut ist ![]()
Ahh ja, wird wohl ein realistic Roleplay Server ![]()
Wie auch immer man wem in den Arsch kacken will.
Aber anyway um dir das zu machen, müssen wir erst ein paar Dinge wissen:
der server ist dann abgestürzt nachdem ich ihn velrassen habe
Dann lade mal das crashdetect Plugin, das sagt dir dann genau, wieso er gecrasht ist ![]()
Hab den string query mal auf 1000 gesetzt
Kann man machen, aber ich denke 512 hätten fürs Erste auch gereicht ![]()
Ich hatte da mal was geschrieben gehabt: Easy Saving
Damit kannst du enums einfach speichern.
Der nimmt direkt die Werte aus dem enum und speichert die.
In dem Thread ist ja alles beschrieben ![]()
Die Frage ist, was genau willst du machen und was genau soll "dynamisch" sein?
Zeig uns mal die ganze Fehlermeldung, also mit Zeilen und dann zeige uns bitte auch die Zeilen ![]()