14.04.2014, 15:31
Всем привет.
У меня проблема вот есть у меня система отелей когда я арендую комнату дней на пару дней то все нормально спавнюсь в отели даже когда пере зайду на сервер, но стоит мне отключить сервер и потом включить, я появляюсь с нова в отели но уже как бы я его не арендую
вот код аренды
а вот код загрузки отеля:
и вот вроде сохранения )
кто не будь подскажите.
У меня проблема вот есть у меня система отелей когда я арендую комнату дней на пару дней то все нормально спавнюсь в отели даже когда пере зайду на сервер, но стоит мне отключить сервер и потом включить, я появляюсь с нова в отели но уже как бы я его не арендую
вот код аренды
Код:
case dHotelRent2:
{
if(!response) return 1;
new time = GetPVarInt(playerid,"selectedhoteltime");
new price = time*400;
if(GetPlayerMoneyEx(playerid) < price) return SendClientMessage(playerid,CGRAY,"У Вас не достаточно денег");
new room = GetPVarInt(playerid,"selectedroom");
new hotelid = GetPVarInt(playerid,"selectedhotel");
if(gHotelResidents[hotelid][room]) return SendClientMessage(playerid,CGRAY,"Вы не успели. Этот номер уже занят.");
gHotelResidents[hotelid][room] = pData[playerid][pMysqlID];
gHotelEndurance[hotelid][room] = gCurDay + time;
UpdateHotelResidents(hotelid);
AddHotelBank(hotelid, floatround(price/2));
new query[128];
format(query,sizeof(query),"UPDATE `accounts` SET `hotel` = '%d', hotelroom = '%d' WHERE `id` = '%d'",hotelid+1,room,pData[playerid][pMysqlID]);
sql_query(zConn, query, QUERY_THREADED);
pData[playerid][pHotel] = hotelid+1;
pData[playerid][pHotelRoom] = room;
format(gHotelName[hotelid][room],MAX_PLAYER_NAME,"%s",pData[playerid][pNickname]);
format(query,sizeof(query),"UPDATE `hotels` SET `name%d`='%s' WHERE `id`='%d'",room,pData[playerid][pNickname],hotelid+1);
sql_query(zConn, query);
TransferMoney(playerid,-1,price,"hotelrent");
SendClientMessage(playerid,CGREEN,"Поздравляем! Вы арендовали номер в отеле. У вас появилась возможность приобрести транспорт.");
UpdateHotel3D(hotelid);
}
Код:
stock LoadHotels() {
new Result:hotels = sql_query(zConn, "SELECT * FROM `hotels` ORDER BY `id`", QUERY_CACHED);
if(sql_num_rows(hotels) != HOTEL_COUNT) print("Ê-âî îòåëåé íå ñîâïàäàåò ñ ïðåäîïðåäåëåííûì êîëè÷åñòâîì");
else
{
new zRes[256], name[24];
for(new i;i<sql_num_rows(hotels);i++)
{
sql_fetch_row(hotels,"|",zRes);
sql_next_row(hotels);
sscanf(zRes,"p<|>e<iis[24]iii>a<i>[8]a<i>[8]",gHotelData[i],gHotelResidents[i],gHotelEndurance[i]);
for(new k; k<8; k++) {
if(gHotelResidents[i][k]) {
new id = gHotelResidents[i][k];
GetPlayerNameByID(id,name);
format(gHotelName[i][k], 24, "%s", name);
if(gHotelEndurance[i][k]-gCurDay < 0) {
format(zRes, sizeof(zRes), "SELECT `car` FROM `accounts` WHERE `id` = '%d'",id);
new Result:carfind = sql_query(zConn, zRes, QUERY_CACHED);
if(sql_num_rows(carfind)) {
new car = sql_get_field_int(carfind, 0);
new carID = GetCarSlot(car);
if(carID != -1) {
new vehicleid = gCars[carID][carVid];
new modelid = GetVehicleModel(vehicleid) - 400;
format(zRes,sizeof(zRes),"DELETE FROM `cars` WHERE `id` = '%d'",car);
sql_query(zConn, zRes);
format(zRes,sizeof(zRes),"UPDATE `accounts` SET `car` = '0',`bank` = 'bank+%d' WHERE `id` = '%d'",floatround(gTransport[modelid][trPrice]*0.8),id);
DestroyVehicle(vehicleid);
gCars[carID][carOwnerid] = 0;
gCars[carID][carMysqlID] = 0;
gCars[carID][carModelid] = 0;
gCars[carID][carFuel] = 0.0;
gCars[carID][carDrived] = 0.0;
gCars[carID][carHealth] = 0.0;
gCars[carID][carColor1] = 0;
gCars[carID][carColor2] = 0;
gCars[carID][carVid] = INVALID_VEHICLE_ID;
strdel(gCars[carID][carPlate],0,12);
}
}
gHotelResidents[i][k] = 0;
gHotelEndurance[i][k] = 0;
UpdateHotelResidents(i);
}
}
}
CreateDynamicPickup(19132,1,gHotels[i][0], gHotels[i][1], gHotels[i][2]);
gHotelArea[i] = CreateDynamicSphere(gHotels[i][0],gHotels[i][1],gHotels[i][2],1.0);
UpdateHotel3D(i);
}
}
sql_free_result(hotels);
return 1;
}
Код:
stock UpdateHotelResidents(hotelid)
{
new query[320],data[128];
for(new i;i<8;i++)
{
if(i)
{
format(data,sizeof(data),"%s|%d",data,gHotelResidents[hotelid][i]);
format(query,sizeof(query),"%s|%d",query,gHotelEndurance[hotelid][i]);
}
else
{
format(data,sizeof(data),"%d",gHotelResidents[hotelid][i]);
format(query,sizeof(query),"%d",gHotelEndurance[hotelid][i]);
}
}
format(query,sizeof(query),"UPDATE `hotels` SET `residents` = '%s', `endurance` = '%s' WHERE `id` = '%d'",data,query,hotelid+1);
sql_query(zConn, query, QUERY_THREADED);
return 1;
}



). В функции загрузки сей косяк вроде.