Ich bin gerade dabei ein Dynamisches Haussytem mit MySQL zu errichten. Ich habe derzeit das Problem, das nur das erste Haus geladen wird.
server_log.cfg:
https://picload.org/view/dcolwwwl/hauscheck.png.html
public OnHausLoaded() // Hier Lade ich die vorhanden Häuser der Datenbank
new rows;
cache_get_row_count(rows);
for(new i = 0; i != rows; i++)
{
cache_get_value_name_int(0, "ID", HausInfo[i][h_id]);
cache_get_value_name(0, "besitzer", HausInfo[i][hBesitzer]);
cache_get_value_name_float(0, "coordsX", HausInfo[i][hX]);
cache_get_value_name_float(0, "coordsY", HausInfo[i][hY]);
cache_get_value_name_float(0, "coordsZ", HausInfo[i][hZ]);
cache_get_value_name_float(0, "coordsFA", HausInfo[i][hFA]);
cache_get_value_name_float(0, "coordsX2", HausInfo[i][hX2]);
cache_get_value_name_float(0, "coordsY2", HausInfo[i][hY2]);
cache_get_value_name_float(0, "coordsZ2", HausInfo[i][hZ2]);
cache_get_value_name_float(0, "coordsFA2", HausInfo[i][hFA2]);
cache_get_value_name_int(0, "preis", HausInfo[i][hPreis]);
cache_get_value_name_int(0, "interior", HausInfo[i][hInterior]);
cache_get_value_name_int(0, "free", HausInfo[i][hFree]);
cache_get_value_name_int(0, "vermietet", HausInfo[i][hVermietet]);
cache_get_value_name_int(0, "mietpreis", HausInfo[i][hMietpreis]);
cache_get_value_name(rows, "mieter", HausInfo[i][hMieter]);
HausInfo[i][hLoggedIn] = true;
new freehouse, str[128];
if(HausInfo[i][hFree] == 0)
{
freehouse = 1272;
if(HausInfo[i][hVermietet] == 0)
{
format(str, sizeof(str), "Besitzer: %s\nMieter: %s",HausInfo[i][hBesitzer], HausInfo[i][hMieter]);
}
else
{
format(str, sizeof(str), "Besitzer: %s\nMietpreis: %d\n/renthouse - Haus mieten",HausInfo[i][hBesitzer], HausInfo[i][hMietpreis]);
}
haus3DText[i] = Create3DTextLabel(str, COLOR_RED,HausInfo[i][hX], HausInfo[i][hY], HausInfo[i][hZ], 5.0, 0, 1 );
}
else
{
freehouse = 1273;
format(str, sizeof(str), "Haus zu Verkaufen\nKaufpreis: %d\n/buyhouse - Haus kaufen",HausInfo[i][hPreis]);
haus3DText[i] = Create3DTextLabel(str, COLOR_GREEN,HausInfo[i][hX], HausInfo[i][hY], HausInfo[i][hZ], 5.0, 0, 1 );
}
hausPickup[i] = CreatePickup(freehouse, 0, HausInfo[i][hX], HausInfo[i][hY], HausInfo[i][hZ]);
printf("LOAD: Haus[%d] | X[%f] | Y[%f] | Z[%f] | Int[%d]", HausInfo[i][h_id], HausInfo[i][hX], HausInfo[i][hY], HausInfo[i][hZ], HausInfo[i][hInterior]);
}
printf("[HAUSSYSTEM] Es wurden %i Häuser geladen.", rows);
return 1;
OCMD:createhouse // Hiermit erstelle ich InGame ein Haus
if(SpielerInfo[playerid][pAdmin] == 1338)
{
new interior, preis, str[128];
format(str, sizeof(str), "Nutze /createhouse [InteriorID 0-%d] [Kaufpreis]",hausInteriors);
if(sscanf(params,"ii",interior, preis) || interior >= sizeof(hausInterior)){ return SendClientMessage(playerid,COLOR_GREY,str); }
if(preis < 0) return SendClientMessage(playerid, COLOR_GREY, "Sie müssen einen Preis für das Haus wählen, welcher über null liegt.");
for(new i = 0; i != MAX_HAUS; i++)
{
if(HausInfo[i][h_id] == 0)
{
new Float:X,Float:Y,Float:Z,Float:FA,query[512];
GetPlayerPos(playerid,X, Y, Z);
GetPlayerFacingAngle(playerid, FA);
HausInfo[i][hPreis] = preis;
HausInfo[i][hInterior] = interior;
HausInfo[i][hX] = X;
HausInfo[i][hY] = Y;
HausInfo[i][hZ] = Z;
HausInfo[i][hFA] = FA;
HausInfo[i][hX2] = hausInterior[HausInfo[i][hInterior]][iX];
HausInfo[i][hY2] = hausInterior[HausInfo[i][hInterior]][iY];
HausInfo[i][hZ2] = hausInterior[HausInfo[i][hInterior]][iZ];
HausInfo[i][hFA2] = hausInterior[HausInfo[i][hInterior]][iFA];
mysql_format(handle, query, sizeof(query), "INSERT INTO haus (coordsX, coordsY, coordsZ, coordsFA, coordsX2, coordsY2, coordsZ2, coordsFA2, preis, free, interior) VALUES ('%f','%f','%f','%f','%f','%f','%f','%f','%i','1','%i')", X,Y,Z,FA,hausInterior[HausInfo[i][hInterior]][iX],hausInterior[HausInfo[i][hInterior]][iY],hausInterior[HausInfo[i][hInterior]][iZ],hausInterior[HausInfo[i][hInterior]][iFA],HausInfo[i][hPreis],HausInfo[i][hInterior]);
mysql_pquery(handle, query, "OnHausRegister", "dd",playerid, i);
return 1;
}
}
printf("[HAUSSYSTEM] Die maximale Häuseranzahl ist erreicht, erhöhen sie *MAX_HAUS* !");
SendClientMessage(playerid, COLOR_RED, "[HAUSSYSTEM] Die maximale Häuseranzahl ist erreicht, erhöhen sie *MAX_HAUS* !");
}
return 1;
OnHausRegister(playerid, hid) // Hier füge ich das erstellte Haus in der Datenbank ein
new str[256];
HausInfo[hid][h_id] = cache_insert_id();
HausInfo[hid][hLoggedIn] = true;
format(str, sizeof(str), "[HAUSSYSTEM] Haus[%d] wurde erfolgreich mit dem Interior[%d] erstellt, es steht nun für %d$ zum Verkauf bereit.",HausInfo[hid][h_id], HausInfo[hid][hInterior], HausInfo[hid][hPreis]);
SendClientMessage(playerid, COLOR_GREEN, str);
printf("[HAUSSYSTEM] Admin %s hat ein Haus[%d/INT:%d] für %d$ erstellt.", SpielerInfo[playerid][pName], HausInfo[hid][h_id], HausInfo[hid][hInterior], HausInfo[hid][hPreis]);
return 1;
In bedanke mich für jede Hilfe, die mir weiterhilft
MFG
EllBundy