Небольшое руководство как сделать Анти-БанниХоп, не используя таймеры.
Знаю, не раз уже обсуждалось и были готовые варианты, но я хочу поделиться своим.
Видео:
Необходимо объявить всего 2 массива:
Code
new jumps[MAX_PLAYERS];
new jumpsTime[MAX_PLAYERS];
После этого в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) обрабатываем нажатие клавиши прыжка:
Code
if((newkeys == 32 || newkeys == 40) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
if(jumps[playerid])
{
if((gettime() - jumpsTime[playerid]) <= 3) ApplyAnimation(playerid,"FIGHT_E","Hit_fightkick_B",4.1,0,1,1,1,3000,1);
else
{
jumps[playerid] = 0;
TogglePlayerControllable(playerid,1);
}
}
else
{
jumps[playerid]++;
jumpsTime[playerid] = gettime();
}
}
Это собственно все