У вас скорее всего этот код в OnPlayerUpdate, и здесь вызывается функция Kicked в которой запускается таймер, пока таймер не сработал - OnPlayerUpdate вызвался ещё несколько раз. Предложу свой вариант:
В OnPlayerUpdate ( либо односекундный таймер ):
PHP код:
new
Float: p_vel_x,
Float: p_vel_y,
Float: p_vel_z;
GetPlayerVelocity(playerid, p_vel_x, p_vel_y, p_vel_z);
if(floatsqroot(p_vel_x * p_vel_x + p_vel_y * p_vel_y + p_vel_z * p_vel_z) * 213.3 > 40.0 && GetPlayerWeapon(playerid) != 46)
{
switch(GetPlayerAnimationIndex(playerid))
{
case 958, 959, 1538, 1539, 1543:
{
static const
fmt_str[] = "%s (%i) кикнут за использование s0beit.";
new
str[sizeof(fmt_str) - 2 + MAX_PLAYER_NAME - 2 + 3];
GetPlayerName(playerid, str, sizeof(str));
format(str, sizeof(str), fmt_str, str, playerid);
SCMA(0xFF8000FF, str);
SendClientMessage(playerid, -1, "Вы были кикнуты.");
SetTimerEx("@__KickTimer", 500, 0, "i", playerid);
}
}
}
И куда нибудь ко всем функциям, таймерам:
PHP код:
@__KickTimer(const playerid);
@__KickTimer(const playerid)
Kick(playerid);
А насчёт переменных посоветую прочитать это: Тык.