public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
static iPrevButtons[MAXPLAYERS+1];
decl button;
for (new i = 0; i < MAX_BUTTONS; i++)
{
button = (1 << i);
if (buttons & button)
{
if (!(iPrevButtons[client] & button))
{
if (OnButtonPress(client, button) != Plugin_Continue)
{
buttons &= ~button;
}
}
}
else if (iPrevButtons[client] & button)
{
OnButtonRelease(client, button);
}
}
iPrevButtons[client] = buttons;
return Plugin_Continue;
}
Action:OnButtonPress(client, button)
{
}
OnButtonRelease(client, button)
{
}