Warum speichert er 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
  • Genau das ist mir gerade auch aufgefallen. Nun Savet er das Haus auch.
    Nun funktioniert allerdings der /hauskaufen befehl nicht. Trage ich es Manuell in die Datenbank ein funktionierts.



    Code
    public OnHausCreated(id)
    {
    	hInfo[id][h_id]=cache_insert_id(handle);
    }


    ocmd:hauskaufen(playerid, params[])
    {
    if(hatPlayerHaus(playerid))return
    SendClientMessage(playerid, COLOR_RED, "Du hast bereits ein Haus.");
    for(new i=0; i<sizeof(hInfo); i++)
    {
    if(!hInfo[i][h_id])continue;
    if(!IsPlayerInRangeOfPoint(playerid, 5,
    hInfo[i][h_x], hInfo[i][h_y], hInfo[i][h_z]))continue;
    if(!strlen(hInfo[i][h_besitzer]))
    {
    if(GetPlayerMoney(playerid)<hInfo[i][h_preis])return
    SendClientMessage(playerid, COLOR_RED, "Du hast nicht genügend Geld.");
    GivePlayerMoney(playerid, -hInfo[i][h_preis]);
    strmid(hInfo[i][h_besitzer], getPlayerName(playerid), 0, MAX_PLAYER_NAME, MAX_PLAYER_NAME);
    updateHaus(i);
    saveHaus(i);
    return 1;
    }
    return SendClientMessage(playerid, COLOR_RED,
    "Das Haus steht nicht zum Verkauf.");
    }
    return 1;
    }


  • saveHaus(id)
    {
    new query[128];
    format(query, sizeof(query), "UPDATE haus SET besitzer='%s', h_preis='%i' WHERE id='%i'", hInfo[id][h_besitzer], hInfo[id][h_preis], hInfo[id][h_id]);
    mysql_function_query(handle, query, false, "", "");
    return 1;
    }



    updateHaus(id)
    {
    printf("update: %d", id);
    new string[128];
    if(hInfo[id][h_pickup] != -1)
    {
    DestroyPickup(hInfo[id][h_pickup]);
    }
    if(hInfo[id][h_text] != Text3D:-1)
    {
    Delete3DTextLabel(hInfo[id][h_text]);
    }
    if(!strlen(hInfo[id][h_besitzer]))
    {
    printf("hat keinen Besitzer");
    hInfo[id][h_pickup]=CreatePickup(1273, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,128, "Zum Verkauf\nKosten: %i$\n/hauskaufen %i", hInfo[id][h_preis]);
    hInfo[id][h_text] = Create3DTextLabel(string, 0xFFFFFFFF, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    else
    {
    printf("hat Besitzer");
    hInfo[id][h_pickup]=CreatePickup(1239, 1, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], -1);
    format(string,128, "Dieses Haus gehört: %s", hInfo[id][h_besitzer]);



    hInfo[id][h_text]=Create3DTextLabel(string, 0xFFFFFFFF, hInfo[id][h_x], hInfo[id][h_y], hInfo[id][h_z], 10, 0, 1);
    }
    return 1;
    }


    Das erstellen eines Hauses funktioniert. Allerdings nur mit der ID 0 wie ich gerade getestet habe. Da fehlt mir dann scheinbar noch die Abfrage welches die nächste ID wäre die frei ist.


    Das kaufen des Hauses funktioniert ebenfalls nicht. Es sei denn ich schreibe das Haus direkt ohne InGame Befehl in die Datenbank.

  • Das erstellen eines Hauses funktioniert. Allerdings nur mit der ID 0 wie ich gerade getestet habe. Da fehlt mir dann scheinbar noch die Abfrage welches die nächste ID wäre die frei ist.

    Setze die Spalte "id" in der Datenbank auf "AUTO_INCREMENT", nachdem du alle Einträge gelöscht hast.
    Eventuell löst das auch das zweite Problem direkt, da die ID dann nicht mehr 0 ist.

  • Setze die Spalte "id" in der Datenbank auf "AUTO_INCREMENT", nachdem du alle Einträge gelöscht hast.Eventuell löst das auch das zweite Problem direkt, da die ID dann nicht mehr 0 ist.

    Die möglichkeit bietet mir PHPMyAdmin leider nicht in den Standard Werten an.
    Allerdings hast du recht das es an der ID 0 liegt.


    Durch die Änderung der id in phpmyadmin kann ich das haus auch kaufen