major update so that boss rounds also can feature minion zombies that dont count towards winning the round

This commit is contained in:
jenz 2024-02-25 19:33:13 +01:00
parent 8c80d4ac05
commit 8455a1a231
5 changed files with 536 additions and 271 deletions

View File

@ -14,6 +14,7 @@
"jump_height" "1.02" "jump_height" "1.02"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"blades" "blades"
@ -30,6 +31,7 @@
"jump_height" "1.02" "jump_height" "1.02"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"clown" "clown"
@ -46,6 +48,7 @@
"jump_height" "1.02" "jump_height" "1.02"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"knight" "knight"
@ -62,5 +65,74 @@
"jump_height" "1.02" "jump_height" "1.02"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
}
"t_arctic"
{
"unique name" "public skin terrorist arctic"
"team" "Human"
"group" " "
"sm_flags" " "
"model path" "models/player/t_arctic.mdl"
"no_fall_damage" "NO"
"health" "100"
"speed" "1"
"knockback" "1.0"
"jump_height" "1.02"
"jump_distance" "1.0"
"damage_multiplier" "1.0"
"boss_class" "0"
}
"t_guerilla"
{
"unique name" "public skin terrorist guerilla"
"team" "Human"
"group" " "
"sm_flags" " "
"model path" "models/player/t_guerilla.mdl"
"no_fall_damage" "NO"
"health" "100"
"speed" "1"
"knockback" "1.0"
"jump_height" "1.02"
"jump_distance" "1.0"
"damage_multiplier" "1.0"
"boss_class" "0"
}
"t_leet"
{
"unique name" "public skin terrorist leet"
"team" "Human"
"group" " "
"sm_flags" " "
"model path" "models/player/t_leet.mdl"
"no_fall_damage" "NO"
"health" "100"
"speed" "1"
"knockback" "1.0"
"jump_height" "1.02"
"jump_distance" "1.0"
"damage_multiplier" "1.0"
"boss_class" "0"
}
"t_phoenix"
{
"unique name" "public skin terrorist pheonix"
"team" "Human"
"group" " "
"sm_flags" " "
"model path" "models/player/t_phoenix.mdl"
"no_fall_damage" "NO"
"health" "100"
"speed" "1"
"knockback" "1.0"
"jump_height" "1.02"
"jump_distance" "1.0"
"damage_multiplier" "1.0"
"boss_class" "0"
} }
} }

View File

@ -10,10 +10,11 @@
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "40" "health" "40"
"speed" "1" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.1" "jump_height" "1.1"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"zombie2" "zombie2"
{ {
@ -25,10 +26,11 @@
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "50" "health" "50"
"speed" "1" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.1" "jump_height" "1.1"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"zombie3" "zombie3"
{ {
@ -39,11 +41,12 @@
"model path" "models/player/zh/zh_corpse002.mdl" "model path" "models/player/zh/zh_corpse002.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "60" "health" "60"
"speed" "0.5" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.1" "jump_height" "1.1"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"biohazard" "biohazard"
{ {
@ -55,10 +58,11 @@
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "125" "health" "125"
"speed" "1" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"fatty" "fatty"
{ {
@ -68,12 +72,13 @@
"sm_flags" " " "sm_flags" " "
"model path" "models/player/elis/fty/fatty.mdl" "model path" "models/player/elis/fty/fatty.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "800" "health" "500"
"speed" "0.7" "speed" "0.8"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"verdugo" "verdugo"
{ {
@ -84,11 +89,12 @@
"model path" "models/player/elis/vd/verdugo.mdl" "model path" "models/player/elis/vd/verdugo.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "150" "health" "150"
"speed" "2" "speed" "1.6"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"spitter" "spitter"
{ {
@ -99,11 +105,12 @@
"model path" "models/player/kuristaja/l4d2/spitter/spitter.mdl" "model path" "models/player/kuristaja/l4d2/spitter/spitter.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "125" "health" "125"
"speed" "2" "speed" "1.4"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"pil_fast_v5" "pil_fast_v5"
{ {
@ -114,11 +121,12 @@
"model path" "models/player/pil/fast_v5/pil_fast_v5.mdl" "model path" "models/player/pil/fast_v5/pil_fast_v5.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "150" "health" "150"
"speed" "2.5" "speed" "1.4"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"tyrant_pil" "tyrant_pil"
{ {
@ -128,12 +136,13 @@
"sm_flags" " " "sm_flags" " "
"model path" "models/player/pil/re1/proto_tyrant/tyrant_pil.mdl" "model path" "models/player/pil/re1/proto_tyrant/tyrant_pil.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "700" "health" "500"
"speed" "1" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"nemesis_pil" "nemesis_pil"
{ {
@ -145,10 +154,11 @@
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "800" "health" "800"
"speed" "1" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"majini" "majini"
{ {
@ -159,11 +169,12 @@
"model path" "models/player/slow/amberlyn/re5/tentacle_crap_majini/slow.mdl" "model path" "models/player/slow/amberlyn/re5/tentacle_crap_majini/slow.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "70" "health" "70"
"speed" "3" "speed" "1.4"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"uroboro" "uroboro"
{ {
@ -174,11 +185,12 @@
"model path" "models/player/slow/amberlyn/re5/uroboro/slow_public.mdl" "model path" "models/player/slow/amberlyn/re5/uroboro/slow_public.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "75" "health" "75"
"speed" "3" "speed" "1.4"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"babycrab" "babycrab"
{ {
@ -189,11 +201,12 @@
"model path" "models/player/slow/babycrab_v2/slow_babycrab.mdl" "model path" "models/player/slow/babycrab_v2/slow_babycrab.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "50" "health" "50"
"speed" "3" "speed" "1.3"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"berserker" "berserker"
{ {
@ -203,12 +216,13 @@
"sm_flags" " " "sm_flags" " "
"model path" "models/player/slow/berserkerin/slow_big.mdl" "model path" "models/player/slow/berserkerin/slow_big.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "250" "health" "2500"
"speed" "2.5" "speed" "1"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "1"
} }
"hellknight" "hellknight"
{ {
@ -219,11 +233,12 @@
"model path" "models/player/ics/hellknight_red/t_guerilla.mdl" "model path" "models/player/ics/hellknight_red/t_guerilla.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "250" "health" "250"
"speed" "2.5" "speed" "1.4"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"centurion" "centurion"
{ {
@ -234,11 +249,12 @@
"model path" "models/player/slow/centurion/slow_centurion.mdl" "model path" "models/player/slow/centurion/slow_centurion.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "150" "health" "150"
"speed" "1.5" "speed" "1.2"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"kahn" "kahn"
{ {
@ -249,11 +265,12 @@
"model path" "models/player/slow/jamis/mkvsdcu/dark_kahn/slow_pub.mdl" "model path" "models/player/slow/jamis/mkvsdcu/dark_kahn/slow_pub.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "3000" "health" "3000"
"speed" "2.5" "speed" "1.1"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.5" "jump_height" "1.5"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "1"
} }
"chucky" "chucky"
{ {
@ -264,11 +281,12 @@
"model path" "models/player/slow/chucky_v3/slow.mdl" "model path" "models/player/slow/chucky_v3/slow.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "60" "health" "60"
"speed" "2.4" "speed" "1.4"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"krall" "krall"
{ {
@ -279,11 +297,12 @@
"model path" "models/player/slow/krall/slow.mdl" "model path" "models/player/slow/krall/slow.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "4000" "health" "4000"
"speed" "2" "speed" "1.1"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "1"
} }
"strong" "strong"
{ {
@ -294,11 +313,12 @@
"model path" "models/player/slow/bloodsucker_pack/slow_strong.mdl" "model path" "models/player/slow/bloodsucker_pack/slow_strong.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "150" "health" "150"
"speed" "2" "speed" "1.6"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.5" "jump_height" "1.5"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"gigantev2" "gigantev2"
{ {
@ -309,11 +329,12 @@
"model path" "models/player/slow/gigante/slow_gigante.mdl" "model path" "models/player/slow/gigante/slow_gigante.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "10000" "health" "10000"
"speed" "2.5" "speed" "1.2"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "10.0" "damage_multiplier" "1.5"
"boss_class" "1"
} }
"alienv1" "alienv1"
{ {
@ -324,11 +345,12 @@
"model path" "models/player/slow/aliendrone/slow_alien.mdl" "model path" "models/player/slow/aliendrone/slow_alien.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "125" "health" "125"
"speed" "2.5" "speed" "1.5"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"witch" "witch"
{ {
@ -339,11 +361,12 @@
"model path" "models/player/techknow/left4dead/witch.mdl" "model path" "models/player/techknow/left4dead/witch.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "120" "health" "120"
"speed" "2" "speed" "1.2"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"bosspider" "bosspider"
{ {
@ -354,11 +377,12 @@
"model path" "models/player/slow/monster_spider/slow.mdl" "model path" "models/player/slow/monster_spider/slow.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "2500" "health" "2500"
"speed" "2" "speed" "1.2"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "4.0" "damage_multiplier" "1.5"
"boss_class" "1"
} }
"hunter" "hunter"
{ {
@ -369,11 +393,12 @@
"model path" "models/player/techknow/left4dead/hunter.mdl" "model path" "models/player/techknow/left4dead/hunter.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "100" "health" "100"
"speed" "3" "speed" "1.5"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"doge" "doge"
{ {
@ -384,11 +409,12 @@
"model path" "models/player/slow/amberlyn/zombie_dog/slow_2.mdl" "model path" "models/player/slow/amberlyn/zombie_dog/slow_2.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "55" "health" "55"
"speed" "2.8" "speed" "1.5"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"balrog" "balrog"
{ {
@ -399,11 +425,12 @@
"model path" "models/player/slow/amberlyn/lotr/balrog/slow.mdl" "model path" "models/player/slow/amberlyn/lotr/balrog/slow.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "12000" "health" "12000"
"speed" "3" "speed" "1.1"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "5000.0" "damage_multiplier" "1.5"
"boss_class" "1"
} }
"raam" "raam"
{ {
@ -414,11 +441,12 @@
"model path" "models/player/slow/general_raam/slow.mdl" "model path" "models/player/slow/general_raam/slow.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "2700" "health" "2700"
"speed" "2" "speed" "1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "1"
} }
"abaddon" "abaddon"
{ {
@ -429,11 +457,12 @@
"model path" "models/player/unloze_zr/abaddon.mdl" "model path" "models/player/unloze_zr/abaddon.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "300" "health" "300"
"speed" "1.8" "speed" "1.2"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"servo_skull" "servo_skull"
{ {
@ -444,11 +473,12 @@
"model path" "models/player/kodua/servo_skull/servo_skull.mdl" "model path" "models/player/kodua/servo_skull/servo_skull.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "15" "health" "15"
"speed" "4" "speed" "1.2"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"bahamut" "bahamut"
{ {
@ -459,11 +489,12 @@
"model path" "models/player/unloze_zr/bahamut.mdl" "model path" "models/player/unloze_zr/bahamut.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "6000" "health" "6000"
"speed" "2.5" "speed" "1.2"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.5"
"boss_class" "1"
} }
"uberevil" "uberevil"
{ {
@ -474,11 +505,12 @@
"model path" "models/player/unloze_zr/uberevil.mdl" "model path" "models/player/unloze_zr/uberevil.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "140" "health" "140"
"speed" "1.8" "speed" "1.2"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"alien_spider" "alien_spider"
{ {
@ -489,11 +521,12 @@
"model path" "models/player/unloze_zr/alien_spider.mdl" "model path" "models/player/unloze_zr/alien_spider.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "140" "health" "140"
"speed" "1.8" "speed" "1.2"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"akasha" "akasha"
{ {
@ -504,11 +537,12 @@
"model path" "models/player/unloze_zr/akasha.mdl" "model path" "models/player/unloze_zr/akasha.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "300" "health" "300"
"speed" "2" "speed" "1.2"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
"theron_guard" "theron_guard"
{ {
@ -519,11 +553,12 @@
"model path" "models/player/unloze_zr/theron_guard.mdl" "model path" "models/player/unloze_zr/theron_guard.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "2900" "health" "2900"
"speed" "2.4" "speed" "1.1"
"knockback" "2.0" "knockback" "0.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "1"
} }
"antlion" "antlion"
{ {
@ -531,14 +566,14 @@
"team" "ZM" "team" "ZM"
"group" " " "group" " "
"sm_flags" " " "sm_flags" " "
"model path" "models/player/techknow/antlion.mdl" "model path" "models/player/techknow/antlion/antlion.mdl"
"no_fall_damage" "YES" "no_fall_damage" "YES"
"health" "200" "health" "200"
"speed" "2" "speed" "1.1"
"knockback" "2.0" "knockback" "1.0"
"jump_height" "1.4" "jump_height" "1.4"
"jump_distance" "1.0" "jump_distance" "1.0"
"damage_multiplier" "1.0" "damage_multiplier" "1.0"
"boss_class" "0"
} }
} }

View File

@ -15,9 +15,8 @@ Left 4 Doge
BOSS - Krall and Kahn come back BOSS - Krall and Kahn come back
Invaders vs Akasha Invaders vs Akasha
MINI BOSS - Spiders Party MINI BOSS - Spiders Party
Cyborg Skull
BOSS - Raam vs Theron BOSS - Raam vs Theron
Nightmares BOSS RUSH!
Armageddon Armageddon
BOSS - Bahamut BOSS - Bahamut
BOSS - El Gigante BOSS - El Gigante

View File

@ -4,6 +4,11 @@
// "bot_static" if you use bot_scaling 0 the plugin will instead use the value given in bot_static to spawn a static amount of bots into the game. // "bot_static" if you use bot_scaling 0 the plugin will instead use the value given in bot_static to spawn a static amount of bots into the game.
// if bot_scaling is not 0 it will always pick bot_scaling and just ignore bot_static. // if bot_scaling is not 0 it will always pick bot_scaling and just ignore bot_static.
// on boss rounds bot_static is used for deciding the amount of bots that will be bosses.
// on boss rounds bot_scaling is used for deciding the amount of bots that will be minions.
// on boss rounds the minion bots do not count towards zombie count, so they can be killed infinite amount of times.
// //
// "PlayerScaleAbility" // "PlayerScaleAbility"
// Multiplied by the zombie count, the amount of needed kills to add // Multiplied by the zombie count, the amount of needed kills to add
@ -85,10 +90,13 @@
"HealthScaleAbility" "0.000000" "HealthScaleAbility" "0.000000"
"Zombie Count" "5" "Zombie Count" "5"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "5" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "0" "bot_static" "2" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "berserker" "Zombie Class" "berserker"
"Zombie Class" "zombie1"
"Zombie Class" "zombie2"
"Zombie Class" "zombie3"
"Human Class" "@all" "Human Class" "@all"
} }
// Starkiller // Starkiller
@ -142,11 +150,14 @@
"HealthScaleAbility" "0.000000" "HealthScaleAbility" "0.000000"
"Zombie Count" "5" "Zombie Count" "5"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "0" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "3" "bot_static" "3" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "kahn" "Zombie Class" "kahn"
"Zombie Class" "krall" "Zombie Class" "krall"
"Zombie Class" "zombie1"
"Zombie Class" "zombie2"
"Zombie Class" "zombie3"
"Human Class" "@all" "Human Class" "@all"
} }
// Mix of Madness // Mix of Madness
@ -238,11 +249,14 @@
"HealthScaleAbility" "0.000000" "HealthScaleAbility" "0.000000"
"Zombie Count" "5" "Zombie Count" "5"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "0" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "3" "bot_static" "3" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "krall" "Zombie Class" "krall"
"Zombie Class" "kahn" "Zombie Class" "kahn"
"Zombie Class" "zombie1"
"Zombie Class" "zombie2"
"Zombie Class" "zombie3"
"Human Class" "@all" "Human Class" "@all"
} }
// Invaders vs Akasha // Invaders vs Akasha
@ -267,10 +281,13 @@
"HealthScaleAbility" "0.000000" "HealthScaleAbility" "0.000000"
"Zombie Count" "16" "Zombie Count" "16"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "5" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "0" "bot_static" "5" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "bosspider" "Zombie Class" "bosspider"
"Zombie Class" "zombie1"
"Zombie Class" "zombie2"
"Zombie Class" "zombie3"
"Human Class" "@all" "Human Class" "@all"
} }
// BOSS - Raam vs Theron // BOSS - Raam vs Theron
@ -280,40 +297,35 @@
"HealthScaleAbility" "0.000000" "HealthScaleAbility" "0.000000"
"Zombie Count" "10" "Zombie Count" "10"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "0" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "3" "bot_static" "3" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "raam" "Zombie Class" "raam"
"Zombie Class" "theron_guard" "Zombie Class" "theron_guard"
"Zombie Class" "zombie1"
"Zombie Class" "zombie2"
"Zombie Class" "zombie3"
"Human Class" "@all" "Human Class" "@all"
} }
// Nightmares // BOSS RUSH!
"Wave 19" "Wave 19"
{ {
"PlayerScaleAbility" "0.1" "PlayerScaleAbility" "0"
"HealthScaleAbility" "0.100000" "HealthScaleAbility" "0.500000"
"Zombie Count" "225" "Zombie Count" "6"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "16" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "0" "bot_static" "1" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "strong" "Zombie Class" "berserker"
"Zombie Class" "verdugo" "Zombie Class" "krall"
"Zombie Class" "hunter" "Zombie Class" "kahn"
"Zombie Class" "witch" "Zombie Class" "theron_guard"
"Zombie Class" "doge" "Zombie Class" "raam"
"Zombie Class" "babycrab" "Zombie Class" "bosspider"
"Zombie Class" "abaddon" "Zombie Class" "zombie1"
"Zombie Class" "alienv1" "Zombie Class" "zombie2"
"Zombie Class" "chucky" "Zombie Class" "zombie3"
"Zombie Class" "servo_skull"
"Zombie Class" "pil_fast_v5"
"Zombie Class" "hellknight"
"Zombie Class" "akasha"
"Zombie Class" "nemesis_pil"
"Zombie Class" "tyrant_pil"
"Zombie Class" "alien_spider"
"Zombie Class" "antlion"
"Human Class" "@all" "Human Class" "@all"
} }
// Armageddon // Armageddon
@ -358,12 +370,23 @@
{ {
"PlayerScaleAbility" "0" "PlayerScaleAbility" "0"
"HealthScaleAbility" "0.500000" "HealthScaleAbility" "0.500000"
"Zombie Count" "3" "Zombie Count" "5"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "0" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "3" "bot_static" "3" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "bahamut" "Zombie Class" "bahamut"
"Zombie Class" "majini"
"Zombie Class" "uroboro"
"Zombie Class" "babycrab"
"Zombie Class" "chucky"
"Zombie Class" "fatty"
"Zombie Class" "tyrant_pil"
"Zombie Class" "hellknight"
"Zombie Class" "doge"
"Zombie Class" "hunter"
"Zombie Class" "witch"
"Zombie Class" "nemesis_pil"
"Human Class" "@all" "Human Class" "@all"
} }
// BOSS - El Gigante // BOSS - El Gigante
@ -373,10 +396,21 @@
"HealthScaleAbility" "0.500000" "HealthScaleAbility" "0.500000"
"Zombie Count" "1" "Zombie Count" "1"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "0" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "1" "bot_static" "1" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "gigantev2" "Zombie Class" "gigantev2"
"Zombie Class" "majini"
"Zombie Class" "uroboro"
"Zombie Class" "babycrab"
"Zombie Class" "chucky"
"Zombie Class" "fatty"
"Zombie Class" "tyrant_pil"
"Zombie Class" "hellknight"
"Zombie Class" "doge"
"Zombie Class" "hunter"
"Zombie Class" "witch"
"Zombie Class" "nemesis_pil"
"Human Class" "@all" "Human Class" "@all"
} }
// FINAL BOSS - The Balrog // FINAL BOSS - The Balrog
@ -384,12 +418,23 @@
{ {
"PlayerScaleAbility" "0" "PlayerScaleAbility" "0"
"HealthScaleAbility" "0.500000" "HealthScaleAbility" "0.500000"
"Zombie Count" "1" "Zombie Count" "2"
"Respawns" "99" "Respawns" "99"
"bot_scaling" "0" "bot_scaling" "5" //on boss round bot_scaling is for minion bots. minion bots dont count towards Zombie Count
"bot_static" "1" "bot_static" "1" //on boss round bot_static is for boss bots
"wavecommand" " " "wavecommand" " "
"Zombie Class" "balrog" "Zombie Class" "balrog"
"Zombie Class" "majini"
"Zombie Class" "uroboro"
"Zombie Class" "babycrab"
"Zombie Class" "chucky"
"Zombie Class" "fatty"
"Zombie Class" "tyrant_pil"
"Zombie Class" "hellknight"
"Zombie Class" "doge"
"Zombie Class" "hunter"
"Zombie Class" "witch"
"Zombie Class" "nemesis_pil"
"Human Class" "@all" "Human Class" "@all"
} }
} }

View File

@ -69,6 +69,8 @@ int g_iBotStuckCounts;
int g_iLoadClassesIndex; int g_iLoadClassesIndex;
int g_iHumanCount; int g_iHumanCount;
int g_iZombieCount; int g_iZombieCount;
int g_iZombieBossIndex[g_dIndexes];
int g_iBossBotCount;
float g_fKnockBackIndex[g_dIndexes + 1]; float g_fKnockBackIndex[g_dIndexes + 1];
float g_fJumpHeightIndex[g_dIndexes + 1]; float g_fJumpHeightIndex[g_dIndexes + 1];
@ -86,7 +88,8 @@ bool g_bSwitchingIndex;
bool g_bRoundInProgress; bool g_bRoundInProgress;
bool g_bFallDamage[g_dIndexes]; bool g_bFallDamage[g_dIndexes];
bool g_bClientProtection[g_dIndexes]; bool g_bClientProtection[g_dIndexes];
bool g_bIsBossRound;
bool g_bClientIsBoss[MAXPLAYERS + 1];
Handle g_hClientZMCookie; Handle g_hClientZMCookie;
Handle g_hClientHumanCookie; Handle g_hClientHumanCookie;
@ -1061,6 +1064,7 @@ public void OnClientPostAdminCheck(int client)
g_fJumpHeightIndex[client] = 1.0; g_fJumpHeightIndex[client] = 1.0;
g_fJumpDistanceIndex[client] = 1.0; g_fJumpDistanceIndex[client] = 1.0;
g_fDamageMultiplier[client] = 1.0; g_fDamageMultiplier[client] = 1.0;
g_bClientIsBoss[client] = false;
g_iClientRespawnCount[client] = g_iClientRespawnCountNum; g_iClientRespawnCount[client] = g_iClientRespawnCountNum;
char sCookieValue[12]; char sCookieValue[12];
GetClientCookie(client, g_hClientZMCookie, sCookieValue, sizeof(sCookieValue)); GetClientCookie(client, g_hClientZMCookie, sCookieValue, sizeof(sCookieValue));
@ -1117,6 +1121,7 @@ public void OnClientDisconnect(int client)
g_fJumpDistanceIndex[client] = 1.0; g_fJumpDistanceIndex[client] = 1.0;
g_fDamageMultiplier[client] = 1.0; g_fDamageMultiplier[client] = 1.0;
g_iClientRespawnCount[client] = 0; g_iClientRespawnCount[client] = 0;
g_bClientIsBoss[client] = false;
SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage); SDKUnhook(client, SDKHook_OnTakeDamage, OnTakeDamage);
SDKUnhook(client, SDKHook_WeaponEquip, OnWeaponEquip); SDKUnhook(client, SDKHook_WeaponEquip, OnWeaponEquip);
} }
@ -1129,7 +1134,24 @@ public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast
g_iZombieCount = 999; g_iZombieCount = 999;
g_bRoundInProgress = false; g_bRoundInProgress = false;
g_bSwitchingIndex = true; g_bSwitchingIndex = true;
g_iBossBotCount = 0;
CreateTimer(g_fSwitchingTimer, Timer_switchingModel, INVALID_HANDLE); CreateTimer(g_fSwitchingTimer, Timer_switchingModel, INVALID_HANDLE);
if (g_hAmbient != null)
delete g_hAmbient;
if (StrContains(g_cDaysTitles[g_iWave - 1], "BOSS", false) != -1) //the daystitle contains the word boss in it
{
g_bIsBossRound = true; //boss rounds need BOSS in the title
EmitAmbience(g_cBossSound); //nobody will ever understand why megalovania was on the servers since 2020.
g_hAmbient = CreateTimer(g_fBossSoundLoopDuration, Timer_Ambient, INVALID_HANDLE, TIMER_REPEAT); // 0.3 seconds without sound
}
else
{
g_bIsBossRound = false; //boss rounds need BOSS in the title
int index = ambient_index();
EmitAmbience(g_cAmbientSOund[index]);
g_hAmbient = CreateTimer(g_fAmbientSoundLoopDuration, Timer_Ambient, INVALID_HANDLE, TIMER_REPEAT); // 0.3 seconds without sound
}
RetrieveWaveSettings(g_iWave); RetrieveWaveSettings(g_iWave);
for (int i = 1; i <= MaxClients; i++) for (int i = 1; i <= MaxClients; i++)
@ -1138,6 +1160,7 @@ public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast
{ {
if (IsFakeClient(i)) if (IsFakeClient(i))
{ {
g_bClientIsBoss[i] = false;
CreateTimer(0.3, Timer_delayedSelectWaveBasedZM, GetClientUserId(i)); CreateTimer(0.3, Timer_delayedSelectWaveBasedZM, GetClientUserId(i));
continue; continue;
} }
@ -1148,19 +1171,6 @@ public void Event_roundStart(Handle event, const char[] name, bool dontBroadcast
} }
} }
} }
if (g_hAmbient != null)
delete g_hAmbient;
if (StrContains(g_cDaysTitles[g_iWave - 1], "BOSS", false) != -1) //the daystitle contains the word boss in it
{
EmitAmbience(g_cBossSound); //nobody will ever understand why megalovania was on the servers since 2020.
g_hAmbient = CreateTimer(g_fBossSoundLoopDuration, Timer_Ambient, INVALID_HANDLE, TIMER_REPEAT); // 0.3 seconds without sound
}
else
{
int index = ambient_index();
EmitAmbience(g_cAmbientSOund[index]);
g_hAmbient = CreateTimer(g_fAmbientSoundLoopDuration, Timer_Ambient, INVALID_HANDLE, TIMER_REPEAT); // 0.3 seconds without sound
}
} }
public int ambient_index() public int ambient_index()
@ -1204,7 +1214,6 @@ public Action RetrieveWaveSettings(int wave)
Format(hostname, sizeof(hostname), "UNLOZE | [ZRiot: Day %i/%i] %s | Ranking", wave, total_days, g_cDaysTitles[wave - 1]); Format(hostname, sizeof(hostname), "UNLOZE | [ZRiot: Day %i/%i] %s | Ranking", wave, total_days, g_cDaysTitles[wave - 1]);
ServerCommand("hostname \"%s\"", hostname); ServerCommand("hostname \"%s\"", hostname);
PrintToChatAll("Day %i: %s", wave, g_cDaysTitles[wave - 1]); PrintToChatAll("Day %i: %s", wave, g_cDaysTitles[wave - 1]);
LoadWave(wave); LoadWave(wave);
delete l_hWave; delete l_hWave;
@ -1276,13 +1285,35 @@ public void LoadWave(int wave)
g_iClientRespawnCountNum = kv.GetNum("Respawns", 5); g_iClientRespawnCountNum = kv.GetNum("Respawns", 5);
l_iBotQuote = kv.GetNum("bot_scaling", 1); l_iBotQuote = kv.GetNum("bot_scaling", 1);
int l_iBotQuoteStatic = kv.GetNum("bot_static", 1); int l_iBotQuoteStatic = kv.GetNum("bot_static", 1);
if (l_iBotQuote == 0) //we use static bot amount instead
l_iPlayers = 0; //counting legit players for bot scaling.
for (int i = 1; i < MaxClients; i++)
{ {
SettingBotQoute(l_iBotQuoteStatic, true); if (IsValidClient(i) && !IsFakeClient(i) && CS_TEAM_CT == GetClientTeam(i))
{
l_iPlayers++;
}
}
if (g_bIsBossRound)
{
//its boss round. bot_scaling is used for minion bots. bot_static is used for boss bot amount
// bot_static + bot_scaling
addBots(l_iBotQuoteStatic + (l_iPlayers * l_iBotQuote));
g_iBossBotCount = l_iBotQuoteStatic;
} }
else else
{ {
SettingBotQoute(l_iBotQuote, false); //its not boss round.
if (l_iBotQuote == 0) //we use static bot amount instead of scaling bots based on playercount.
{
addBots(l_iBotQuoteStatic);
}
else
{
//we use bot_scaling.
addBots(l_iPlayers * l_iBotQuote);
}
} }
while (!IsEndOfFile(l_hFile) && ReadFileLine(l_hFile, l_cLine, sizeof(l_cLine))) while (!IsEndOfFile(l_hFile) && ReadFileLine(l_hFile, l_cLine, sizeof(l_cLine)))
{ {
@ -1426,28 +1457,6 @@ public void LoadWave(int wave)
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
// Purpose: // Purpose:
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
public void SettingBotQoute(int botscale, bool bot_static)
{
int l_iPlayers;
for (int i = 1; i < MaxClients; i++)
{
if (IsValidClient(i) && !IsFakeClient(i) && CS_TEAM_CT == GetClientTeam(i))
{
l_iPlayers++;
}
}
if (bot_static)
{
addBots(botscale);
}
else
{
addBots(l_iPlayers * botscale);
}
}
//----------------------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------------------
public void addBots(int botcount) public void addBots(int botcount)
{ {
if (botcount > 44) if (botcount > 44)
@ -1534,7 +1543,12 @@ public void ReadingClassValuesFromFile(int index, char[] Line)
{ {
ReplaceStrings(li_c, "damage_multiplier"); ReplaceStrings(li_c, "damage_multiplier");
Format(g_cDamageMultiplier[index][g_iLength], sizeof(g_cDamageMultiplier), li_c); Format(g_cDamageMultiplier[index][g_iLength], sizeof(g_cDamageMultiplier), li_c);
g_iLoadClassesIndex++; }
else if (StrContains(Line, "boss_class") > -1)
{
ReplaceStrings(li_c, "boss_class");
g_iZombieBossIndex[index] = StringToInt(li_c);
g_iLoadClassesIndex++; //use this at the last keyvalue to indicate we are done.
} }
} }
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
@ -1595,13 +1609,95 @@ public Action SelectWaveBasedZM(int client, int state)
if (state == 0) if (state == 0)
{ {
if (g_bIsBossRound && g_iBossBotCount > 0 && !g_bClientIsBoss[client]) //does not work setting on roundstart. so instead doing when applying ZM skin.
{
g_bClientIsBoss[client] = true;
g_iBossBotCount--; //picking certain bots as the boss bots. all other bots are the minions.
}
if (g_bIsBossRound)
{
if (g_bClientIsBoss[client])
{
//its boss round and we set class for a boss bot
for (int i = 0; i < g_dIndexes; i++)
{
if (strlen(g_cZMRoundClasses[i][g_iLength]) > 0 && strlen(g_cGroup[i][g_iLength]) < 1 && strlen(g_cSMFLAGS[i][g_iLength]) < 1
&& g_iZombieBossIndex[i])
{
l_iZMIndex++; //we set amount of boss classes that the boss bot can pick between.
}
}
l_ibotIndex = GetRandomInt(0, l_iZMIndex -1);
l_iZMIndex = 0;
for (int i = 0; i < g_dIndexes; i++) for (int i = 0; i < g_dIndexes; i++)
{ {
if (strlen(g_cZMRoundClasses[i][g_iLength]) > 0 && strlen(g_cGroup[i][g_iLength]) < 1 && strlen(g_cSMFLAGS[i][g_iLength]) < 1) if (strlen(g_cZMRoundClasses[i][g_iLength]) > 0 && strlen(g_cGroup[i][g_iLength]) < 1 && strlen(g_cSMFLAGS[i][g_iLength]) < 1)
{
if (!g_iZombieBossIndex[i])
{
continue;
}
else if (l_ibotIndex == l_iZMIndex)
{
g_iClientZMClasses[client] = i;
break;
}
else
{ {
l_iZMIndex++; l_iZMIndex++;
} }
} }
}
}
else
{
//its boss round and we set class for a minion bot
for (int i = 0; i < g_dIndexes; i++)
{
if (strlen(g_cZMRoundClasses[i][g_iLength]) > 0 && strlen(g_cGroup[i][g_iLength]) < 1 && strlen(g_cSMFLAGS[i][g_iLength]) < 1
&& !g_iZombieBossIndex[i])
{
l_iZMIndex++; //we set amount of normal zombie classes the minion bot can pick between. skipping out the boss classes.
}
}
l_ibotIndex = GetRandomInt(0, l_iZMIndex -1);
l_iZMIndex = 0;
for (int i = 0; i < g_dIndexes; i++)
{
if (strlen(g_cZMRoundClasses[i][g_iLength]) > 0 && strlen(g_cGroup[i][g_iLength]) < 1 && strlen(g_cSMFLAGS[i][g_iLength]) < 1)
{
if (g_iZombieBossIndex[i])
{
continue;
}
else if (l_ibotIndex == l_iZMIndex)
{
g_iClientZMClasses[client] = i;
break;
}
else
{
l_iZMIndex++;
}
}
}
}
}
else
{
//its normal round. just setting the classes randomly.
for (int i = 0; i < g_dIndexes; i++)
{
if (strlen(g_cZMRoundClasses[i][g_iLength]) > 0 && strlen(g_cGroup[i][g_iLength]) < 1 && strlen(g_cSMFLAGS[i][g_iLength]) < 1)
{
l_iZMIndex++; //here we get to know what the last index is, that way the randomint can pick between index 0 and last index for ZM classes.
}
}
l_ibotIndex = GetRandomInt(0, l_iZMIndex -1); l_ibotIndex = GetRandomInt(0, l_iZMIndex -1);
l_iZMIndex = 0; l_iZMIndex = 0;
for (int i = 0; i < g_dIndexes; i++) for (int i = 0; i < g_dIndexes; i++)
@ -1614,10 +1710,13 @@ public Action SelectWaveBasedZM(int client, int state)
break; break;
} }
else else
{
l_iZMIndex++; l_iZMIndex++;
} }
} }
} }
}
}
//if no model selected just picks the first available for players //if no model selected just picks the first available for players
else if (strlen(g_cZMRoundClasses[g_iClientZMClasses[client]][g_iLength]) < 1) else if (strlen(g_cZMRoundClasses[g_iClientZMClasses[client]][g_iLength]) < 1)
{ {
@ -1942,11 +2041,26 @@ public Action UpdateWaveCount(int client)
} }
} }
} }
if (g_bIsBossRound)
{
//we only reduce zombie count if the killed bot had a boss zombie class.
//if the killed bot instead had a zombie class of a minion we do not reduce the zombie count.
if (g_bClientIsBoss[client])
{
g_iZMCount--; g_iZMCount--;
PrintHintTextToAll("Day %i: %s\nRemaining Zombies: %i\nHumans: %i\nZombies: %i", g_iWave, g_cDaysTitles[g_iWave - 1], g_iZMCount, humanCount, zombieCount); PrintHintTextToAll("Day %i: %s\nRemaining Zombies: %i\nHumans: %i\nZombies: %i", g_iWave, g_cDaysTitles[g_iWave - 1], g_iZMCount, humanCount, zombieCount);
g_iHumanCount = humanCount; g_iHumanCount = humanCount;
g_iZombieCount = zombieCount; g_iZombieCount = zombieCount;
} }
}
else
{
g_iZMCount--;
PrintHintTextToAll("Day %i: %s\nRemaining Zombies: %i\nHumans: %i\nZombies: %i", g_iWave, g_cDaysTitles[g_iWave - 1], g_iZMCount, humanCount, zombieCount);
g_iHumanCount = humanCount;
g_iZombieCount = zombieCount;
}
}
if (g_iZMCount <= 0 && g_bRoundInProgress) if (g_iZMCount <= 0 && g_bRoundInProgress)
{ {
PrintToChatAll("Won Round!"); PrintToChatAll("Won Round!");