- Регистрация
- 18 Июн 2018
- Сообщения
- 18
- Лучшие ответы
- 0
- Репутация
- 0
В общем, проблема заключается в том, что продается только тот дом, который создан самый ПЕРВЫЙ, без разницы какой у него ID(хоть 1, хоть 20, хоть 500), важно только то, что я создал его ПЕРВЫМ.
Остальные дома не продаются, я даже проверку сделал на то, имеет ли дом игрок или нет, и с первым созданным домом все хорошо( /hmenu работает), а вот с остальными домами уже эта команда не работает, хотя этот дом куплен и даже добавился в БД.
Если удалить эту проверку и попробовать продать дом, то он не продается, а продается дом с другим ID(который в госе).
Вот команда /hmenu, команда добавления дома и кейс с продажей дома:
Остальные дома не продаются, я даже проверку сделал на то, имеет ли дом игрок или нет, и с первым созданным домом все хорошо( /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);
}