Creating Command With Key On Keyboard?
#2

First, download this zcmd include and put it pawno folder/include then copy-paste this code in your a new .pwn and compile.
pawn Код:
#include <a_samp>
#include <zcmd>

#define colorRed        0xFF0000FF
#define colorYellow     0xFFFF00FF

forward StartEngine(playerid);
forward DamagedEngine(playerid);

new vehEngine[MAX_VEHICLES];

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new vehicleid = GetPlayerVehicleID(playerid);
   
    if(newstate == PLAYER_STATE_DRIVER)
    {
        if(vehEngine[vehicleid] == 0)
        {
            TogglePlayerControllable(playerid, 0);
            SendClientMessage(playerid, colorYellow, "Vehicle engine NOT started");
            SendClientMessage(playerid, colorYellow, "To start the vehicle's engine press \"Shift\" or type \"/engine\"");
        }
        else if(vehEngine[vehicleid] == 1)
        {
            TogglePlayerControllable(playerid, 1);
            SendClientMessage(playerid, colorYellow, "Vehicle engine running");
        }
    }
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new vehicleid = GetPlayerVehicleID(playerid);
   
    if(IsPlayerInAnyVehicle(playerid))
    {
        if(vehEngine[vehicleid] == 0)
        {
            if(newkeys == KEY_NO)
            {
                vehEngine[vehicleid] = 2;
                SetTimerEx("StartEngine", 3000, 0, "i", playerid);
                SendClientMessage(playerid, colorYellow, "Vehicle engine starting");
            }
        }
        if(newkeys == KEY_SECONDARY_ATTACK)
        {
            RemovePlayerFromVehicle(playerid);
            TogglePlayerControllable(playerid, 1);
        }
    }
    return 1;
}

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, "Vehicle engine started");
                }
                if(rand == 1)
                {
                    vehEngine[vehicleid] = 0;
                    TogglePlayerControllable(playerid, 0);
                    SendClientMessage(playerid, colorYellow, "Vehicle engine failed to start");
                }
            }
            else
            {
                vehEngine[vehicleid] = 0;
                TogglePlayerControllable(playerid, 0);
                SendClientMessage(playerid, colorYellow, "Vehicle engine failed to start due to damage");
            }
        }
    }
    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, "Vehicle engine stopped due to damage");
            }
        }
    }
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    TogglePlayerControllable(playerid, 1);
    return 1;
}
               
CMD:engine(playerid, params[])
{
    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, "Vehicle engine starting");
    }
    else if(vehEngine[vehicleid] == 1)
    {
        vehEngine[vehicleid] = 0;
        TogglePlayerControllable(playerid, 0);
        SendClientMessage(playerid, colorYellow, "Vehicle engine stopped");
        SendClientMessage(playerid, colorYellow, "To re-start the vehicle's engine press \"Shift\" or type \"/engine\"");
    }
    return 1;
}
Reply


Messages In This Thread
Creating Command With Key On Keyboard? - by hichay - 27.11.2014, 07:53
Re: Creating Command With Key On Keyboard? - by Alex Magaсa - 27.11.2014, 08:08
Re: Creating Command With Key On Keyboard? - by hichay - 27.11.2014, 08:26
Re: Creating Command With Key On Keyboard? - by M4D - 27.11.2014, 08:38
Re: Creating Command With Key On Keyboard? - by hichay - 27.11.2014, 15:08
Re: Creating Command With Key On Keyboard? - by LeXuZ - 27.11.2014, 15:18
Re: Creating Command With Key On Keyboard? - by Raweresh - 27.11.2014, 15:20
Re: Creating Command With Key On Keyboard? - by hichay - 28.11.2014, 04:42
Re: Creating Command With Key On Keyboard? - by PowerPC603 - 28.11.2014, 04:50

Forum Jump:


Users browsing this thread: 2 Guest(s)