Перейти к содержанию
Авторизация  
Exclusive

Слетает дом

Рекомендуемые сообщения

Exclusive

Всем привет,столкнулся с такой проблемой,купил дом,перезашел в игру все норм,создал еще дома,перезашел в игру хочу реснуться в доме,пишет что нету дома.Когда один дом на сервере все норм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

,Код покупки дома и сохранение кидай! Мод на БД как я понял! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Exclusive
		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

,Пишет что нет дома,а дом куплен? Ну тот дом который ты купил смотрел его? Он так же куплен иили он в продаже? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Exclusive

@Marvellous,На радаре он красный,на пикапе когда встаешь он продается,в БД пишет что дом куплен.Но респавнится в нем не могу 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marvellous

,

 

Замени все полностью.

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

@Marvellous,У меня была такая проблема,я решил ее,смогу помочь,создашь тему 


@Marvellous,Не помогло 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Exclusive

Проблему решил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.