Klakier, ten kod nie zadziała. Gdy wciśniesz CTRL, następnie Spację, to funkcja wywoła się 2x. W pierwszym wywołaniu buttons przyjmie wartość IN_DUCK, w drugim już będzie IN_JUMP|IN_DUCK. Jednak oldbuttons przyjmie IN_DUCK, co spowoduje brak wejścia do IFa. Prawidłowy kod:
public fwd_CmdStart(id, uc_handle, seed)
{
if(!is_user_alive(id) || !ma_perk[id])
{
return FMRES_IGNORED;
}
new buttons = get_uc(uc_handle,UC_Buttons)
new oldbuttons = get_user_oldbutton(id);
if((buttons & (IN_JUMP | IN_DUCK))==(IN_JUMP | IN_DUCK) && (oldbuttons & (IN_JUMP | IN_DUCK))!=(IN_JUMP | IN_DUCK))
{
Funkcja1(id)
}
return FMRES_IGNORED;
}
Można to również rozwiązać dając || zamiast ostatniego &&, jednak ten sposób jest bardziej elegancki
Użytkownik GwynBleidD edytował ten post 13.06.2013 14:56
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.