| elchrissr |
09-27-2011 19:16 |
Sometimes server crash after killing. [solved]
what is wrong?
PHP Code:
public fw_PlayerKilled(victim, attacker, shouldgib)
{
// Last Zombie Check
set_task(0.1, "fnCheckLastZombie")
// Enable dead players nightvision
set_task(0.2, "spec_nvision", victim)
remove_task(victim+TASK_BLOOD)
// Get nightvision give setting
static nvggive
nvggive = get_pcvar_num(cvar_nvggive)
// Disable nightvision when killed (bugfix)
if (nvggive == 0 && g_nvision[victim])
{
if (g_nvisionenabled[victim] && !get_pcvar_num(cvar_cnvg)) set_user_gnvision(victim, 0)
g_nvision[victim] = false
g_nvisionenabled[victim] = false
}
// Turn off nightvision when killed (bugfix)
if (nvggive == 2 && g_nvision[victim] && g_nvisionenabled[victim])
{
if (!get_pcvar_num(cvar_cnvg)) set_user_gnvision(victim, 0)
g_nvisionenabled[victim] = false
}
// Nemesis explodes!
if (g_nemesis[victim])
SetHamParamInteger(3, 2)
if (get_user_frags(attacker) > 100)
set_pev(attacker, pev_frags, 0)
if (get_user_deaths(victim) > 100)
fm_set_user_deaths(victim, 0)
// Get deathmatch mode status and whether the player killed himself
static deathmatch, selfkill
deathmatch = get_pcvar_num(cvar_deathmatch)
selfkill = (victim == attacker || !is_user_connected(attacker)) ? true : false
// Respawn if deathmatch is enabled
if (deathmatch)
{
// Respawn on suicide?
if (selfkill && !get_pcvar_num(cvar_respawnonsuicide))
return;
// Respawn if only the last human is left?
if (!get_pcvar_num(cvar_respawnafterlast) && fnGetHumans() == 1)
return;
// Respawn as zombie?
if (deathmatch == 2 || (deathmatch == 3 && random_num(0, 1)) || (deathmatch == 4 && fnGetZombies() < fnGetAlive()/2))
g_respawn_as_zombie[victim] = true
// Set the respawn task
set_task(5.0, "respawn_player", victim+TASK_SPAWN)
}
// Killed by a non-player entity or self killed
if (selfkill) return;
if (g_nemesis[victim])
{
if (ganancia > 0) g_puntos[attacker][0] += 1 * g_admin[attacker]
client_print(attacker, print_center, "Ganaste %d punto%s humano%s", 1 * g_admin[attacker], (g_admin[attacker] > 1) ? "s" : "", (g_admin[attacker] > 1) ? "s" : "")
registro_sound(attacker, BOTON_GOOD)
}
else if (g_survivor[victim])
{
if (ganancia > 0) g_puntos[attacker][1] += 1 * g_admin[attacker]
client_print(attacker, print_center, "Ganaste %d punto%s zombie%s", 1 * g_admin[attacker], (g_admin[attacker] > 1) ? "s" : "", (g_admin[attacker] > 1) ? "s" : "")
registro_sound(attacker, BOTON_GOOD)
}
else if (g_ninja[victim])
{
if (ganancia > 0) g_puntos[attacker][1] += 2 * g_admin[attacker]
client_print(attacker, print_center, "Ganaste %d punto%s zombie%s", 2 * g_admin[attacker], (g_admin[attacker] > 1) ? "s" : "", (g_admin[attacker] > 1) ? "s" : "")
registro_sound(attacker, BOTON_GOOD)
}
else if (g_zombie[victim] && g_ninjaround && g_ninja[attacker])
{
check_player_level(attacker, 150, 0, 1)
client_print(attacker, print_center, "+150 POR ZOMBIE MATADO")
}
// Zombie/nemesis killed human, reward ammo packs
if (g_zombie[attacker] && (!g_nemesis[attacker] || !get_pcvar_num(cvar_nemignoreammo)))
check_player_level(attacker, 150, 0, 1)
// Human killed zombie, add up the extra frags for kill
UpdateFrags(attacker, victim, 1, 0, 0)
}
|