Witam,
do BF2 dodałem, że na nożu ma się ciche kroki. Działa to, jednak jeśli gracz zacznie spamować "q" to zmiany broni, to nie będzie słychać kroków.
Jak napisać, aby to miało ręce i nogi?
Tak wygląda event:
public Event_CurWeapon(id)
{
if ( !is_user_alive(id) || !get_pcvar_num(gPcvarBF2Active) )
return;
if ( !get_pcvar_num(gPcvarBadgePowers) )
return;
new weapon_id = read_data(2);
if ( g_lastwpn[id] != weapon_id )
{
set_speed(id);
}
g_lastwpn[id] = weapon_id;
}
public set_speed(id)
{
if ( !get_pcvar_num(gPcvarBadgesActive) || !get_pcvar_num(gPcvarBadgePowers) ) return;
if ( !is_user_alive(id) || freezetime ) return;
new Float:speed;
if ( g_imobile[id] )
{
speed = 100.0;
}
else
{
if ( fm_get_user_vip(id) )
{
//VIPs only have 1 speed no matter the weapon
speed = 227.0;
}
else
{
new weapon = get_user_weapon(id);
speed = gCSWeaponSpeed[weapon];
if ( gCurrentFOV[id] <= 45 )
{
switch(weapon)
{
case CSW_SCOUT: speed = 220.0;
case CSW_SG550, CSW_AWP, CSW_G3SG1: speed = 150.0;
}
}
}
new smglevel = g_PlayerBadges[id][BADGE_SMG];
if ( smglevel )
{
speed += (smglevel * 15.0);
}
new knifelevel = g_PlayerBadges[id][BADGE_KNIFE];
if ( knifelevel == 1 && get_user_weapon(id) == CSW_KNIFE)
{
speed -= 150;
set_user_footsteps(id, 1);
}
else if ( knifelevel == 2 && get_user_weapon(id) == CSW_KNIFE)
{
speed -= 100;
set_user_footsteps(id, 1);
}
else if ( knifelevel == 3 && get_user_weapon(id) == CSW_KNIFE)
{
speed -= 50;
set_user_footsteps(id, 1);
}
else
{
set_user_footsteps(id, 0);
}
}
if ( speed != fm_get_user_maxspeed(id) )
{
fm_set_user_maxspeed(id, speed);
}
}