Autos auslesen

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo, mein Script sieht so aus:
    new query[128];
    format(query,sizeof(query),"SELECT * FROM userautos");
    mysql_function_query(dbhandle,query,true,"","");
    CreateVehicle(model,Float:c_x,Float:c_y,Float:c_z,Float:c_r,-1,-1,-1);


    Was muss ich nun machen, damit er das Auto erstellt, und ich möchte das ich die Datenbank ID mit /carinfo auslesen kann. (Mit Datenbankid meine ich, die ID des Datenbanksatzes).

  • Du musst einen Callback erstellen.


    Sprich statt mysql_function_query(dbhandle,query,true,"","");
    mysql_function_query(dbhandle,query,true,"deinCallbackName","i","playerid"); // Anstatt playerid natürlich den Wert denn du übergibst


    Dannach einen Callback erstellen den du oben ernannt hast :


    forward deinCalllbackName(playerid);
    public deinCallbackName(playerid) {
    new num_rows,num_fields;
    cache_get_date(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1; // Wenn er nichts gefunden hat
    /* Hier kommt alles rein was du in deinem enum verwendet hast unso */
    return true;
    }


    Natürlich sollte das nicht SELECT * FROM userautos heißen
    /*Sondern du solltest etwas mitübergeben ansonsten gibt er dir die ganze Tabelle aus und nicht die Autos vom Spieler


    "SELECT * FROM userautos WHERE Name ='%s'",Name(playerid)

    Name natürlich mit getplayername oder deiner Funktion ersetzen :)


    ~ Handy


    Lg :D


    Edit: Rechtschreibfehler behoben

    Einmal editiert, zuletzt von [IRP]AyKut ()

  • Bei mir sieht das jz so aus:


    enum carEnum{
    id_x,
    model,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r
    }


    new query[128];
    format(query,sizeof(query),"SELECT * FROM userautos");
    mysql_function_query(dbhandle,query,true,"loadCar","i","playerid");


    public loadCar(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    cInfo[playerid][model] = cache_get_field_content_int(0,"model",dbhandle);
    cInfo[playerid][c_x] = cache_get_field_content_int(0,"c_x",dbhandle);
    cInfo[playerid][c_y] = cache_get_field_content_int(0,"c_y",dbhandle);
    cInfo[playerid][c_z] = cache_get_field_content_int(0,"c_z",dbhandle);
    cInfo[playerid][c_r] = cache_get_field_content_int(0,"c_r",dbhandle);
    CreateVehicle(model,Float:c_x,Float:c_y,Float:c_z,Float:c_r,-1,-1,-1);
    return true;
    }



    Es funktioniert aber nicht.

    2 Mal editiert, zuletzt von Nicolas9897 ()

  • Ich weiß was du meinst..
    Ich habs zum Testen jz so:


    enum carEnum{
    id_x,
    model,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r
    }


    public loadCar(playerid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM userautos");
    mysql_function_query(dbhandle,query,true,"","i","playerid");
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    cInfo[playerid][model] = cache_get_field_content_int(0,"model",dbhandle);
    CreateVehicle(cInfo[playerid][model],1144.78894000,-1372.22534200,15.55180000,0.0,-1,-1,-1);
    return true;
    }



    Funkt aber immer noch nicht.

  • //Edit


    Er ladet leider nur das Auto mit der DB ID 1.


    Bei mir siehts jz so aus:



    enum carEnum{
    id_x,
    model,
    besitzer,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r
    }


    public OnGameModeInit()
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM userautos");
    mysql_function_query(dbhandle,query,true,"loadCar","i","playerid");
    }


    public loadCar(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    cInfo[playerid][model] = cache_get_field_content_int(0,"model",dbhandle);
    cInfo[playerid][c_x] = cache_get_field_content_int(0,"x",dbhandle);
    cInfo[playerid][c_y] = cache_get_field_content_int(0,"y",dbhandle);
    cInfo[playerid][c_z] = cache_get_field_content_int(0,"z",dbhandle);
    cInfo[playerid][c_r] = cache_get_field_content_int(0,"r",dbhandle);
    CreateVehicle(cInfo[playerid][model],cInfo[playerid][c_x],cInfo[playerid][c_y],cInfo[playerid][c_z],cInfo[playerid][c_r],-1,-1,-1);
    return true;
    }


    3 Mal editiert, zuletzt von Nicolas9897 ()

  • Na, jetz bin ich am PC.


    mysql_function_query(mycon,"SELECT * FROM userautos",true,"loadCar","i",playerid); //Das sollte unter Onplayerconnect kommen!


    public loadCar(playerid)
    {
    new rows,fields;
    cache_get_data(rows,fields);
    if(rows)
    {
    while(Car<rows)
    {
    cInfo[playerid][model] = cache_get_field_content_int(Car-1,"model",dbhandle);
    cInfo[playerid][c_x] = cache_get_field_content_int(Car-1,"x",dbhandle);
    cInfo[playerid][c_y] = cache_get_field_content_int(Car-1,"y",dbhandle);
    cInfo[playerid][c_z] = cache_get_field_content_int(Car-1,"z",dbhandle);
    cInfo[playerid][c_r] = cache_get_field_content_int(Car-1,"r",dbhandle);
    CreateVehicle(cInfo[playerid][model],cInfo[playerid][c_x],cInfo[playerid][c_y],cInfo[playerid][c_z],cInfo[playerid][c_r],-1,-1,-1);
    Car ++;
    }
    }
    return true;
    }


    So, da ich nicht weiß wie deine Datenbank aus sieht. Weiß ich nicht ob du abfragst ob das Auto auch dem Spieler gehört.
    Da jetz so alle Autos geladen werden die in der Datenbank stehen!

  • E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(134) : error 017: undefined symbol "Car"
    E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(136) : error 017: undefined symbol "Car"
    E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(137) : error 017: undefined symbol "Car"
    E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(138) : error 017: undefined symbol "Car"
    E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(139) : error 017: undefined symbol "Car"
    E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(140) : error 017: undefined symbol "Car"
    E:\Büro\Reallife4All\Selfmade\gamemodes\V1.0.pwn(142) : error 017: undefined symbol "Car"


    Hast was vergessen zu Definieren?
    Was muss ich bei Car einsetzen?

  • du machst einfach new Car;


    public loadCar(playerid)
    {
    new rows,fields,Car;
    cache_get_data(rows,fields);
    if(rows)
    {
    while(Car<rows)
    {
    cInfo[playerid][model] = cache_get_field_content_int(Car-1,"model",dbhandle);
    cInfo[playerid][c_x] = cache_get_field_content_int(Car-1,"x",dbhandle);
    cInfo[playerid][c_y] = cache_get_field_content_int(Car-1,"y",dbhandle);
    cInfo[playerid][c_z] = cache_get_field_content_int(Car-1,"z",dbhandle);
    cInfo[playerid][c_r] = cache_get_field_content_int(Car-1,"r",dbhandle);
    CreateVehicle(cInfo[playerid][model],cInfo[playerid][c_x],cInfo[playerid][c_y],cInfo[playerid][c_z],cInfo[playerid][c_r],-1,-1,-1);
    Car ++;
    }
    }
    return true;
    }

  • Muss ich das unter OnPlayerConnect machen? Will ja eig. das die Autos beim Serverstart direkt geladen werden, und nicht erst wenn der User Connectet.