Objekte aus der Datenbank laden

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,
    Wie kann ich die Objekte aus der Datenbank laden?
    Ich möchte die Objekte mit einem stock laden nur weiß leider nicht wie deswegen frag ich euch.
    Die MySQL Version ist R39-6 falls es euch etwas hilft.
    stock CreateBaum(id, Float:x, Float:y, Float:z, Float:a)
    {
    new query[256];
    for(new i = 0; i < MAX_BAUM; i++)
    {
    if(XmasInfo[i][Erstellt] == 0)
    {
    XmasInfo[i][ObjectID] = id;
    XmasInfo[i][sperreX] = x;
    XmasInfo[i][sperreY] = y;
    XmasInfo[i][sperreZ] = z;
    XmasInfo[i][Erstellt] = 1;
    XmasInfo[i][ID] = CreateDynamicObject(XmasInfo[i][ObjectID],XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ],0.0,0.0,a);
    format(query, sizeof(query), "INSERT INTO WBaum (`id`,`ObjectID`,`BaumX`,`BaumY`,`BaumZ`) VALUES ('%d','%d','%f','%f','%f')",i,XmasInfo[i][ObjectID],XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ]);
    mysql_fquery(query);
    return i;
    }
    }
    return 1;
    }


    Mit freundlichen Grüßen,
    FeelFresh.

    Einmal editiert, zuletzt von [LoS]FeelFresh. ()

    • Offizieller Beitrag

    Ab jetzt bitte zügeln mit dem Editieren sonst könnte ein Moderator das auch als Pushen werten


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • Ich glaube so müsste es klappen



    [list=1][*]public LoadObjects(playerid)
    [*]{
    [*] new num_fields,num_rows;
    [*] cache_get_data(num_rows,num_fields,handle);
    [*] if(!num_rows)return 1;
    [*] for(new i=0; i<num_rows; i++)
    [*] {
    [*] XmasInfo[i][ObjectID] = cache_get_field_content_int(i,"ObjectID",handle);
    [*] XmasInfo[i][sperreX] = cache_get_field_content_int(i,"baumx",handle);
    [*] XmasInfo[i][sperreY] = cache_get_field_content_float(i,"baumy",handle);
    [*] XmasInfo[i][sperreZ] = cache_get_field_content_float(i,"baumz",handle);
    [*] XmasInfo[i][Erstellt] = cache_get_field_content_float(i,"z",handle);
    [*] XmasInfo[i][ID] = cache_get_field_content_float(i,"id",handle);
    [*] XmasInfo[i][ID] = CreateDynamicObject(XmasInfo[i][ObjectID],XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ],0.0,0.0,a);
    [*] }
    [*] return 1;
    [*]}
    [/list]

    Einmal editiert, zuletzt von robbi2304 ()

  • Danke , aber warum machste das mit playerid oder muss man das damit machen ?

  • Wie soll ich das den bitte laden wenn nicht mal der Pfad von der Datenbank angegben wird ...
    Und ich will keine Fahrzeuge laden aus dem Autohaus was du geschrieben hast .

  • Wie soll ich das den bitte laden wenn nicht mal der Pfad von der Datenbank angegben wird ...
    Und ich will keine Fahrzeuge laden aus dem Autohaus was du geschrieben hast .

    Deswegen habe ich es umgeschrieben.


    Die Pfade sind sehr wohl angegeben.


    Schau mal hier



    [list=1][*] XmasInfo[i][ObjectID] = cache_get_field_content_int(i,"ObjectID",handle);
    [*] XmasInfo[i][sperreX] = cache_get_field_content_int(i,"baumx",handle);
    [*] XmasInfo[i][sperreY] = cache_get_field_content_float(i,"baumy",handle);
    [*] XmasInfo[i][sperreZ] = cache_get_field_content_float(i,"baumz",handle);
    [*] XmasInfo[i][Erstellt] = cache_get_field_content_float(i,"z",handle);
    [*] XmasInfo[i][ID] = cache_get_field_content_float(i,"id",handle);
    [/list]


    musst nur den Wert von float blablabla anpassen

  • Ich wollte das in einem stock schreiben und nicht in einem public , nur ich weiß nicht wie ich den Pfad in den stock übergebe.

  • Ich wollte das in einem stock schreiben und nicht in einem public , nur ich weiß nicht wie ich den Pfad in den stock übergebe.

    Ich weiß nicht was es für ein Unterschied macht ob du einen stock oder einen public verwendest. Ich kenne es nur mit einem Public daher kann ich dir da nicht groß weiter helfen.

  • Es funktioniert immer noch nicht habe es jetzt so gemacht , er ladet aber nur einen Baum.


    mysql_function_query(MySQLConnection, "SELECT * FROM wbaum", true, "baumladen","");



    forward baumladen();
    public baumladen()
    {
    new var[40],rows,fields;
    cache_get_data(rows,fields);
    new xmas = 0;
    if(rows)
    {
    while(xmas<rows)
    {
    cache_get_field_content(0, "ObjectID", var); XmasInfo[xmas][ObjectID] = strval(var);
    cache_get_field_content(0, "sperreX", var); XmasInfo[xmas][sperreX] = floatstr(var);
    cache_get_field_content(0, "sperreY", var); XmasInfo[xmas][sperreY] = floatstr(var);
    cache_get_field_content(0, "sperreZ", var); XmasInfo[xmas][sperreZ] = floatstr(var);
    XmasInfo[xmas][Erstellt] = 1;
    XmasInfo[xmas][ID] = CreateDynamicObject(XmasInfo[xmas][ObjectID],XmasInfo[xmas][sperreX],XmasInfo[xmas][sperreY],XmasInfo[xmas][sperreZ],0.0,0.0,0.0);
    xmas++;
    }
    }
    }

  • for (xmas < rows; xmas++)
    Versuch es mal so. Und xmas++ unten in der Funktion entfernst du.

    Nope geht leider nicht haut Errors raus :/

  • warning 215: expression has no effect
    error 001: expected token: ";", but found ")"


  • enum kabaum{
    ID,
    ObjectID,
    Float:sperreX,
    Float:sperreY,
    Float:sperreZ,
    Erstellt
    }
    new XmasInfo[MAX_BAUM][kabaum];


    stock CreateBaum(playerid, id, Float:x, Float:y, Float:z, Float:a)
    {
    new query[256];
    for(new i = 0; i < MAX_BAUM; i++)
    {
    if(XmasInfo[i][Erstellt] == 0)
    {
    XmasInfo[i][ObjectID] = id;
    XmasInfo[i][sperreX] = x;
    XmasInfo[i][sperreY] = y;
    XmasInfo[i][sperreZ] = z;
    XmasInfo[i][Erstellt] = 1;
    XmasInfo[i][ID] = CreateDynamicObject(XmasInfo[i][ObjectID],XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ],0.0,0.0,a);
    SendClientMessage(playerid,-1,"XmasObject errichtet.");
    format(query,sizeof(query),"INSERT INTO wbaum (`id`,`ObjectID`,`sperreX`,`sperreY`,`sperreZ`) VALUES ('%d','%d','%f','%f','%f')",i,XmasInfo[i][ObjectID],XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ]);
    mysql_fquery(query);
    return i;
    }
    }
    return 1;
    }
    stock RemoveBaum(playerid)
    {
    new query[128];
    for(new i=0;i<MAX_BAUM;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2,XmasInfo[i][sperreX],XmasInfo[i][sperreY],XmasInfo[i][sperreZ]))
    {
    if(XmasInfo[i][Erstellt] == 1)
    {
    XmasInfo[i][Erstellt] = 0;
    XmasInfo[i][ObjectID] = 0;
    XmasInfo[i][sperreX] = -1;
    XmasInfo[i][sperreY] = -1;
    XmasInfo[i][sperreZ] = -1;
    DestroyDynamicObject(XmasInfo[i][ID]);
    SendClientMessage(playerid,-1,"XmasObject entfernt.");
    format(query,sizeof(query),"DELETE FROM wbaum WHERE id = '%d'",i);
    mysql_function_query(MySQLConnection,query,false,"","");
    return 1;
    }
    }
    }
    return SendClientMessage(playerid,-1,"An keinem XmasObject.");
    }
    forward baumladen();
    public baumladen()
    {
    new var[40],rows,fields;
    cache_get_data(rows,fields);
    new xmas = 0;
    if(rows)
    {
    while(xmas<rows)
    {
    cache_get_field_content(0, "ObjectID", var); XmasInfo[xmas][ObjectID] = strval(var);
    cache_get_field_content(0, "sperreX", var); XmasInfo[xmas][sperreX] = floatstr(var);
    cache_get_field_content(0, "sperreY", var); XmasInfo[xmas][sperreY] = floatstr(var);
    cache_get_field_content(0, "sperreZ", var); XmasInfo[xmas][sperreZ] = floatstr(var);
    XmasInfo[xmas][Erstellt] = 1;
    XmasInfo[xmas][ID] = CreateDynamicObject(XmasInfo[xmas][ObjectID],XmasInfo[xmas][sperreX],XmasInfo[xmas][sperreY],XmasInfo[xmas][sperreZ],0.0,0.0,0.0);
    xmas++;
    }
    }
    }


    Erstellen löschen geht ohne fehler nur das laden nicht und ich weiß auch nicht wie alle hier auf playerid kommen oder so es soll einfach normal local auf server geladen werden.. doch er macht nur ein baum
    und setzt auch kommischerweise alle objecte auf id 0 in der datenbank...


    mein wissen ist etwas eingerostet da ich lange nix mehr mit samp getan habe ;(