Quote:
Originally Posted by kirollos
I have tweaked this abit, also i have commented your errors etc..
pawn Код:
stock LoadHouseInfo() { new query[100], savingstring[20], string[256]; for(new houseid=1; houseid<MAX_HOUSES; houseid++) { format(query, sizeof(query), "SELECT * FROM houses WHERE ID=%d", houseid); mysql_query(query); mysql_store_result(); if(mysql_num_rows()) { while(mysql_fetch_row_format(query,"|")) { /*mysql_fetch_field_row(savingstring, "Address"); HouseInfo[houseid][hAddress] = strval(savingstring); mysql_fetch_field_row(savingstring, "Owner"); HouseInfo[houseid][hOwner] = strval(savingstring);*/ /*i wonder why you use strval to convert strings? Look below for good ones for strings..*/
//Strings mysql_fetch_field_row(savingstring, "Address"); format(HouseInfo[houseid][hAddress], 100, "%s", savingstring); mysql_fetch_field_row(savingstring, "Owner"); format(HouseInfo[houseid][hOwner], MAX_PLAYER_NAME, "%s", savingstring);
//Integers mysql_fetch_field_row(savingstring, "Owned"); HouseInfo[houseid][hOwned] = strval(savingstring); mysql_fetch_field_row(savingstring, "Price"); HouseInfo[houseid][hPrice] = strval(savingstring);
//Floats mysql_fetch_field_row(savingstring, "X"); HouseInfo[houseid][hX] = floatstr(savingstring); mysql_fetch_field_row(savingstring, "Y"); HouseInfo[houseid][hY] = floatstr(savingstring); mysql_fetch_field_row(savingstring, "Z"); HouseInfo[houseid][hZ] = floatstr(savingstring); } HouseInfo[houseid][hID] = houseid; HouseInfo[houseid][hPickUp] = CreateDynamicPickup(1273, 1, HouseInfo[houseid][hX], HouseInfo[houseid][hY], HouseInfo[houseid][hZ], 0); format(string, sizeof(string), ""Green"ID: %d\nHouse Address: %s\nOwner: %s\nPrice: $%d", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hPrice]); HouseInfo[houseid][hText] = CreateDynamic3DTextLabel(string, -1, HouseInfo[houseid][hX], HouseInfo[houseid][hY], HouseInfo[houseid][hZ], 20.0); /*format(string, sizeof(string), "House ID: %f", HouseInfo[houseid][hX]); printf(string);*/ printf("House ID: %i", HouseInfo[houseid][hID]); //houseid++; // no need //break; // Why zdding this? :/ } mysql_free_result(); // This is the warning line. } printf("All houses have been successfully loaded."); return 1; }
|
Hello kirollos, thanks for replying.
I have tried this code and it gives a warning:
Код:
C:\Users\Mike\Desktop\FA-RP\gamemodes\MySQL.pwn(2118) : warning 217: loose indentation
The warning line has been displayed in the code but despite this warning, when I compile and run the server it shows the "All houses have been successfully loaded" print but not the "House ID: %i" print.
Here is the CREATE TABLE for 'houses':
pawn Код:
mysql_query("CREATE TABLE IF NOT EXISTS houses(ID INT(10), Address VARCHAR(24), Owner VARCHAR(24), Owned INT(10), Price INT(10), X FLOAT(20), Y FLOAT(20), Z FLOAT(20) )");
Here is the enum for the house variables and strings:
pawn Код:
enum hInfo
{
hID,
hAddress[50],
hOwner[50],
hOwned,
Float:hX,
Float:hY,
Float:hZ,
hPrice,
hPickUp,
Text3D:hText
}
new HouseInfo[MAX_HOUSES][hInfo];
Here is the /createhouse command:
pawn Код:
CMD:createhouse(playerid, params[])
{
new string[128], query[300], Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(isnull(params)) return SendClientMessage(playerid, -1, ""Grey"Syntax"White": /createhouse [address].");
for(new houseid=1; houseid<MAX_HOUSES; houseid++)
{
if(HouseInfo[houseid][hID] != 0) continue;
HouseInfo[houseid][hID] = houseid;
format(HouseInfo[houseid][hAddress], 100, "%s", params);
format(HouseInfo[houseid][hOwner], 50, "None");
HouseInfo[houseid][hOwned] = 0;
HouseInfo[houseid][hPrice] = 120000;
HouseInfo[houseid][hX] = x;
HouseInfo[houseid][hY] = y;
HouseInfo[houseid][hZ] = z;
HouseInfo[houseid][hPickUp] = CreateDynamicPickup(1273, 1, x, y, z, 0);
format(string, sizeof(string), ""Green"ID: %d\nHouse Address: %s\nOwner: %s\nPrice: $%d", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hPrice]);
HouseInfo[houseid][hText] = CreateDynamic3DTextLabel(string, -1, x, y, z, 20.0);
format(query, sizeof(query), "INSERT INTO houses (ID, Address, Owner, Owned, Price, X, Y, Z) VALUES(%d, '%s', '%s', %d, %d, %f, %f, %f)", HouseInfo[houseid][hID], HouseInfo[houseid][hAddress], HouseInfo[houseid][hOwner], HouseInfo[houseid][hOwned], HouseInfo[houseid][hPrice], HouseInfo[houseid][hX], HouseInfo[houseid][hY], HouseInfo[houseid][hZ]);
mysql_query(query);
format(string, sizeof(string), ""Green"Notice"White": You have created house ID %d.", HouseInfo[houseid][hID]);
SendClientMessage(playerid, -1, string);
break;
}
return 1;
}
Here is a screenshot of my 'houses' table after using /createhouse: