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

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

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

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

[Мануал]Общаки (Полностю Без Багов)(Vida-Virtual)

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

Mr_David

Мастер
Всем Привет.С вами я.И в даном уроке я раскажу как сделать общаки идентично серверу Vida-Virtual.Общаки тестились 5 часов.И каждый час я исправлял не доработки!
Я делал мод для проекта но где то запорол.Мод был копией и я начну сливать с него всё что было сделано так как сам мод не рабочий.
Ну начнём:
[HR][/HR]
Сначало мы объявим переменную(Добавим ко всем new):
PHP:
new obwyak; // obwyak это название переменной которая будет использоваться в дальнейшем
new GangMoney;
new GangDrugs;
new GangMats;
new Security = 0;
Если вы будете создавать общаки для других фракий вы должны создать название общака new obwyak2; и так далее
[HR][/HR]
Теперь создадим пикап на респе банды(Вставляем в public OnGameModeInit):
PHP:
	obwyak = CreatePickup(1550,2,x,y,z);
  • obwyak - название переменной объявленой в new (В начале)
  • CreatePickup - Функция создание пикапа
  • 1550 - Ид пикапа(Тут можете выбрать любой)
  • 2 - Тип пикапа (Наступаеш на пикап и он пропадает и через некоторое времья появляется)
  • x - Это координаты пикапа по осе x
  • y - Это координаты пикапа по осе y
  • z - Это координаты пикапа по осе z
[HR][/HR]
Вот мы и создали пикап.Теперь нужно чтобы по пикапу открывался диалог:
В public OnPlayerPickupPickup:
PHP:
	if(pickupid == obwyak) // если игрок на пикапе
	{
		if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12) // если игрок в руской мафии (12 ид фракции)
		{ // то
			new s[512];
			format(s,sizeof(s),"Денги\nНаркотики\nМатериалы");
			ShowPlayerDialog(playerid,440,DIALOG_STYLE_LIST,"Русская Мафия",s,"Открыть,"Отмена");
		}
		else
		{
			SendClientMessage(playerid, COLOR_RED, "**Вы не из русской мафии");
		}
	}
	}
[HR][/HR]
А теперь создадим сам диалог(public OnDialogResponse):
PHP:
	//===================================ОБЩАК РМ===================================
	if(dialogid == 440)
	{
		if(response)
		{
			if(listitem == 0)
			{
				format(string, sizeof(string), "Положить\nВзять\nПросмотреть");
				ShowPlayerDialog(playerid,4400,2,"Деньги",string,"Дальше","Отмена");
			}
			if(listitem == 1)
			{
				format(string, sizeof(string), "Положить\nВзять\nПросмотреть");
				ShowPlayerDialog(playerid,4401,2,"Наркотики",string,"Дальше","Отмена");
			}
			if(listitem == 2)
			{
				format(string, sizeof(string), "Положить\nВзять\nПросмотреть");
				ShowPlayerDialog(playerid,4402,2,"Материалы",string,"Дальше","Отмена");}
		}
	}
	//======================================money===================================
	if(dialogid == 4400)
	{
		if(response)
		{
			if(listitem == 0)
			{
				format(string, sizeof(string), "Сумма деняг");
				ShowPlayerDialog(playerid,4404,1,"Отдать Общаку РМ",string,"Отдать","Назад");
			}
			if(listitem == 1)
			{
				format(string, sizeof(string), "Взять денги");
				ShowPlayerDialog(playerid,4405,1,"Взять с склада РМ",string,"Взять","Назад");
			}
			if(listitem == 2)
			{
				LoadRM();
				format(string, sizeof(string), "У вашей мафии %d долар(ов)", GangMoney);
				SendClientMessage(playerid, COLOR_GREEN, string);
				SaveRM();
			}
		}
	}
	if(dialogid == 4404)
	{
		if(response)
		{
			LoadRM();
			new cashdeposit = strval(inputtext);
			if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12)
			{
				if(PlayerInfo[playerid][pRank] < 4)
				{
					SendClientMessage(playerid, COLOR_GREY, "Вы должны быть 4 рангом, чтобы  использовать это !");
					return 1;
				}
				if(cashdeposit > GangMoney || GangMoney < 1 || cashdeposit < 1)
				{
					SendClientMessage(playerid, COLOR_GRAD2, " В общяке нет столько денег! ");
				}
				else
				{
					NormMoney[playerid] = 2;
					AntiMoney[playerid] = AntiMoney[playerid] + cashdeposit;
					GivePlayerMoney(playerid, cashdeposit);
					format(string, sizeof(string), " Вы сняли $%d со счета своей организации! ", cashdeposit);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					new babki = GangMoney - cashdeposit;
					GangMoney = babki;
					SaveRM();
					return 1;
				}
			}
		}
	}
	if(dialogid == 4405)
	{
		if(response)
		{
			LoadRM();
			new cashdeposit = strval(inputtext);
			if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12)
			{
				if(PlayerInfo[playerid][pRank] < 4)
				{
					SendClientMessage(playerid, COLOR_GREY, "Вы должны быть 4 рангом, чтобы  использовать это !");
					return 1;
				}
				if (cashdeposit > GangMoney || GangMoney < 1)
				{
					SendClientMessage(playerid, COLOR_GRAD2, " В Общаке нет столько денег! ");

				}
				else
				{
					GivePlayerMoney(playerid, cashdeposit);
					format(string, sizeof(string), " Вы взяли %d $ с Общака РМ! ", cashdeposit);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					new babki = GangMoney - cashdeposit;
					GangMoney = babki;
					SaveRM();
					return 1;
				}
			}
		}
	}
	//============================================Drugs=============================
	if(dialogid == 4401)
	{
		if(response)
		{
			if(listitem == 0)
			{
				format(string, sizeof(string), "Количество нарко");
				ShowPlayerDialog(playerid,4406,1,"Отдать Общаку РМ",string,"Отдать","Назад");
			}
			if(listitem == 1)
			{
				format(string, sizeof(string), "Взять нарко");
				ShowPlayerDialog(playerid,4407,1,"Взять с склада",string,"Взять","Назад");
			}
			if(listitem == 2)
			{
				LoadRM();
				format(string, sizeof(string), "В общяге %d грам(ов) нарко!", GangDrugs);
				SendClientMessage(playerid, COLOR_GREEN, string);
				SaveRM();
			}
		}
	}
	if(dialogid == 4406)
	{
		if(response)
		{
			LoadRM();
			new dr = strval(inputtext);
			if (dr > PlayerInfo[playerid][pDrugs] || dr < 1)
			{
				SendClientMessage(playerid, COLOR_GRAD2, " Вы не имеете так много грамм нарко! ");

			}
			else
			{
				PlayerInfo[playerid][pDrugs] -= dr;
				format(string, sizeof(string), " Вы положили %d грам(ов) в Общак RM! ", dr);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
				new nark = GangDrugs + dr;
				GangDrugs = nark;
				SaveRM();
				return 1;
			}
		}
	}
	if(dialogid == 4407)
	{
		if(response)
		{
			LoadRM();
			new dr = strval(inputtext);
			if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12)
			{
				if(PlayerInfo[playerid][pRank] < 4)
				{
					SendClientMessage(playerid, COLOR_GREY, "Вы должны быть 4 рангом, чтобы  использовать это !");
					return 1;
				}
				if (dr > GangDrugs || GangDrugs < 1 || dr < 1)
				{
					SendClientMessage(playerid, COLOR_GRAD2, " В общягк нет столько нарко ");
				}
				else
				{
					PlayerInfo[playerid][pDrugs] = dr;
					format(string, sizeof(string), " Вы взяли %d с общяка! ", dr);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					new nark = GangDrugs - dr;
					GangDrugs = nark;
					SaveRM();
					return 1;
				}
			}
		}
	}
	//============================================mats==============================
	if(dialogid == 4402)
	{
		if(response)
		{
			if(listitem == 0)
			{
				format(string, sizeof(string), "Количество материалов");
				ShowPlayerDialog(playerid,4408,1,"Отдать Общаку РМ",string,"Отдать","Назад");
			}
			if(listitem == 1)
			{
				format(string, sizeof(string), "Взять материалы");
				ShowPlayerDialog(playerid,4409,1,"Взять с склада",string,"Взять","Назад");
			}
			if(listitem == 2)
			{
				LoadRM();
				format(string, sizeof(string), "В общяге %d материал(ов)!", GangMats);
				SendClientMessage(playerid, COLOR_GREEN, string);
				SaveRM();
			}
		}
	}
	if(dialogid == 4408)
	{
		if(response)
		{
			LoadRM();
			new mt = strval(inputtext);
			if (mt > PlayerInfo[playerid][pMats] || mt < 1)
			{
				SendClientMessage(playerid, COLOR_GRAD2, " Вы не имеете так много материалов! ! ");

			}
			else
			{
				PlayerInfo[playerid][pMats] -= mt;
				format(string, sizeof(string), " Вы положили %d материал(ов) в Общак РМ!", mt);
				SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
				new mat = GangMats + mt;
				GangMats = mat;
				SaveRM();
				return 1;
			}
		}
	}
	if(dialogid == 4409)
	{
		if(response)
		{
			LoadRM();
			new mt = strval(inputtext);
			if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12)
			{
				if(PlayerInfo[playerid][pRank] < 4)
				{
					SendClientMessage(playerid, COLOR_GREY, "Вы должны быть 4 рангом, чтобы  использовать это !");
					return 1;
				}
				if (mt > GangMats || GangMats < 1 || mt < 1)
				{
					SendClientMessage(playerid, COLOR_GRAD2, " В общяке нет столько материалов! ");
				}
				else
				{
					PlayerInfo[playerid][pMats] = mt;
					format(string, sizeof(string), " Вы взяли %d материал(ов) с общака!", mt);
					SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
					new mat = GangMats - mt;
					GangMats = mat;
					SaveRM();
					return 1;
				}
			}
		}
	}
Не забудем создать сохранение и загрузку из файла / в файл:
В конец мода:
PHP:
//================================================RM==============================================
forward LoadRM();
public LoadRM()
{
	new arrCoords[15][64];
	new strFromFile2[256];
	new File: file = fopen("obwyak/rm.ini", io_read);
	if (file)
	{
		fread(file, strFromFile2);
		split(strFromFile2, arrCoords, ',');
		GangMoney = strval(arrCoords[0]);
		GangDrugs = strval(arrCoords[1]);
		GangMats = strval(arrCoords[2]);
		fclose(file);
		if(Security == 0 || Security == 1)
		{
		}
		else
		{
			GameModeExit();
		}
	}
	else
	{
		GameModeExit();
	}
	return 1;
}
forward SaveRM();
public SaveRM()
{
	new coordsstring[256];
	format(coordsstring, sizeof(coordsstring), "%d,%d,%d", GangMoney, GangDrugs, GangMats);
	new File: file2 = fopen("obwyak/rm.ini", io_write);
	fwrite(file2, coordsstring);
	fclose(file2);
	return 1;
}
И добавим в public LoadStuff:
PHP:
iniGetInt(File,"Security",Security);
И добавим в public SaveStuff:
PHP:
iniSetInt(File,"Security",Security);
[HR][/HR]
Не забудем кинуть это в scriptfiles:
Доработчик:Mr_David
[HR][/HR]
Мод:•[RPG] Magnificent Game [RUS/UA]•
[HR][/HR]
В трудную минуту помагал:UNREAL
[HR][/HR]
В примере общак только для RM!

 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу