Покажу как я у себя сделал, т.к. у вас тоже зомби сервер.
В конфиге мода zp есть квар, по которому который уже устанавливается макс скорость
Давайте создадим такой натив в главном плагине мода:
Откройте исходник главного плагина zp и найдите функцию:
- Код: Выделить всё
public plugin_natives()
Добавьте в конце функции:
- Код: Выделить всё
register_native("zp_reset_user_speed", "native_reset_user_speed", 1);
Где-нибудь в конце исходника добавьте:
- Код: Выделить всё
public native_reset_user_speed(id)
{
ExecuteHamB(Ham_Player_ResetMaxSpeed, id);
}
Откройте файл:
- Код: Выделить всё
zombieplague.inc
И добавьте:
- Код: Выделить всё
native zp_reset_user_speed(id)
Далее в плагине ваших ножей сделайте следующее, там где у вас объявлены булевые переменные объявите еще одну:
- Код: Выделить всё
new bool:g_ResetSpeed[33]
Т.к. скорость устанавливается непосредственно в функции форварда PreThink, эта переменная нужна нам для того чтобы скорость не увеличивалась бесконечное количество раз.
Найдите функцию:
- Код: Выделить всё
public fw_PlayerPreThink(id)
{
if(!is_user_alive(id) || zp_get_user_zombie(id))
return FMRES_IGNORED
new temp[2], weapon = get_user_weapon(id, temp[0], temp[1])
if(weapon == CSW_KNIFE)) {
if(g_has_axe[id])
{
if(g_ResetSpeed[id])
{
new Float:flMaxSpeed;
pev(id, pev_maxspeed, flMaxSpeed); set_pev(id, pev_maxspeed, flMaxSpeed + get_pcvar_float(cvar_speed_axe))
g_ResetSpeed[id] = false;
}
if((pev(id, pev_button) & IN_JUMP) && !(pev(id, pev_oldbuttons) & IN_JUMP))
{
new flags = pev(id, pev_flags)
new waterlvl = pev(id, pev_waterlevel)
if(!(flags & FL_ONGROUND))
return FMRES_IGNORED;
if(flags & FL_WATERJUMP)
return FMRES_IGNORED;
if(waterlvl > 1)
return FMRES_IGNORED;
new Float:fVelocity[3]
pev(id, pev_velocity, fVelocity)
fVelocity[2] += get_pcvar_num(cvar_jump_axe)
set_pev(id, pev_velocity, fVelocity)
set_pev(id, pev_gaitsequence, 6)
}
}
}
else {
if(!g_ResetSpeed[id])
{
zp_reset_user_speed(id); g_ResetSpeed[id] = true;
}
}
}
То же самое и с остальными ножами.
Кварам в плагине ножей, которые устанавливаю скорость игроку, теперь стоит устанавливать меньшее значение, т.к. скорость теперь будет приплюсовываться к имеющейся.
Табуляция нарушена буквально по всем строкам, используйте Notepad++