Carsystem MySQL

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
  • Ich bin gerade dabei mir das alte Tutorial von MrMonat anzuschauen bin bei dem Punkt wo ich die Function saveCarToDB erstelle


    Bekomme leider diese Fehlermeldungen:

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(917) : warning 202: number of arguments does not match definition

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(926) : error 017: undefined symbol "playerid"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(927) : error 017: undefined symbol "mysql_function_query"

    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.



    Die Codes sehen wie folgt aus:

    Code
    1. saveCarToDB(carid)
    2. {
    3. new query[128];
    4. format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][id], cInfo[carid][model], cInfo[carid][c_x], cInfo[carid][c_y], cInfo[carid][c_z], cInfo[carid][c_r]); //926
    5. mysql_function_query(dbhandle,query,false,"",""); //927
    6. return 1;
    7. }

    dazu die gehörige createPlayerCar Funktion diese sieht wie folgt aus

    hier ist der Befehl mit dem ich das Fahrzeug für Spieler X erstelle:

  • PAWN
    1. saveCarToDB(playerid,carid)
    2. {
    3. new query[128];
    4. format(query,sizeof(query),"INSERT INTO autos (besitzer,model,x,y,z,r) VALUES ('%i','%i','%f','%f','%f','%f')",PlayerInfo[playerid][id],cInfo[carid][model],cInfo[carid][c_x],cInfo[carid][c_y],cInfo[carid][c_z],cInfo[carid][c_r]);
    5. mysql_function_query(dbhandle,query,true,"carSavedToDB","i",carid);
    6. return 1;
    7. }

    Versuchs mal so.


    //edit


    GetPlayerName(playerid,cInfo[i][besitzer],MAX_PLAYER_NAME);


    das würde ich am besten mit der sql id machen.

    cInfo[i][besitzer]=PlayerInfo[playerid][id];

    itsma.png

    F5lGtIO.png

  • C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(926) : error 017: undefined symbol "id"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(927) : error 017: undefined symbol "mysql_function_query"

    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    /edit

    Schnalle grade deine Edits nicht wirklich :D

  • wie hast du die sql_id bei dir im PlayerInfo Enum genannt?


    Welche MySQL version nutzt du?

    itsma.png

    F5lGtIO.png

  • Ich nutze die Version mysql-R41-4



    Mein PlayerInfoEnum sieht so aus:

    • Hilfreich

    Ich nutze die Version mysql-R41-4

    Dann bringt es dir nix von MrMonat zu kopieren :D Funktionen haben sich geändert hier versuchs mal hiermit.


    PAWN
    1. new query[200];
    2. 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]);
    3. mysql_tquery(handle, query);

    itsma.png

    F5lGtIO.png

  • iTsMaho Genau aus diesem Grund habe ich mal aufgehört... Weil ich einfach leider 0 ahnung habe wie die neuen functionen sind etc. aber er das in den Videos halt immer recht gut erklärt verstehe ich das halt... und wenn neue funktionen sind ist halt wissen = 0 :D


    /edit iTsMaho

    auch mit return 1; oder return einfach weg lassen?

  • iTsMaho


    Hey hab wieder paar Probleme hab aber auch schon die ein oder anderen sachen selbst versucht wirst du wahrscheinlich irgendwo finden wenn nicht schreib ich es noch hinter


    die Errors:

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(955) : error 017: undefined symbol "carid"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1058) : warning 202: number of arguments does not match definition

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1062) : error 025: function heading differs from prototype

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1065) : error 017: undefined symbol "cache_get_data"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1067) : error 036: empty statement

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1070) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1071) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1072) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1073) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1074) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1075) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1076) : error 017: undefined symbol "cache_get_field_content_int"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1064) : warning 203: symbol is never used: "num_fields"

    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    11 Errors.




    Code
    1. 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]); //955
    2. mysql_tquery(handle, query);


    Code
    1. public carSavedToDB(carid)
    2. {
    3. cInfo[carid][db_id]= cache_insert_id(handle); //1058
    4. return 1;
    5. }


  • 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).

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S


  • 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 :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • kommt dann das bei rum nachdem ich das zu float geändert habe bei x y z r bei besitzer bleibt ja int richtig?


    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(569) : error 017: undefined symbol "COLOR_DARK_RED"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(570) : error 017: undefined symbol "COLOR_DARK_RED"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(966) : error 017: undefined symbol "carid"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1069) : warning 202: number of arguments does not match definition

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1073) : error 025: function heading differs from prototype

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1076) : error 017: undefined symbol "cache_get_data"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1078) : error 036: empty statement

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1081) : error 017: undefined symbol "i"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1082) : error 017: undefined symbol "i"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1083) : error 017: undefined symbol "i"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1084) : error 017: undefined symbol "i"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1085) : error 017: undefined symbol "i"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1086) : error 017: undefined symbol "i"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1086) : error 029: invalid expression, assumed zero

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1086 -- 1087) : warning 215: expression has no effect

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1075) : warning 203: symbol is never used: "num_fields"

    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    13 Errors.

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


    Es sollte dann ungefähr so aussehen:


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Okay jetzt habe ich nur noch 6 Errors



    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(966) : error 017: undefined symbol "carid"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1069) : warning 202: number of arguments does not match definition

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1073) : error 025: function heading differs from prototype

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1083) : error 017: undefined symbol "x"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1084) : error 017: undefined symbol "y"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1085) : error 017: undefined symbol "z"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1086) : error 017: undefined symbol "r"

    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    6 Errors.


    hier ist auch noch mein Enum falls notwendig:

    Kaliber

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


    C
    1. cache_get_value_name_float(i, "x", cInfo[id][c_x]);
    2. cache_get_value_name_float(i, "y", cInfo[id][c_y]);
    3. cache_get_value_name_float(i, "z", cInfo[id][c_z]);
    4. 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

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Vielen Dank! Größtenteils alle Fehler behoben bis auf:


    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(966) : error 017: undefined symbol "carid"

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1069) : warning 202: number of arguments does not match definition

    C:\Users\Dustin\Desktop\Samp Scripting\gamemodes\reallife.pwn(1073) : error 025: function heading differs from prototype

    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.




    Code
    1. loadPlayerCars(playerid)
    2. {
    3. new query[200];
    4. 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
    5. mysql_tquery(handle, query);
    6. return 1;
    7. }
    Code
    1. public carSavedToDB(carid)
    2. {
    3. cInfo[carid][db_id]= cache_insert_id(handle); //1068
    4. return 1;
    5. }


  • 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
    1. loadPlayerCars(playerid,carid) //Musst die carid noch mit angeben...oder du machst das in der Funktion...kp wie da dein Code aufgebaut ist
    2. {
    3. new query[200];
    4. 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
    5. mysql_tquery(handle, query);
    6. return 1;
    7. }
    C
    1. public carSavedToDB(carid)
    2. {
    3. cInfo[carid][db_id]= cache_insert_id(); //Einfach ohne handle
    4. return 1;
    5. }



    //Edit:


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

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

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

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen