Freaky
Умник
Всем привет, столкнулся с такой проблемой. После покупки дома постоянно выключается сервер.
Мод: GF.
buyhouse:
stock propupdate:
stock updatehouse:
Мод: GF.
buyhouse:
PHP:
if(strcmp(cmd, "/buyhouse", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
for(new i = 0; i < sizeof(HouseInfo); i++)
{
if (IsPlayerInRangeOfPoint(playerid,3,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]) && HouseInfo[i][hOwned] == 0)
{
if(PlayerInfo[playerid][pLevel] < HouseInfo[i][hLevel])
{
format(string, sizeof(string), "{FF0000}[Ошибка]{FFFFFF} : Вы должны быть как минимум %d уровня, чтобы купить это.", HouseInfo[i][hLevel]);
SendClientMessage(playerid, COLOR_WHITE, string);
return true;
}
if(PlayerInfo[playerid][pPhousekey] != 0 && strcmp(playername, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0) return error(playerid," У вас есть дом.");
if(GetPlayerBablo(playerid) > HouseInfo[i][hValue])
{
PlayerInfo[playerid][pPhousekey] = i;
HouseInfo[i][hOwned] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(HouseInfo[i][hOwner], sendername, 0, strlen(sendername), 255);
GivePlayerBablo(playerid,-HouseInfo[i][hValue]);
PlayerPlayMusic(playerid);
SetPlayerVirtualWorld(playerid,i+250);
SetPlayerInterior(playerid,HouseInfo[i][hInt]);
SetPlayerPos(playerid,HouseInfo[i][hExitx],HouseInfo[i][hExity],HouseInfo[i][hExitz]);
PlayerInfo[playerid][pVirWorld] = i;
GameTextForPlayer(playerid, "~w~Welcome to new Home", 5000, 1);
PlayerInfo[playerid][pInt] = HouseInfo[i][hInt];
PlayerInfo[playerid][pLocal] = i;
HouseEntered[playerid] = i;
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Поздравляем с покупкой.");
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Введите {FFFFFF}/help {FFFFFF}для помощи с командами дома.");
UpdateHouse(i);
OnPropUpdate();
SavePlayer(playerid);
return true;
}
else
{
error(playerid," У Вас недостаточно денег для покупки этого дома.");
return true;
}
}
}
}
return true;
}
PHP:
stock OnPropUpdate()
{
new idx;
new File: file2;
while (idx < sizeof(HouseInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%f,%f,%f,%d,%d,%d,%d,%d,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",
HouseInfo[idx][hEntrancex],
HouseInfo[idx][hEntrancey],
HouseInfo[idx][hEntrancez],
HouseInfo[idx][hExitx],
HouseInfo[idx][hExity],
HouseInfo[idx][hExitz],
HouseInfo[idx][hHealthx],
HouseInfo[idx][hHealthy],
HouseInfo[idx][hHealthz],
HouseInfo[idx][hArmourx],
HouseInfo[idx][hArmoury],
HouseInfo[idx][hArmourz],
HouseInfo[idx][hOwner],
HouseInfo[idx][hValue],
HouseInfo[idx][hHel],
HouseInfo[idx][hArm],
HouseInfo[idx][hInt],
HouseInfo[idx][hLock],
HouseInfo[idx][hOwned],
HouseInfo[idx][hRooms],
HouseInfo[idx][hRent],
HouseInfo[idx][hRentabil],
HouseInfo[idx][hTakings],
HouseInfo[idx][hVec],
HouseInfo[idx][hVcol1],
HouseInfo[idx][hVcol2],
HouseInfo[idx][hDate],
HouseInfo[idx][hId],
HouseInfo[idx][hLevel],
HouseInfo[idx][hKoleso],
HouseInfo[idx][hSpoiler],
HouseInfo[idx][hBamper],
HouseInfo[idx][hBamper2],
HouseInfo[idx][hPaintjob],
HouseInfo[idx][hNitro],
HouseInfo[idx][hGidravlika]);
if(idx == 0)
{
file2 = fopen("House/property.cfg", io_write);
}
else
{
file2 = fopen("House/property.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
PHP:
stock UpdateHouse(idx)
{
new text[600];
DestroyDynamicMapIcon(HouseInfo[idx][hMIcon]);
DestroyPickup(HouseInfo[idx][hPickup]);
if(HouseInfo[idx][hOwned] == 0)
{
format(text,sizeof(text),"{FFFFFF}Дом доступен для покупки\n{FFFFFF}Номер дома: {00C0FF}%d\n{FFFFFF}Стоимость дома: {00C0FF}%d$\n{FFFFFF}Уровень: {00C0FF}%d\n{FFFFFF}Для покупки используйте {00C0FF}/buyhouse",idx,HouseInfo[idx][hValue],HouseInfo[idx][hLevel]);
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez], 31, COLOR_WHITE, 0, -1, -1, 400.0);
HouseInfo[idx][hPickup] = CreatePickup(1273, 23, HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez],-1);
CreateMapIcon(31, 0, HouseInfo[idx][hEntrancex],HouseInfo[idx][hEntrancey],HouseInfo[idx][hEntrancez]);
Update3DTextLabelText(HouseInfo[idx][hLabel], 0x33CCFFAA, text);
}
else if(HouseInfo[idx][hOwned] == 1)
{
format(text,sizeof(text),"{FFFFFF}Номер дома: {00C0FF}%d\n{FFFFFF}Владелец дома: {00C0FF}%s\n{FFFFFF}Уровень: {00C0FF}%d\n{FFFFFF}Стоимость дома: {00C0FF}%d$",idx,HouseInfo[idx][hOwner],HouseInfo[idx][hLevel],HouseInfo[idx][hValue]);
HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez], 32, COLOR_WHITE, 0, -1, -1, 400.0);
HouseInfo[idx][hPickup] = CreatePickup(1272, 23, HouseInfo[idx][hEntrancex], HouseInfo[idx][hEntrancey], HouseInfo[idx][hEntrancez],-1);
CreateMapIcon(32, 0, HouseInfo[idx][hEntrancex],HouseInfo[idx][hEntrancey],HouseInfo[idx][hEntrancez]);
Update3DTextLabelText(HouseInfo[idx][hLabel], 0x33CCFFAA, text);
}
}
