Beiträge von Kaliber

    Fast...


    C
    loadPlayerCars(playerid) 
    { 
    new query[200]; 
    mysql_format(handle, query, sizeof(query), "SELECT * FROM autos WHERE besitzer=%d",PlayerInfo[playerid][p_id]); //966 
    mysql_tquery(handle, query, "OnPlayerCarsLoad","i",playerid);
    return 1; 
    }

    Hab es mehr oder weniger copy&pasted (selbst eingegeben etc.)

    Jetzt nichts für ungut oder so, aber du hast das komplett falsch abgetippt und benannt, wtf :D


    Du kannst doch sogar in der Beschreibung dir den Quellcode downloaden und anschauen/nutzen.


    Was bei dir loadPlayerCars heißt (was ein absolut Quatsch-Name für die Funktion ist), sieht bei ihm so aus:


    C
    saveCarToDB(playerid,carid)
    {
        new query[128];
        format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",sInfo[playerid][db_id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
        mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
        return 1;
    }

    Fallen dir Unterschiede im Query und im Namen auf? :D


    //Edit: Jetzt hab ich erstmal den Anfang des Threads gelesen, die Syntax hat Maho vorgegeben. Das ist super verwirrend für Neulinge von der Standard-Syntax abzuweichen, generell ist das bad practice, wenn es keinen krassen Vorteil bietet.



    Schau dir nochmal in Ruhe seinen Quellcode an (hier für dich mal der Direktlink https://pastebin.com/wvdygCFN)

    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.