Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Система покупки мебели для дома

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

MrMason

Ученик
Приветствую уважаемые пользователи портала Pawno-Info.
Сегодня я вам предоставлю систему покупки мебели.
Если вас не устраивает код - оптимизируйте сами.
Я новичок, вылаживаю, то что умею - не нравиться, делайте сами.

Итак, приступим.

Добавить в меню управления домом:
PHP:
new fstatus[5][30],slotmsg[180];
for (new tp; tp < 5; tp++)
{
	if(HouseItems[pData[playerid][pHouse]][tp][ItemIDSQL] != 0)
	{
		format(fstatus[tp],30,"{FF0000}ID %d",HouseItems[pData[playerid][pHouse]][tp][ItemIDSQL]);
	}
	else fstatus[tp] = "{BB4747}Свободен";
}
format(slotmsg,sizeof slotmsg,"{FFFFFF}Слот 1: %s\n{FFFFFF}Слот 2: %s\n{FFFFFF}Слот 3: %s\n{FFFFFF}Слот 4: %s\n{FFFFFF}Слот 5: %s",fstatus[0],fstatus[1],fstatus[2],fstatus[3],fstatus[4]);
ShowPlayerDialog(playerid, dFurnitureEdit1, DIALOG_STYLE_LIST, "{FFFFFF}Выбор слота",slotmsg,"Выбрать","Отмена");
Создадим Enum'ы и переменные.
PHP:
enum
{
	dFurnitureEdit1,
    dFurnitureEdit2,
    dFurnitureBuy1,
    dFurnitureBuy2,
}
new furniturebuyobject[MAX_PLAYERS];
enum HIStruct
{
	HIName[50],
	HIID,
	HIPrice
}
new MassiveHouseItems[][HIStruct] =
{
	{"Диван трёхместный",2290,2500},
	{"Диван двуместный кожаный",1723,2500},
	{"Диван двуместный чёрный",1726,2700},
	{"Диван угловой б/у",1709,2300},
	{"Диван б/у",1728,2200},
	{"Кресло кожаное чёрное",1704,3000},
	{"Кресло кожаное офисное",1714,2300},
	{"Кресло чёрное",1727,2100},
	{"Кресло-качалка",2096,1600},
	{"Кресло компьютерное",2356,1500},
	{"Кресло парикмахерское",2343,1400},
	{"Кресло б/у",1729,900},
	{"Кровать двуспальная большая",14446,2500},
	{"Кровать двуспальная c тумбами",2298,2700},
	{"Кровать двуспальная без тумб",2299,2100},
	{"Кровать двуспальная",1701,2000},
	{"Кровать односпальная",1796,1500},
	{"Шезлонг",1255,600},
	{"Стул офисный",1811,1100},
	{"Стул барный",2125,1000},
	{"Стул",1722,900},
	{"Стул столовый",2124,650},
	{"Стул пластиковый",2121,600},
	{"Стол с компьютером и телефоном",2008,4500},
	{"Стол с компьютером угловой",1998,4200},
	{"Стол четырёхместный",2637,2200},
	{"Стол деревянный",2115,1800},
	{"Стол двуместный",2635,1800},
	{"Стол офисный",2173,1500},
	{"Стол обеденный",2357,1300},
	{"Стол со стульями пластиковые",1432,1000},
	{"Гардероб большой",14867,2500},
	{"Книжный шкаф",14455,2700},
	{"Шкафчик офисный",2167,2400},
	{"Шкаф",2204,2000},
	{"Шкаф старый с телевизором",2091,2000},
	{"Комод",2087,1500},
	{"Тумба из тёмного дерева",2311,1200},
	{"Полки для документов офисные",2161,1600},
	{"Ящики для документов металлические",2007,1500},
	{"Ковёр квадратный",2834,500},
	{"Ковёр овальный",2835,500},
	{"Доска для заметок",2616,300},
	{"Мишень",2049,150},
	{"Телевизор большой",1792,2500},
	{"Телевизор на стеклянной тумбе",1717,2300},
	{"Телевизор на подставке с видеомагнитофоном",14532,2400},
	{"Телевизор на деревянной тумбе",2297,2300},
	{"Телевизор на тумбе",2700,2200},
	{"Телевизор б/у",1208,1200},
	{"Видеомагнитофон",1788,600},
	{"Игровая приставка",2028,1100},
	{"Компьютер",2109,2300},
	{"Принтер",2106,900},
	{"Музыкальный центр б/у",2099,900},
	{"Магнитофон",1208,1000},
	{"Колонки большие",2229,500},
	{"Душевая кабина",2517,2300},
	{"Ванна",2519,2300},
	{"Стиральная машина",1208,1500},
	{"Умывальник",2524,1200},
	{"Унитаз",2528,1000},
	{"Кулер с водой",2002,800},
	{"Светильник",2239,700},
	{"Лампа настольная",2238,300},
	{"Беговая дорожка",2627,2400},
	{"Велотренажёр",2630,2000},
	{"Скамья под штангу",2629,1300},
	{"Гантели",2915,600}
};

enum hInfoItems
{
	ItemIDSQL,
	ItemOwner,
	ItemModelID,
	Float:ItemX,
	Float:ItemY,
	Float:ItemZ,
	Float:ItemRX,
	Float:ItemRY,
	Float:ItemRZ,
	ItemWorldID,
	ItemInterior,
	ItemObjectID,
	ItemInstalled,
}
new HouseItems[MAX_HOUSE_COUNT][5][hInfoItems];
Дальше идем в OnGameModeInit:
PHP:
//caa?ocea iaaaee
	for(new i; i < MAX_HOUSE_COUNT; i ++)
	{
		new oquery[60];
		format(oquery,sizeof oquery,"SELECT * FROM `houseobjects` WHERE `ItemOwner` = '%d'",i);
		mysql_query(oquery);
		mysql_store_result();
		if(mysql_num_rows())
		{
			for(new kkk;kkk<mysql_num_rows();kkk++)
			{
				mysql_fetch_row(result);
				sscanf(result,"p<|>iiiffffffiiii",HouseItems[i][kkk][ItemIDSQL],HouseItems[i][kkk][ItemOwner],HouseItems[i][kkk][ItemModelID],HouseItems[i][kkk][ItemX],HouseItems[i][kkk][ItemY],HouseItems[i][kkk][ItemZ],HouseItems[i][kkk][ItemRX],HouseItems[i][kkk][ItemRY],HouseItems[i][kkk][ItemRZ],HouseItems[i][kkk][ItemWorldID],HouseItems[i][kkk][ItemInterior],HouseItems[i][kkk][ItemObjectID],HouseItems[i][kkk][ItemInstalled]);
				if(HouseItems[i][kkk][ItemInstalled] == 1)
				{
				    HouseItems[i][kkk][ItemObjectID] = CreateDynamicObject(HouseItems[i][kkk][ItemModelID],HouseItems[i][kkk][ItemX],HouseItems[i][kkk][ItemY],HouseItems[i][kkk][ItemZ],HouseItems[i][kkk][ItemRX],HouseItems[i][kkk][ItemRY],HouseItems[i][kkk][ItemRZ],i);
				}
				else
				{
				    HouseItems[i][kkk][ItemObjectID] = CreateDynamicObject(HouseItems[i][kkk][ItemModelID],HouseItems[i][kkk][ItemX],HouseItems[i][kkk][ItemY],HouseItems[i][kkk][ItemZ],HouseItems[i][kkk][ItemRX],HouseItems[i][kkk][ItemRY],HouseItems[i][kkk][ItemRZ],i);
				    DestroyDynamicObject(HouseItems[i][kkk][ItemObjectID]);
				}
			}
		}
	}
	mysql_free_result();
	return 1;
Дальше OnPlayerKeyStateChange:
PHP:
if(newkeys == 16 && GetPVarInt(playerid,"f_BuyObject") == 1)
    {//enter - Отменить покупку мебели
        DestroyDynamicPickup(furniturebuyobject[playerid]);
        SetPlayerVirtualWorld(playerid,0);
        SetCameraBehindPlayer(playerid);
        DeletePVar(playerid,"f_BizID");
        DeletePVar(playerid,"f_BuyObject");
        DeletePVar(playerid,"f_BuyObjectNumber");
        TogglePlayerControllableEx(playerid,1);
    }
    if(newkeys == 8 && GetPVarInt(playerid,"f_BuyObject") == 1)
    {//пробел - купить мебель
        if(!pData[playerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У Вас нет дома");
        if(GetPVarInt(playerid,"dFurnitureBuy") == 0)
        {
            SetPVarInt(playerid,"dFurnitureBuy",1);
            new buyfurnituremsg[100];
            format(buyfurnituremsg,sizeof buyfurnituremsg,"{FFFFFF}Вы уверены в покупке \"{00D0FF}%s{FFFFFF}\" за {BB4747}%d${FFFFFF} ?",MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIName],MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIPrice]);
            ShowPlayerDialog(playerid, dFurnitureBuy1, DIALOG_STYLE_MSGBOX, "{FFFFFF}Покупка мебели",buyfurnituremsg,"Да","Нет");
        }
    }
Переходим к OnDialogResponse:
PHP:
//покупка
    case dFurnitureBuy1:
    {
        if(!response) return DeletePVar(playerid,"dFurnitureBuy");
        if(!pData[playerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У Вас нет дома"),DeletePVar(playerid,"dFurnitureBuy");
        if(GetPlayerMoneyEx(playerid) < MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIPrice])return SendClientMessage(playerid,COLOR_RED,"У вас не хватает денег на этот предмет."),DeletePVar(playerid,"dFurnitureBuy");
        new astatus[5][30],slotmsg[180];
        for (new ap; ap < 5; ap++) { if(HouseItems[pData[playerid][pHouse]][ap][ItemIDSQL] != 0) format(astatus[ap],30,"{FF0000}ID %d",HouseItems[pData[playerid][pHouse]][ap][ItemIDSQL]); else astatus[ap] = "{BB4747}Свободен"; }
        format(slotmsg,sizeof slotmsg,"{FFFFFF}Слот 1: %s\n{FFFFFF}Слот 2: %s\n{FFFFFF}Слот 3: %s\n{FFFFFF}Слот 4: %s\n{FFFFFF}Слот 5: %s",astatus[0],astatus[1],astatus[2],astatus[3],astatus[4]);
        ShowPlayerDialog(playerid, dFurnitureBuy2, DIALOG_STYLE_LIST,"Покупка мебели", slotmsg,"Выбрать","Отмена");
        return true;
    }
    case dFurnitureBuy2:
    {
        if(!response) return DeletePVar(playerid,"dFurnitureBuy");
        new ho = pData[playerid][pHouse];
        if(!pData[playerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У Вас нет дома"),DeletePVar(playerid,"dFurnitureBuy");
        if(HouseItems[ho][listitem][ItemIDSQL] != 0)return SendClientMessage(playerid,COLOR_RED,"Данный слот уже занят !"),DeletePVar(playerid,"dFurnitureBuy");
        mysql_free_result();
        new query[200];
        format(query,sizeof(query),"INSERT INTO `houseobjects` VALUES ('','%d','%d','0.0','0.0','0.0','0.0','0.0','0.0','%d','%d','0','0')",ho,MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIID],ho,gHints[gHints[gHouses[ho][houseHint]][hintInterior]][hintInterior]);
        mysql_query(query);
        if(mysql_insert_id())
        {
            HouseItems[ho][listitem][ItemIDSQL] = mysql_insert_id();
            HouseItems[ho][listitem][ItemOwner] = ho;
            HouseItems[ho][listitem][ItemModelID] = MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIID];
            HouseItems[ho][listitem][ItemX] = 0.0;
            HouseItems[ho][listitem][ItemY] = 0.0;
            HouseItems[ho][listitem][ItemZ] = 0.0;
            HouseItems[ho][listitem][ItemRX] = 0.0;
            HouseItems[ho][listitem][ItemRY] = 0.0;
            HouseItems[ho][listitem][ItemRZ] = 0.0;
            HouseItems[ho][listitem][ItemWorldID] = ho;
            HouseItems[ho][listitem][ItemInterior] = gHints[gHouses[ho][houseHint]][hintInterior];
            HouseItems[ho][listitem][ItemInstalled] = 0;

            gBusiness[pTemp[playerid][pSelectedBusinessID]][busiProduct] -= 100;
            gBusiness[pTemp[playerid][pSelectedBusinessID]][busiBank] += floatround((MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIPrice]/100)*80);
            TransferMoney(playerid,-1,MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIPrice],"buyfurniture");
            new Float:apos[3];
            GetPlayerPos(playerid,apos[0],apos[1],apos[2]);
            Streamer_UpdateEx(playerid, apos[0], apos[1], apos[2],GetPlayerVirtualWorld(playerid),-1);
            HouseItems[ho][listitem][ItemObjectID] = CreateDynamicObject(HouseItems[ho][listitem][ItemModelID],apos[0],apos[1],apos[2],0.0,0.0,0.0,-1,-1,-1,20.0);
            Streamer_UpdateEx(playerid, apos[0], apos[1], apos[2],GetPlayerVirtualWorld(playerid),-1);
            DestroyDynamicObject(HouseItems[ho][listitem][ItemObjectID]);
            UpdateBusinessData(pTemp[playerid][pSelectedBusinessID]+1,"bank",gBusiness[pTemp[playerid][pSelectedBusinessID]][busiBank]);
            UpdateBusinessData(pTemp[playerid][pSelectedBusinessID]+1,"product",gBusiness[pTemp[playerid][pSelectedBusinessID]][busiProduct]);
            UpdateBusinessText(pTemp[playerid][pSelectedBusinessID]);
            new msss[80];
            format(msss,sizeof msss,"Вы купили \"%s\" за %d$ !",MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIName],MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIPrice]);
            SendClientMessage(playerid,COLOR_GREEN,msss);
        }
        else SendClientMessage(playerid,COLOR_RED,"Произошла ошибка. Попробуйте ещё раз.");
        mysql_free_result();
        SetPVarInt(playerid,"dFurnitureBuy",0);
        return true;
    }
//расстоновка
	case dFurnitureEdit1:
	{
	    if(!response)return true;
	    if(GetPVarInt(playerid,"edit_EditFurnitureMode") == 1)return SendClientMessage(playerid,COLOR_RED,"Вначале закончите редактирование !");
	    new ho = pData[playerid][pHouse];
	    if(HouseItems[ho][listitem][ItemIDSQL] == 0)return SendClientMessage(playerid,COLOR_RED,"В данном слоте нет объекта !");
		if(GetPlayerVirtualWorld(playerid) != ho)return SendClientMessage(playerid,COLOR_RED,"Вы должны быть у себя в доме !");
		SetPVarInt(playerid,"edit_SelectFurniture",listitem);
		ShowPlayerDialog(playerid, dFurnitureEdit2, DIALOG_STYLE_LIST,"{FFFFFF}Редактирование объектов","{FFFFFF}Переместить\nПоставить\nУбрать\nУдалить","Выбрать","Отмена");
	    return true;
	}
	case dFurnitureEdit2:
	{
	    if(!response)return true;
	    if(GetPVarInt(playerid,"edit_EditFurnitureMode") == 1)return SendClientMessage(playerid,COLOR_RED,"Вначале закончите редактирование !");
	    new ho = pData[playerid][pHouse];
		switch(listitem)
		{
		    case 0://Переместить
		    {
				if(HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] == 0)return SendClientMessage(playerid,COLOR_RED,"Объект не установлен.");
				if(!IsValidDynamicObject(HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemObjectID]))return SendClientMessage(playerid,COLOR_RED,"Ошибка !");
				EditDynamicObject(playerid,HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemObjectID]);
				SetPVarInt(playerid,"edit_EditFurnitureMode",1);
		    }
		    case 1://Поставить
		    {
		        if(HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] != 0)return SendClientMessage(playerid,COLOR_RED,"Объект Уже установлен.");
				new Float:poso[3];
				GetPlayerPos(playerid,poso[0],poso[1],poso[2]);
				new slotid = GetPVarInt(playerid,"edit_SelectFurniture");
				Streamer_UpdateEx(playerid, poso[0], poso[1], poso[2],GetPlayerVirtualWorld(playerid),-1);
		        HouseItems[ho][slotid][ItemObjectID] = CreateDynamicObject(HouseItems[ho][slotid][ItemModelID],HouseItems[ho][slotid][ItemX],HouseItems[ho][slotid][ItemY],HouseItems[ho][slotid][ItemZ],HouseItems[ho][slotid][ItemRX],HouseItems[ho][slotid][ItemRY],HouseItems[ho][slotid][ItemRZ],ho);
		        Streamer_UpdateEx(playerid, poso[0], poso[1], poso[2],GetPlayerVirtualWorld(playerid),-1);
		        DestroyDynamicObject(HouseItems[ho][slotid][ItemObjectID]);
		        Streamer_UpdateEx(playerid, poso[0], poso[1], poso[2],GetPlayerVirtualWorld(playerid),-1);
		        HouseItems[ho][slotid][ItemObjectID] = CreateDynamicObject(HouseItems[ho][slotid][ItemModelID],HouseItems[ho][slotid][ItemX],HouseItems[ho][slotid][ItemY],HouseItems[ho][slotid][ItemZ],HouseItems[ho][slotid][ItemRX],HouseItems[ho][slotid][ItemRY],HouseItems[ho][slotid][ItemRZ],ho);
		        Streamer_UpdateEx(playerid, poso[0], poso[1], poso[2],GetPlayerVirtualWorld(playerid),-1);
		        SetDynamicObjectPos(HouseItems[ho][slotid][ItemObjectID], poso[0], poso[1], poso[2]);
		        Streamer_UpdateEx(playerid, poso[0], poso[1], poso[2],GetPlayerVirtualWorld(playerid),-1);
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] = 1;
				new query[500];
				format(query,sizeof(query),"UPDATE `houseobjects` SET `ItemX` = '%f',`ItemY` = '%f',`ItemZ` = '%f',`ItemInstalled` = '1' WHERE `id` = '%d'",poso[0],poso[1],poso[2],HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemIDSQL]);
				mysql_query(query);
			    SendClientMessage(playerid,COLOR_GREEN,"Объект поставлен.");
		    }
		    case 2://Убрать
		    {
		        if(HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] == 0)return SendClientMessage(playerid,COLOR_RED,"Объект не установлен.");
		        DestroyDynamicObject(HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemObjectID]);
	            HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] = 0;
	            SendClientMessage(playerid,COLOR_GREEN,"Объект убран.");
		    }
		    case 3://Удалить
		    {
		        if(HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] != 0)return SendClientMessage(playerid,COLOR_RED,"Объект не должен быть установлен.");
		        mysql_free_result();
		        printf("MYSQLID: %d | PVar: %d",HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemIDSQL],GetPVarInt(playerid,"edit_SelectFurniture"));
		        new query[300];
			   	format(query, sizeof(query), "DELETE FROM `houseobjects` WHERE `id` = '%d'", HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemIDSQL]);
			   	mysql_query(query);
			   	HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInstalled] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemIDSQL] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemOwner] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemModelID] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemX] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemY] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemZ] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemRX] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemRY] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemRZ] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemWorldID] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemInterior] = 0;
				HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemObjectID] = 0;
				DeletePVar(playerid,"edit_SelectFurniture");
				SendClientMessage(playerid,COLOR_RED,"Объект удален.");
		    }
		}
	    return true;
	}
	return 1;
}
Далее public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) - Если нету данного паблика - то создаем.
PHP:
if(GetPVarInt(playerid,"edit_EditFurnitureMode") == 1)
	{
	    new ho = pData[playerid][pHouse];
		if(response == EDIT_RESPONSE_CANCEL)return DeletePVar(playerid,"edit_EditFurnitureMode");
		if(response == EDIT_RESPONSE_FINAL)
		{
		    mysql_free_result();
            new query[500];
			format(query,sizeof(query),"UPDATE `houseobjects` SET `ItemX` = '%f',`ItemY` = '%f',`ItemZ` = '%f',`ItemRX` = '%f',`ItemRY` = '%f',`ItemRZ` = '%f' WHERE `id` = '%d'",x,y,z,rx,ry,rz,HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemIDSQL]);
			mysql_query(query);
			HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemX] = x;
			HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemY] = y;
			HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemZ] = z;
			HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemRX] = rx;
			HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemRY] = ry;
			HouseItems[ho][GetPVarInt(playerid,"edit_SelectFurniture")][ItemRZ] = rz;
			SetDynamicObjectPos(objectid,x,y,z);
			SetDynamicObjectRot(objectid,rx,ry,rz);
			DeletePVar(playerid,"edit_EditFurnitureMode");
			SendClientMessage(playerid,COLOR_GREEN,"Объект передвинут.");
		}
	}
	return true;
}
Ну и остальное:
PHP:
//покупка мебели в магазине
new houseid = pData[playerid][pHouse]-1;
if(gHouses[houseid][houseOwnerID] != pData[playerid][pMysqlID]) return SendClientMessage(playerid,CGRAY,"Вы не являетесь владельцем дома в котором живете");
if(!pData[playerid][pHouse]) return SendClientMessage(playerid,CGRAY,"У Вас нет дома");
if(gBusiness[pTemp[playerid][pSelectedBusinessID]][busiProduct] < 100)return SendClientMessage(playerid,COLOR_RED,"В данном магазине нет мебели в наличии.");
if(GetPVarInt(playerid,"f_BuyObject") == 1)return true;
SetPlayerVirtualWorld(playerid,playerid+1);
SetPVarInt(playerid,"f_BizID",id);
SetPVarInt(playerid,"f_BuyObject",1);
SetPVarInt(playerid,"f_BuyObjectNumber",0);
furniturebuyobject[playerid] = CreateDynamicPickup(MassiveHouseItems[GetPVarInt(playerid,"f_BuyObjectNumber")][HIID],23,347.2237,164.2271,1014.2814,playerid+1,-1,playerid,100.0);
SetPlayerCameraPos(playerid, 347.5665, 160.0247, 1015.3701);
SetPlayerCameraLookAt(playerid, 347.4671, 161.0183, 1015.1207);
TogglePlayerControllableEx(playerid,0);//заморозка заменить на свою ф-ю
SendClientMessage(playerid,-1,"{FFFFFF}Для переключения объектов используйте стрелки {00D0FF}назад ( <- ){FFFFFF} и {00D0FF}вперёд ( -> ){FFFFFF}.");
SendClientMessage(playerid,-1,"{FFFFFF}Для выбора нажмите {BB4747}Пробел{FFFFFF}. Для отмены нажмите {FF0000}Enter{FFFFFF}.");

// в секундный таймер
if(GetPVarInt(i,"f_BuyObject") == 1)
{
	new newkeys,ud,lr;
	GetPlayerKeys(i,newkeys,ud,lr);
	if(lr == KEY_LEFT)
	{
	    if(GetPVarInt(i,"f_BuyObjectNumber") == 0){SetPVarInt(i,"f_BuyObjectNumber",68);} else { SetPVarInt(i,"f_BuyObjectNumber",GetPVarInt(i,"f_BuyObjectNumber")-1); }
	    DestroyDynamicPickup(furniturebuyobject[i]);
	    furniturebuyobject[i] = CreateDynamicPickup(MassiveHouseItems[GetPVarInt(i,"f_BuyObjectNumber")][HIID],23,347.2237,164.2271,1014.2814,i+1,-1,i,100.0);
	}
    else if(lr == KEY_RIGHT)
    {
        if(GetPVarInt(i,"f_BuyObjectNumber") == 68){SetPVarInt(i,"f_BuyObjectNumber",0);} else { SetPVarInt(i,"f_BuyObjectNumber",GetPVarInt(i,"f_BuyObjectNumber")+1); }
	    DestroyDynamicPickup(furniturebuyobject[i]);
	    furniturebuyobject[i] = CreateDynamicPickup(MassiveHouseItems[GetPVarInt(i,"f_BuyObjectNumber")][HIID],23,347.2237,164.2271,1014.2814,i+1,-1,i,100.0);
    }
}
На этом все, повторюсь, я новичок, и это мой первый мануал. Удачи вам.
От маленького +сика не откажусь.

UPDATE:
Так как не которая информация не понятна... ( Текст не вставился. )
Приложу PWN.
Там все понятно сделал и описал.
Ссылка:
 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу