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

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

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

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

Мануал Работа фармацевта

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

Dima972511

Умник
Работа фармацевта



Всем доброго времени суток. В этой теме я выложил работу фармацевта, которую давно писал для своего мода. Если кто то что-то будет писать про оптимизацию, то скажу сразу что давно писал и на неё внимания не обращал. Так что если кому надо оптимизируйте.​

[HR][/HR]

Работа полностью на клавишах. Сначала переодеваемся, потом идём к столу(столы распределяются рандомно). Дальше зажимаем клавиши которые пишутся в чате.
Сначала нужно обработать бинты клавишой пробел, потом надо свернуть бинт клавишой альт, затем сделать жгут на альт, затем обработать шприц на пробел. На каждый этап выделено определённое время нажатия.

[HR][/HR]

Скриншоты:





[HR][/HR]
Место нахождения:


[HR][/HR]

Код:

ко всем new
PHP:
new enterlab[3];
new Skin[MAX_PlAYERS];
в enum pInfo
PHP:
pPayDayCheck
Куда нибудь в конец мода

PHP:
forward FactoryUpdate();
public FactoryUpdate()
{
	for(new i; i < GetMaxPlayers(); i++)
	{
                if(!IsPlayerConnected(i)) continue;
		Manufactyre(i);
	}
}

stock Manufactyre(playerid)
{
	new Keys,ud,lr, string[50];
	GetPlayerKeys(playerid,Keys,ud,lr);
	if(GetPVarInt(playerid, "MedicalCom") == 1)
	{
		if(Kolmed[playerid] < 10)
		{
			if(Keys == KEY_SPRINT)
			{
				Kolmed[playerid]++;
				format(string, 20, "Process: %d", Kolmed);
				GameTextForPlayer(playerid, string, 600, 3);
				ApplyAnimation( playerid, "SPRAYCAN", "spraycan_fire", 4.1, 1, 1, 1, 0, 0);
			}
		}
		if(Kolmed[playerid] >= 10)
		{
			if(Kolmed[playerid] == 10) { SendClientMessage(playerid, 0xED4900, "Начинайте сворачивать бинт(нажимайте клавишу 'шаг')"); }
			if(Keys == KEY_WALK)
			{
				Kolmed[playerid]++;
				format(string, 20, "Process: %d", Kolmed);
				GameTextForPlayer(playerid, string, 400, 3);
				ApplyAnimation( playerid, "ped", "bomber", 4.1, 1, 1, 1, 0, 0);
			}
		}
		if(Kolmed[playerid] >= 30)
		{
			if(Kolmed[playerid] == 30) { SendClientMessage(playerid, 0xED4900, "Вы изготовили бинт. Начинайте делать жгут(жмите клавишу 'шаг' для изготовки!"); }
			SetPVarInt(playerid, "MedicalCom", 2);
			Kolmed[playerid] = 0;
		}
	}
	if(GetPVarInt(playerid, "MedicalCom") == 2)
	{
		if(Kolmed[playerid] < 10)
		{
			if(Keys == KEY_WALK)
			{
				Kolmed[playerid]++;
				format(string, 20, "Process: %d", Kolmed);
				GameTextForPlayer(playerid, string, 400, 3);
				ApplyAnimation( playerid, "ped", "bomber", 4.1, 1, 1, 1, 0, 0);
			}
		}
		if(Kolmed[playerid] >= 10)
		{
			if(Kolmed[playerid] == 10) { SendClientMessage(playerid, 0xED4900, "Вы изготовили жгут. Приступайте к обработке шприца(жмите клавишу 'быстрый бег' для обработки)"); }
			SetPVarInt(playerid, "MedicalCom", 3);
			Kolmed[playerid] = 0;
		}
	}
	if(GetPVarInt(playerid, "MedicalCom") == 3)
	{
		if(Kolmed[playerid] < 10)
		{
			if(Keys == KEY_SPRINT)
			{
				Kolmed[playerid]++;
				format(string, 20, "Process: %d", Kolmed);
				GameTextForPlayer(playerid, string, 400, 3);
				ApplyAnimation( playerid, "SPRAYCAN", "spraycan_fire", 4.1, 1, 1, 1, 0, 0);
			}
		}
		if(Kolmed[playerid] >= 10)
		{
			if(Kolmed[playerid] == 10) { SendClientMessage(playerid, 0xED4900, "Вы обработали шприцы. Приступайте к изготовлению лекратсва(жмите клавишу 'шаг')"); }
			SetPVarInt(playerid, "MedicalCom", 4);
			Kolmed[playerid] = 0;
		}
	}
	if(GetPVarInt(playerid, "MedicalCom") == 4)
	{
		if(Kolmed[playerid] < 10)
		{
			if(Keys == KEY_WALK)
			{
				Kolmed[playerid]++;
				format(string, 20, "Process: %d", Kolmed);
				GameTextForPlayer(playerid, string, 400, 3);
				ApplyAnimation( playerid, "OTB", "betslp_loop", 4.1, 1, 1, 1, 0, 0);
			}
		}
		if(Kolmed[playerid] >= 10)
		{
			if(Kolmed[playerid] == 10) { SendClientMessage(playerid, 0xED4900, "Вы закончили изготовку медикаментов, несите их на склад!"); }
			Kolmed[playerid] = 0;
			SetPVarInt(playerid, "MedicalCom", 5);
			SetPlayerCheckpoint(playerid, 2558.5039,-1282.6887,1031.4219, 2.0);
			TogglePlayerControllable(playerid, 1);
			SetPlayerAttachedObject(playerid, 2, 2891, 5, 0.01, 0.1, 0.2, 100, 10, 85);
			ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
		}
	}
}

в public OnPlayerEnterCheckpoint

	if(GetPVarInt(playerid, "SetMedical") == 2)
	{
		DisablePlayerCheckpoint(playerid);
		SetPVarInt(playerid, "MedicalCom", 1);
		RemovePlayerAttachedObject(playerid, 2);
		SendClientMessage(playerid, 0xED4900, "Обработайте бинт спреем. Жмите клавишу 'быстрый бег' для обработки");
		SetPVarInt(playerid, "SetMedical", 0);
		TogglePlayerControllable(playerid, 0);
	}
	if(GetPVarInt(playerid, "SetMedical") == 1)
	{
		DisablePlayerCheckpoint(playerid);
		SetPlayerAttachedObject(playerid, 2, 2891, 5, 0.01, 0.1, 0.2, 100, 10, 85);
		ApplyAnimation(playerid,"CARRY","crry_prtial",4.1,0,1,1,1,1);
		SendClientMessage(playerid, 0x680000, "Идите к чекпоинту чтобы начать изготовку медикаментов!");
		new randmed = random(sizeof(randommed));
		SetPlayerCheckpoint(playerid, randommed[randmed][0], randommed[randmed][1], randommed[randmed][2], 0.5);
		SetPVarInt(playerid, "SetMedical", 2);
	}
	if(GetPVarInt(playerid, "MedicalCom") == 5)
	{
                new string[128];
		DisablePlayerCheckpoint(playerid);
		ClearAnimations(playerid);
		RemovePlayerAttachedObject(playerid, 2);
		PlayerInfo[playerid][pPayDayCheck] += 20; //вместо 20 ставьте свою цену
		format(string, sizeof(string), "+20$ прибавленно к вашей зарплате. Ваша зарплата теперь составляет %d$", PlayerInfo[playerid][pPayDayCheck]);
                SendClientMessage(playerid, -1, string);
		SetPlayerCheckpoint(playerid, 2558.3049,-1303.8213,1031.4219, 2.0);
		SetPVarInt(playerid, "SetMedical", 1);
		SetPVarInt(playerid, "MedicalCom", 0);
	}
в public OnPlayerPickUpPickup

PHP:
	if(pickupid == enterlab[2])// Раздевалка ф.ф
	{
		if(Skin[playerid] == false)
		{
			if(PlayerInfo[playerid][pSex] == 1) { SetPlayerSkin(playerid, 176); }
			if(PlayerInfo[playerid][pSex] == 2) { SetPlayerSkin(playerid, 219); }
			SetPlayerCheckpoint(playerid, 2558.3049,-1303.8213,1031.4219, 2.0);
			SetPVarInt(playerid, "SetMedical", 1);
			PlayerInfo[playerid][pJob] = 1;
			PlayerInfo[playerid][pPayDayCheck] = 0;
			SendClientMessage(playerid, COLOR_WHITE, "Идите на чекпоинт чтобы взять заготовки");
			Skin[playerid] = true;
			SpawnPlayer(playerid);
		}
		else
		{
			if(PlayerInfo[playerid][pJob] != 1) return SendClientMessage(playerid, COLOR_GREY, "Вы тут не работаете!");
			if(PlayerInfo[playerid][pChar] == 0) SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);
			if(PlayerInfo[playerid][pChar] > 0) SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
			DisablePlayerCheckpoint(playerid);
			RemovePlayerAttachedObject(playerid, 2);
			ClearAnimations(playerid);
			Skin[playerid] = false;
			SetPlayerPos(playerid, 2569.4480,-1302.7634,1031.4219);
			SetPlayerVirtualWorld(playerid, 0);
			SetPlayerInterior(playerid, 2);
			if(FracBank[8] < PlayerInfo[playerid][pPayDayCheck]) return SendClientMessage(playerid, COLOR_WHITE, "У компании нет денег на выдачу зарплаты!");
			GiveMoney(playerid, PlayerInfo[playerid][pPayDayCheck]);
			PlayerInfo[playerid][pJob] = 0;
			SendMes(playerid, COLOR_WHITE, "Вы получили %d$ за свою работу", PlayerInfo[playerid][pPayDayCheck]);
			PlayerInfo[playerid][pPayDayCheck] = 0;
		}
	}
	if(pickupid == enterlab[0])
		SetPlayerInterior(playerid,2);
		SetPlayerVirtualWorld(playerid, 0);
		SetPlayerPos(playerid,2543.3083,-1304.2050,1025.0743);
		SetPlayerFacingAngle(playerid, 500);
	}
	if(pickupid == enterlab[1])//Laboratory выход
	{
		SetPlayerInterior(playerid,0);
		SetPlayerVirtualWorld(playerid, 0);
		SetPlayerPos(playerid,1051.1483,2148.7100,10.8203);
		SetPlayerFacingAngle(playerid, 500);
	}
в OnGameModeInit
PHP:
        enterlab[0] = CreatePickup(1318, 23, 1054.8143,2148.2788,10.8203); 
	enterlab[1] = CreatePickup(1318, 23, 2541.5454,-1304.0947,1025.0703); 
	enterlab[2] = CreatePickup(1275, 23, 2566.8787,-1305.2607,1031.4219);
        SetTimer("FactoryUpdate", 400, 1);
в public OnPlayerSpawn

PHP:
		else if(PlayerInfo[playerid][pJob] == 1 && Skin[playerid] == true)
		{
			if(PlayerInfo[playerid][pSex] == 1) { SetPlayerSkin(playerid, 176); }
			if(PlayerInfo[playerid][pSex] == 2) { SetPlayerSkin(playerid, 219); }
			SetPlayerCheckpoint(playerid, 2558.3049,-1303.8213,1031.4219, 2.0);
			SetPlayerPos(playerid, 2569.4480,-1302.7634,1031.4219);
			SetPlayerVirtualWorld(playerid, 0);
			SetPlayerInterior(playerid, 2);
			SetPVarInt(playerid, "SetMedical", 1);
		}
[HR][/HR]



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