PRESSED and HOLDING the same key? -
Conroy - 10.05.2011
Hi, I have being trying to get round his for sometime now, if anyone can help me it will be appreciated.
pawn Код:
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define HOLDING(%0) ((newkeys & (%0)) == (%0))
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(HOLDING(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Holding...");
}
else if(PRESSED(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Pressed...");
}
}
When I press LMB, I always get "Holding..." no matter what I do. Anyone know how to make it so if I just tap LMB, it acts as PRESSED, and holding it down acts as HOLDING?
Re: PRESSED and HOLDING the same key? -
Skaizo - 10.05.2011
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(HOLDING(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Holding...");
}
else if (HOLDING(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Pressed...");
}
}
try this
Re: PRESSED and HOLDING the same key? -
Conroy - 10.05.2011
Same result, it only responds to the first if statement.
Re: PRESSED and HOLDING the same key? -
Skaizo - 10.05.2011
https://sampwiki.blast.hk/wiki/OnPlayerKeyStateChange
Re: PRESSED and HOLDING the same key? -
Conroy - 10.05.2011
Already checked the wiki, it doesn't help me for this situation...
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(HOLDING(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Holding...");
}
}
Even HOLDING on its own doesn't work. Even if I tap LMB it says I'm holding.
Re: PRESSED and HOLDING the same key? -
Skaizo - 10.05.2011
then
isn't
all
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (HOLDING(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Holding...");
}
else if (PRESSED(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Pressed...");
}
}
Re: PRESSED and HOLDING the same key? -
Conroy - 10.05.2011
*sigh*
Could I get a reply from someone who knows what they're talking about? Thanks
Re: PRESSED and HOLDING the same key? -
Biesmen - 10.05.2011
What about
:
pawn Код:
#define RELEASED(%0) \
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "You pressed it, hold it.");
}
else if(RELEASED(KEY_FIRE))
{
SendClientMessage(playerid, COLOR_WHITE, "Hey, you released it!");
}
return 1;
}
Re: PRESSED and HOLDING the same key? -
Conroy - 10.05.2011
That works. I guess I'll have use the interval between pressing and releasing to know if the player was holding or not. Thanks.
Re: PRESSED and HOLDING the same key? -
Biesmen - 10.05.2011
Exactly. That's the same way how I did it for my script.