Hallo. Ich soll nochmal für Ap0llinaris schreiben da er erneut einen Fehler hat.
ZitatAlles anzeigen
Hallo Leute.
Ich habe ein kleines Problem mit MySQL, undzwar hängt sich mein Server immer auf, sobald ich folgenden Befehl im Spiel eintippe. (Es wird alles ausgeführt, habs schon selber debuggt.)
forward SaveHouses();
public SaveHouses()
{
new str[15];
new house = 1;
while(house < MAX_HOUSES)
{
format(str, sizeof(str), "%d", house);
mysql_SetFloat("Houses", "EnterX", Haus[house][EnterX], "ID", str);
mysql_SetFloat("Houses", "EnterY", Haus[house][EnterY], "ID", str);
mysql_SetFloat("Houses", "EnterZ", Haus[house][EnterZ], "ID", str);
mysql_SetFloat("Houses", "ExitX", Haus[house][ExitX], "ID", str);
mysql_SetFloat("Houses", "ExitY", Haus[house][ExitY], "ID", str);
mysql_SetFloat("Houses", "ExitZ", Haus[house][ExitZ], "ID", str);
mysql_SetString("Houses", "Besitzer", Haus[house][hBesitzer], "ID", str);
mysql_SetString("Houses", "Name", Haus[house][hName], "ID", str);
mysql_SetInt("Houses", "Preis", Haus[house][hPreis], "ID", str);
mysql_SetInt("Houses", "Mieten", Haus[house][hMieten], "ID", str);
mysql_SetInt("Houses", "Lock", Haus[house][hLock], "ID", str);
mysql_SetInt("Houses", "MietPreis", Haus[house][hMietPreis], "ID", str);
mysql_SetInt("Houses", "Interior", Haus[house][hInterior], "ID", str);
Delete3DTextLabel(Haus[house][hText]);
DestroyPickup(Haus[house][hPickup]);
}
return 1;
}
forward LoadHouses();
public LoadHouses()
{
new str[15], str2[128];
new house = 1;
while(house < MAX_HOUSES)
{
format(str, sizeof(str), "%d", house);
Haus[house][hID] = mysql_GetInt("Houses", "ID", "ID", str);
Haus[house][EnterX] = mysql_GetFloat("Houses", "EnterX", "ID", str);
Haus[house][EnterY] = mysql_GetFloat("Houses", "EnterY", "ID", str);
Haus[house][EnterZ] = mysql_GetFloat("Houses", "EnterZ", "ID", str);
Haus[house][ExitX] = mysql_GetFloat("Houses", "ExitX", "ID", str);
Haus[house][ExitY] = mysql_GetFloat("Houses", "ExitY", "ID", str);
Haus[house][ExitZ] = mysql_GetFloat("Houses", "ExitZ", "ID", str);
format(Haus[house][hBesitzer], MAX_PLAYER_NAME, mysql_GetString("Houses", "Besitzer", "ID", str));
format(Haus[house][hName], MAX_PLAYER_NAME, mysql_GetString("Houses", "Name", "ID", str));
Haus[house][hPreis] = mysql_GetInt("Houses", "Preis", "ID", str);
Haus[house][hMieten] = mysql_GetInt("Houses", "Mieten", "ID", str);
Haus[house][hLock] = mysql_GetInt("Houses", "Lock", "ID", str);
Haus[house][hMietPreis] = mysql_GetInt("Houses", "MietPreis", "ID", str);
Haus[house][hInterior] = mysql_GetInt("Houses", "Interior", "ID", str);
if(strcmp(Haus[house][hBesitzer], "Niemand", true) == 0)
{
format(str2, sizeof(str2), "Dieses Haus gehört: Niemand\n \nPreis: %i$\nBeschreibung: %s\n \nTippe /buyhouse zum kaufen", Haus[house][hPreis], Haus[house][hName]);
}
else
{
if(Haus[house][hMieten] == 0)
{
format(str2, sizeof(str2), "Dieses Haus gehört: %s.\n \nBeschreibung: %s", Haus[house][hBesitzer], Haus[house][hName]);
}
else if(Haus[house][hMieten] == 1)
{
format(str2, sizeof(str2), "Dieses Haus gehört: %s.\n \nBeschreibung: %s\nMiete: %i$", Haus[house][hBesitzer], Haus[house][hPreis], Haus[house][hMietPreis]);
}
}
Haus[house][hText] = Create3DTextLabel(str2, COLOR_PROP, Haus[house][EnterX], Haus[house][EnterY], Haus[house][EnterZ],10.0,0,0);
Haus[house][hPickup] = CreatePickup(1239, 1, Haus[house][EnterX], Haus[house][EnterY], Haus[house][EnterZ],0);
printf("House-Name: %s", Haus[house][hName]);
house++;
}
return 1;
}
Achja, PS: Die Häuser werden bei OnGameModeInit geladen und bei OnGameModeExit gespeichert.
€dit: Suche immernoch
€dit:
Ich soll das hier von ihn posten:
Zitat
Hi.
Ich habe mal nachgeschaut, und irgendwie liegt es am saven der Häuser. Aber ich möchte es so machen, wenn ich ein Haus erstelle, dass es dann direkt InGame mit 3DText etc. erscheint.
Danke
(Also, wenn ich SaveHouses(); aus dem Befehl nehme, dann geht es aber es erscheint kein Haus :/)