Replace the whole function goto_cp with this.
Code:
public goto_cp(id,cp) {
new semiclip = get_pcvar_num(kz_semiclip)
if(semiclip == -1 || (!noblock[id-1] && semiclip == 0)) {
new Float:origin[3]
for(new i=1;i<=get_maxplayers();i++) {
if(id != i && is_user_connected(i) && is_user_alive(id)) {
if(semiclip == -1 || (!noblock[i-1] && semiclip == 0)) {
entity_get_vector(i,EV_VEC_origin,origin)
if(get_distance_f(checkpoints[id-1][cp],origin) <= CP_DISTANCE) {
client_print(id,print_chat,"[ProKreedz] Somebody is too close to your checkpoint")
return false
}
}
}
}
}
if ( entity_get_int(id, EV_INT_flags) & FL_DUCKING )
delay_teleport(id)
else {
client_cmd(id, "+duck")
set_task(1.0, "delay_teleport", id)
set_task(1.2, "stop_duck", id)
}
return true
}
public delay_teleport(id) {
entity_set_origin(id,checkpoints[id-1][cp])
entity_set_vector(id,EV_VEC_velocity,Float:{0.0,0.0,0.0})
spawnsprite(checkpoints[id-1][cp])
set_user_gravity(id) // to fix the low gravity bug on kz_man_redrock (thanks to NoEx)
noblock_task()
}
public stop_duck(id)
client_cmd(id, "-duck")