/engine not functioning properly
#1

pawn Код:
if(strcmp(cmd, "/engine", true) == 0)
    {
        if(Logged[playerid] == 1)
        {
            if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                new carid = GetPlayerVehicleID(playerid);
                if(Engine[carid] != 1 && PriveCar[playerid] == 0)
                {
                    TogglePlayerControllable(playerid, 1);
                    Engine[carid] = 1;
                    speedmetertimer[playerid] = SetTimerEx("SpeedMeter", 150, true, "i", playerid);
                    speedmeteron[playerid] = 1;
                    format(string, sizeof(string), "~w~Engine ~g~started");
                    DisplayTextForPlayer(playerid,string, 3000, 2, 2);
                    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "%s takes out a key, sliding it in to the ignition, starting the engine of a %s.", sendername, CarName[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
                    ProxDetector(8.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
                    return 1;
                }
                else if(Engine[carid] == 1 && PriveCar[playerid] == 0)
                {
                    Engine[carid] = 0;
                    KillTimer(speedmetertimer[playerid]);
                    speedmeteron[playerid] = 0;
                    HideSpeedMeter(playerid);
                    format(string, sizeof(string), "~w~Engine ~r~stopped");
                    DisplayTextForPlayer(playerid,string, 3000, 2, 2);
                    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "%s slides out the key, stopping the engine of the %s.", sendername, CarName[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
                    ProxDetector(8.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
                    return 1;
                }
            }
        }
    }
When I try turning off the engine it doesn't work, you are still able to drive it.

What did I do wrong?
Reply
#2

You have to set the engine params to off, and then use SetVehicleParams to turn it off..
https://sampwiki.blast.hk/wiki/SetVehicleParamsEx
Reply
#3

** Delete **
Reply
#4

Okay so I did this:

pawn Код:
if(strcmp(cmd, "/engine", true) == 0)
    {
        if(Logged[playerid] == 1)
        {
            if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
            {
                if(vehicleid == 509 || vehicleid == 481 || vehicleid == 510)
                {
                    SendClientMessage(playerid, COLOR_WHITE2, "You cannot do this on a Bicycle!");
                    return 1;
                }
                new carid = GetPlayerVehicleID(playerid);
                if(Engine[carid] != 1 && PriveCar[playerid] == 0)
                {
                    Engine[playerid] = 1;
                    new engine,lights,alarm,doors,bonnet,boot,objective;
                    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(vehicleid,1,lights,alarm,doors,bonnet,boot,objective);
                    speedmetertimer[playerid] = SetTimerEx("SpeedMeter", 150, true, "i", playerid);
                    speedmeteron[playerid] = 1;
                    format(string, sizeof(string), "~w~Engine ~g~started");
                    DisplayTextForPlayer(playerid,string, 3000, 2, 2);
                    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "%s takes out a key, sliding it in to the ignition, starting the engine of a %s.", sendername, CarName[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
                    ProxDetector(8.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
                    return 1;
                }
                else if(Engine[carid] == 1 && PriveCar[playerid] == 0)
                {
                    TogglePlayerControllable(playerid, 0);
                    Engine[carid] = 0;
                    new engine,lights,alarm,doors,bonnet,boot,objective;
                    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
                    SetVehicleParamsEx(vehicleid,0,lights,alarm,doors,bonnet,boot,objective);
                    TogglePlayerControllable(playerid, 0);
                    KillTimer(speedmetertimer[playerid]);
                    speedmeteron[playerid] = 0;
                    HideSpeedMeter(playerid);
                    format(string, sizeof(string), "~w~Engine ~r~stopped");
                    DisplayTextForPlayer(playerid,string, 3000, 2, 2);
                    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "%s slides out the key, stopping the engine of the %s.", sendername, CarName[GetVehicleModel(GetPlayerVehicleID(playerid))-400]);
                    ProxDetector(8.0, playerid, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
                    return 1;
                }
            }
        }
    }
I compiled and got these warnings:
Код:
C:\Documents and Settings\Administrator\Desktop\New Folder\gamemodes\Limitless.pwn(5098) : warning 219: local variable "lights" shadows a variable at a preceding level
C:\Documents and Settings\Administrator\Desktop\New Folder\gamemodes\Limitless.pwn(5098) : warning 219: local variable "doors" shadows a variable at a preceding level
C:\Documents and Settings\Administrator\Desktop\New Folder\gamemodes\Limitless.pwn(5116) : warning 219: local variable "lights" shadows a variable at a preceding level
C:\Documents and Settings\Administrator\Desktop\New Folder\gamemodes\Limitless.pwn(5116) : warning 219: local variable "doors" shadows a variable at a preceding level
Reply
#5

it means, that somewhere inside your script, most likely outside of any callback, those variables are already defined.
this means, new lights; is already somewhere.
what is suggest, is delete lights and doors from your new thing.
so it will be: new engine,alarm,bonnet,boot,objective;
Reply
#6

You may have a global
Код:
new engine,lights,alarm,doors,bonnet,boot,objective;
Search for it and then remove it.
Reply
#7

I actually did have
pawn Код:
new lights;
new doors;
So I renamed them instead and the warnings went away. Thanks guys.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)