Exclusive 45 Опубликовано 16 июля, 2017 Всем привет,столкнулся с такой проблемой,купил дом,перезашел в игру все норм,создал еще дома,перезашел в игру хочу реснуться в доме,пишет что нету дома.Когда один дом на сервере все норм. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marvellous 271 Опубликовано 16 июля, 2017 ,Код покупки дома и сохранение кидай! Мод на БД как я понял! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Exclusive 45 Опубликовано 16 июля, 2017 case D_JOINHOUSE: { if(!response) return 1; new idx = GetPVarInt(playerid, "PlayerHouse"); if(!strcmp(HouseInfo[idx][hOwner], "None", true)) { if(PI[playerid][pCash] < HouseInfo[idx][hPrice]) return SendClientMessage(playerid, COLOR_GREY, "У вас не хватает денег!"); else { new house = 0; for(new i = 1; i <= TOTALHOUSE;i++) { if(!strcmp(HouseInfo[i][hOwner], GetName(playerid), true)) house++; } if(house != 0) return SendClientMessage(playerid, COLOR_GREY, "У вас уже есть дом!"); PI[playerid][pCash] -= HouseInfo[idx][hPrice]; HouseInfo[idx][hBuyPrice] = HouseInfo[idx][hPrice]/2; HouseInfo[idx][hOplata] = GetHomeOplata(idx)*2; HouseInfo[idx][hLock] = 1; SendMes(playerid, COLOR_GREEN, "Вы купили дом за %i Рублей. У вас осталось: %i Рублей",HouseInfo[idx][hPrice], PI[playerid][pCash]); SendClientMessage(playerid, COLOR_LIME, "Подсказка: {FFFFFF}На домашнем балансе проплачен 1 час, рекомендуем вам пополнить счет"); SendMes(playerid, COLOR_LIME, "Подсказка: {FFFFFF}Стоимость кварплаты для вашего дома будет составлять %d Рублей в час",GetHomeOplata(idx)); strmid(HouseInfo[idx][hOwner], GetName(playerid), 0, strlen(GetName(playerid)), MAX_PLAYER_NAME); new string[256]; format(string, sizeof(string), "UPDATE "T_HOUSE" SET hOwner = '%s', hOplata = %i, buyprice = %i, hLock = %i WHERE id = '%d' LIMIT 1", HouseInfo[idx][hOwner], GetHomeOplata(idx)*2, HouseInfo[idx][hBuyPrice], HouseInfo[idx][hLock], idx); mysql_tquery(dbHandle, string, "", ""); PI[playerid][pSpawnChange] = 1; PI[playerid][cLock] = 1; LoadMyCar(playerid); UpdateHouse(idx); return 1; } } Это? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marvellous 271 Опубликовано 16 июля, 2017 ,Пишет что нет дома,а дом куплен? Ну тот дом который ты купил смотрел его? Он так же куплен иили он в продаже? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Exclusive 45 Опубликовано 16 июля, 2017 @Marvellous,На радаре он красный,на пикапе когда встаешь он продается,в БД пишет что дом куплен.Но респавнится в нем не могу Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Marvellous 271 Опубликовано 16 июля, 2017 , Замени все полностью. for(new idx = 1; idx <= TOTALHOUSE; idx++) { if(pickupid == HouseInfo[idx][hPickup]) { SetPVarInt(playerid, "PlayerHouse", idx); new string[350]; if(!strcmp(HouseInfo[idx][hOwner],"None",true)) { format(string,sizeof(string),"{ffffff}\tДом №%d\n\nСтоимость: %d Рублей\nКласс: %s\nОплата в день: %d Рублей за сутки",idx,HouseInfo[idx][hPrice],HouseInfo[idx][hDiscript],GetHomeOplata(idx)*24); return ShowPlayerDialog(playerid, D_JOINHOUSE, 0,"{ffcc00}Дом",string,"Купить","Отмена"); } else { new stronline[27],strdoor[27]; if(GetPlayerID(HouseInfo[idx][hOwner]) == INVALID_PLAYER_ID) format(stronline,sizeof(stronline),"[{ff0000}Offline{ffffff}]"); else format(stronline,sizeof(stronline),"[{3caa3c}Online{ffffff}]"); if(HouseInfo[idx][hLock] == 0) format(strdoor,sizeof(strdoor),"[{3caa3c}Открыто{ffffff}]"); else format(strdoor,sizeof(strdoor),"[{3caa3c}Закрыто{ffffff}]"); format(string,sizeof(string),"{ffffff}Дом №%d\n\nВладелец: %s %s\nКласс: [{3caa3c}%s{ffffff}]\nДверь: %s",idx,HouseInfo[idx][hOwner],stronline,HouseInfo[idx][hDiscript],strdoor); return ShowPlayerDialog(playerid, D_JOINHOUSE, 0,"{ffcc00}Меню входа",string,"Войти","Отмена"); } } } case D_JOINHOUSE: { if(!response) return 1; new idx = GetPVarInt(playerid, "PlayerHouse"); if(!strcmp(HouseInfo[idx][hOwner], "None", true)) { if(PI[playerid][pCash] < HouseInfo[idx][hPrice]) return SendClientMessage(playerid, COLOR_GREY, "У вас не хватает денег!"); else { new house = 0; for(new i = 1; i <= TOTALHOUSE;i++) { if(!strcmp(HouseInfo[i][hOwner], GetName(playerid), true)) house++; } if(house != 0) return SendClientMessage(playerid, COLOR_GREY, "У вас уже есть дом!"); PI[playerid][pCash] -= HouseInfo[idx][hPrice]; HouseInfo[idx][hBuyPrice] = HouseInfo[idx][hPrice]/2; HouseInfo[idx][hOplata] = GetHomeOplata(idx)*2; HouseInfo[idx][hLock] = 1; SendMes(playerid, COLOR_GREEN, "Вы купили дом за %i Рублей. У вас осталось: %i Рублей",HouseInfo[idx][hPrice], PI[playerid][pCash]); SendClientMessage(playerid, COLOR_LIME, "Подсказка: {FFFFFF}На домашнем балансе проплачен 1 час, рекомендуем вам пополнить счет"); SendMes(playerid, COLOR_LIME, "Подсказка: {FFFFFF}Стоимость кварплаты для вашего дома будет составлять %d Рублей в час",GetHomeOplata(idx)); strmid(HouseInfo[idx][hOwner], GetName(playerid), 0, strlen(GetName(playerid)), MAX_PLAYER_NAME); new string[256]; format(string, sizeof(string), "UPDATE "T_HOUSE" SET hOwner = '%s', hOplata = %i, buyprice = %i, hLock = %i WHERE id = '%d' LIMIT 1", HouseInfo[idx][hOwner], GetHomeOplata(idx)*2, HouseInfo[idx][hBuyPrice], HouseInfo[idx][hLock], idx); mysql_tquery(dbHandle, string, "", ""); PI[playerid][pSpawnChange] = 1; PI[playerid][cLock] = 1; LoadMyCar(playerid); UpdateHouse(idx); return 1; } } else { if(HouseInfo[idx][hLock] == 1) { if(strcmp(GetName(playerid), HouseInfo[idx][hOwner], true) == 0) ShowPlayerDialog(playerid, D_JOB+14, 0, "{ffcc00}Дом", "{FFFFFF}Ваш дом закрыт\n\nВы хотите его открыть?", "Да", "Нет"); GameTextForPlayer(playerid, "~r~Locked", 5000, 1); } else { SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]); SetPlayerInterior(playerid,HouseInfo[idx][hInt]); SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]); } } } case D_SELLHOUSE: { if(!response) return cmd_home(playerid); new i = GetPVarInt(playerid, "PlayerHouse"); strmid(HouseInfo[i][hOwner], "None", 0, strlen("None"), MAX_PLAYER_NAME); PI[playerid][pBank] += HouseInfo[i][hOplata]; PI[playerid][pSpawnChange] = 0; SendMes(playerid, COLOR_LIME, "Подсказка: {FFFFFF}Деньги с домашнего счета переведены на ваш банковский счет (%d Рублей)",HouseInfo[i][hOplata] ); MysqlUpdateHouseStr(i, "hOwner", "None"); HouseInfo[i][hLock] = 1; SendMes(playerid, COLOR_RED, "Вы продали свой дом государству за %d Рублей. Деньги переведены в банк",HouseInfo[i][hBuyPrice]); PI[playerid][pBank] += HouseInfo[i][hBuyPrice]; UpdateHouse(i); if(PI[playerid][PlayerCarID] != INVALID_VEHICLE_ID) { DestroyVehicle(PI[playerid][PlayerCarID]); PI[playerid][PlayerCarID] = INVALID_VEHICLE_ID; } format(query, sizeof(query), "UPDATE "T_HOUSE" SET hOwner = '%s', buyprice = 0, hLock = %d, hOplata = 0 WHERE id = '%d' LIMIT 1", HouseInfo[i][hOwner], HouseInfo[i][hLock], i); mysql_tquery(dbHandle, query, "", ""); if(GetPlayerVirtualWorld(playerid) == HouseInfo[i][hVirtual]) { SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SetPlayerPosEx(playerid, HouseInfo[i][hEntrx], HouseInfo[i][hEntry], HouseInfo[i][hEntrz]); DeletePVar(playerid, "PlayerHouse"); } } case D_SELLHOUSE+1: { if(response) { if(!IsPlayerConnected(HouseOffer[playerid])) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotOnline); if(PlayerLogged[HouseOffer[playerid]] == false) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotAuthorized); if(GetMoney(playerid) < HousePrice[playerid]) { SendMes(HouseOffer[playerid], COLOR_GREY, "У %s недостаточно средств!", GetName(playerid)); HouseOffer[playerid] = -1; HousePrice[playerid] = 0; return SendClientMessage(playerid, COLOR_GREY, "У вас не хватает денег!"); } TransferMoney(-1, HouseOffer[playerid], HousePrice[playerid]); format(query, sizeof(query), "UPDATE "T_HOUSE" SET hOwner = '%s', hLock = 1, hOplata = 0 WHERE id = '%d' LIMIT 1", GetName(HouseOffer[playerid]), GetPVarInt(playerid, "PlayerHouse")); mysql_tquery(dbHandle, query, "", ""); format(query, sizeof(query), "UPDATE "T_HOUSE" SET hOwner = '%s', hLock = 1, hOplata = 0 WHERE id = '%d' LIMIT 1", GetName(playerid), GetPVarInt(HouseOffer[playerid], "PlayerHouse")); mysql_tquery(dbHandle, query, "", ""); strmid(HouseInfo[GetPVarInt(HouseOffer[playerid], "PlayerHouse")][hOwner],GetName(playerid), 0, strlen(GetName(playerid)), MAX_PLAYER_NAME); strmid(HouseInfo[GetPVarInt(playerid, "PlayerHouse")][hOwner],GetName(HouseOffer[playerid]), 0, strlen(GetName(HouseOffer[playerid])), MAX_PLAYER_NAME); HouseInfo[GetPVarInt(HouseOffer[playerid], "PlayerHouse")][hLock] = 1; HouseInfo[GetPVarInt(playerid, "PlayerHouse")][hLock] = 1; HouseInfo[GetPVarInt(HouseOffer[playerid], "PlayerHouse")][hOplata] = 0; HouseInfo[GetPVarInt(playerid, "PlayerHouse")][hOplata] = 0; SetPVarInt(playerid, "PlayerHouse", GetPVarInt(HouseOffer[playerid], "PlayerHouse")); SetPVarInt(HouseOffer[playerid], "PlayerHouse", GetPVarInt(playerid, "PlayerHouse")); SendMes(playerid, COLOR_GREEN, "Вы обменялись домами с %s. Доплата: %d Рублей", GetName(HouseOffer[playerid]),HousePrice[playerid]); SendMes(HouseOffer[playerid], COLOR_GREEN, "Вы обменялись домами с %s. Ваша доплата: %d Рублей", GetName(playerid),HousePrice[playerid]); HouseOffer[playerid] = -1; HousePrice[playerid] = 0; PI[playerid][pSpawnChange] = 0; } else SendMes(HouseOffer[playerid], COLOR_RED, "%s отклонил предложение обменяться домами с вами", GetName(playerid)); } И попробуй еще раз,тот дом который куплен удали и удали вообще все дома и создай по новой! У меня мод такой же,но у меня нормально все,только одна проблема,когда в нем спавнишься их него выйти нельзя,там возле выхода не создается пикап почему то! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Exclusive 45 Опубликовано 16 июля, 2017 @Marvellous,У меня была такая проблема,я решил ее,смогу помочь,создашь тему @Marvellous,Не помогло Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Exclusive 45 Опубликовано 16 июля, 2017 Проблему решил. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты