Система домов ini от Дим (new.pwn)
1. Каждый игрок может иметь не более 3 домов.
2. Дома можно продавать за любую цену, но не более чем разрешено (10 лимонов).
Продажа идёт не "впустую", а выставляется на продажу. После того как дом выставлен на продажу, пикап меняется с зелёного на синий. Так же и иконки на карте меняют свой цвет.
Можно снять дом с продажи (для назначения новой цены или просто так).
Деньги переводятся только после того, как кто то купит ваш дом.
3. ТП к выбранному дому.
4. Вход в дом.
5. Все действия выполняются через меню (на кнопку Alt)
2. Дома можно продавать за любую цену, но не более чем разрешено (10 лимонов).
Продажа идёт не "впустую", а выставляется на продажу. После того как дом выставлен на продажу, пикап меняется с зелёного на синий. Так же и иконки на карте меняют свой цвет.
Можно снять дом с продажи (для назначения новой цены или просто так).
Деньги переводятся только после того, как кто то купит ваш дом.
3. ТП к выбранному дому.
4. Вход в дом.
5. Все действия выполняются через меню (на кнопку Alt)
- Скриншоты
phpBB [media]
Для начала сделаем простую регистрацию - клац. Она была написана специально для данной системы.
Ставим стример:
Code: Select all
#include <streamer>
Под переменными игрока, добавим переменные для домов:
- Переменные домов
- Для этого под:
Code: Select all
new PlayerInfo[MAX_PLAYERS][pInfo];
добавим:Code: Select all
#define MAX_HOUSE 11//для 10 домов (если надо больше - увеличивайте на своё кол-во +1)
new hpid[64];//id пикапов
new HouseSale[MAX_HOUSE]; // иконка продающегося дома
new HouseOwn[MAX_HOUSE]; // иконка купленного дома
new HousePickupSale[MAX_HOUSE]; // Pickup продающегося дома
new HousePickupOwn[MAX_HOUSE]; // Pickup купленного дома
new Text3D: House3DSale[MAX_HOUSE]; // 3D-текст продающегося дома
new Text3D:House3DOwn[MAX_HOUSE]; // 3D-текст купленного дома
enum hHouse
{
hhouseName[128], //0 имя дома
hhouseDohod,//запас
hhousePrice,//цена
hhouseOwner[MAX_PLAYER_NAME],//имя влад
Float:hhousePosX,// координаты
Float:hhousePosY,
Float:hhousePosZ,
Float:hhouse1PosX,
Float:hhouse1PosY,
Float:hhouse1PosZ,
hworld,//вирт. мир интерьера дома
hClok,//занят или нет
Exit //
};
new HouseSystem[MAX_HOUSE][hHouse];
Потом добавим следующие паблики и стоки, которые нам потребуются в дальнейшем. Для этого ко всем форвардам добавляем:
Code: Select all
forward SaveHouse();//сохранение домов
forward LoadHouse();//загрузка домов
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);//проверка на координаты игрока
И в конец мода ко всем пабликам добавляем:
- public LoadHouse()
Code: Select all
public LoadHouse()
{
print(" загружен - LoadHouse");
new house = ini_openFile("House/House.ini");
new hinfo[12][128];//где 12 - число значений в файле после ключа, 128 - максимальный размер значения (?)
new hid[64];// для строкового типа id дома
new bstring[256];// для записи полной строки для ключа
new string[256];
for(new i = 1; i < MAX_HOUSE; i++)
{
if(HouseSystem[i][hClok]== 1)
{
Delete3DTextLabel(Text3D:House3DSale[i]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{f984e5}id %d", HouseSystem[i][hhouseName], HouseSystem[i][hhouseOwner], HouseSystem[i][hworld]);
House3DSale[i] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[i][hhousePosX], HouseSystem[i][hhousePosY], HouseSystem[i][hhousePosZ], 40.0, 0, 1);
}
if(HouseSystem[i][hClok]== 0)
{
Delete3DTextLabel(Text3D:House3DOwn[i]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{0096ff}Продаётся\n{ff0000}Стоимость: {FFFFFF}$%s\n{f984e5}id %d", HouseSystem[i][hhouseName], HouseSystem[i][hhouseOwner], ConvertNumbers(HouseSystem[i][hhousePrice],"."), HouseSystem[i][hworld]);
House3DOwn[i] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[i][hhousePosX], HouseSystem[i][hhousePosY], HouseSystem[i][hhousePosZ], 40.0, 0, 1);
}
format(hid, 64, "%d", i);// запишем id дома в строку
ini_getString(house, hid, bstring);// загрузим данные из id дома в строку bstring
split(bstring, hinfo, '|');// разобьём строку bstring и запишем разбитые данные символом | в массив hinfo
strmid(HouseSystem[i][hhouseName], hinfo[0], 0, strlen(hinfo[0]), 256);//название дома
HouseSystem[i][hhouseDohod] = strval(hinfo[1]);// уровень дома
HouseSystem[i][hhousePrice] = strval(hinfo[2]); // цена дома
strmid(HouseSystem[i][hhouseOwner], hinfo[3], 0, strlen(hinfo[3]), 256); // владелец дома
HouseSystem[i][hhousePosX] = floatstr(hinfo[4]);
HouseSystem[i][hhousePosY] = floatstr(hinfo[5]);
HouseSystem[i][hhousePosZ] = floatstr(hinfo[6]);
HouseSystem[i][hhouse1PosX] = floatstr(hinfo[7]);
HouseSystem[i][hhouse1PosY] = floatstr(hinfo[8]);
HouseSystem[i][hhouse1PosZ] = floatstr(hinfo[9]);
HouseSystem[i][hworld] = strval(hinfo[10]);
HouseSystem[i][hClok] = strval(hinfo[11]);
//
}
ini_closeFile(house);
return true;
}
- public SaveHouse()
Code: Select all
public SaveHouse()
{
new string[200];
new house = ini_openFile("House/House.ini");
new hid[64];
for(new i = 1; i < MAX_HOUSE; i++)
{
format(string,sizeof(string),"%s|%d|%d|%s|%f|%f|%f|%f|%f|%f|%d|%d",
HouseSystem[i][hhouseName],
HouseSystem[i][hhouseDohod],
HouseSystem[i][hhousePrice],
HouseSystem[i][hhouseOwner],
HouseSystem[i][hhousePosX],
HouseSystem[i][hhousePosY],
HouseSystem[i][hhousePosZ],
HouseSystem[i][hhouse1PosX],
HouseSystem[i][hhouse1PosY],
HouseSystem[i][hhouse1PosZ],
HouseSystem[i][hworld],
HouseSystem[i][hClok]);
format(hid,64,"%d",i);
ini_setString(house,hid,string);
}
ini_closeFile(house);
}
- public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
Code: Select all
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return true;
}
}
return 0;
}
- stock split(const strsrc[], strdest[][], delimiter)
Code: Select all
stock split(const strsrc[], strdest[][], delimiter)//разбивка строки в файле с домами
{
new i, li;
new aNum;
new len;
while(i <= strlen(strsrc)){
if(strsrc[i]==delimiter || i==strlen(strsrc)){
len = strmid(strdest[aNum], strsrc, li, i, 128);
strdest[aNum][len] = 0;
li = i+1;
aNum++;
}
i++;
}
return true;
}
- stock ConvertNumbers(num,delimeter[2],size = 3)
Code: Select all
stock ConvertNumbers(num,delimeter[2],size = 3)//ставит точки (10.000.000)
{//в принципе сток бесполезный, но так удобнее читать цену домов
new result[50];
new x = -1;
valstr(result,num);
for(new i = strlen(result); i > 0; i--)
{
x++;
if(x == size){ strins(result,delimeter,i); x = 0; }
}
return result;
}
- stock GetPlayerID(const Name[])
Code: Select all
//================ узнать ID по нику =========================================
stock GetPlayerID(const Name[])
{
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(i, pName, sizeof(pName));
if(strcmp(Name, pName, true)==0)
{
return i;
}
}
}
return -1;
}
Ну и также как и для регистрации, в папке scriptfiles создаём новую папку House и в неё поместим следующий файлик - House.ini
- House.ini
Code: Select all
1 = Дом|0|1000|Нет|-2075.538818|-60.708999|35.320301|2365.419921|-1131.849975|1050.880004|1|0
2 = Особняк|0|1000|Нет|-2072.839111|-60.632598|35.320301|2365.419921|-1131.849975|1050.880004|2|0
3 = Халупа|0|1000|Нет|-2069.288818|-61.103401|35.320301|2365.419921|-1131.849975|1050.880004|3|0
4 = Квартира|0|1000|Нет|-2064.427246|-60.684299|35.320301|2365.419921|-1131.849975|1050.880004|4|0
5 = Комната|0|1000|Нет|-2060.573730|-60.851699|35.320301|2365.419921|-1131.849975|1050.880004|5|0
6 = Коттедж|0|1000|Нет|-2056.655517|-60.809501|35.320301|2365.419921|-1131.849975|1050.880004|6|0
7 = Избушка|0|1000|Нет|-2051.788818|-60.794300|35.320301|2365.419921|-1131.849975|1050.880004|7|0
8 = Коммуналка|0|1000|Нет|-2048.279052|-60.857299|35.320301|2365.419921|-1131.849975|1050.880004|8|0
9 = Развалюха|0|1000|Нет|-2044.111572|-60.738098|35.320301|2365.419921|-1131.849975|1050.880004|9|0
10 = Изба|0|1000|Нет|-2040.506591|-60.777599|35.320301|2365.419921|-1131.849975|1050.880004|10|0
Разберём его по частям:
1 - ID дома
1 = Дом - название дома
1 = Дом|0 - резервная строка (про запас )
1 = Дом|0|1000|Нет - владелец
1 = Дом|0|1000|Нет|-2075.5388|-60.7090|35.3203 - следующие 3 - координаты пикапа и текста
1 = Дом|0|1000|Нет|-2075.5388|-60.7090|35.3203|2365.419921|-1131.849975|1050.880004 - следующие 3 - координаты интерьера дома
1 = Дом|0|1000|Нет|-2075.5388|-60.7090|35.3203|2365.419921|-1131.849975|1050.880004|1 - виртуальный мир интерьера (что бы владельцы не пересекались)
1 = Дом|0|1000|Нет|-2075.5388|-60.7090|35.3203|2365.419921|-1131.849975|1050.880004|1|0 - продан или нет 0 - нет, 1 - продан.
В паблик public OnGameModeInit() добавим загрузку пикапов, 3D текста, и иконок.
- Загрузка
Code: Select all
LoadHouse();
new string[256];
for(new h = 1; h < MAX_HOUSE; h++)//загрузка пикапов, иконок и текста
{
HouseSystem[h][Exit] = CreateDynamicPickup(1318, 23, 2365.098876,-1135.368774,1050.875000, -1);
if(HouseSystem[h][hClok]== 1)
{
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{f984e5}id %d", HouseSystem[h][hhouseName], HouseSystem[h][hhouseOwner], HouseSystem[h][hworld]);
House3DSale[h] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[h][hhousePosX], HouseSystem[h][hhousePosY], HouseSystem[h][hhousePosZ], 40.0, 0, 1);
HouseSale[h] = CreateDynamicMapIcon(HouseSystem[h][hhousePosX], HouseSystem[h][hhousePosY], HouseSystem[h][hhousePosZ],32,0,-1,-1,-1,150);
HousePickupSale[h] = CreateDynamicPickup(1272, 23, HouseSystem[h][hhousePosX], HouseSystem[h][hhousePosY], HouseSystem[h][hhousePosZ]+0.3, -1);
}
if(HouseSystem[h][hClok]== 0)
{
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{0096ff}Продаётся\n{ff0000}Стоимость: {FFFFFF}$%s\n{f984e5}id %d", HouseSystem[h][hhouseName], HouseSystem[h][hhouseOwner], ConvertNumbers(HouseSystem[h][hhousePrice],"."), HouseSystem[h][hworld]);
House3DOwn[h] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[h][hhousePosX], HouseSystem[h][hhousePosY], HouseSystem[h][hhousePosZ], 40.0, 0, 1);
HouseOwn[h] = CreateDynamicMapIcon(HouseSystem[h][hhousePosX], HouseSystem[h][hhousePosY], HouseSystem[h][hhousePosZ],31,0,-1,-1,-1,150);
HousePickupOwn[h] = CreateDynamicPickup(1273, 23, HouseSystem[h][hhousePosX], HouseSystem[h][hhousePosY], HouseSystem[h][hhousePosZ]+0.3, -1);
}
}
Там же сразу изменим спавн игрока. Пусть он будет у АШ, где и расположены дома. Для этого поменяем координаты на:
Code: Select all
AddPlayerClass(0, -2047.7631,-86.3119,35.1641,354.9869, 0, 0, 0, 0, 0, 0);
Пикапы теперь у нас есть но они не работают, давайте сделаем действия для них.
В паблик public OnPlayerPickUpPickup(playerid, pickupid)
- Действия для пикапов
Code: Select all
public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new h = 1; h < MAX_HOUSE; h++)// при заходе на пикап
{
if(pickupid == HousePickupOwn[h])
{
new PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));// Узнаем ник игрока
new hid[64];// для строкового типа id дома
hpid[playerid] = h;// id пикапа
format(hid, sizeof(hid),"House/%iHouse.ini",h);// если продаётся то меню покупкии (для покупателя) для владельца - вход
if ((strcmp (HouseSystem[h][hhouseOwner], PlayerName)) && (HouseSystem[h][hClok]== 0)) ShowPlayerDialog(playerid,10,DIALOG_STYLE_MSGBOX,"Покупка дома.","Вы хотите купить этот дом?","Да", "Нет");
if ((!strcmp (HouseSystem[h][hhouseOwner], PlayerName)) && (HouseSystem[h][hClok]== 0)) ShowPlayerDialog(playerid,20,DIALOG_STYLE_MSGBOX,"Войти в дом.","Вы хотите войти в дом?","Да", "Нет");
}
}
for(new h = 1; h < MAX_HOUSE; h++)
{
if(pickupid == HousePickupSale[h])
{
new PlayerName[MAX_PLAYER_NAME]; //не продаётся (вход для владельца)
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));// Узнаем ник игрока
new hid[64];// для строкового типа id дома
hpid[playerid] = h;// id пикапа
format(hid, sizeof(hid),"House/%iHouse.ini",h);
if (!strcmp (HouseSystem[h][hhouseOwner], PlayerName)) ShowPlayerDialog(playerid,20,DIALOG_STYLE_MSGBOX,"Войти в дом.","Вы хотите войти в дом?","Да", "Нет");
}
if(pickupid == HouseSystem[h][Exit])//выход из дома
{
SetPlayerVirtualWorld(playerid,0);
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,HouseSystem[hpid[playerid]][hhousePosX],HouseSystem[hpid[playerid]][hhousePosY],HouseSystem[hpid[playerid]][hhousePosZ]);
}
}
return true;
}
На данном этапе можно скомпилировать мод. Если всё прошло удачно, то продолжаем дальше.
Ну и осталось совсем немного, это сделать вызов меню на кнопу Alt:
- меню на кнопу Alt
- В паблик public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) добавим:
Code: Select all
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{//если игрок в доме, меню вызвать не получится
if ((newkeys==1024) && !PlayerToPoint(20.0, playerid,2365.419921,-1131.849975,1050.880004))
{
ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
}
return true;
}
и действия для всех меню:
- Действия
- Для этого в паблик public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]), после регистрации добавим:
Code: Select all
if(dialogid == 3)//главное меню
{
if(response)
{
if(listitem == 0)// меню домов
{
new text[128], text2[128], text3[128], string[128];
if(PlayerInfo[playerid][pHouse] != 0)//1 дом
{
format(string, sizeof(string), "%s", HouseSystem[PlayerInfo[playerid][pHouse]][hhouseName]);//если дом есть будет написано название
text = string;
}
else
{
text = "Пусто";//если дома нет будет написано - Пусто
}
if(PlayerInfo[playerid][pHouse1] != 0)//2 дом
{
format(string, sizeof(string), "%s", HouseSystem[PlayerInfo[playerid][pHouse1]][hhouseName]);
text2 = string;
}
else
{
text2 = "Пусто";
}
if(PlayerInfo[playerid][pHouse2] != 0)//3 дом
{
format(string, sizeof(string), "%s", HouseSystem[PlayerInfo[playerid][pHouse2]][hhouseName]);
text3 = string;
}
else
{
text3 = "Пусто";
}
new str[128], sctring[256];
format(str,sizeof(str),"1. %s\n",text);
strcat(sctring,str);
format(str,sizeof(str),"2. %s\n",text2);
strcat(sctring,str);
format(str,sizeof(str),"3. %s\n",text3);
strcat(sctring,str);
ShowPlayerDialog(playerid,30,DIALOG_STYLE_LIST,"Дом",sctring,"Выбрать", "Выход");
return true;
}
}
}
//============================ дом купить ==================================
if(dialogid == 10 && response)
{
new string[128];
new hid[64];
format(hid, sizeof(hid),"House/%iHouse.ini",hpid[playerid]);
if(PlayerInfo[playerid][pNHouse]>=3)return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Вы не можете иметь более {ffffff}трёх {ff0000}домов.");
if(HouseSystem[hpid[playerid]][hhousePrice] > GetPlayerMoney(playerid))return SendClientMessage(playerid,0xFF0000AA,"{f984e5}У Вас недостаточно денег, чтобы купить дом.");
if(IsPlayerConnected(GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])))//если продавец в игре
{
GivePlayerMoney(GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner]), HouseSystem[hpid[playerid]][hhousePrice]);//даём денег
PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse]-=1;//забираем 1 количество домов у продавца
if(PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse]== hpid[playerid])PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse]=0;//забираем id 1 у продавца
if(PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse1]== hpid[playerid])PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse1]=0;//забираем id 2 у продавца
if(PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse2]== hpid[playerid])PlayerInfo[GetPlayerID(HouseSystem[hpid[playerid]][hhouseOwner])][pHouse2]=0;//забираем id 3 у продавца
}
else{//если продавец не в игре
format(account,sizeof(account),"Users/%s.ini",HouseSystem[hpid[playerid]][hhouseOwner]);//ищем акк продавца
new iniFile = ini_openFile(account);//открываем файл продавца
ini_getInteger(iniFile, "Money", PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pMoney]);//узнаём сколько денег у продавца
ini_setInteger(iniFile, "Money" , HouseSystem[hpid[playerid]][hhousePrice]+ PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pMoney]); // Запишем денег продавцу
ini_getInteger(iniFile, "NHouse" , PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pNHouse]);//узнаём количество домов у продавца
ini_setInteger(iniFile, "NHouse" , PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pNHouse]-1);//забираем 1 количество домов у продавца
ini_getInteger(iniFile, "House" , PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pHouse]);//узнаём id 1 биза
if(PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pHouse]== hpid[playerid]) ini_setInteger(iniFile, "House" , 0);//забираем id 1 у продавца
ini_getInteger(iniFile, "House1" , PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pHouse1]);
if(PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pHouse1]== hpid[playerid]) ini_setInteger(iniFile, "House1" , 0);
ini_getInteger(iniFile, "House2" , PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pHouse2]);//узнаём id 3 биза
if(PlayerInfo[HouseSystem[hpid[playerid]][hhouseOwner]][pHouse2]== hpid[playerid]) ini_setInteger(iniFile, "House2" , 0);//забираем id 3 у продавца
ini_closeFile(iniFile);} // Закроем файл продавца
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));// Узнаем ник покупателя
HouseSystem[hpid[playerid]][hClok] = 1;//закрываем дом от продажи
HouseSystem[hpid[playerid]][hhouseOwner] = PlayerName;//записываем ник покупателя
PlayerInfo[playerid][pNHouse] += 1;//прибавляем 1 кол во домов
GivePlayerMoney(playerid, -HouseSystem[hpid[playerid]][hhousePrice]);//забираем деньги у покупателя
DestroyDynamicPickup(HousePickupOwn[hpid[playerid]]);
HousePickupSale[hpid[playerid]] = CreateDynamicPickup(1272, 23, HouseSystem[hpid[playerid]][hhousePosX], HouseSystem[hpid[playerid]][hhousePosY], HouseSystem[hpid[playerid]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseOwn[hpid[playerid]]);
HouseSale[hpid[playerid]] = CreateDynamicMapIcon(HouseSystem[hpid[playerid]][hhousePosX], HouseSystem[hpid[playerid]][hhousePosY], HouseSystem[hpid[playerid]][hhousePosZ],32,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DOwn[hpid[playerid]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{f984e5}id %d", HouseSystem[hpid[playerid]][hhouseName], PlayerName, HouseSystem[hpid[playerid]][hworld]);
House3DSale[hpid[playerid]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[hpid[playerid]][hhousePosX], HouseSystem[hpid[playerid]][hhousePosY], HouseSystem[hpid[playerid]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
if(PlayerInfo[playerid][pHouse]==0&&PlayerInfo[playerid][pHouse1]==0&&PlayerInfo[playerid][pHouse2]==0) return PlayerInfo[playerid][pHouse] = hpid[playerid];//записывает id биз
if(PlayerInfo[playerid][pHouse]!=0&&PlayerInfo[playerid][pHouse1]==0&&PlayerInfo[playerid][pHouse2]==0) return PlayerInfo[playerid][pHouse1] = hpid[playerid];
if(PlayerInfo[playerid][pHouse]!=0&&PlayerInfo[playerid][pHouse1]!=0&&PlayerInfo[playerid][pHouse2]==0) return PlayerInfo[playerid][pHouse2] = hpid[playerid];
if(PlayerInfo[playerid][pHouse]!=0&&PlayerInfo[playerid][pHouse1]==0&&PlayerInfo[playerid][pHouse2]!=0) return PlayerInfo[playerid][pHouse1] = hpid[playerid];
if(PlayerInfo[playerid][pHouse]==0&&PlayerInfo[playerid][pHouse1]!=0&&PlayerInfo[playerid][pHouse2]!=0) return PlayerInfo[playerid][pHouse] = hpid[playerid];
if(PlayerInfo[playerid][pHouse]==0&&PlayerInfo[playerid][pHouse1]==0&&PlayerInfo[playerid][pHouse2]!=0) return PlayerInfo[playerid][pHouse] = hpid[playerid];
if(PlayerInfo[playerid][pHouse]==0&&PlayerInfo[playerid][pHouse1]!=0&&PlayerInfo[playerid][pHouse2]==0) return PlayerInfo[playerid][pHouse] = hpid[playerid];
}
//========================== вход в дом ========================================
if(dialogid == 20 && response)// вход в дом
{
for(new h = 1; h < MAX_HOUSE; h++)
{
{
SetPlayerVirtualWorld(playerid,HouseSystem[h][hworld]);
SetPlayerInterior(playerid,8);
SetPlayerPos(playerid,2365.42,-1131.85,1050.88);
}
}
}
if(dialogid == 30)// меню домов
{
if(response)
{
if(listitem == 0)//дом 1
{
if(PlayerInfo[playerid][pHouse] == 0) return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Первый слот пока пустой."), ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
new string[128];
format(string,sizeof(string),"{00ff00}Дом: {ffff00}%s",HouseSystem[PlayerInfo[playerid][pHouse]][hhouseName]);
new str[128],sctring[128];
format(str,sizeof(str),"Продать дом\n");
strcat(sctring,str);
format(str,sizeof(str),"Снять с продажи\n");
strcat(sctring,str);
format(str,sizeof(str),"{42aaff}Телепорт к дому");
strcat(sctring,str);
ShowPlayerDialog(playerid, 40, DIALOG_STYLE_LIST, string, sctring, "Выбрать", "Выход");
}
if(listitem == 1)//дом 2
{
if(PlayerInfo[playerid][pHouse1] == 0) return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Второй слот пока пустой."), ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
new string[128];
format(string,sizeof(string),"{00ff00}Дом: {ffff00}%s",HouseSystem[PlayerInfo[playerid][pHouse1]][hhouseName]);
new str[128],sctring[128];
format(str,sizeof(str),"Продать дом\n");
strcat(sctring,str);
format(str,sizeof(str),"Снять с продажи\n");
strcat(sctring,str);
format(str,sizeof(str),"{42aaff}Телепорт к дому");
strcat(sctring,str);
ShowPlayerDialog(playerid, 41, DIALOG_STYLE_LIST, string, sctring, "Выбрать", "Выход");
}
if(listitem == 2)//дом 3
{
if(PlayerInfo[playerid][pHouse2] == 0) return SendClientMessage(playerid,0xFF0000AA,"Третий слот пока пустой."), ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
new string[128];
format(string,sizeof(string),"{00ff00}Дом: {ffff00}%s",HouseSystem[PlayerInfo[playerid][pHouse2]][hhouseName]);
new str[128],sctring[128];
format(str,sizeof(str),"Продать дом\n");
strcat(sctring,str);
format(str,sizeof(str),"Снять с продажи\n");
strcat(sctring,str);
format(str,sizeof(str),"{42aaff}Телепорт к дому");
strcat(sctring,str);
ShowPlayerDialog(playerid, 42, DIALOG_STYLE_LIST, string, sctring, "Выбрать", "Выход");
}
}
else ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
}
if(dialogid == 40)// меню первого дома
{
if(response)
{
if(listitem == 0)//Продать дом
{
if(HouseSystem[PlayerInfo[playerid][pHouse]][hClok] == 0)return SendClientMessage(playerid,0xFF0000AA,"{00ff00}SempleR: {f984e5}Дом уже продаётся.");
ShowPlayerDialog(playerid,50,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
}
if(listitem == 1)//Снять с продажи
{
if(HouseSystem[PlayerInfo[playerid][pHouse]][hClok] == 1)return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Дом уже снят с продажи.");
new string[128];
HouseSystem[PlayerInfo[playerid][pHouse]][hClok] = 1;
DestroyDynamicPickup(HousePickupOwn[PlayerInfo[playerid][pHouse]]);
HousePickupSale[PlayerInfo[playerid][pHouse]] = CreateDynamicPickup(1272, 23, HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseOwn[PlayerInfo[playerid][pHouse]]);
HouseSale[PlayerInfo[playerid][pHouse]] = CreateDynamicMapIcon(HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ],32,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DOwn[PlayerInfo[playerid][pHouse]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{f984e5}id %d", HouseSystem[PlayerInfo[playerid][pHouse]][hhouseName],HouseSystem[PlayerInfo[playerid][pHouse]][hhouseOwner],HouseSystem[PlayerInfo[playerid][pHouse]][hworld]);
House3DSale[PlayerInfo[playerid][pHouse]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
}
if(listitem == 2)//Телепорт к дому
{
SetPlayerPos(playerid,HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ]);// функция изменяет текущую позицию онлайн игрока на карте
}
}
else ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
}
if(dialogid == 41)// меню второго дома
{
if(response)
{
if(listitem == 0)//Продать дом
{
if(HouseSystem[PlayerInfo[playerid][pHouse1]][hClok] == 0)return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Дом уже продаётся.");
ShowPlayerDialog(playerid,51,DIALOG_STYLE_INPUT,"Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
}
if(listitem == 1)//Снять с продажи
{
if(HouseSystem[PlayerInfo[playerid][pHouse1]][hClok] == 1)return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Дом уже снят с продажи.");
new string[128];
HouseSystem[PlayerInfo[playerid][pHouse1]][hClok] = 1;
DestroyDynamicPickup(HousePickupOwn[PlayerInfo[playerid][pHouse1]]);
HousePickupSale[PlayerInfo[playerid][pHouse1]] = CreateDynamicPickup(1272, 23, HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseOwn[PlayerInfo[playerid][pHouse1]]);
HouseSale[PlayerInfo[playerid][pHouse1]] = CreateDynamicMapIcon(HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ],32,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DOwn[PlayerInfo[playerid][pHouse1]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{f984e5}id %d", HouseSystem[PlayerInfo[playerid][pHouse1]][hhouseName],HouseSystem[PlayerInfo[playerid][pHouse1]][hhouseOwner],HouseSystem[PlayerInfo[playerid][pHouse1]][hworld]);
House3DSale[PlayerInfo[playerid][pHouse1]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
}
if(listitem == 2)//Телепорт к дому
{
SetPlayerPos(playerid,HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ]);// функция изменяет текущую позицию онлайн игрока на карте
}
}
else ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
}
if(dialogid == 42)// меню третьего дома
{
if(response)
{
if(listitem == 0)//Продать дом
{
if(HouseSystem[PlayerInfo[playerid][pHouse2]][hClok] == 0)return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Дом уже продаётся.");
ShowPlayerDialog(playerid,52,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
}
if(listitem == 1)//Снять с продажи
{
if(HouseSystem[PlayerInfo[playerid][pHouse2]][hClok] == 1)return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Дом уже снят с продажи.");
new string[128];
HouseSystem[PlayerInfo[playerid][pHouse2]][hClok] = 1;
DestroyDynamicPickup(HousePickupOwn[PlayerInfo[playerid][pHouse2]]);
HousePickupSale[PlayerInfo[playerid][pHouse2]] = CreateDynamicPickup(1272, 23, HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseOwn[PlayerInfo[playerid][pHouse2]]);
HouseSale[PlayerInfo[playerid][pHouse2]] = CreateDynamicMapIcon(HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ],32,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DOwn[PlayerInfo[playerid][pHouse2]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{f984e5}id %d", HouseSystem[PlayerInfo[playerid][pHouse2]][hhouseName],HouseSystem[PlayerInfo[playerid][pHouse2]][hhouseOwner],HouseSystem[PlayerInfo[playerid][pHouse2]][hworld]);
House3DSale[PlayerInfo[playerid][pHouse2]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
}
if(listitem == 2)//Телепорт к дому
{
SetPlayerPos(playerid,HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ]);// функция изменяет текущую позицию онлайн игрока на карте
}
}
else ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"Главное меню","Дома", "Выбрать", "Выход");
}
//===================== продажа дома ===========================================
if(dialogid == 50)// Продажа дом 1
{
if(response) //Если была нажата 1 кнопка
{
if(!strlen(inputtext))SendClientMessage(playerid, 0xFF0000AA,"{f984e5}Введите сумму от {ffffff}1 {ff0000}до {ffffff}10.000.000"),ShowPlayerDialog(playerid,41,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
else{
new string[128];
new hid[64];
new houseprod = strval(inputtext);
if(houseprod < 1 || houseprod > 10000000){
SendClientMessage(playerid, 0xFF0000AA,"{f984e5}Введите сумму от {ffffff}1 {ff0000}до {ffffff}10.000.000");
ShowPlayerDialog(playerid,41,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
return true;}
format(hid, sizeof(hid),"House/%iHouse.ini",hpid[playerid]);
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));// Узнаем ник игрока (можно и не делать)
if (strcmp (HouseSystem[hpid[playerid]][hhouseOwner], PlayerName, true)) return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Это не Ваш дом.");
{
HouseSystem[PlayerInfo[playerid][pHouse]][hhousePrice]= houseprod;
HouseSystem[PlayerInfo[playerid][pHouse]][hClok] = 0;
DestroyDynamicPickup(HousePickupSale[PlayerInfo[playerid][pHouse]]);
HousePickupOwn[PlayerInfo[playerid][pHouse]] = CreateDynamicPickup(1273, 23, HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseSale[PlayerInfo[playerid][pHouse]]);
HouseOwn[PlayerInfo[playerid][pHouse]] = CreateDynamicMapIcon(HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ],31,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DSale[PlayerInfo[playerid][pHouse]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{0096ff}Продаётся\n{ff0000}Стоимость: {FFFFFF}$%s\n{f984e5}id %d", HouseSystem[PlayerInfo[playerid][pHouse]][hhouseName], PlayerName, ConvertNumbers(HouseSystem[PlayerInfo[playerid][pHouse]][hhousePrice],"."), HouseSystem[PlayerInfo[playerid][pHouse]][hworld]);
House3DOwn[PlayerInfo[playerid][pHouse]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
}
}
}
}
if(dialogid == 51)// Продажа дом 2
{
if(response) //Если была нажата 1 кнопка
{
if(!strlen(inputtext))SendClientMessage(playerid, 0xFF0000AA,"{f984e5}Введите сумму от {ffffff}1 {ff0000}до {ffffff}10.000.000"),ShowPlayerDialog(playerid,42,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
else{
new string[128];
new hid[64];
new houseprod1 = strval(inputtext);
if(houseprod1 < 1 || houseprod1 > 10000000){
SendClientMessage(playerid, 0xFF0000AA,"{f984e5}Введите сумму от {ffffff}1 {ff0000}до {ffffff}10.000.000");
ShowPlayerDialog(playerid,42,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
return true;}
format(hid, sizeof(hid),"House/%iHouse.ini",hpid[playerid]);
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));// Узнаем ник игрока (можно и не делать)
if (strcmp (HouseSystem[hpid[playerid]][hhouseOwner], PlayerName, true)) return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Это не Ваш дом.");
{
HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePrice]= houseprod1;
HouseSystem[PlayerInfo[playerid][pHouse1]][hClok] = 0;
DestroyDynamicPickup(HousePickupSale[PlayerInfo[playerid][pHouse1]]);
HousePickupOwn[PlayerInfo[playerid][pHouse1]] = CreateDynamicPickup(1273, 23, HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseSale[PlayerInfo[playerid][pHouse1]]);
HouseOwn[PlayerInfo[playerid][pHouse1]] = CreateDynamicMapIcon(HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ],31,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DSale[PlayerInfo[playerid][pHouse1]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{0096ff}Продаётся\n{ff0000}Стоимость: {FFFFFF}$%s\n{f984e5}id %d", HouseSystem[PlayerInfo[playerid][pHouse1]][hhouseName], PlayerName, ConvertNumbers(HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePrice],"."), HouseSystem[PlayerInfo[playerid][pHouse1]][hworld]);
House3DOwn[PlayerInfo[playerid][pHouse1]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse1]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
}
}
}
}
if(dialogid == 52)// Продажа дом 3
{
if(response) //Если была нажата 1 кнопка
{
if(!strlen(inputtext))SendClientMessage(playerid, 0xFF0000AA,"{f984e5}Введите сумму от {ffffff}1 {ff0000}до {ffffff}10.000.000"),ShowPlayerDialog(playerid,43,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
else{
new string[128];
new hid[64];
new houseprod2 = strval(inputtext);
if(houseprod2 < 1 || houseprod2 > 10000000){
SendClientMessage(playerid, 0xFF0000AA,"{f984e5}Введите сумму от {ffffff}1 {ff0000}до {ffffff}10.000.000");
ShowPlayerDialog(playerid,43,DIALOG_STYLE_INPUT,"{ffff00}Продать дом","{ffffff}Введите сумму от {ff0000}1 {ffffff}до {ff0000}10.000.000","Да","Нет");
return true;}
format(hid, sizeof(hid),"House/%iHouse.ini",hpid[playerid]);
GetPlayerName(playerid,PlayerName,sizeof(PlayerName));// Узнаем ник игрока (можно и не делать)
if (strcmp (HouseSystem[hpid[playerid]][hhouseOwner], PlayerName, true)) return SendClientMessage(playerid,0xFF0000AA,"{f984e5}Это не Ваш дом.");
{
HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePrice]= houseprod2;
HouseSystem[PlayerInfo[playerid][pHouse2]][hClok] = 0;
DestroyDynamicPickup(HousePickupSale[PlayerInfo[playerid][pHouse2]]);
HousePickupOwn[PlayerInfo[playerid][pHouse2]] = CreateDynamicPickup(1273, 23, HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ]+0.3, -1);
DestroyDynamicMapIcon(HouseSale[PlayerInfo[playerid][pHouse2]]);
HouseOwn[PlayerInfo[playerid][pHouse2]] = CreateDynamicMapIcon(HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ],31,0,-1,-1,-1,150);
Delete3DTextLabel(Text3D:House3DSale[PlayerInfo[playerid][pHouse2]]);
format(string, 256, "{FF9900}Дом: {FFFFFF}%s\n{00ff00}Владелец: {FFFFFF}%s\n{0096ff}Продаётся\n{ff0000}Стоимость: {FFFFFF}$%s\n{f984e5}id %d", HouseSystem[PlayerInfo[playerid][pHouse2]][hhouseName], PlayerName, ConvertNumbers(HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePrice],"."), HouseSystem[PlayerInfo[playerid][pHouse2]][hworld]);
House3DOwn[PlayerInfo[playerid][pHouse2]] = Create3DTextLabel(string, 0xFEFEFEFE, HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosX], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosY], HouseSystem[PlayerInfo[playerid][pHouse2]][hhousePosZ], 40.0, 0, 1);
SaveHouse();
LoadHouse();
}
}
}
}
Вот и всё! Прошу сильно не пинать, это моя первая глобальная работа
Внимание: Размещение данной системы на сторонних порталах, только с разрешения автора.