Доступ к готовым решениям

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

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

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

Мануал Динамический инвентарь

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

Dark_Ilya

Компетентный
Данная система идёт к теме Система магазина из IRolePlay и RakNet http://pawno-info.ru/threads/188872-Система-магазина-из-IRolePlay-и-RakNet?p=1266602#post1266602
Не буду объяснять как он работает, думаю вы итак поймёте по названию темы

Ко всем define
PHP:
#define ALL_ITEMS_SIZE 25
Ко всем new
PHP:
new PlayerGUIItems[MAX_PLAYERS][ALL_ITEMS_SIZE];
enum item_info
{
	item_name[24],
	item_effect,
	item_size
}

new Items_All[ALL_ITEMS_SIZE][item_info] = {
	{"Маска",0,120},
	{"Фотоплёнка",1,20},
	{"Фотоаппарат",2,1350},
	{"Трос",3,400},
	{"Удочка",4,280},
	{"Рация",5,120},
	{"Часы",6,37},
	{"Аптечка",7,40},
	{"Огнетушитель",8,500},
	{"Золото",9,1},
	{"Навигатор",10,300},
	{"Инструменты",11,150},
	{"Продукты",12,2},
	{"Рыба",13,30},
	{"Лопата",14,200},
	{"Дигл",15,500},
	{"Дробовик",16,600},
	{"МП5",17,500},
	{"М4",18,900},
	{"Патроны 9 мм",19,2},
	{"Патроны 5.56 мм",20,2},
	{"Патроны 14.7 мм",21,2},
	{"Патроны 12 мм",22,2},
	{"Кольт",23,500},
	{"АК-47",24,900}
};
new PlayerItems[MAX_PLAYERS][ALL_ITEMS_SIZE];
Создаём стоки, кстати в этой версии добавлено занятость инвентаря, игрок может носить с собой только 20 кг.
PHP:
stock AcceptItemEffect(playerid,itemid)
{
	if(itemid < 0 || itemid >= ALL_ITEMS_SIZE) return true;
	if(PlayerItems[playerid][itemid] == 0) return true;
	new string[100]; SetPVarInt(playerid,"inventory",itemid);
	format(string,100,"Инвентарь: %s %d шт.",Items_All[itemid][item_name],PlayerItems[playerid][itemid]);
	SPD(playerid,INVENTORY_APPLY_DIALOG,DIALOG_STYLE_LIST,string,"Использовать\nПередать\nВыкинуть\nПоложить в машину","Выбрать","Назад");
	return true;
}
stock ApplyInventory(playerid,modelid)
{
	new string[60];
	switch(modelid)
	{
	case 0:
		{
			if(Mask[playerid] == false)SetPlayerColor(playerid, 0xAAAAAA00),format(string,sizeof(string),"%s одел маску",PlayerInfo[playerid][pName]),Mask[playerid] = true;
			else ChangePlayerColor(playerid),format(string,sizeof(string),"%s снял маску",PlayerInfo[playerid][pName]),Mask[playerid] = false;
			ProxDetector(30.0,playerid,string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			PlayerItems[playerid][0]--;
		}
	case 1:
		{
			if(PlayerItems[playerid][1] < 1)SCM(playerid,COLOR_WHITE,"Купив фотоаппарат и плёнку,Вы сможете собрать его.");
			else SCM(playerid,COLOR_WHITE,"Вы можете собрать фотоаппарат,если он у вас есть");
		}
	case 2:
		{
			if(PlayerItems[playerid][2] > 0 && PlayerItems[playerid][1] > 29)
			{
				GivePlayerWeaponAC(playerid,43,30);
				PlayerItems[playerid][1] -= 30;
				PlayerItems[playerid][2] --;
				format(string,sizeof(string),"%s достал фотоаппарат",PlayerInfo[playerid][pName]);
				ProxDetector(30.0,playerid,string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			}
		}
	case 3:
		{

			new vehplid=GetPlayerVehicleID(playerid);
			if(IsABMX(vehplid) || IsAPlane(vehplid) || IsAMoto(vehplid)) return SCM(playerid,COLOR_GREY,"К этому транспортному средству не возможно прицепить трос!");
			if(VehicleInfo[vehplid][vTros] == false)
			{
				if(PlayerItems[playerid][3] != 1) return SCM(playerid,COLOR_GREY,"У вас нет троса!");
				new Float:plAngle; GetVehicleZAngle(vehplid, plAngle);
				new Float:crAngle,Float:Angle,Float:Angle2;
				//====================
				new Float:posx, Float:posy, Float:posz;
				new Float:oldposx, Float:oldposy, Float:oldposz;
				new Float:tempposx, Float:tempposy, Float:tempposz;
				new Float:Radi=6.0;        //Расстояние от тачки
				new Float:AngRange=90.0;    //максимальный радиус
				//======================
				for(new i = 0; i <= TotalVehicles(); i++)   //700
				{
					if(i == vehplid) continue;    //себя цеплять ненадо
					if(IsAPlane(i)) continue;
					//======
					GetVehiclePos(vehplid, posx, posy, posz); //координаты тачки
					GetVehiclePos(i, oldposx, oldposy, oldposz); //координаты ближайшей
					tempposx = (oldposx -posx);
					tempposy = (oldposy -posy);
					tempposz = (oldposz -posz);
					if (((tempposx < Radi) && (tempposx > -Radi)) && ((tempposy < Radi) && (tempposy > -Radi)) && ((tempposz < Radi) && (tempposz > -Radi)))
					{
						GetVehicleZAngle(i, crAngle);
						Angle = (plAngle -crAngle);
						Angle2= (Angle-180.0);
						if (( ((Angle < AngRange) && (Angle > -AngRange)) || ((Angle2 < AngRange) && (Angle2 > -AngRange)) ))
						{
							AttachTrailerToVehicle(i, vehplid);
							PlayerItems[playerid][3] = 0;
							VehicleInfo[vehplid][vTros] = true;
							SCM(playerid,COLOR_WHITE,"Вы прицепили автомобиль тросом");
							break;
						}
					}
				}
			}
			else
			{
				PlayerItems[playerid][3] = 1;
				DetachTrailerFromVehicle(vehplid);
				VehicleInfo[vehplid][vTros] = false;
				SCM(playerid,COLOR_WHITE,"Вы отцепили автомобиль");
				return true;
			}
		}
	case 4:
		{
			if(PlayerItems[playerid][4] > 0)SCM(playerid,COLOR_WHITE,"Информация: Идите на пирс, там можно порыбачить");
		}
	case 5:ShowPlayerDialog(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Используйте команды:\n* /channel - подключиться\n* /rc - отправить сообщение","Закрыть","");
	case 6:
		{
			if(PlayerItems[playerid][6] < 1)return SCM(playerid,COLOR_WHITE,"У вас нет часов!");
			if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)ApplyAnimation(playerid,"COP_AMBIENT","Coplook_watch",4.1,0,0,0,0,0);
			format(string, sizeof(string), "* %s cмотрит на свои часы.",PlayerInfo[playerid][pName]);
			ProxDetector(25.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
			new mtext[20], year, month,day; getdate(year, month, day);
			switch(month)
			{
			case 1:mtext = "Jan";
			case 2:mtext = "Feb";
			case 3:mtext = "Mar";
			case 4:mtext = "Apr";
			case 5:mtext = "May";
			case 6:mtext = "Jun";
			case 7:mtext = "Jul";
			case 8:mtext = "Aug";
			case 9:mtext = "Sep";
			case 10:mtext = "Oct";
			case 11:mtext = "Nov";
			case 12:mtext = "Dec";
			default:mtext = "Jan";
			}
			new hour,minuite,second; gettime(hour,minuite,second);
			FixHour(hour);
			hour = shifthour;
			if(minuite < 10)
			{
				if(PlayerInfo[playerid][pJailTime] > 0)format(string, sizeof(string), "~y~%d %s~n~~g~|~w~%d:0%d~g~|~n~~w~Jail Time Left: %d sec", day, mtext, hour, minuite, PlayerInfo[playerid][pJailTime]-10);
				else format(string, sizeof(string), "~y~%d %s~n~~g~|~w~%d:0%d~g~|", day, mtext, hour, minuite);
			}
			else
			{
				if(PlayerInfo[playerid][pJailTime] > 0)format(string, sizeof(string), "~y~%d %s~n~~g~|~w~%d:%d~g~|~n~~w~Jail Time Left: %d sec", day, mtext, hour, minuite, PlayerInfo[playerid][pJailTime]-10);
				else format(string, sizeof(string), "~y~%d %s~n~~g~|~w~%d:%d~g~|", day, mtext, hour, minuite);
			}
			GameTextForPlayer(playerid, string, 5000, 1);
		}
	case 7:
		{
			if(PlayerItems[playerid][7] < 1) return SendClientMessage(playerid, COLOR_GREY, "У вас нет аптечек!");
			new Float: HP;
			GetPlayerHealth(playerid, HP);
			if(HP >= 90) return SendClientMessage(playerid,-1, "Твое здоровье в норме.");
			SetPlayerHealthAC(playerid, HP+30);
			PlayerItems[playerid][7]--;
		}
	case 8:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Если ваше авто загориться,можно потушить его огнетушителем.","Закрыть","");
	case 9:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Золото можно продать в магазине или сделать слиток золота","Закрыть","");
	case 10:OnPlayerCommandText(playerid, "/gps");
	case 11:
		{
			if(PlayerItems[playerid][11] < 1) return SendClientMessage(playerid, COLOR_GREY, "У вас нет инструментов!");
			if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid,COLOR_GREY,"Информация: Нельзя использовать внутри транспорта");
			for(new i = 0; i <= TotalVehicles(); i++)
			{
				new Float:lcx,Float:lcy,Float:lcz;
				GetCoordBonnetVehicle(i, lcx, lcy, lcz);
				if(IsPlayerInRangeOfPoint(playerid,2,lcx,lcy,lcz))
				{
					if(NoValidVehicle(i)) return SCM(playerid,COLOR_GREY,"Информация: В этом транспорте нет капота");
					if(IsCarLocked(i)) return SCM(playerid,COLOR_GREY,"Информация: Транспорт закрыт");
					if(VehicleBonnet[i] == 0) return SCM(playerid,COLOR_GREY,"Информация: капот закрыт");
					new Float:vhealth;
					GetVehicleHealth(i, vhealth);
					SetVehicleHealth(i,vhealth+200.0);
					if(GetVehicleHealth(i, vhealth) > 1000.0)SetVehicleHealth(i,1000.0);
					SendClientMessage(playerid, COLOR_GREY, "Вы починили двигатель.");
					PlayerItems[playerid][11] --;
					break;
				}
			}
		}
	case 12:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Подойдите к холодильнику и выложите все продукты туда...","Закрыть","");
	case 13:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Рыбу можно продать в магазине","Закрыть","");
	case 14:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Не доработано","Закрыть","");
	case 15:SPD(playerid,DIALOG_ZARADGUN,DIALOG_STYLE_INPUT,"Зарядка оружия","Введите количество патронов которое хотите зарядить\nИнформация об оружии:\nНаименование: Desert Eagle\nКалибр патронов: 14.7 мм","Зарядить","Отмена"),SetPVarInt(playerid,"ZaradkaGana",1);
	case 16:SPD(playerid,DIALOG_ZARADGUN,DIALOG_STYLE_INPUT,"Зарядка оружия","Введите количество патронов которое хотите зарядить\nИнформация об оружии:\nНаименование: Дробовик\nКалибр патронов: 12 мм","Зарядить","Отмена"),SetPVarInt(playerid,"ZaradkaGana",2);
	case 17:SPD(playerid,DIALOG_ZARADGUN,DIALOG_STYLE_INPUT,"Зарядка оружия","Введите количество патронов которое хотите зарядить\nИнформация об оружии:\nНаименование: МП5\nКалибр патронов: 9 мм","Зарядить","Отмена"),SetPVarInt(playerid,"ZaradkaGana",3);
	case 18:SPD(playerid,DIALOG_ZARADGUN,DIALOG_STYLE_INPUT,"Зарядка оружия","Введите количество патронов которое хотите зарядить\nИнформация об оружии:\nНаименование: М4\nКалибр патронов: 5.56 мм","Зарядить","Отмена"),SetPVarInt(playerid,"ZaradkaGana",4);
	case 19:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Калибр патронов 9 мм\nПатроны подходят к пистолету 9мм,МП5","Закрыть","");
	case 20:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Калибр патронов 5.56 мм\nПатроны подходят к М4","Закрыть","");
	case 21:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Калибр патронов 14.7 мм\nПатроны подходят к Desert Eagle","Закрыть","");
	case 22:SPD(playerid,DIALOG_NULL,DIALOG_STYLE_MSGBOX,"Подсказка","Калибр патронов 12 мм\nПатроны подходят к дробовику","Закрыть","");
	case 23:SPD(playerid,DIALOG_ZARADGUN,DIALOG_STYLE_INPUT,"Зарядка оружия","Введите количество патронов которое хотите зарядить\nИнформация об оружии:\nНаименование: Кольт\nКалибр патронов: 9 мм","Зарядить","Отмена"),SetPVarInt(playerid,"ZaradkaGana",5);
	case 24:SPD(playerid,DIALOG_ZARADGUN,DIALOG_STYLE_INPUT,"Зарядка оружия","Введите количество патронов которое хотите зарядить\nИнформация об оружии:\nНаименование: АК-47\nКалибр патронов: 5.56 мм","Зарядить","Отмена"),SetPVarInt(playerid,"ZaradkaGana",6);
	}
	return true;
}
//7136
stock TransferInventory(playerid,transferid,modelid)
{
	if(!IsPlayerConnected(transferid)) return SendClientMessage(playerid,COLOR_GREY," ИНФО: Игрок не в сети");
	if(!ProxDetectorS(2.0,playerid,transferid)) return SendClientMessage(playerid,COLOR_GREY," ИНФО: Игрок далеко от вас");
	new string[200];
	format(string,sizeof(string),"* %s передал %s предмет %s",PlayerInfo[playerid][pName],PlayerInfo[transferid][pName],Items_All[modelid][item_name]);
	ProxDetector(30.0,playerid,string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
	PlayerItems[transferid][modelid] = PlayerItems[playerid][modelid];
	PlayerItems[playerid][modelid] = 0;
	DeletePVar(playerid,"inventory");
	return true;
}

stock TransferManyInventory(playerid,transferid,modelid,many)
{
	if(!IsPlayerConnected(transferid)) return SendClientMessage(playerid,COLOR_GREY," ИНФО: Игрок не в сети");
	if(!ProxDetectorS(2.0,playerid,transferid)) return SendClientMessage(playerid,COLOR_GREY," ИНФО: Игрок далеко от вас");
	new string[200];
	format(string,sizeof(string),"* %s передал %s предмет %s",PlayerInfo[playerid][pName],PlayerInfo[transferid][pName],Items_All[modelid][item_name]);
	ProxDetector(30.0,playerid,string,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
	PlayerItems[transferid][modelid] += many;
	PlayerItems[playerid][modelid] -= many;
	DeletePVar(playerid,"inventory");
	return true;
}

stock RemoveInventory(playerid,modelid,kolvo)
{
	new string[60];
	format(string,60," ИНФО: Вы выкинули из инвентаря %s %d",Items_All[modelid][item_name],kolvo);
	SendClientMessage(playerid,COLOR_GREY,string);
	PlayerItems[playerid][modelid]-=kolvo;
	return true;
}
GetPlayerItemString(playerid)
{
	new string[1024],idx;
	for(new i=0;i<ALL_ITEMS_SIZE;i++)
	{
		if(PlayerItems[playerid][i] > 0)
		{
			format(string,sizeof(string),"%s%s: [%d гр.][%d ед.]\n",string,Items_All[i][item_name],Items_All[i][item_size],PlayerItems[playerid][i]);
			PlayerGUIItems[playerid][idx] = i;
			idx++;
		}
	}
	if(!strlen(string))
	{
		format(string,sizeof(string),"Пусто");
		PlayerGUIItems[playerid][idx] = -1;
	}
	return string;
}
stock InventToPercent(playerid)
{
	new a,b,c;
	a = 0,b = 0;
	for(new i=0;i<ALL_ITEMS_SIZE;i++)
	{
	    if(PlayerItems[playerid][i] > 0)
	    {
			a = PlayerItems[playerid][i]*Items_All[i][item_size];
			b += a;
		}
	}
	c = b/200;
	return c;
}
К командам
PHP:
else if(StrCmp(cmd, "/inv"))
	{
	    if(InventToPercent(playerid) > 100)SCM(playerid,COLOR_GREY,"Ваш инвентарь заполнен, выкиньте что-нибудь!!!"),TogglePlayerControllable(playerid,0);
	    else TogglePlayerControllable(playerid,1);
		format(string,55,"Инвентарь[%d процентов]: вес указан за 1 шт",InventToPercent(playerid));
		SPD(playerid,INVENTORY_PLAYER_DIALOG,DIALOG_STYLE_LIST,string,GetPlayerItemString(playerid),"Выбрать","Выход");
		return true;
	}
В диалоги, а именно в switch(dialogid)
PHP:
case INVENTORY_PLAYER_DIALOG:
		{
			if(response)
			{
				if(PlayerGUIItems[playerid][listitem] == -1) return true;
				new itemID = PlayerGUIItems[playerid][listitem];
				AcceptItemEffect(playerid,itemID);
			}
			return true;
		}
	case INVENTORY_APPLY_DIALOG:
		{
			if(response)
			{
				if(listitem == 0)
				{
					ApplyInventory(playerid,GetPVarInt(playerid,"inventory"));
					DeletePVar(playerid,"inventory");
				}
				else if(listitem == 1)
				{
					format(string,85,"Введите ид игрока и колличество которому хотите отдать %s:\nНапример: 1.100",Items_All[GetPVarInt(playerid,"inventory")][item_name]);
					SPD(playerid,INVENTORY_MANY_TRANSFER_DIALOG,DIALOG_STYLE_INPUT,"Передать предмет",string,"Ок","Выход");
				}
				else if(listitem == 2)
				{
				    if(GetPVarInt(playerid,"inventory") == 24)DropGun(playerid, 30);
					else if(GetPVarInt(playerid,"inventory") == 18)DropGun(playerid, 31);
					else if(GetPVarInt(playerid,"inventory") == 16)DropGun(playerid, 25);
					else if(GetPVarInt(playerid,"inventory") == 17)DropGun(playerid, 29);
					else if(GetPVarInt(playerid,"inventory") == 23)DropGun(playerid, 22);
					else if(GetPVarInt(playerid,"inventory") == 15)DropGun(playerid, 24);
					else format(string,80,"Введите сколько хотите выкинуть %s",Items_All[GetPVarInt(playerid,"inventory")][item_name]),SPD(playerid,Invenvotary_Dialog_Vikinyt,DIALOG_STYLE_INPUT,"Выкинуть предмет",string,"Ок","Выход");
				}
				else if(listitem == 3)
				{
					if(IsPlayerInAnyVehicle(playerid)) return SCM(playerid,COLOR_GREY,"Информация: Нельзя использовать внутри транспорта");
					for(new i = 0; i <= TotalVehicles(); i++)
					{
						new Float:lcx,Float:lcy,Float:lcz;
						GetCoordBootVehicle(i, lcx, lcy, lcz);
						if(IsPlayerInRangeOfPoint(playerid,2,lcx,lcy,lcz))
						{
							if(NoValidVehicle(i)) return SCM(playerid,COLOR_GREY,"Информация: В этом транспорте нет багажника");
							if(VehicleBoot[i] == 0) return SCM(playerid,COLOR_GREY,"Информация: багажник закрыт");
							if(GetPVarInt(playerid,"inventory") != 8) return  SCM(playerid,COLOR_GREY,"Информация: в данный момент вы не можете положить этот предмет");
							if(PlayerItems[playerid][GetPVarInt(playerid,"inventory")] < 0) return SCM(playerid,COLOR_GREY,"Информация: у вас нет данного предмета");
							SendFormatMSG(playerid,COLOR_WHITE,"Вы положили %s в багажник",Items_All[GetPVarInt(playerid,"inventory")][item_name]);
							new bagaj;
							if(GetPVarInt(playerid,"inventory") == 8) bagaj = 0;
							TrunkItems[GetPVarInt(playerid,"VeHiCleId")][bagaj] ++;
							PlayerItems[playerid][GetPVarInt(playerid,"inventory")] --;
							break;
						}
					}
				}
			}
			else
			{
				format(string,55,"Инвентарь[%d процентов]: вес указан за 1 шт",InventToPercent(playerid));
				SPD(playerid,INVENTORY_PLAYER_DIALOG,DIALOG_STYLE_LIST,string,GetPlayerItemString(playerid),"Выбрать","Выход");
				DeletePVar(playerid,"inventory");
			}
			return true;
		}
	case INVENTORY_MANY_TRANSFER_DIALOG:
		{
			new text[2][64];
			if(response)
			{
				if(!strlen(inputtext))
				{
					//					new string[85];
					format(string,85,"Введите ид игрока и колличество которому хотите отдать %s:\nНапример: 1.100",Items_All[GetPVarInt(playerid,"inventory")][item_name]);
					SPD(playerid,INVENTORY_MANY_TRANSFER_DIALOG,DIALOG_STYLE_INPUT,"Передать предмет",string,"Ок","Выход");
					return true;
				}
				else if(strfind(inputtext,".", true) != -1)
				{
					split(inputtext,text,'.');
					new transferid = strval(text[0]); new price = strval(text[1]);
					if(price > PlayerItems[playerid][GetPVarInt(playerid,"inventory")] || price < 0) return SendClientMessage(playerid,COLOR_GREY," ИНФО: Неверное колличество");
					new afd = (PlayerItems[transferid][GetPVarInt(playerid,"inventory")]*price)/200;
					new procent = InventToPercent(transferid) + afd;
					if(InventToPercent(transferid) >= 100 || procent > 100) return SCM(playerid,COLOR_WHITE,"Сумка данного человека полна, он не может принять ваши вещи...");
					TransferInventory(playerid,transferid,GetPVarInt(playerid,"inventory"));
					TransferManyInventory(playerid,transferid,GetPVarInt(playerid,"inventory"),price);
				}
			}
			else
			{
				format(string,55,"Инвентарь[%d процентов]: вес указан за 1 шт",InventToPercent(playerid));
				SPD(playerid,INVENTORY_PLAYER_DIALOG,DIALOG_STYLE_LIST,string,GetPlayerItemString(playerid),"Выбрать","Выход");
				DeletePVar(playerid,"inventory");
			}
			return true;
		}
Если будет ругаться на TotalVehicles
PHP:
TotalVehicles()
{
	new vid = CreateVehicle(411, 0, 0, 0, 0, -1, -1, 10);
	DestroyVehicle(vid);
	vid--;
	return vid;
}
Если будут ошибки пишите, т.к. система большая я уже не помню, что где находится :)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу