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

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

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

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

Мануал Работа Пожарника

Saibot

Мастер


Ваша задача ездить по местам в которых образовался пожар и тушить его.
Работа находиться в San Fierro возле вокзала!​



Ко всем define
PHP:
#define HOLDING(%0)   ((newkeys & (%0)) == (%0))
Ко всем new
PHP:
new completion_fire [ MAX_PLAYERS char ], object_fire [ MAX_PLAYERS char ],
	clothes_fire, fire_tc [ 4 ];

static const Float: checkpoint_fire [ 11 ] [ 3 ] =
{
	{-541.3409,-560.3647,25.5234},
	{36.5221,-290.3575,2.0918},
	{1257.9561,250.2063,19.5547},
	{2320.3154,-75.9036,26.4844},
	{1099.0593,-356.3210,73.9922},
	{1362.6869,366.9150,20.5547},
	{309.9079,-54.5438,1.5781},
	{121.2022,-149.7604,1.5781},
	{-219.0738,1165.0209,19.7422},
	{-799.5907,1623.1760,27.1172},
	{-2507.6418,2368.7292,4.9834}
};
В public OnGameModeInit()
PHP:
clothes_fire = CreatePickup(1275,2,-2025.5082,67.1673,28.4671,0);

fire_tc[0] =  AddStaticVehicleEx(407, -2021.7339, 93.2404, 28.2583, -90.0000, -1, -1, 200);
fire_tc[1] =  AddStaticVehicleEx(407, -2021.7303, 86.7794, 28.2583, -90.0000, -1, -1, 200);
fire_tc[2] =  AddStaticVehicleEx(407, -2021.8757, 73.2370, 28.2583, -90.0000, -1, -1, 200);
fire_tc[3] =  AddStaticVehicleEx(407, -2021.8336, 79.9215, 28.2583, -90.0000, -1, -1, 200);
В любой таймер
PHP:
if(GetPVarInt(i, "press_fire"))
{
	if(completion_fire{i} == 30)
	{
	    new money = 2000 + random(1000);
	    SendClientMessage(i, 0x33CCFFFF, !"[FDSA]: Ты успешно потушил пожар, езжай далее.");
	    format(string,sizeof(string), "~g~money ~w~+%d$",money);
		GameTextForPlayer(i, string, 5000, 6);
		PlayerInfo[i][pMoney] += money;
		PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0);
		DestroyObject(object_fire{i});
		DeletePVar(i,"on_zone");
		DeletePVar(i,"press_fire");
		fire_stock(i);
	}
	else
	{
		format(string, sizeof(string), "%d", 30 - completion_fire{i});
		GameTextForPlayer(i, string, 1500, 6);
		completion_fire{i} += 1;
	}
}
В public OnPlayerStateChange(playerid, newstate, oldstate)
PHP:
new vehicle = GetPlayerVehicleID(playerid);
if(vehicle >= fire_tc[0] && vehicle <= fire_tc[3])
{
	SendClientMessage(playerid, 0x33CCFFFF, !"[FDSA]: Езжай к месту пожара!");
	fire_stock(playerid);
}
В public OnPlayerEnterRaceCheckpoint(playerid)
PHP:
if(GetPVarInt(playerid, "chekpoint_fire"))
{
	PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
	SetPVarInt(playerid,"on_zone",1);
	DeletePVar(playerid,"chekpoint_fire");
	DisablePlayerRaceCheckpoint(playerid);
}
В public OnPlayerPickUpPickup(playerid, pickupid)
PHP:
if(pickupid == clothes_fire)
{
	if(GetPlayerSkin(playerid) == 279)return SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]);//pModel меняем на свою
	SetPlayerSkin(playerid, 279);
	SendClientMessage(playerid, 0x33CCFFFF, !"[FDSA]: Садись в пожарную машину!");
}
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
PHP:
if(HOLDING(KEY_FIRE) && GetPVarInt(playerid, "on_zone") && !GetPVarInt(playerid, "press_fire"))
{
	new Float: object_x,
		Float: object_y,
		Float: object_z;

	GetObjectPos(object_fire{playerid}, object_x, object_y, object_z);
	if(IsPlayerInRangeOfPoint(playerid, 10.0, object_x, object_y, object_z))// 10.0 << Радиус можете поменять!
	{
		SetPVarInt(playerid,"press_fire",1);
	}
}
else if(GetPVarInt(playerid, "on_zone") && GetPVarInt(playerid, "press_fire"))
{
	DeletePVar(playerid,"press_fire");
}
В конец мода
PHP:
stock fire_stock(playerid)
{
    new rand = random(sizeof(checkpoint_fire));

    SetPlayerRaceCheckpoint(playerid,2,checkpoint_fire[rand][0],checkpoint_fire[rand][1],checkpoint_fire[rand][2],0.0,0.0,0.0,10.0);
    object_fire{playerid} = CreateObject(18691,checkpoint_fire[rand][0],checkpoint_fire[rand][1],checkpoint_fire[rand][2],0.0,0.0,0.0);

    completion_fire{playerid} = 0;
    SetPVarInt(playerid,"chekpoint_fire",1);
}

Скриншоты:



Автор: Saibot
 
Последнее редактирование:
Сверху Снизу