Beiträge von Kaliber

    Kaliber habe gerade in der Datenbank den besitzer von INT auf VARCHAR geändert und an meinem enum bei besitzer[MAX_PLAYER_NAME] dran gehangen ist das so besser?

    Kannst es ruhig so lassen, wie du es hattest, das war schon sauber gelöst.


    Wie gesagt, ich dachte du hattest es anders gelöst.

    Achso, warte mal, dein besitzer ist ja doch ein int.


    Du referenzierst da also auf den Spieler, achso (verwirrende Bezeichnung).


    Dann bringst du playerid und carid durcheinander.


    Ufff, es ist sehr schwer dir so zu helfen, denn selbst wenn man die Compiler Fehler beseitigt, heißt das ja noch lange nicht, dass das System fehlerfrei funktioniert.


    Bei dir wird es das vermutlich nicht tun, da haufenweise Dinge durcheinander gewürfelt werden.


    Für so komplexe Systeme solltest du evtl Tutorials folgen oder dir spezifisch helfen lassen.


    C
    loadPlayerCars(playerid,carid) //Musst die carid noch mit angeben...oder du machst das in der Funktion...kp wie da dein Code aufgebaut ist
    {
        new query[200];
        mysql_format(handle, query, sizeof(query), "INSERT INTO autos SET besitzer=%d, model='%d', x='%f', y='%f', z='%f', r='%f'",PlayerInfo[playerid][p_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]); //966
        mysql_tquery(handle, query);
        return 1;
    }
    C
    public carSavedToDB(carid)
    {
        cInfo[carid][db_id]= cache_insert_id(); //Einfach ohne handle
        return 1;
    }



    //Edit:


    Dein Insert INTO Query ist völliger Quatsch, sollte das eventuell ein Update sein?

    Achso, ja ich hatte da mich an deinem Code orientiert, muss natürlich c_x, anstatt x heißen:


    C
            cache_get_value_name_float(i, "x", cInfo[id][c_x]);
            cache_get_value_name_float(i, "y", cInfo[id][c_y]);
            cache_get_value_name_float(i, "z", cInfo[id][c_z]);
            cache_get_value_name_float(i, "r", cInfo[id][c_r]);


    Ansonsten zeig uns mal die Zeilen 966 (hier etwas mehr code so + - 5 Zeilen), 1069 und 1073

    Nein, der Besitzer ist natürlich kein Int, sondern ein String.


    Es sollte dann ungefähr so aussehen:


    Dann war dein Versuch doch schon ganz richtig.


    Darfst nur nicht überall cache_get_value_name_int verwenden, sondern, wenn es sich um floats handelt eben cache_get_value_name_float.


    Und verwende nicht 0 als index, sondern eben einfach i :)

    Welche MySQL Version nutzt du denn?


    Die cache_get_field_content_int Funktion ist R33, anscheinend nutzt du eine neuere Version (was auch zu empfehlen ist).


    Eigener Versuch hier drunter

    Ja, das ist ja auch evtl ganz richtig...(Zumindest die Funktion, evtl nicht wie du es anwendest).

    Denkt ihr, es ist noch Sinnvoll, seine Zeit in einen dieser Server zu investieren?

    He?


    Das ist doch keine Investition, man spielt das, was einem gefällt und wo man Spaß hat...


    Und du vergleichst Birnen mit Äpfeln, denke man kann hier keinen Vergleich starten, jeder hat evtl einzigartige Features und seinen eigenen Charme.

    Oder hast du schon ein pragma dynamic in deinem Skript?

    Wenn ja, lösche das, compile nochmal (komplett ohne pragma dynamic) und poste die neue Meldung.

    Liest du auch, was ich schreibe?


    Offensichtlich verwendest du schon einmal pragma dynamic.


    Lösch es mal überall raus und poste nochmal die Meldung...


    //Edit:
    Oder kann es sein, dass du eine pawn.cfg in deinem Pawno Ordner hast?


    Wenn ja, lösche diese mal.

    Wo liegt der Fehler?

    Kann es sein, dass du einen Compiler Warning bekommst?


    Bzw unten da so komische Zahlen angezeigt werden?


    Ich glaube du reservierst viel zu viel Speicher, aufgrund dessen kommt es zur Stack/Heap Kollision, das hat nichts mit der Funktion an sich zu tun.

    Zeig uns mal dein Compiler Fenster nach dem compilen.

    Das sieht für mich schon fast nach einem Syncro Problem aus...


    Kannst ja mal aus Spaß einen Leeren Gamemode schreiben, wo du das so verwendest und dann mal testest, wenn es da funktioniert, impliziert das ein Syncro Problem.


    Das kann entstehen, wenn zu viel unter OnPlayerUpdate ist oder wenn da return 0; zurückgegeben wird.



    //Edit:

    Evtl kannst sogar über das Profiler Plugin mal ermitteln, wie das bei deinem Server so ist.