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!