29.08.2011, 15:46
(
Последний раз редактировалось jesse237; 31.08.2011 в 15:06.
)
Ok, I finally got /addhouse to work and stuff. And it saved in my mySQL database. But I'm having trouble to load it, when the server restarts.
I can't make it like some other things because it's connected to enum. (like PlayerInfo) So I tried the PlayerINfo way, but it didn't work, Here's the Code:
OnGameModeInIt()
Stock LoadHouses()
2: Then I tried the way of some house FS I found from Mick88 and Watcha
On Top:
OnGameModeInIt()
forward SpawnHouse();
public SpawnHouse()
I know it's all wrong in the function. shouldn't do: new houseid; and stuff, but just to give you an idea. Can somebody help me out, in how I still can load the ID of the house, so I can load all the other parts aswell (like hX, hY, hZ)?
Or please help me out with the other example I gave...
Thanks in advance!
I can't make it like some other things because it's connected to enum. (like PlayerInfo) So I tried the PlayerINfo way, but it didn't work, Here's the Code:
OnGameModeInIt()
Код:
LoadHouses();
Код:
stock LoadHouses(houseid)
{
new
Query[700],
Int,
lTotal,
hMsg1[128],
hMsg2[128],
hMsg3[128];
if(mysql_fetch_row(Query))
{
sscanf(Query, "e<p<|>ds[24]fffd", Houses[houseid][HouseID], Houses[houseid][HouseOwner], Houses[houseid][hX], Houses[houseid][hY], Houses[houseid][hZ], Houses[houseid], Houses[houseid][House_Price]); // Remember to update this if you add more info...
Loop(i, MAX_HOUSES)
HouseCPOut[i] = CreateDynamicCP(Houses[houseid][hX], Houses[houseid][hY], Houses[houseid][hZ], 1.5, Houses[houseid][hVirtual], Houses[houseid][hVVirtual], -1, 5);
format(hMsg1, sizeof(hMsg1),"HouseOwner - '%s'", Houses[houseid][HouseOwner]);
format(hMsg2, sizeof(hMsg2), "House ID - %d", houseid);
format(hMsg3, sizeof(hMsg3), "Interior - %d", Int);
HouseInfoCP = TextDrawCreate(15.000000, 170.000000, hMsg1);
TextDrawFont(HouseInfoCP, 1);
TextDrawTextSize(HouseInfoCP,145.000000, 260.000000);
TextDrawLetterSize(HouseInfoCP,0.299999,0.800000);
TextDrawUseBox(HouseInfoCP, 1);
TextDrawBoxColor(HouseInfoCP, 0x000000FF);
HouseInfoCP2 = TextDrawCreate(15.000000, 160.000000, hMsg2);
TextDrawFont(HouseInfoCP2, 1);
TextDrawTextSize(HouseInfoCP2,145.000000, 260.000000);
TextDrawLetterSize(HouseInfoCP2,0.299999,0.800000);
TextDrawUseBox(HouseInfoCP2, 1);
TextDrawBoxColor(HouseInfoCP2, 0x000000FF);
//pTotal++;
mysql_free_result();
print("=====================================================================\n");
printf("** %i\t<->\tHouses Loaded From\t<->\tMySQL\t\t **", lTotal);
print("=====================================================================\n");
}
return 1;
}
On Top:
Код:
#define GET_INT(%1,%2) mysql_fetch_field_row(tmp, %2);%1 = strval(tmp) #define GET_STR(%1,%2) mysql_fetch_field_row(%1, %2) #define GET_FLOAT(%1,%2) mysql_fetch_field_row(tmp, %2);%1 = floatstr(tmp)
Код:
//Loading houses from database
new mysql_connection;
mysql_connection = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
mysql_query("SELECT * FROM `houses` WHERE `id` < "#MAX_HOUSES);
mysql_store_result(mysql_connection);
new n;
while (mysql_retrieve_row())
{
new tmp[32];
new id;
GET_INT(id, "id");//Loads houseid
GET_INT(Houses[id][House_Price], "price");
GET_INT(Houses[id][House_Interior], "interior");
GET_STR(Houses[id][HouseOwner], "owner");
new Float:x, Float:y, Float:z, Float:r;
GET_FLOAT(x, "x");
GET_FLOAT(y, "y");
GET_FLOAT(z, "z");
Houses[id][hX] = x;
Houses[id][hY] = y;
Houses[id][hZ] = z;
SpawnHouse();
n++;
}
public SpawnHouse()
Код:
new houseid; houseid = Houses[houseid][HouseID]; Loop(i, MAX_HOUSES) HouseCPOut[i] = CreateDynamicCP(Houses[houseid][hX], Houses[houseid][hY], Houses[houseid][hZ], 1.5, Houses[houseid][hVirtual], Houses[houseid][hVVirtual], -1, 5.0); // yeah left the textdraws out this time, since it was just a test.
Or please help me out with the other example I gave...
Thanks in advance!


?