Beiträge von Kaliber

    Hmm das was ich im Admin Befehl geschrieben hatte, schreibs mal so:



    C
    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.

    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 :P


    Ich empfehle dir sowas:


    Und schau mal hier rein: Schneller & strukturierter skripten Eventuell hilft das ein wenig :)

    anscheinend sind das doch nicht die schwarzen schafe

    In der Log Datei steht doch, wieso es scheitert, hast dir das eigentlich mal angeschaut? ^^



    SQL
    [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...

    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:

    • Welchen "CMD-Prozessor" nutzt du? ocmd, zcmd...usw
    • Positionen von Toiletten und U-Bahn-Tunneln
    • Das mit dem abwischen versteh ich nicht, was soll da passieren und wie passt das zur letzten Aussage mit der Bank?

    return eingebaut

    Damit zerstört du aber die Funktion der Schleife, deshalb sagte ich break. (Also für andere Spieler geht dann die Schleife evtl nicht mehr.)


    Auslagern hilft auch hier und hält den Code strukturierter.


    Hier mal ein Tutorial, was ich geschrieben hatte: Schneller & strukturierter skripten

    Du solltest mal sowas wie break benutzen...


    Ansonsten rattert der dir da ja eine Schleife mit 500*MAX_CARS*MAX_CARS*MAX_CARS durch...und das halt eben alle paar Millisekunden, je nach timer-intervall.


    Das ist ja jetzt nicht so das, was du eigentlich willst..


    Es ist an sich nicht sehr schlau den Tank für jedes Fahrzeug in nem anderen Array zu speichern ^^


    Vielleicht sollte man das vereinheitlichen.


    Zudem deklariert man keine Variablen in Schleifen...so muss der nämlich immer und immer wieder alles neu allozieren.


    Man kann das auch alles kürzen und eleganter schreiben, das werd ich dir machen, wenn du mir sagst wie groß jeweils:


    playerCar, fcarInfo und ahCarInfo sind.


    Also wie hast du die deklariert?