Для начала заведём массив, который будет указывать на статус машины(заведенная или нет)

PHP код:
new bool:Engine[MAX_VEHICLES]; 
Теперь сделаем уведомление.

Ищем public OnPlayerStateChange(playerid, newstate, oldstate)
и сразу после if(newstate == PLAYER_STATE_DRIVER)
вставьте :

PHP код:
new v = GetPlayerVehicleID(playerid);
if(!Engine[v])
{
   SendClientMessage(playerid, COLOR_GREY, "Двигатель не работает. Заведите его.");
   TogglePlayerControllable(playerid, 0);//для заморозки

и теперь сделаем команду, для заводки самого двигателя:
в OnPlayerCommandText(playerid, cmdtext[])

PHP код:
if(strcmp(cmd,"/engine",true)==0)
      {
       if(GetPlayerState(playerid)==PLAYER_STATE_DRIVER)
    {
           new v = GetPlayerVehicleID(playerid);
      if(!Engine[v])
     {
         Engine[v]=true;
         TogglePlayerControllable(playerid, 1);
         SendClientMessage(playerid, COLOR_GREY, "Двигатель завелся.");
         return 1;
     }
     if(Engine[v])
     {
         Engine[v]=false;
         TogglePlayerControllable(playerid, 0);
         SendClientMessage(playerid, COLOR_GREY, "Двигатель выключен.");
         return 1;
     }
    }
   } 
Теперь нам нужно добавить, что бы при выключенном двигателе не убавлялся бензин:
ищем public CheckGas

и в условие if(Gas[vehicle] >= 1) добавляем проверку на двигатель:
if(Gas[vehicle] >= 1 && Engine[vehicle])

Что бы выйти из машины (Клавиша Enter)
В OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

PHP код:
if(newkeys == KEY_SECONDARY_ATTACK && oldkeys==0 && GetPlayerState(playerid)==2)
{
      new v = GetPlayerVehicleID(playerid);   
      if(Engine[v] == 0)
      {
              TogglePlayerControllable(playerid, 1);//для разморозки
       RemovePlayerFromVehicle(playerid);
      }
}