Help with this engine script
#1

Hi guys! So I have this piece of script here, what would start the engine if the right conditions are met. It does not tho however, and I can't find out why. Could you please take a look at it?

Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    new string[256];
	new sendername[MAX_PLAYER_NAME];
	new pveh = GetVehicleModel(GetPlayerVehicleID(playerid));
	new newcar = GetPlayerVehicleID(playerid);
	if(IsPlayerConnected(playerid))
	{
		if(newkeys & 16 && IsPlayerInRangeOfPoint(playerid, 0.8, -252.7863,2599.9343,62.8582) || IsPlayerInRangeOfPoint(playerid, 0.8, -1455.0450,2592.4307,55.8359) || IsPlayerInRangeOfPoint(playerid, 0.8, -1455.1647,2592.4180,55.8359) || IsPlayerInRangeOfPoint(playerid, 0.8, -36.0677,-57.1322,1003.5469) || IsPlayerInRangeOfPoint(playerid, 0.8, -33.8136,-186.0253,1003.5469))
		{
			PlayerInfo[playerid][eseg] += 30;
		}
		else if(newkeys & 16 && IsPlayerInRangeOfPoint(playerid, 0.8, -19.1941,-57.0468,1003.5469) || IsPlayerInRangeOfPoint(playerid, 0.8, -32.3282,-185.9035,1003.5469) || IsPlayerInRangeOfPoint(playerid, 0.8, -1477.0952,2613.0801,58.7813) || IsPlayerInRangeOfPoint(playerid, 0.8, -252.9242,2597.9163,62.8582))
		{
			PlayerInfo[playerid][Szomjas] += 30;
		}
	}
	if( newkeys == KEY_SECONDARY_ATTACK && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
         TogglePlayerControllable(playerid,1);
         RemovePlayerFromVehicle(playerid);
    }
    if(newkeys == KEY_JUMP)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
			if(IsPlayerConnected(playerid))
			{
				if(!engineOn[GetPlayerVehicleID(playerid)])
				{
					if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
					{
						return 1;
					}
					if(IsAnOwnableCar(newcar))
					{
					    if(PlayerInfo[playerid][pPcarkey] == newcar) { }
						else if(PlayerInfo[playerid][pPcarkey2] == newcar) { }
						else if(PlayerInfo[playerid][pPcarkey3] == newcar) { }
						else { return 1; }
					}
					if(pveh == 510 || pveh == 462 || pveh == 481 || pveh == 509)
					{
						return 1;
					}
					if(newcar == 59 || newcar == 60)
					{
						return 1;
					}
					if(kerekbilincs[GetPlayerVehicleID(playerid)] != 0)
				 	{
				 	    SendClientMessage(playerid, COLOR_LIGHTRED, "Kerйkbilincs van az autуn hogy akarod elvinni?");
				 	    RemovePlayerFromVehicle(playerid);
				 	    TogglePlayerControllable(playerid, 1);
				 		return 1;
				 	}
					if(IsAHarvest(newcar))
					{
					    return 1;
					}
					if(Halaszhajo(newcar))
					{
					    return 1;
					}
					if(IsAPlane(newcar))
					{
						return 1;
					}
					if(IsASweeper(newcar))
					{
						return 1;
					}
					if(gEngine[playerid] == 1) { return 1; }
					PutPlayerInVehicle(playerid, newcar, 0);
					GetPlayerName(playerid, sendername, sizeof(sendername));
					format(string, sizeof(string), "* %s Beindнtja a jбrmű motorjбt.", sendername);
					ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					SetPlayerChatBubble(playerid, "Beindнtja a motort.", COLOR_PURPLE, 80.0, 10000);
					SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
					GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~Beindul a jбrmű motorja...",3500,3);
					gEngine[playerid] = 1;
					return 1;
				}
			}
		}
    }
    else if(newkeys == KEY_SECONDARY_ATTACK)
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            if(gEngine[playerid] == 0 && engineOn[newcar] == 0)
            {
				RemovePlayerFromVehicle(playerid);
				TogglePlayerControllable(playerid, 1);
				return 1;
            }
            else if(NoFuel[playerid] == 1)
			{
			    TogglePlayerControllable(playerid, 1);
				RemovePlayerFromVehicle(playerid);
				NoFuel[playerid] = 0;
				return 1;
			}
        }
    }
    else if ((newkeys & CCKey) && !(oldkeys & CCKey) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
	    new vid = GetPlayerVehicleID(playerid);
		if (GetVehicleSpeed(vid) == 0) return false;
		new Float:x, Float:y, Float:z;
		GetVehicleVelocity(vid, x, y, z);
		GetVehicleZAngle(vid, PlayerHeadingAngle[playerid]);
		DistanceFlat(0, 0, x, y, PlayerCruiseSpeed[playerid]);
	    SetTimerEx("CruiseControl", 500, false, "d", playerid);
	}
	else if (PlayerCruiseSpeed[playerid] != 0.00 && (newkeys & KEY_HANDBRAKE))
	{
	    PlayerCruiseSpeed[playerid] = 0.00;
	}
    return 1;
}

public StartingTheVehicle(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            new RandomStart;
    		new string[256];
    		new sendername[MAX_PLAYER_NAME];
            RandomStart = random(4);
            switch(RandomStart)
            {
                case 0,1,2,3:
                {
                    engineOn[GetPlayerVehicleID(playerid)] = true;
                    TogglePlayerControllable(playerid, true);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s beindнtotta a jбrmű motorjбt.",sendername);
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    SetPlayerChatBubble(playerid, "beindнtotta a jбrművet.", COLOR_PURPLE, 80.0, 10000);
                    gEngine[playerid] = 0;
                }
            }
        }
		else
		{
		    gEngine[playerid] = 0;
		}
    }
    return 1;
}
Thanks in advance!
Wolf
Reply
#2

Highlight the part that you need help with.
Reply
#3

Well, this whole script is about starting the engine. So I don't know what to highlight. Maybe these?

Код:
					if(gEngine[playerid] == 1) { return 1; }
					PutPlayerInVehicle(playerid, newcar, 0);
					GetPlayerName(playerid, sendername, sizeof(sendername));
					format(string, sizeof(string), "* %s Beindнtja a jбrmű motorjбt.", sendername);
					ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					SetPlayerChatBubble(playerid, "Beindнtja a motort.", COLOR_PURPLE, 80.0, 10000);
					SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
					GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~Beindul a jбrmű motorja...",3500,3);
					gEngine[playerid] = 1;
					return 1;
Код:
public StartingTheVehicle(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            new RandomStart;
    		new string[256];
    		new sendername[MAX_PLAYER_NAME];
            RandomStart = random(4);
            switch(RandomStart)
            {
                case 0,1,2,3:
                {
                    engineOn[GetPlayerVehicleID(playerid)] = true;
                    TogglePlayerControllable(playerid, true);
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* %s beindнtotta a jбrmű motorjбt.",sendername);
                    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    SetPlayerChatBubble(playerid, "beindнtotta a jбrművet.", COLOR_PURPLE, 80.0, 10000);
                    gEngine[playerid] = 0;
                }
            }
        }
		else
		{
		    gEngine[playerid] = 0;
		}
    }
    return 1;
}
Reply
#4

Can you elaborate on what your problem is? What happens?
Reply
#5

So basically what happens is, you get into the vehicle the chat says, 'Press shift to start the engine', I press it, it says the engine started but it does not, even tho every condition is met, to start the engine.
Reply
#6

Well yeah, it isn't going to work because you don't actually turn the engine on.

You're only setting variables.

https://sampwiki.blast.hk/wiki/SetVehicleParamsEx

Example usage:
PHP код:
// If setting a single parameter, you should obtain the current parameters so they aren't ALL changed
new 
     
enginelightsalarmdoorsbonnetbootobjective;
GetVehicleParamsEx(vehicleidenginelightsalarmdoorsbonnetbootobjective);
SetVehicleParamsEx(vehicleidVEHICLE_PARAMS_ONlightsalarmdoorsbonnetbootobjective); 
// ONLY the engine param was changed to VEHICLE_PARAMS_ON (1) 
Reply
#7

How about this?

Код:
					if(gEngine[playerid] == 1) { return 1; }
					PutPlayerInVehicle(playerid, newcar, 0);
					GetPlayerName(playerid, sendername, sizeof(sendername));
					format(string, sizeof(string), "* %s Beindнtja a jбrmű motorjбt.", sendername);
					ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
					SetPlayerChatBubble(playerid, "Beindнtja a motort.", COLOR_PURPLE, 80.0, 10000);
					SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
					GameTextForPlayer(playerid, "~w~~n~~n~~n~~n~Beindul a jбrmű motorja...",3500,3);
    				GetVehicleParamsEx(GetPlayerVehicleID(playerid), engine, lights, alarm, doors, bonnet, boot, objective);
        			SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective);
					gEngine[playerid] = 1;
					return 1;
Reply
#8

Try it and see if it works.
Reply
#9

It does. It locks me tho, but I guess I'll use TogglePlayerControllable(playerid, 1);. Thank you really much for your help!
One more thing, how can I make this to shut down the engine when it runs?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)