SA-MP Forums Archive
Engine command not working - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Engine command not working (/showthread.php?tid=206049)



Engine command not working - jameskmonger - 02.01.2011

pawn Код:
command(engine, playerid, params[])
{
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vehicle, seat;
    vehicle = GetPlayerVehicleID(playerid);
    seat = GetPlayerVehicleSeat(playerid);
    GetVehicleParamsEx(vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
    if(seat == 0) {
        if(engine == 0) {
            if(GetPlayerVehicleID(playerid) == Player[playerid][CarLinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car2LinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car3LinkID])
            {
                SetVehicleParamsEx(vehicle,1,lights,alarm,doors,bonnet,boot,objective);
            } else {
                SendClientMessage(playerid, WHITE, "You don't have the keys to this vehicle.");
            }
        }
        if(engine == 1) {
            if(GetPlayerVehicleID(playerid) == Player[playerid][CarLinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car2LinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car3LinkID])
            {
                SetVehicleParamsEx(vehicle,0,lights,alarm,doors,bonnet,boot,objective);
            } else {
                SendClientMessage(playerid, WHITE, "You don't have the keys to this vehicle.");
            }
        }
    } else {
        SendClientMessage(playerid, WHITE, "You must be in the driver's seat to start the engine.");
    }
    return 1;
}
Here's my /lock command, I based it off of that:
pawn Код:
command(lock, playerid, params[])
{
    new engine,lights,alarm,doors,bonnet,boot,objective;
    new vehslot;
    if(sscanf(params, "d", vehslot))
    {
        SendClientMessage(playerid, WHITE, "SYNTAX: /lock [1-3]");
    }
    else
    {
        switch(vehslot)
        {
            case 1:
            {
                if(Player[playerid][PlayerCarModel] > 0)
                {
                    if(IsPlayerInRangeOfVehicle(playerid, Player[playerid][CarLinkID], 10))
                    {
                        if(Player[playerid][CarLinkID] > 0)
                        {
                            GetVehicleParamsEx(Player[playerid][CarLinkID],engine,lights,alarm,doors,bonnet,boot,objective);
                            if(doors == 0)
                            {
                                SendClientMessage(playerid, WHITE, "You have locked your vehicle.");
                                SetVehicleParamsEx(Player[playerid][CarLinkID],engine,lights,alarm,1,bonnet,boot,objective);
                                return 1;
                            }
                            else
                            {
                                SetVehicleParamsEx(Player[playerid][CarLinkID],engine,lights,alarm,0,bonnet,boot,objective);
                                SendClientMessage(playerid, WHITE, "You have un-locked your vehicle.");
                                return 1;
                            }
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, WHITE, "You're too far away.");
                    }
                }
            }
            case 2:
            {
                if(Player[playerid][PlayerCarModel2] > 0)
                {
                    if(IsPlayerInRangeOfVehicle(playerid, Player[playerid][Car2LinkID], 10))
                    {
                        if(Player[playerid][Car2LinkID] > 0)
                        {
                            GetVehicleParamsEx(Player[playerid][Car2LinkID],engine,lights,alarm,doors,bonnet,boot,objective);
                            if(doors == 0)
                            {
                                SendClientMessage(playerid, WHITE, "You have locked your vehicle.");
                                SetVehicleParamsEx(Player[playerid][Car2LinkID],engine,lights,alarm,1,bonnet,boot,objective);
                                return 1;
                            }
                            else
                            {
                                SetVehicleParamsEx(Player[playerid][Car2LinkID],engine,lights,alarm,0,bonnet,boot,objective);
                                SendClientMessage(playerid, WHITE, "You have un-locked your vehicle.");
                                return 1;
                            }
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, WHITE, "You're too far away.");
                    }
                }
            }
            case 3:
            {
                if(Player[playerid][PlayerCarModel3] > 0)
                {
                    if(IsPlayerInRangeOfVehicle(playerid, Player[playerid][Car3LinkID], 10))
                    {
                        if(Player[playerid][Car3LinkID] > 0)
                        {
                            GetVehicleParamsEx(Player[playerid][Car3LinkID],engine,lights,alarm,doors,bonnet,boot,objective);
                            if(doors == 0)
                            {
                                SendClientMessage(playerid, WHITE, "You have locked your vehicle.");
                                SetVehicleParamsEx(Player[playerid][Car3LinkID],engine,lights,alarm,1,bonnet,boot,objective);
                                return 1;
                            }
                            else
                            {
                                SetVehicleParamsEx(Player[playerid][Car3LinkID],engine,lights,alarm,0,bonnet,boot,objective);
                                SendClientMessage(playerid, WHITE, "You have un-locked your vehicle.");
                                return 1;
                            }
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, WHITE, "You're too far away.");
                    }
                }
            }
        }
    }
    return 1;
}
Now, I type /lock 1 and it unlocks it, /lock 1 and it locks it again.
But, I type /engine outside of the car and it says "You must be in the driver's seat to start the engine.", so I get in and type it and nothing happens. Help please?


Re: Engine command not working - blackwave - 02.01.2011

Well, switch doesn't counts from 1. But basically from 0
Like this:
pawn Код:
info = Me, You, Them;
switch(info)
{
case 0:Me // 0
case 1:You //
case 2:Them
}
You're starting from 1. You should start from 0. Instead 1, 2, 3, it'd had to be: 0,1,2


Re: Engine command not working - jameskmonger - 03.01.2011

No, the switch doesn't always start from 0, it starts from whatever I start it from. And the lock command functions fine, it's my other command that doesn't (/engine).


Re: Engine command not working - jameskmonger - 03.01.2011

Bump, I need help on this.


Re: Engine command not working - jameskmonger - 04.01.2011

Bump, I need help with this.


Re: Engine command not working - Toreno - 04.01.2011

Change
pawn Код:
if(seat == 0)
to
pawn Код:
if(seat == 1)



Re: Engine command not working - jameskmonger - 04.01.2011

No, you are wrong.


Re: Engine command not working - Toreno - 04.01.2011

try this:
pawn Код:
command(engine, playerid, params[])
    {
        new engine,lights,alarm,doors,bonnet,boot,objective;
        new vehicle = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, WHITE, "You must be in the driver's seat to start the engine.");
        if(engine == 0)
        {
            if(GetPlayerVehicleID(playerid) == Player[playerid][CarLinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car2LinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car3LinkID])
            {
                SetVehicleParamsEx(vehicle,1,lights,alarm,doors,bonnet,boot,objective);
            } else {
                SendClientMessage(playerid, WHITE, "You don't have the keys to this vehicle.");
            }
        }
        else if(engine == 1)
        {
            if(GetPlayerVehicleID(playerid) == Player[playerid][CarLinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car2LinkID] || GetPlayerVehicleID(playerid) == Player[playerid][Car3LinkID])
            {
                SetVehicleParamsEx(vehicle,0,lights,alarm,doors,bonnet,boot,objective);
            } else {
                SendClientMessage(playerid, WHITE, "You don't have the keys to this vehicle.");
            }
        }
        return 1;
}



Re: Engine command not working - jameskmonger - 04.01.2011

Nope, that doesn't work.


Re: Engine command not working - jameskmonger - 05.01.2011

Bump.