SA-MP Forums Archive
help with vehicle params - 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: help with vehicle params (/showthread.php?tid=209316)



help with vehicle params - THE_KNOWN - 10.01.2011

hello guys. im trying to make vehicle commands with zcmd. i want them to work like when you enter engine it turns it on and when you do it again it turns off. but somethings wrong with my code. there are no errors or warnings. please tell me whats wrong.

Код:
COMMAND:engine(playerid,params[])
	{
	    if(IsPlayerConnected(playerid))
     {
           new vid = GetPlayerVehicleID(playerid);
		   if (engine == 1) // check if engine ON
	       {
			  if(vid != INVALID_VEHICLE_ID)
	          {
                  GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                  SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
				  
			  }
	       }
	       else if (engine == 0) // check if engine off
	       {
			  if(vid != INVALID_VEHICLE_ID)
			  {
                 GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
                 
			  }
	       }
		}
		return 1;
	}

COMMAND:lights(playerid,params[])
	{
	    if(IsPlayerConnected(playerid))
     {
           new vid = GetPlayerVehicleID(playerid);
		   if (lights == 1)
	       {
			  if(vid != INVALID_VEHICLE_ID)
	          {
                  GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                  SetVehicleParamsEx(vid,engine,0,alarm,doors,bonnet,boot,objective);
				  
			  }
	       }
	       else if (lights == 0)
	       {
			  if(vid != INVALID_VEHICLE_ID)
			  {
                 GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vid,engine,1,alarm,doors,bonnet,boot,objective);

			  }
	       }
		}
		return 1;
	}


COMMAND:alarm(playerid,params[])
	{
	    if(IsPlayerConnected(playerid))
     {
           new vid = GetPlayerVehicleID(playerid);
		   if (alarm == 1) // check if engine ON
	       {
			  if(vid != INVALID_VEHICLE_ID)
	          {
                  GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                  SetVehicleParamsEx(vid,engine,lights,VEHICLE_PARAMS_OFF,doors,bonnet,boot,objective);
				  alarm = 0;
			  }
	       }
	       else if (alarm == 0) // check if engine off
	       {
			  if(vid != INVALID_VEHICLE_ID)
			  {
                 GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vid,engine,lights,VEHICLE_PARAMS_ON,doors,bonnet,boot,objective);
                 alarm = 1;
			  }
	       }
		}
		return 1;
	}


COMMAND:hood(playerid,params[])
	{
	    if(IsPlayerConnected(playerid))
     {
           new vid = GetPlayerVehicleID(playerid);
		   if (bonnet == 1) // check if engine ON
	       {
			  if(vid != INVALID_VEHICLE_ID)
	          {
                  GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                  SetVehicleParamsEx(vid,engine,lights,alarm,doors,VEHICLE_PARAMS_OFF,boot,objective);
				  bonnet = 0;
			  }
	       }
	       else if (bonnet == 0) // check if engine off
	       {
			  if(vid != INVALID_VEHICLE_ID)
			  {
                 GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vid,engine,lights,alarm,doors,VEHICLE_PARAMS_ON,boot,objective);
                 bonnet = 1;
			  }
	       }
		}
		return 1;
	}

COMMAND:boot(playerid,params[])
	{
	    if(IsPlayerConnected(playerid))
     {
           new vid = GetPlayerVehicleID(playerid);
		   if (boot == 1) // check if engine ON
	       {
			  if(vid != INVALID_VEHICLE_ID)
	          {
                  GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                  SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,VEHICLE_PARAMS_OFF,objective);
				  boot = 0;
			  }
	       }
	       else if (boot == 0) // check if engine off
	       {
			  if(vid != INVALID_VEHICLE_ID)
			  {
                 GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,VEHICLE_PARAMS_ON,objective);
                 boot = 1;
			  }
	       }
		}
		return 1;
	}

COMMAND:highlight(playerid,params[])
	{
	    if(IsPlayerConnected(playerid))
     {
           new vid = GetPlayerVehicleID(playerid);
		   if (objective == 1) // check if engine ON
	       {
			  if(vid != INVALID_VEHICLE_ID)
	          {
                  GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                  SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,VEHICLE_PARAMS_OFF);
				  objective = 0;
			  }
	       }
	       else if (objective == 0) // check if engine off
	       {
			  if(vid != INVALID_VEHICLE_ID)
			  {
                 GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
                 SetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,VEHICLE_PARAMS_ON);
                 objective = 1;
			  }
	       }
		}
		return 1;
	}



Re: help with vehicle params - wilko1995 - 10.01.2011

What i'm wondering is why you are checking to see if it's an invalid vehicle id... It can't be invalid if the player is in it, if it was invalid the getplayervehicleid wouldn't work because there is no vehicle.

As for your question I would suggest only using GetVehicleParamsEx only once outside of ur engine checks. When you set the engine to on it will change the params outside your engine check to 1 then you can use ur engine check to turn it off.

If u don't understand tell me and I'll post the code for you.


Re: help with vehicle params - _rAped - 10.01.2011

if (engine != 1) and else. 1 is on, 0 and -1 is off. Remember to define ManualVehicleEngineLights();


Re: help with vehicle params - THE_KNOWN - 10.01.2011

ok thanks gonna check now


Re: help with vehicle params - _rAped - 10.01.2011

Well what I mean.
pawn Код:
COMMAND:engine(playerid, params[])
{
    if(!IsPlayerConnected(playerid)) return false;
    new vid, engine, lights, alarm, doors, bonnet, objective);
    vid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(engine != 1)
    {    
        // Turning on the engine
        SetVehicleParamsEx(vid,1,lights,alarm,doors,bonnet,boot,objective);
    }
    else
    {
        // Shutting down the engine
        SetVehicleParamsEx(vid,0,lights,alarm,doors,bonnet,boot,objective);
    }
    return true;
}



Re: help with vehicle params - THE_KNOWN - 10.01.2011

ok all te cmds work now but one problem. i have to enter a command twice before it does its job. for eg:
when i enter /lights the lights turn on but when type it once again it doesnt do anything but when i do it once again it turns the lights off. (its not only with lights.)


Re: help with vehicle params - _rAped - 10.01.2011

Regarding the lights they behave differently depending on the world time. As I stated earlier (Params: 1 = On, 0 = Off, -1 = Default).


Re: help with vehicle params - THE_KNOWN - 10.01.2011

but its not only with lights =(


Re: help with vehicle params - _rAped - 10.01.2011

But the engine works like it should?


Re: help with vehicle params - THE_KNOWN - 10.01.2011

everything works but only thing is i have to enter the cmd twice to get them work