Holding key function? - 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)
+--- Thread: Holding key function? (
/showthread.php?tid=371309)
Holding key function? -
RelaxCafe - 23.08.2012
Is there any function released or a something releated to holding down a key? Well, would it be like a timer? if(newkeys == 128 ) blahh ... and again and again? Well, that would make it tapping..
Re: Holding key function? -
RedJohn - 23.08.2012
pawn Код:
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_FIRE))
{
if(IsPlayerInAnyVehicle(playerid))
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010); //Add nitro on click pressed
}
}
if(RELEASED(KEY_FIRE))
{
if(IsPlayerInAnyVehicle(playerid))
{
RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010); //Remove nitro on click release
}
}
return 1;
}
Re: Holding key function? -
clarencecuzz - 23.08.2012
Or you could use:
pawn Код:
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(PRESSED(KEY_FIRE))
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
else
{
RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
}
return 1;
}
Changed
to your desired key.
Check
https://sampwiki.blast.hk/wiki/GetPlayerKeys for available Player Keys.
Re: Holding key function? -
RedJohn - 23.08.2012
But result is same.
Re: Holding key function? -
clarencecuzz - 23.08.2012
Exactly, but the code I posted is quicker and more efficient.
Re: Holding key function? -
RedJohn - 23.08.2012
I think you missed one bracket:
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(PRESSED(KEY_FIRE))
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
else
{
RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
}
return 1;
}
into
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
if(PRESSED(KEY_FIRE))
{
AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
}
else
{
RemoveVehicleComponent(GetPlayerVehicleID(playerid), 1010);
} //This is missing
}
}
return 1;
}
Re: Holding key function? -
clarencecuzz - 23.08.2012
meh. It happens when you're typing it out on an iPhone :S
Re: Holding key function? -
RedJohn - 23.08.2012
xD. Just saying cuz some newbies could copy/paste and it will be "huge" problem when they see errors.
Re: Holding key function? -
Larry123 - 25.10.2012
But is there any function to check how long i hold button down? Like i want to do a system, which activate car ENGINE after i have holded KEY_FIRE down for 5 seconds. Is it possible?