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

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

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

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

Завести движок на shift

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

Limaks

Умник
Доброго времени суток:)
Вот я точно не знаю есть такой урок или нет, но я посмотрел все странице в разделе и не нашел такого
Но вот решил выложить...
Начнем пожалуй.
Открываем мод и добавляем ко всем #define:

PHP:
#define colorRed        0xFF0000FF
#define colorYellow 	0xFFFF00FF
Ниже ко всем forward:

PHP:
forward StartEngine(playerid);
forward DamagedEngine(playerid);
Ну и ко всем new:

PHP:
new vehEngine[MAX_VEHICLES];
Так, теперь приступим к самому главному

Находим public OnPlayerStateChange(playerid, newstate, oldstate)
{
и добавляем в него:

PHP:
new vehicleid = GetPlayerVehicleID(playerid);

	if(newstate == PLAYER_STATE_DRIVER)
	{
	    if(vehEngine[vehicleid] == 0)
	    {
	        TogglePlayerControllable(playerid, 0);
	        SendClientMessage(playerid, colorYellow, "Извините,но сначало вы должны завести машину");
	        SendClientMessage(playerid, colorYellow, "Нажмите SHIFT или наберите /engine");
		}
		else if(vehEngine[vehicleid] == 1)
		{
		    TogglePlayerControllable(playerid, 1);
		    SendClientMessage(playerid, colorYellow, "Vehicle engine running");
		}
	}
Теперь находим public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
и добавляем:
PHP:
new vehicleid = GetPlayerVehicleID(playerid);

	if(IsPlayerInAnyVehicle(playerid))
	{
	    if(vehEngine[vehicleid] == 0)
	    {
	        if(newkeys == KEY_JUMP)
	        {
				vehEngine[vehicleid] = 2;
				SetTimerEx("StartEngine", 3000, 0, "i", playerid);
				SendClientMessage(playerid, colorYellow, "Вы заводите машину");
			}
		}
		if(newkeys == KEY_SECONDARY_ATTACK)
		{
		    RemovePlayerFromVehicle(playerid);
		    TogglePlayerControllable(playerid, 1);
		}
	}
Так теперь в конец мода добавляем такие паблики:

PHP:
public StartEngine(playerid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    new Float:health;
    new rand = random(2);

    GetVehicleHealth(vehicleid, health);

	if(IsPlayerInAnyVehicle(playerid))
	{
	    if(vehEngine[vehicleid] == 2)
	    {
	        if(health > 300)
			{
			    if(rand == 0)
			    {
					vehEngine[vehicleid] = 1;
  					TogglePlayerControllable(playerid, 1);
  					SetTimerEx("DamagedEngine", 1000, 1, "i", playerid);
	        		SendClientMessage(playerid, colorYellow, "Двигатель завелся!");
				}
				if(rand == 1)
				{
				    vehEngine[vehicleid] = 0;
				    TogglePlayerControllable(playerid, 0);
				    SendClientMessage(playerid, colorYellow, "Двигатель не заводиться");
				}
			}
			else
			{
			    vehEngine[vehicleid] = 0;
			    TogglePlayerControllable(playerid, 0);
			    SendClientMessage(playerid, colorYellow, "Ваш автомобиль поврежден и не может завестись");
			}
		}
	}
	return 1;
}

public DamagedEngine(playerid)
{
    new vehicleid = GetPlayerVehicleID(playerid);
    new Float:health;

    GetVehicleHealth(vehicleid, health);

	if(IsPlayerInAnyVehicle(playerid))
	{
	    if(vehEngine[vehicleid] == 1)
	    {
	        if(health < 300)
			{
			    vehEngine[vehicleid] = 0;
				TogglePlayerControllable(playerid, 0);
			    SendClientMessage(playerid, colorYellow, "Двигатель заглох изза повреждений");
			}
		}
	}
	return 1;
}
Теперь в public OnPlayerExitVehicle(playerid, vehicleid)
{

PHP:
TogglePlayerControllable(playerid, 1);
Ну и теперь самое последнее в public OnPlayerCommandText

PHP:
if (strcmp(cmdtext, "/engine", true) == 0)
{
	new vehicleid = GetPlayerVehicleID(playerid);

	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, colorRed, "You need to be in a vehicle to use this command");

	if(vehEngine[vehicleid] == 0)
	{
	    vehEngine[vehicleid] = 2;
		SetTimerEx("StartEngine", 3000, 0, "i", playerid);
		SendClientMessage(playerid, colorYellow, "Вы заводите машину");
	}
	else if(vehEngine[vehicleid] == 1)
	{
	    vehEngine[vehicleid] = 0;
		TogglePlayerControllable(playerid, 0);
		SendClientMessage(playerid, colorYellow, "Двигатель заглох");
		SendClientMessage(playerid, colorYellow, "Нажмите SHIFT или наберите /engine");
	}
	return 1;
}
Ну вот и все готово! Теперь компилируйте(F5), включайте сервер и можете пользоваться:)
P.S: это вырезка из скрипта...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу