Der Fehler wird durch einen Aufruf von cache_get_field_content_int erzeugt, sprich nicht durch den geposteten Code.
Eventuell durch OnHausCreated, falls die Funktion dort verwendet wird.
Warum speichert er nicht ?
- robbi2304
- Geschlossen
- Erledigt
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.
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;
} -
Poste bitte den Code von updateHaus und saveHaus und erkläre was nicht funktioniert.
-
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
-
Die möglichkeit bietet mir PHPMyAdmin leider nicht in den Standard Werten an.
Gehe in der Tabellenstruktur auf "Bearbeiten" bei der "id".
Dann siehst du:
Klicke hier, wie im Bild zu sehen, das "A_I" an und speichere es. -
breadfish.de
Hat das Thema geschlossen.