• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проблема с продажей дома

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

noahmacros

Начинающий
Пользователь
Регистрация
18 Июн 2018
Сообщения
18
Лучшие ответы
0
Репутация
0
В общем, проблема заключается в том, что продается только тот дом, который создан самый ПЕРВЫЙ, без разницы какой у него ID(хоть 1, хоть 20, хоть 500), важно только то, что я создал его ПЕРВЫМ.
Остальные дома не продаются, я даже проверку сделал на то, имеет ли дом игрок или нет, и с первым созданным домом все хорошо( /hmenu работает), а вот с остальными домами уже эта команда не работает, хотя этот дом куплен и даже добавился в БД.
Если удалить эту проверку и попробовать продать дом, то он не продается, а продается дом с другим ID(который в госе).
Вот команда /hmenu, команда добавления дома и кейс с продажей дома:
PHP:
CMD:hmenu(playerid)
{
	static const frm_str[] =
	"\
		%s дом\n\
		Продать дом государству\n\
		Продать дом игроку\
	";
	new
		string[sizeof frm_str + (7 - 2) +1],
		index = -1
	;
	for(new i = 0; i < Houses; i++)
	{
     	if(House[i][H_OWNER] == player[i][pid])
	    {
	        index = i;
         	break;
	    }
	    if(House[i][H_OWNER] == 0)
 		{
  			SCM(playerid, COLOR_GREY, "Вы не владеете домом");
  			return 1;
   		}
   		if(IsPlayerInRangeOfPoint(playerid, 7.0, House[Houses][H_X], House[Houses][H_Y], House[Houses][H_Z]))
   		{
   			SCM(playerid, COLOR_LGREY, "Вы должны находиться возле двери своего дома");
   			return 1;
   		}
	}
	if(index == -1) return 1;
	SetPVarInt(playerid, !"HouseIndex", index);
	format(string, sizeof string, frm_str, House[index][H_LOCK] ? ("Открыть") : ("Закрыть"));
	SPD(playerid, 25, DSL, !"Меню дома", string, !"Выбрать", !"Выход");
	return true;
}
PHP:
CMD:addhouse(playerid)
{
	if(player[playerid][padmin] < 6) return true;
	if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return 1;
	new Float:x, Float:y, Float:z, Float:a;
	GetPlayerPos(playerid, x, y, z);
	GetPlayerFacingAngle(playerid, a);
	new string[240];
	format(string, sizeof string, "INSERT INTO `houses` (`id`, `x`, `y`, `z`, `a`) VALUES (NULL, '%.3f',  '%.3f',  '%.3f',  '%.3f')", x, y, z, a);
	mysql_query(olegSQL, string);
	House[Houses][H_ID] = cache_insert_id();
	House[Houses][H_PICKUP] = CreateDynamicPickup(1273, 23, x, y, z);
	House[Houses][H_AREA] = CreateDynamicSphere(x, y, z, 1.5);
	AddGroupGoodAreas(HouseGroup, House[Houses][H_AREA], Houses);
	House[Houses][H_X] = x;
	House[Houses][H_Y] = y;
	House[Houses][H_Z] = z;
	House[Houses][H_A] = a;
	House[Houses][H_INTERIOR] = 1;
	House[Houses][H_PRICE] = 1;
	House[Houses][H_CLASS] = 1;
	Houses++;
	return 1;
}
PHP:
case 26:
		{
		    new index = GetPVarInt(playerid, !"HouseIndex");
		    if(!response) return callcmd::hmenu(playerid);
		    static const frm_query[] = "UPDATE `houses` SET `owner`='0',`balance`='0', `houselock`='0' WHERE `id`='%d'";
            new query[sizeof frm_query + (12 - 2) + 1];
           	House[index][H_OWNER] = 0;
			House[index][H_BALANCE] = 0;
			House[index][H_LOCK] = 0;
			format(query, sizeof query, frm_query, House[index][H_ID]);
			mysql_tquery(olegSQL, query);
			DestroyDynamicPickup(House[index][H_PICKUP]);
			DestroyDynamicMapIcon(House[index][H_ICON]);
	 		House[index][H_PICKUP] = CreateDynamicPickup(1273, 23, House[index][H_X], House[index][H_Y], House[index][H_Z]);
  			House[index][H_ICON] = CreateDynamicMapIcon(House[index][H_X], House[index][H_Y], House[index][H_Z], 31, -1);
  			
  			new price = floatround(House[index][H_PRICE] * 0.75);
  			
  			player[playerid][pmoney] += price;
  			
  			static const frm_str[] = "Вы успешно продали дом государству за {52B32E}$%d";
  			new string[sizeof frm_str + (12 - 2) + 1];
     		format(string, sizeof string, frm_str, price);
     		SCM(playerid, 0x52B32EFF, string);
		}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу