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; }