MYSQL Speichert Häuser nicht.

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, ich habe ein Problem mit meinem Script, undzwar, er speichert, die Daten nicht, die beim erstellen erstellt wurden nicht in die Tabelle.
    Wenn ich ein Haus erstelle, dann wird das Haus zwar erstellt und die Variabeln, werden auch richtig gesetzt. (Getestet), jedoch das Feld Besitzer bleibt in der DB Leer.


    Was habe ich gemacht ?
    Ich habe herausgefunden, dass die Variabeln richtig gesetzt werden, durch Debugen, (printen).
    Es ist alles richtig. Nur er speichert nichts in die Datenbank ein, x,y,z ist auch alles 0. Ich bin sprachlos.
    Das Script läuft unter dem MySQL Plugin r36. Ich hoffe ihr könnt mir helfen, wenn ich ein paar Screens uploade, ich bin an verzweifeln.


    Hier der Code:
    ocmd:create(playerid,params[])
    {
    new cmd[25],hquery[256];
    if(Spieler[playerid][pAfk]!=0)return Fehler(playerid,"Du bist zurzeit im AFK-Modus.");
    if(Spieler[playerid][pEingeloggt]!=1)return Fehler(playerid,"Du bist nicht eingeloggt.");
    if(Spieler[playerid][pAdmin]<7)return Fehler(playerid,"Du bist kein "#Servertag" Teammitglied.");
    if(sscanf(params,"s[25]",cmd))return Fehler(playerid,"/create [Haus/Business]");
    if(strcmp(cmd,"Haus",true) == 0)
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(HausInfo[haus][hauscreatet]!=1)
    {
    format(hquery,sizeof(hquery),"INSERT INTO samp_haus (id) VALUES ('%d')",haus);
    mysql_function_query(db,hquery,false,"","");
    MakeHaus[playerid]=haus;
    GetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    HausInfo[haus][hauscreatet]=1;
    strmid(HausInfo[haus][haus_besitzer],"Niemand",0,strlen("Niemand"),24);
    strmid(HausInfo[haus][haus_beschreibung],"Keine",0,strlen("Keine"),150);
    strmid(HausInfo[haus][haus_msg],"Keine",0,strlen("Keine"),150);
    HausInfo[haus][haus_Owned]=0;
    HausInfo[haus][haus_innenraum]=255;
    HausInfo[haus][haus_miete]=0;
    HausInfo[haus][haus_locked]=1;
    HausInfo[haus][haus_slots]=0;
    HausInfo[haus][haus_eingemitetenzaehler]=0;
    HausInfo[haus][haus_preis]=0;
    HausInfo[haus][haus_level]=0;
    HausInfo[haus][haus_geldkasse]=0;
    HausInfo[haus][haus_Opium]=0;
    HausInfo[haus][haus_Spice]=0;
    HausInfo[haus][haus_c4]=0;
    HausInfo[haus][haus_Ganja]=0;
    HausInfo[haus][haus_Kokain]=0;
    HausInfo[haus][haus_materials]=0;
    HausInfo[haus][haus_heal]=0;
    HausInfo[haus][haus_armour]=0;
    HausInfo[haus][haus_hatheal]=0;
    HausInfo[haus][haus_hatarmour]=0;
    HausInfo[haus][hausmull]=0;
    HausLabel[haus]=CreateDynamic3DTextLabel("Haus wird gebaut",0x00A5FF91,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]+1,20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0);
    HausInfo[haus][haus_pickup]=CreateDynamicPickup(19470,1,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    ShowPlayerDialog(playerid,HCREATE_DIALOG_PREIS,DIALOG_STYLE_INPUT,"Hauserstellung Schritt 1","Gib den Preis an,\nfür den das Haus zum verkauf freigestellt werden soll:","Weiter","Haus löschen");
    return 1;
    }
    }
    }
    return 1;
    }


    Ich glaube die ganzen DIALOGE muss ich nicht Posten, denn das Haussystem sollte so ähnlich werden wie das von pure RolePlay.
    Was noch wichtig wäre ist der stock. Der das Haus speichern sollte.


    stock SaveOnlyOneHaus(haus)
    {
    new mainquery[1315],hquery[450];
    if(HausInfo[haus][hauscreatet]!=0&&haus!=0)
    {
    printf("Besitzer %s Preis: %i€ Level: %i",HausInfo[haus][haus_besitzer],HausInfo[haus][haus_preis],HausInfo[haus][haus_level]);
    format(hquery,sizeof(hquery),"UPDATE samp_haus SET haus_besitzer='%s',haus_Owned='%d',haus_innenraum='%d',haus_miete='%d',haus_beschreibung='%s',haus_locked='%d',haus_slots='%d',haus_eingemitetenzaehler='%d',haus_x='%f',haus_y='%f',haus_z='%f',",
    HausInfo[haus][haus_besitzer],HausInfo[haus][haus_Owned],HausInfo[haus][haus_innenraum],HausInfo[haus][haus_miete],HausInfo[haus][haus_beschreibung],HausInfo[haus][haus_locked],HausInfo[haus][haus_slots],HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    strcat(mainquery,hquery);
    format(hquery,sizeof(hquery),"haus_preis='%d',haus_level='%d',haus_geldkasse='%d',haus_Opium='%d',haus_Spice='%d',haus_c4='%d',haus_Ganja='%d',haus_Kokain='%d',haus_materials='%d',haus_heal='%d',haus_armour='%d',haus_hatheal='%d',haus_hatarmour='%d',hausgundumper='%d',",
    HausInfo[haus][haus_preis],HausInfo[haus][haus_level],HausInfo[haus][haus_geldkasse],HausInfo[haus][haus_Opium],HausInfo[haus][haus_Spice],HausInfo[haus][haus_c4],HausInfo[haus][haus_Ganja],HausInfo[haus][haus_Kokain],HausInfo[haus][haus_materials],HausInfo[haus][haus_heal],HausInfo[haus][haus_armour],HausInfo[haus][haus_hatheal],HausInfo[haus][haus_hatarmour],HausInfo[haus][haus_waffenschrank]);
    strcat(mainquery,hquery);
    format(hquery,sizeof(hquery),"hausgun0='%d',hausgun1='%d',hausgun2='%d',hausgun3='%d',hausgun4='%d',hausgun5='%d',hausgun6='%d',hausgun7='%d',hausgun8='%d',hausgun9='%d',hausgun10='%d',hausgun11='%d',hausgun12='%d',hausgunammo0='%d',hausgunammo1='%d',hausgunammo2='%d',hausgunammo3='%d',",
    HausInfo[haus][haus_gun][0],HausInfo[haus][haus_gun][1],HausInfo[haus][haus_gun][2],HausInfo[haus][haus_gun][3],HausInfo[haus][haus_gun][4],HausInfo[haus][haus_gun][5],HausInfo[haus][haus_gun][6],HausInfo[haus][haus_gun][7],HausInfo[haus][haus_gun][8],HausInfo[haus][haus_gun][9],HausInfo[haus][haus_gun][10],HausInfo[haus][haus_gun][11],HausInfo[haus][haus_gun][12],
    HausInfo[haus][haus_gunammo][0],HausInfo[haus][haus_gunammo][1],HausInfo[haus][haus_gunammo][2],HausInfo[haus][haus_gunammo][3]);
    strcat(mainquery,hquery);
    format(hquery,sizeof(hquery),"hausgunammo4='%d',hausgunammo5='%d',hausgunammo6='%d',hausgunammo7='%d',hausgunammo8='%d',hausgunammo9='%d',hausgunammo10='%d',hausgunammo11='%d',hausgunammo12='%d',hausmull='%d',haus_msg='%s' WHERE id='%d'",
    HausInfo[haus][haus_gunammo][4],HausInfo[haus][haus_gunammo][5],HausInfo[haus][haus_gunammo][6],HausInfo[haus][haus_gunammo][7],HausInfo[haus][haus_gunammo][8],HausInfo[haus][haus_gunammo][9],HausInfo[haus][haus_gunammo][10],HausInfo[haus][haus_gunammo][11],HausInfo[haus][haus_gunammo][12],HausInfo[haus][hausmull],HausInfo[haus][haus_msg],haus);
    strcat(mainquery,hquery);
    mysql_function_query(db,mainquery,false,"","");
    strdel(mainquery,0,sizeof(mainquery));
    strdel(hquery,0,sizeof(hquery));
    printf("- Das Haus %d wurde gespeichert -",haus);
    }
    return 1;
    }


    So wird das Haus gespeichert und so wird das geladen.
    public HausLoad(i)
    {
    new num_fields, num_rows;
    cache_get_data(num_rows,num_fields,db);
    if(num_rows!=1)return 1;
    HausInfo[i][hauscreatet]=1;
    cache_get_field_content(0,"haus_besitzer",HausInfo[i][haus_besitzer],db,50);
    HausInfo[i][haus_Owned] = cache_get_field_content_int(0,"haus_Owned",db);
    HausInfo[i][haus_innenraum] = cache_get_field_content_int(0,"haus_innenraum",db);
    HausInfo[i][haus_miete] = cache_get_field_content_int(0,"haus_miete",db);
    cache_get_field_content(0,"haus_beschreibung",HausInfo[i][haus_beschreibung],db,50);
    HausInfo[i][haus_locked] = cache_get_field_content_int(0,"haus_locked",db);
    HausInfo[i][haus_slots] = cache_get_field_content_int(0,"haus_slots",db);
    HausInfo[i][haus_eingemitetenzaehler] = cache_get_field_content_int(0,"haus_eingemitetenzaehler",db);
    HausInfo[i][haus_x] = cache_get_field_content_float(0,"haus_x",db);
    HausInfo[i][haus_y] = cache_get_field_content_float(0,"haus_y",db);
    HausInfo[i][haus_z] = cache_get_field_content_float(0,"haus_z",db);
    HausInfo[i][haus_preis] = cache_get_field_content_int(0,"haus_preis",db);
    HausInfo[i][haus_level] = cache_get_field_content_int(0,"haus_level",db);
    HausInfo[i][haus_geldkasse] = cache_get_field_content_int(0,"haus_geldkasse",db);
    HausInfo[i][haus_Opium] = cache_get_field_content_int(0,"haus_Opium",db);
    HausInfo[i][haus_Spice] = cache_get_field_content_int(0,"haus_Spice",db);
    HausInfo[i][haus_c4] = cache_get_field_content_int(0,"haus_c4",db);
    HausInfo[i][haus_Ganja] = cache_get_field_content_int(0,"haus_Ganja",db);
    HausInfo[i][haus_Kokain] = cache_get_field_content_int(0,"haus_Kokain",db);
    HausInfo[i][haus_materials] = cache_get_field_content_int(0,"haus_materials",db);
    HausInfo[i][haus_heal] = cache_get_field_content_int(0,"haus_heal",db);
    HausInfo[i][haus_armour] = cache_get_field_content_int(0,"haus_armour",db);
    HausInfo[i][haus_hatheal] = cache_get_field_content_int(0,"haus_hatheal",db);
    HausInfo[i][haus_waffenschrank] = cache_get_field_content_int(0,"hausgundumper",db);

    //||Guns müssen noch geladen werden||//

    HausInfo[i][hausmull] = cache_get_field_content_int(0,"hausmull",db);
    cache_get_field_content(0,"haus_msg",HausInfo[i][haus_msg],db,50);
    HausLabel[i] = CreateDynamic3DTextLabel("LOAD",0x00A5FF91,HausInfo[i][haus_x],HausInfo[i][haus_y],HausInfo[i][haus_z] +1,20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,1,0);
    if(HausInfo[i][haus_Owned] == 1)
    {
    HausInfo[i][haus_pickup] = CreateDynamicPickup(1239,1,HausInfo[i][haus_x],HausInfo[i][haus_y],HausInfo[i][haus_z],0);
    }
    else if(HausInfo[i][haus_Owned] == 0)
    {
    HausInfo[i][haus_pickup] = CreateDynamicPickup(19470,1,HausInfo[i][haus_x],HausInfo[i][haus_y],HausInfo[i][haus_z],0);
    }
    UpdateHausLabel(i,HausInfo[i][haus_Owned]+1);
    i++;
    return 1;
    }


    Ich hoffe ihr könnt mir helfen. Dumme Kommentare sind unerwünscht und werden gemeldet.
    LG Dr.Brummer

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Du solltest auch bei ocmd:create unten was neues hinzufügen in der datenbank...
    Also, als erstes machst du ganz unten da wo ShowPlayerDialog das hin


    HausLoad(haus);



    dann daunter


    new query[300]; //keine deine eigene größe angebenformat(query,300, INSERT INTO ....);


    Du musst jedes einzelne eintragen :D
    Hoffe konnte dir so etwas helfen..