Poniżej wklejam kod
niestety mam dość dziwny problem otóż "// Last human or infection not allowed"
wszystko jest "fajnie" lecz gdy rzucam bombe na kilku żywych graczy nie mam po prawej stronie że są zarażeni podobnie również nie dostaje AP co dziwne za 1 gracza liczy mi nawet 8-9 killii
niestety nie wiem jak to "ugryźć"
// Infection Bomb Explosion
infection_explode(ent)
{
// Round ended (bugfix)
if (g_endround) return;
// Get origin
static Float:originF[3]
pev(ent, pev_origin, originF)
// Make the explosion
create_blast(originF)
// Infection nade explode sound
static sound[64]
ArrayGetString(grenade_infect, random_num(0, ArraySize(grenade_infect) - 1), sound, charsmax(sound))
emit_sound(ent, CHAN_WEAPON, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
// Get attacker
static attacker
attacker = pev(ent, pev_owner)
// Infection bomb owner disconnected? (bugfix)
if (!is_user_valid_connected(attacker))
{
// Get rid of the grenade
engfunc(EngFunc_RemoveEntity, ent)
return;
}
// Collisions
static victim
victim = -1
while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, NADE_EXPLOSION_RADIUS)) != 0)
{
// Only effect alive non-spawnprotected humans
if (!is_user_valid_alive(victim) || g_zombie[victim] || g_nodamage[victim])
continue;
// Last human is killed
//if (fnGetHumans() == 1)
//{
//ExecuteHamB(Ham_Killed, victim, attacker, 0)
//continue;
//}
// Last human or infection not allowed
if (fnGetHumans() == 1)
return; // human is killed
// Infected victim's sound
ArrayGetString(grenade_infect_player, random_num(0, ArraySize(grenade_infect_player) - 1), sound, charsmax(sound))
emit_sound(victim, CHAN_VOICE, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
static id
for (id = 1; id <= g_maxplayers; id++)
// Turn into zombie
zombieme(victim, attacker, 0, 1, 1)
}
// Get rid of the grenade
engfunc(EngFunc_RemoveEntity, ent)
}


Dodatki SourceMod












