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

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

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

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

Мануал Шкафы[ALL]

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

Cesar Jeffwood

Умник
Здравствуйте .Пожалуй начну.Добавляем в enum Домов
PHP:
Float: StoreX,
Float: StoreY,
Float: StoreZ,
	StoreMetall,
	StoreAmmo,
	StoreSkin,
	StoreDrugs,
Text3D: StoreInfoHouse,
	StoreGun
Теперь ко всем командам,а то есть в public OnPlayerCommandText
Внимание CMD /use
PHP:
pHouse это переменная есть ли у игрока дом или нету.У вас может быть по другому.
hUpdate это улучшения вы можете удалить(Проверка на шкаф ,если есть система улучшения).
1074 Диалог Вы можете поменять на кокой с думается
PHP:
if(strcmp(cmd, "/use", true) == 0)
	{
		if(PlayerInfo[playerid][pHouse] == 999) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет дома!");
		if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] < 5) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет шкафа!");
		if(!IsPlayerInRangeOfPoint(playerid,8.0,HouseInfo[PlayerInfo[playerid][pHouse]][StoreX],HouseInfo[PlayerInfo[playerid][pHouse]][StoreY],HouseInfo[PlayerInfo[playerid][pHouse]][StoreZ])) return SendClientMessage(playerid,COLOR_GRAD2, "Вы должны находиться у своего шкафа.");
		ShowPlayerDialog(playerid,1074,DIALOG_STYLE_LIST,"{0066FF}Домашний шкаф","1. Положить металл\n2. Положить наркотики\n3. Положить оружие\n4. Положить одежду\n5. Взять металл\n6. Взять наркотики\n7. Взять оружие\n8. Взять одежду","Далее","Закрыть");
		return true;
	}
Внимание CMD /makestore
PHP:
pHouse это переменная есть ли у игрока дом или нету.У вас может быть по другому.
hUpdate это улучшения вы можете удалить(Проверка на шкаф ,если есть система улучшения).
PHP:
	if(strcmp(cmd, "/makestore", true) == 0)
	{
		if(PlayerInfo[playerid][pHouse] == 999) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет дома!");
		if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] < 5) return SendClientMessage(playerid,COLOR_GRAD2, "Для установки шкафа требуется пятый уровень улучшений дома.");
		new Float: xch;
		new Float: ych;
		new Float: zch;
		if (PlayerInfo[playerid][pHouse] < 999)
		{
			if(!IsPlayerInRangeOfPoint(playerid,50.0,HouseInfo[PlayerInfo[playerid][pHouse]][ExitIntX],HouseInfo[PlayerInfo[playerid][pHouse]][ExitIntY],HouseInfo[PlayerInfo[playerid][pHouse]][ExitIntZ])) return SendClientMessage(playerid,COLOR_GRAD2, "Вы должны находиться у себя дома!");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] >= 5 && HouseInfo[PlayerInfo[playerid][pHouse]][StoreX] > 0)
			{
				new i = PlayerInfo[playerid][pHouse];
				Delete3DTextLabel(HouseInfo[i][StoreInfoHouse]);
				GetPlayerPos(playerid, xch, ych, zch);
				HouseInfo[i][StoreX] = xch;
				HouseInfo[i][StoreY] = ych;
				HouseInfo[i][StoreZ] = zch;
				new stringasr[200],gunname[64];
				if(HouseInfo[i][StoreGun] > 0) GetWeaponName(HouseInfo[i][StoreGun],gunname,sizeof(gunname));
				if(HouseInfo[i][StoreGun] == 0) gunname = "нет";
				if(HouseInfo[i][StoreSkin] >= 1) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {00CC00}Есть",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
				if(HouseInfo[i][StoreSkin] == 0) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {FF6600}Нет",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
				HouseInfo[i][StoreInfoHouse] = Create3DTextLabel(stringasr,0xFFFF00FF,HouseInfo[i][StoreX], HouseInfo[i][StoreY], HouseInfo[i][StoreZ]+1,10.0,HouseInfo[i][hWorld],1);
				SendClientMessage(playerid,0x00CC00AA, "Вы перенесли шкаф.");
				SaveStoreHouse(PlayerInfo[playerid][pHouse]);
				return true;
			}
			if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] >= 5 && HouseInfo[PlayerInfo[playerid][pHouse]][StoreX] == 0)
			{
				GetPlayerPos(playerid, xch, ych, zch);
				new i = PlayerInfo[playerid][pHouse];
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreX] = xch;
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreY] = ych;
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreZ] = zch;
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] = 0;
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] = 0;
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] = 0;
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] = 0;
				SendClientMessage(playerid,0x0099FFAA, "Вы поставили дома шкаф! Используйте {FFCC00}/use{0099FF} для просмотра новых возможностей.");
				SendClientMessage(playerid,0x00CC00AA, "Чтобы перенести шкаф используйте команду /makestore.");
				new stringasr[200],gunname[64];
				if(HouseInfo[i][StoreGun] > 0) GetWeaponName(HouseInfo[i][StoreGun],gunname,sizeof(gunname));
				if(HouseInfo[i][StoreGun] == 0) gunname = "нет";
				if(HouseInfo[i][StoreSkin] >= 1) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {00CC00}Есть",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
				if(HouseInfo[i][StoreSkin] == 0) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {FF6600}Нет",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
				HouseInfo[i][StoreInfoHouse] = Create3DTextLabel(stringasr,0xFFFF00FF,HouseInfo[i][StoreX], HouseInfo[i][StoreY], HouseInfo[i][StoreZ]+1,10.0,HouseInfo[i][hWorld],1);
				SaveStoreHouse(PlayerInfo[playerid][pHouse]);
			}
		}
		else
		{

		}
		return true;
	}
Теперь в public OnDialogResponse.
Внимания OnDialogResponse
PHP:
pMeat - металл у игрока,pDrugs наркотики игрока,pSkin переменная одежды.
pUpdate Улучшения игрока для проверки что бы игрок не взял больше(Можно убрать) 
Диалоги 1075,1076,1077,1078,1079,1080 вы можете изменять .
Основной диалог
PHP:
	if(dialogid == 1074)
	{
		if(response)
		{
			if(listitem == 0)
			{
				if(PlayerInfo[playerid][pMetal] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет металла.");
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] >= 700) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
				ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			}
			if(listitem == 1)
			{
				if(PlayerInfo[playerid][pDrugs] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет наркотиков.");
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] >= 2000) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
				ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			}
			if(listitem == 2)
			{
				if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет оружия в руках.");
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] >= 3000) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
				ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			}
			if(listitem == 3)
			{
				if(PlayerInfo[playerid][pSkin] == 97 && HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] > 0) return SendClientMessage(playerid,COLOR_GRAD2, "Ваша одежда уже в шкафу!");
				if(PlayerInfo[playerid][pMember] > 0) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете это использовать, потому что состоите в организации.");
				SendClientMessage(playerid,0x00CC00AA, "Вы положили свою одежду в шкаф.");
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] = PlayerInfo[playerid][pSkin];
				PlayerInfo[playerid][pSkin] = 97;
				SetPlayerSkin(playerid, 97);
				UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
			}
			if(listitem == 4)
			{
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет металла.");
				if(PlayerInfo[playerid][pMetal] >= 20 && PlayerInfo[playerid][pUpdate] < 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
				if(PlayerInfo[playerid][pMetal] >= 50 && PlayerInfo[playerid][pUpdate] >= 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
				ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			}
			if(listitem == 5)
			{
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет наркотиков.");
				if(PlayerInfo[playerid][pDrugs] >= 1000 && PlayerInfo[playerid][pUpdate] < 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше наркотиков.");
				if(PlayerInfo[playerid][pDrugs] >= 2000 && PlayerInfo[playerid][pUpdate] >= 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше наркотиков.");
				ShowPlayerDialog(playerid, 1079, DIALOG_STYLE_INPUT, "{FFCC00}Взять наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			}
			if(listitem == 6)
			{
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет оружия.");
				ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			}
			if(listitem == 7)
			{
				if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет одежды в шкафу.");
				if(PlayerInfo[playerid][pMember] > 0) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете это использовать, потому что состоите в организации.");
				SendClientMessage(playerid,0x00CC00AA, "Вы взяли одежду из шкафа.");
				PlayerInfo[playerid][pSkin] = HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin];
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] = 0;
				SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
				UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
			}
		}
	}
Другие диалоги
Внимания диалоги
PHP:
pMeat - металл у игрока,pDrugs наркотики игрока.
pUpdate Улучшения игрока для проверки что бы игрок не взял больше(Можно убрать)
PHP:
if(dialogid == 1075)
	{
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(strval(inputtext) <= 0) return SendClientMessage(playerid,COLOR_GRAD2, "Неверное кол-во.");
			if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(PlayerInfo[playerid][pMetal] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет столько металла.");
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] += strval(inputtext);
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] > 700)
			{
				ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
				SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
				HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] -= strval(inputtext);
				return true;
			}
			format(query,sizeof(query),"Вы положили в шкаф %d кг металла.",strval(inputtext));
			SendClientMessage(playerid,0x0099FFAA, query);
			format(query,sizeof(query),"~r~-%d~n~~r~metall",strval(inputtext));
			GameTextForPlayer(playerid, query, 1000, 1);
			PlayerInfo[playerid][pMetal] -= strval(inputtext);
			UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
		}
		else
		{

		}
	}

	if(dialogid == 1078)
	{
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять с шкафа менее 1 кг металла.");
			if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет столько металла.");
			PlayerInfo[playerid][pMetal] += strval(inputtext);
			if(PlayerInfo[playerid][pMetal] > 20 && PlayerInfo[playerid][pUpdate] < 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(PlayerInfo[playerid][pMetal] > 50 && PlayerInfo[playerid][pUpdate] >= 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(PlayerInfo[playerid][pMetal] > 20 && PlayerInfo[playerid][pUpdate] < 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
			if(PlayerInfo[playerid][pMetal] > 50 && PlayerInfo[playerid][pUpdate] >= 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
			if(PlayerInfo[playerid][pMetal] > 20 && PlayerInfo[playerid][pUpdate] < 2) return PlayerInfo[playerid][pMetal] -= strval(inputtext);
			if(PlayerInfo[playerid][pMetal] > 50 && PlayerInfo[playerid][pUpdate] >= 2) return PlayerInfo[playerid][pMetal] -= strval(inputtext);
			format(query,sizeof(query),"Вы взяли из шкафа %d кг металла.",strval(inputtext));
			SendClientMessage(playerid,0x0099FFAA, query);
			format(query,sizeof(query),"~g~+%d~n~~g~metall",strval(inputtext));
			GameTextForPlayer(playerid, query, 1000, 1);
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] -= strval(inputtext);
			UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
		}
		else
		{

		}
	}

	if(dialogid == 1079)
	{
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять с шкафа менее 1 г наркотиков.");
			if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет столько металла.");
			PlayerInfo[playerid][pDrugs] += strval(inputtext);
			if(PlayerInfo[playerid][pDrugs] > 1000 && PlayerInfo[playerid][pUpdate] < 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(PlayerInfo[playerid][pDrugs] > 2000 && PlayerInfo[playerid][pUpdate] >= 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(PlayerInfo[playerid][pDrugs] > 1000 && PlayerInfo[playerid][pUpdate] < 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
			if(PlayerInfo[playerid][pDrugs] > 2000 && PlayerInfo[playerid][pUpdate] >= 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
			if(PlayerInfo[playerid][pDrugs] > 1000 && PlayerInfo[playerid][pUpdate] < 2) return PlayerInfo[playerid][pDrugs] -= strval(inputtext);
			if(PlayerInfo[playerid][pDrugs] > 2000 && PlayerInfo[playerid][pUpdate] >= 2) return PlayerInfo[playerid][pDrugs] -= strval(inputtext);
			format(query,sizeof(query),"Вы взяли из шкафа %d грамм наркотиков.",strval(inputtext));
			SendClientMessage(playerid,0x0099FFAA, query);
			format(query,sizeof(query),"~g~+%d~n~~g~drugs",strval(inputtext));
			GameTextForPlayer(playerid, query, 1000, 1);
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] -= strval(inputtext);
			UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
		}
		else
		{

		}
	}

	if(dialogid == 1076)
	{
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(strval(inputtext) <= 0) return SendClientMessage(playerid,COLOR_GRAD2, "Неверное кол-во.");
			if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(PlayerInfo[playerid][pDrugs] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет столько металла.");
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] += strval(inputtext);
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] > 2000) ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] > 2000) SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] > 2000) return HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] -= strval(inputtext);
			format(query,sizeof(query),"Вы положили в шкаф %d г наркотиков.",strval(inputtext));
			SendClientMessage(playerid,0x0099FFAA, query);
			format(query,sizeof(query),"~r~-%d~n~~r~drugs",strval(inputtext));
			GameTextForPlayer(playerid, query, 1000, 1);
			PlayerInfo[playerid][pDrugs] -= strval(inputtext);
			UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
		}
		else
		{

		}
	}

	if(dialogid == 1080)
	{
		if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет оружия.");
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять из шкафа менее 1 патрона.");
			if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] -= strval(inputtext);
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] < 0) ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] < 0) SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно патронов.");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] < 0) return HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] += strval(inputtext);
			new gunname[64];
			GetWeaponName(HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun],gunname,sizeof(gunname));
			format(query,sizeof(query),"Вы достали из шкафа оружие %s и %d патронов.",gunname,strval(inputtext));
			SendClientMessage(playerid,0x0099FFAA, query);
			format(query,sizeof(query),"~r~+%d~n~~r~ammo",strval(inputtext));
			GameTextForPlayer(playerid, query, 1000, 1);
			GivePlayerWeapon(playerid,HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun],strval(inputtext));
			UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
		}
		else
		{

		}
	}

	if(dialogid == 1077)
	{
		if(GetPlayerWeapon(playerid) < 16) return SendClientMessage(playerid,COLOR_GRAD2, "Это оружие нельзя поместить в шкаф.");
		if(GetPlayerWeapon(playerid) > 34) return SendClientMessage(playerid,COLOR_GRAD2, "Это оружие нельзя поместить в шкаф.");
		if(response)
		{
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько патронов Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете положить в шкаф менее 1 патрона.");
			if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько патронов Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] += strval(inputtext);
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] > 3000) ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько патронов Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] > 3000) SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
			if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] > 3000) return HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] -= strval(inputtext);
			if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет оружия в руках.");
			new gunname[64];
			HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun] = GetPlayerWeapon(playerid);
			GetWeaponName(GetPlayerWeapon(playerid),gunname,sizeof(gunname));
			format(query,sizeof(query),"Вы положили в шкаф оружие %s и %d патронов.",gunname,strval(inputtext));
			SendClientMessage(playerid,0x0099FFAA, query);
			format(query,sizeof(query),"~r~-%d~n~~r~ammo",strval(inputtext));
			GameTextForPlayer(playerid, query, 1000, 1);
			new patr = GetPlayerAmmo(playerid);
			new dat = patr - strval(inputtext);
			RemovePlayerWeapon(playerid,HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun]);
			GivePlayerWeapon(playerid,HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun],dat);
			UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
		}
		else
		{

		}
	}
В конце мода
UpdateStoreHouse
PHP:
stock UpdateStoreHouse(i)
{
	new stringasr[200],gunname[64];
	if(HouseInfo[i][StoreGun] > 0) GetWeaponName(HouseInfo[i][StoreGun],gunname,sizeof(gunname));
	if(HouseInfo[i][StoreGun] == 0) gunname = "нет";
	if(HouseInfo[i][StoreSkin] >= 1) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {00CC00}Есть",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
	if(HouseInfo[i][StoreSkin] == 0) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {FF6600}Нет",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
	Update3DTextLabelText(HouseInfo[i][StoreInfoHouse], 0xFFFF00FF, stringasr);
	return true;
}
Сохранения\Загрузка Mysql R39-2
SaveStoreHouse
Внимания SaveStoreHouse
PHP:
dbHandle это база данных у вас может быть по другому.
Строка (UPDATE houses)houses где находиться StoreX и д.
PHP:
stock SaveStoreHouse(i)
{
    new mquery[350];
	format(mquery, sizeof(mquery),
		"UPDATE houses SET hStoreX = '%f',hStoreY = '%f',hStoreZ = '%f',hStoreMetall = '%i',hStoreAmmo = '%i',hStoreDrugs = '%i',hStoreSkin = '%i',hStoreGun = '%i' WHERE ID = '%i'",
		HouseInfo[i][StoreX],
		HouseInfo[i][StoreY],
		HouseInfo[i][StoreZ],
		HouseInfo[i][StoreMetall],
		HouseInfo[i][StoreAmmo],
		HouseInfo[i][StoreDrugs],
		HouseInfo[i][StoreSkin],
		HouseInfo[i][StoreGun],
		i
	);
	mysql_pquery(dbHandle, mquery);
	return true;
}
Добавьте в загрузку домов
PHP:
            HouseInfo[indexsa][StoreX] = cache_get_field_content_float(indexsa-1, "hStoreX");
            HouseInfo[indexsa][StoreY] = cache_get_field_content_float(indexsa-1, "hStoreY");
            HouseInfo[indexsa][StoreZ] = cache_get_field_content_float(indexsa-1, "hStoreZ");
            HouseInfo[indexsa][StoreMetall] = cache_get_field_content_int(indexsa-1, "hStoreMetall");
            HouseInfo[indexsa][StoreAmmo] = cache_get_field_content_int(indexsa-1, "hStoreAmmo");
            HouseInfo[indexsa][StoreDrugs] = cache_get_field_content_int(indexsa-1, "hStoreDrugs");
            HouseInfo[indexsa][StoreSkin] = cache_get_field_content_int(indexsa-1, "hStoreSkin");
            HouseInfo[indexsa][StoreGun] = cache_get_field_content_int(indexsa-1, "hStoreGun");
[SIZE=5]Сохранения\Загрузка на MxINI[/SIZE]
[SIZE=5]В конец мода.[/SIZE][SPOILER][PHP]
stock SaveShkav(i)
{
	new idx;
	new File: file2;
	while (idx < sizeof(HouseInfo))
	{
		new coordsstring[256];
		format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%d,%d,%d,%d,%d\n",
		HouseInfo[idx][StoreX],
		HouseInfo[idx][StoreY],
		HouseInfo[idx][StoreZ],
		HouseInfo[idx][StoreMetall],
		HouseInfo[idx][StoreAmmo],
		HouseInfo[idx][StoreDrugs],
		HouseInfo[idx][StoreSkin]),
                HouseInfo[idx][StoreGun]);
		if(idx == 0)
		{
			file2 = fopen("house/shkaf.cfg", io_write);
		}
			else
			{
			file2 = fopen("house/shkaf.cfg", io_append);
			}
		fwrite(file2, coordsstring);
		idx++;
		fclose(file2);
	}
		return true;
}
forward LoadSH(createall);
public LoadSH(createall)
{
	new arrCoords[11][40];
	new strFromFile2[256];
	new File: file = fopen("house/shkaf.cfg", io_read);
	if (file)
	{
		new idx;
		while (idx < sizeof(HouseInfo))
		{
			fread(file, strFromFile2);
			split(strFromFile2, arrCoords, ',');
			HouseInfo[idx][StoreX] = floatstr(arrCoords[0]);
			HouseInfo[idx][StoreY] = floatstr(arrCoords[1]);
			HouseInfo[idx][StoreZ] = floatstr(arrCoords[2]);
			HouseInfo[idx][StoreMetall] = floatstr(arrCoords[3]);
			HouseInfo[idx][StoreAmmo] = floatstr(arrCoords[4]);
			HouseInfo[idx][StoreDrugs] = floatstr(arrCoords[5]);
			HouseInfo[idx][StoreSkin] = strval(arrCoords[7]);
			HouseInfo[idx][StoreGun] = strval(arrCoords[8]);
			idx++;
		}
		fclose(file);
		print("Cистема шкафов - загружена!");
	}
		return true;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу