Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Проблема с Changehouse

Статус
В этой теме нельзя размещать новые ответы.

iFlomaster

Ученик
Вобщем при обмене домами (если у обоих игроков дом есть, идет обмен) все нормально, но если у одного нету, то продать второй ему не может.
Детально выглядит так -

PHP:
/changehouse 2 250000
Вы предложили *НИК_Нейм* Купить ваш дома за ***
Введите /ac house чтобы подтвердить сделку
*НИК* предложил обменяться домами *ник*
--вводим /ac house за того кто предложил---
Вы подтвердили сделку!
Второму показывает :
Игрок подтвердил сделку, введие /ac house для продолжения
Вводишь - ничего не происходит.
Вот сама система -


PHP:
CMD:changehouse(playerid, params[])
{
	if(PTEMP[playerid][pLogin] == 0) return true;
	if(!HGet(playerid)) return SCM(playerid, COLOR_GREY, "Ó Âàñ íåò äîìà!");
	new bouse = PTEMP[playerid][pPHouseKey];
	if(sscanf(params, "ud", params[0],params[1])) return SCM(playerid, COLOR_WHITE, " Ââåäèòå: /changehouse [id] [öåíà]");
	if(params[1] < 1 || params[0] > 100000000) return SCM(playerid, COLOR_GREY, "Íå ìåíåå 1 è íå áîëåå 100000000 âèðò!");
	if(!ProxDetectorS(8.0, playerid, params[0])) return SCM(playerid, COLOR_GREY,"Èãðîê äîëæåí íàõîäèòüñÿ ðÿäîì ñ âàìè!");
	if(GetPVarInt(playerid,"changehouse")) return SCM(playerid,COLOR_GREY,"Âû óæå ïðåäëîæèëè êîìó òî êóïèòü âàø äîì!");
	if(GetPVarInt(params[0],"_changehouse")) return SCM(playerid,COLOR_GREY,"Ýòîìó èãðîêó óæå ïðåäëîæèëè êóïèòü äîì!");
	if(params[0] == playerid) return SCM(playerid, COLOR_GREY, "Âû íå ìîæåòå ïðîäàòü äîì ñàìîìó ñåáå!");
	if((!PlayerToPoint(10, playerid,HouseInfo[bouse][hExitx], HouseInfo[bouse][hExity], HouseInfo[bouse][hExitz]) || GetPlayerVirtualWorld(playerid) != bouse+50) && !PlayerToPoint(2.0, playerid, HouseInfo[bouse][hEntrancex], HouseInfo[bouse][hEntrancey], HouseInfo[bouse][hEntrancez])) return SCM(playerid,COLOR_GREY,"Âû äîëæíû íàõîäèòüñÿ âîçëå, èëè âíóòðè âàøåãî äîìà");
	if(HGet(params[0]))
	{
		SendMes(playerid,0x6495EDFF,"Âû ïðåäëîæèëè %s îáìåíÿòüñÿ äîìàìè. Äîïëàòà: [%i âèðò]",PTEMP[params[0]][pName], params[1]);
		SendMes(params[0],0x6495EDFF,"%s ïðåäëàãàåò âàì îáìåíÿòüñÿ äîìàìè. Âàøà äîïëàòà: [%i âèðò]",PTEMP[playerid][pName], params[1]);
	}
	else
	{
		SendMes(playerid,0x6495EDFF,"Âû ïðåäëîæèëè %s êóïèòü âàø äîì. Ñòîèìîñòü: [%i âèðò]",PTEMP[params[0]][pName], params[1]);
		SendMes(params[0],0x6495EDFF,"%s ïðåäëàãàåò âàì êóïèòü åãî äîì. Ñòîèìîñòü: [%i âèðò]",PTEMP[playerid][pName], params[1]);
	}
	SCM(playerid,0x6495EDFF,"(( Ââåäèòå /(ac)cept house äëÿ ïîäòâåðæäåíèÿ ñäåëêè! ))");
	format(YCMDstr, sizeof(YCMDstr), "%s ïðåäëîæèë(à) îáìåíÿòüñÿ äîìàìè %s.",Name(playerid) ,Name(params[0]));
	ProxDetector(30.0, playerid, YCMDstr, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
	SetPVarInt(playerid,"changehouse",params[0]+1);
	SetPVarInt(playerid,"changehouse_price",params[1]);
	SetPVarInt(params[0],"_changehouse",playerid+1);
	DeletePVar(params[0],"changehouse_h");
	return true;
}
PHP:
else if(strcmp(x_job, "house",true) == 0)
	{
		if(GetPVarInt(playerid,"changehouse"))
		{
			new i = GetPVarInt(playerid,"changehouse")-1;
			if(!HGet(playerid)) return SCM(playerid,COLOR_GREY,"У вас нет дома!"), DeletePVar(playerid,"changehouse_price"), DeletePVar(playerid,"changehouse_"), DeletePVar(i,"_changehouse"), DeletePVar(playerid,"changehouse");
			if(GetPVarInt(playerid,"changehouse_")) return SCM(playerid,COLOR_GREY,"Вы уже подтвердили сделку!");
			SetPVarInt(playerid,"changehouse_",1);
			SCM(playerid,0x6495EDFF,"Вы подтвердили сделку!");
			SCM(i,0x6495EDFF,"Игрок подтвердил сделку!");
			SCM(i,0x6495EDFF,"(( Введите /(ac)cept house для продолжения! ))");
			return true;
		}
		else if(GetPVarInt(playerid,"_changehouse"))
		{
			new i = GetPVarInt(playerid,"_changehouse")-1;
			if(!GetPVarInt(i,"changehouse_")) return SCM(playerid,COLOR_GREY,"Игрок ещё не подтвердил сделку!");
			if(!HGet(i)) return SCM(playerid,COLOR_GREY,"У игрока нет дома!"), DeletePVar(i,"changehouse"), DeletePVar(i,"changehouse_price"), DeletePVar(i,"changehouse_"), DeletePVar(playerid,"_changehouse");
			HGet(playerid);
			new str[10], str_[10];
			switch(HouseInfo[PTEMP[playerid][pPHouseKey]][hKlass])
			{
			case 0: str = "Nope"; case 1: str = "D"; case 2: str = "C";
			case 3: str = "B"; case 4: str = "A"; default: str = "S";
			}
			switch(HouseInfo[PTEMP[i][pPHouseKey]][hKlass])
			{
			case 0: str_ = "Nope"; case 1: str_ = "D"; case 2: str_ = "C";
			case 3: str_ = "B"; case 4: str_ = "A"; default: str_ = "S";
			}
			if(HGet(playerid) && HGet(i))
			{
				format(string,250,"Вы собираетесь обменяться домами с %s\n\nВаш дом:\n\tНомер дома: [%i]\n\tКласс дома: [%s]\n\nДом игрока:\n\tНомер дома: [%i]\n\tКласс дома: [%s]\n\tДоплата: [%i вирт]",PTEMP[playerid][pName],PTEMP[i][pPHouseKey],str_,PTEMP[playerid][pPHouseKey],str,GetPVarInt(i,"changehouse_price"));
				ShowPlayerDialog(i,0, 0,"Обмен домами",string,"Закрыть","");
				format(string,250,"Вы собираетесь обменяться домами с %s\n\nВаш дом:\n\tНомер дома: [%i]\n\tКласс дома: [%s]\n\nДом игрока:\n\tНомер дома: [%i]\n\tКласс дома: [%s]\n\tВаша доплата: [%i вирт]",PTEMP[i][pName],PTEMP[playerid][pPHouseKey],str,PTEMP[i][pPHouseKey],str_,GetPVarInt(i,"changehouse_price"));
				ShowPlayerDialog(playerid,1565, 0,"Обмен домами",string,"Обмен","Отмена");
				SetPVarInt(playerid,"changehouse_h",1);
			}
			else if(HGet(playerid) && !HGet(i))
			{
				format(string,250,"Вы собираетесь продать дом %s\n\n\tНомер дома: [%i]\n\tКласс дома: [%s]\n\tДоплата: [%i вирт]",PTEMP[playerid][pName],PTEMP[i][pPHouseKey],str,GetPVarInt(i,"changehouse_price"));
				ShowPlayerDialog(i,0, 0,"Продажа дома",string,"Закрыть","");
				format(string,250,"Вы собираетесь купить дом у %s\n\n\tНомер дома: [%i]\n\tКласс дома: [%s]\n\tВаша доплата: [%i вирт]\n\nКупить дом?",PTEMP[i][pName],PTEMP[playerid][pPHouseKey],str_,GetPVarInt(i,"changehouse_price"));
				ShowPlayerDialog(playerid,1565, 0,"Продажа дома",string,"Купить","Отмена");
			}
			return true;
		}
	}
PHP:
case 1565:
		{
			new i = GetPVarInt(playerid,"_changehouse")-1;
			if(!GetPVarInt(playerid,"_changehouse")) return true;
			if(!response) return SCM(playerid,COLOR_GREY," Âû îòêàçàëèñü îò ñäåëêè"), SCM(i,COLOR_GREY," Èãðîê îòêàçàëñÿ îò ñäåëêè"), DeletePVar(i,"changehouse"), DeletePVar(i,"changehouse_price"), DeletePVar(i,"changehouse_"), DeletePVar(playerid,"_changehouse");
			if(!HGet(i)) return SCM(playerid,COLOR_GREY," Ó èãðîêà íåò äîìà!"), DeletePVar(i,"changehouse"), DeletePVar(i,"changehouse_price"), DeletePVar(i,"changehouse_"), DeletePVar(playerid,"_changehouse");
			new h = PTEMP[i][pPHouseKey];
			if(!ProxDetectorS(8.0, playerid, i)) return SCM(playerid, COLOR_GREY, " Èãðîê ñëèøêîì äàëåêî îò âàñ!"), DeletePVar(i,"changehouse"), DeletePVar(i,"changehouse_price"), DeletePVar(i,"changehouse_"), DeletePVar(playerid,"_changehouse");
			if(PTEMP[playerid][pCash] < GetPVarInt(i,"changehouse_price"))return SCM(playerid, COLOR_GREY, " Ó âàñ íåò ñòîëüêî äåíåã íà ðóêàõ!"), DeletePVar(i,"changehouse"), DeletePVar(i,"changehouse_price"), DeletePVar(i,"changehouse_"), DeletePVar(playerid,"_changehouse");
			if(GetPVarInt(playerid,"changehouse_h"))
			{
				if(!HGet(playerid)) return SCM(playerid,COLOR_GREY," Ó âàñ íåò äîìà!"), DeletePVar(i,"changehouse"), DeletePVar(i,"changehouse_price"), DeletePVar(i,"changehouse_"), DeletePVar(playerid,"_changehouse");
				strmid(HouseInfo[PTEMP[playerid][pPHouseKey]][hOwner],PTEMP[i][pName], 0, strlen(PTEMP[i][pName]), 32);
				SendMes(playerid,0x6495EDFF,"Âû îáìåíÿëèñü äîìàìè ñ %s. Âàøà äîïëàòà %i âèðò!",PTEMP[i][pName], GetPVarInt(i,"changehouse_price"));
				SendMes(i,0x6495EDFF,"Âû îáìåíÿëèñü äîìàìè ñ %s. Äîïëàòà %i âèðò!",PTEMP[playerid][pName], GetPVarInt(i,"changehouse_price"));
				BuyHouse(PTEMP[playerid][pPHouseKey]);
			}
			else SendMes(playerid,0x6495EDFF,"Âû êóïèëè äîì ó %s. Ñòîèìîñòü %i âèðò!",PTEMP[i][pName], GetPVarInt(i,"changehouse_price")), SendMes(i,0x6495EDFF,"Âû ïðîäàëè äîì %s. Ñòîèìîñòü %i âèðò!",PTEMP[playerid][pName], GetPVarInt(i,"changehouse_price"));
			strmid(HouseInfo[h][hOwner],PTEMP[playerid][pName], 0, strlen(PTEMP[playerid][pName]), 32);
			if(house_car[i] != -1 && !HGet(i)) DestroyVehicle(house_car[i]), house_car[i] = -1;
			PTEMP[playerid][pCash] -= GetPVarInt(i,"changehouse_price");
			PTEMP[i][pCash] += GetPVarInt(i,"changehouse_price");
			BuyHouse(h);
			HGet(i), HGet(playerid);
			DeletePVar(i,"changehouse");
			DeletePVar(i,"changehouse_price");
			DeletePVar(i,"changehouse_");
			return DeletePVar(playerid,"_changehouse");
		}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу