NedoScripter228
Новичок
Всем привет!
Такая проблема: я делаю систему домов.
И при создание команды /house (для управления дома) у меня идет всё хорошо. Но когда я подхожу к другому дому
Должно писаттся "Это не ваш дом". Но этого не происходит. Вместо этого он пишет что я не нахожусь не у дома(любого)
Такая проблема: я делаю систему домов.
И при создание команды /house (для управления дома) у меня идет всё хорошо. Но когда я подхожу к другому дому
Должно писаттся "Это не ваш дом". Но этого не происходит. Вместо этого он пишет что я не нахожусь не у дома(любого)
PHP:
// Енумы и переменные
enum hInfo
{
id,
Owner[24],
Int,
Vw,
Float: Ex,
Float: Ey,
Float: Ez,
Price,
Class,
Lock,
Pickup,
MapIcon,
Text3D:Text
};
enum hiInfo
{
Float:hiX,Float:hiY,Float:hiZ,hiInt,
hiName[15]
};
new HInts[][hiInfo]={
{318.564971,1118.209960,1083.882812,5,"Crack den"},
{2269.4453,-1210.2952,1047.5625,10,"Hashbury House"},
{2496.2676,-1693.8955,1014.7422,3,"Johnsons House"},
{1299.14,-794.77,1084.00,5,"Madd Doggs M."},
{2260.3711,-1135.7345,1050.6328,10,"R.B.M. Room"},
{2365.6023,-1133.6688,1050.8750,8,"V. B. House"},
{1302.519897,-1.787510,1001.028259,18,"Warehouse 2"},
{2324.419921,-1145.568359,1050.710083,12,"Un. safe house"},
{76.632553,-301.156829,1.578125,0,"Blueberry"}
};
// OnGamemodeInit
LoadHouses();
//OnPlayerKeyStateChange
else if(newkeys & KEY_WALK)
{
mysql_query(connects, "SELECT * FROM `house`");
new rows, fields;
cache_get_data(rows, fields);
for(new h; h<=rows; h++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, House[h][Ex], House[h][Ey], House[h][Ez]))
{
if(House[h][Lock] == 1) return SendClientMessage(playerid, COLOR_RED, "Дом закрыт! Если это ваш дом то откройте его через </house>");
SendClientMessage(playerid, COLOR_WHITE, "Ты зашёл в дом!");
SetPlayerPos(playerid, HInts[House[h][Int]][hiX], HInts[House[h][Int]][hiY], HInts[House[h][Int]][hiZ]);
SetPlayerInterior(playerid, HInts[House[h][Int]][hiInt]);
SetPlayerVirtualWorld(playerid, House[h][Vw]);
inHouse[playerid] = 1;
PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
}
if(IsPlayerInRangeOfPoint(playerid, 1.0, HInts[House[h][Int]][hiX], HInts[House[h][Int]][hiY], HInts[House[h][Int]][hiZ]))
{
SendClientMessage(playerid, COLOR_WHITE, "Ты вышел из дома!");
inHouse[playerid] = 0;
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerPos(playerid, House[h][Ex], House[h][Ey], House[h][Ez]);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
}
}
}
else if(newkeys & KEY_YES)
{
mysql_query(connects, "SELECT * FROM `house`");
new rows, fields;
cache_get_data(rows, fields);
for(new h; h<=rows; h++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, House[h][Ex], House[h][Ey], House[h][Ez]))
{
if(!strcmp(House[h][Owner], "The State"))
{
if(Player[playerid][pMoney] < House[h][Price]) return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег для покупки этого дома!");
Player[playerid][pMoney] -= House[h][Price];
strmid(House[h][Owner],Player[playerid][pName],0,24,24);
UpdateHouse(h);
SendClientMessage(playerid,-1,"Вы успешно купили дом!");
PlayerPlaySound(playerid,1054,0.0,0.0,0.0);
SaveHouses(h);
}
else
{
SendClientMessage(playerid, COLOR_RED, "Этот дом уже куплен!");
}
}
}
}
//LoadHouses()
stock LoadHouses()
{
mysql_query(connects, "SELECT * FROM `house`");
new rows, fields;
cache_get_data(rows, fields);
for(new h; h<=rows; h++)
{
printf("%d", h);
new query[60];
new STR[100];
format(query, sizeof(query), "SELECT * FROM `house` WHERE `id` = '%d'", h);
mysql_query(connects, query);
House[h][id] = cache_get_field_content_int(0, "id", connects);
cache_get_field_content(0, "owner", House[h][Owner], connects, 24);
House[h][Ex] = cache_get_field_content_float(0, "x", connects);
House[h][Ey] = cache_get_field_content_float(0, "y", connects);
House[h][Ez] = cache_get_field_content_float(0, "z", connects);
House[h][Int] = cache_get_field_content_int(0, "int", connects);
House[h][Vw] = cache_get_field_content_int(0, "vw", connects);
House[h][Class] = cache_get_field_content_int(0, "class", connects);
House[h][Price] = cache_get_field_content_int(0, "price", connects);
House[h][Lock] = cache_get_field_content_int(0, "lock", connects);
CreateDynamicPickup(1318, 23, HInts[House[h][Int]][hiX], HInts[House[h][Int]][hiY], HInts[House[h][Int]][hiZ]);
if(!strcmp(House[h][Owner],"The State",true))
{
House[h][Pickup] = CreateDynamicPickup(1273, 23, House[h][Ex], House[h][Ey], House[h][Ez]);
House[h][MapIcon] = CreateDynamicMapIcon(House[h][Ex], House[h][Ey], House[h][Ez], 31, COLOR_GREEN);
format(STR, sizeof(STR), "[Дом продается]\nЦена: $%d", House[h][Price]);
House[h][Text] = Create3DTextLabel(STR, COLOR_WHITE, House[h][Ex], House[h][Ey], House[h][Ez], 2.0, 0);
}
else
{
House[h][Pickup] = CreateDynamicPickup(19522, 23, House[h][Ex], House[h][Ey], House[h][Ez]);
format(STR, sizeof(STR),"[Дом]\nВладелец: %s", House[h][Owner]);
House[h][Text] = Create3DTextLabel(STR, COLOR_WHITE, House[h][Ex], House[h][Ey], House[h][Ez], 2.0, 0);
House[h][MapIcon] = CreateDynamicMapIcon(House[h][Ex], House[h][Ey], House[h][Ez], 32, COLOR_RED);
}
}
SendRconCommand("password 0");
}
//UpdateHouse
stock UpdateHouse(h)
{
new STR[100];
DestroyDynamicPickup(House[h][Pickup]);
DestroyDynamicMapIcon(House[h][MapIcon]);
if(!strcmp(House[h][Owner],"The State",true))
{
House[h][Pickup] = CreateDynamicPickup(1273, 23, House[h][Ex], House[h][Ey], House[h][Ez]);
House[h][MapIcon] = CreateDynamicMapIcon(House[h][Ex], House[h][Ey], House[h][Ez], 31, COLOR_GREEN);
format(STR, sizeof(STR), "[Дом продается]\nЦена: $%d", House[h][Price]);
Update3DTextLabelText(House[h][Text], 0xFFFFFFFF, STR);
}
else
{
House[h][Pickup] = CreateDynamicPickup(19522, 23, House[h][Ex], House[h][Ey], House[h][Ez]);
format(STR, sizeof(STR),"[Дом]\nВладелец: %s", House[h][Owner]);
Update3DTextLabelText(House[h][Text], 0xFFFFFFFF ,STR);
House[h][MapIcon] = CreateDynamicMapIcon(House[h][Ex], House[h][Ey], House[h][Ez], 32, COLOR_RED);
}
}
//Houses
CMD:house(playerid)
{
new query[128];
format(query, sizeof(query), "SELECT * FROM `house` WHERE `Owner` = '%s'", Player[playerid][pName]);
mysql_query(connects, query);
new rows, fields;
cache_get_data(rows, fields);
if(!rows) return SendClientMessage(playerid, COLOR_RED, "У вас нет своего дома!");
for(new h; h < rows; h++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, House[h][Ex], House[h][Ey], House[h][Ez]))
{
if(House[h][Owner] == Player[playerid][pName])
{
switch(House[h][Lock])
{
case 0: ShowPlayerDialog(playerid, DIALOG_HOUSE_MENU, DIALOG_STYLE_LIST, "Меню дома", "Закрыть дом\nПродать дом игроку", "Далее", "Отмена");
case 1: ShowPlayerDialog(playerid, DIALOG_HOUSE_MENU, DIALOG_STYLE_LIST, "Меню дома", "Открыть дом\nПродать дом игроку", "Далее", "Отмена");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Это не ваш дом!");
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Вы должны быть рядом со своим домом!");
}
}
return 1;
}
