Added ability to disable bosses using logic_classunlock

-Added Key "bossesenabled"
-added input "setbossesenabled"
-Updated FGD with above changed
-Cleaned up FGD
This commit is contained in:
Ben 2014-11-10 13:28:36 +00:00
parent 6af66c30a5
commit 66fead7e96
2 changed files with 260 additions and 212 deletions

View file

@ -2,6 +2,7 @@ ENT.Type = "point"
function ENT:Initialize() function ENT:Initialize()
self.Class = self.Class or 1 self.Class = self.Class or 1
self.BossesEnabled = GAMEMODE.BossZombies
end end
function ENT:Think() function ENT:Think()
@ -50,6 +51,8 @@ function ENT:AcceptInput(name, activator, caller, args)
v.IsDefault = nil v.IsDefault = nil
end end
end end
elseif name == "setbossesenabled" then
self:KeyValue("BossesEnabled",args)
end end
end end
@ -57,6 +60,10 @@ function ENT:KeyValue(key, value)
key = string.lower(key) key = string.lower(key)
if key == "class" then if key == "class" then
self.Class = value or self.Class self.Class = value or self.Class
elseif key == "bossesenabled" then
local enabled = tonumber(value) == 1
self.BossesEnabled = enabled
GAMEMODE.BossZombies = enabled
elseif string.sub(key, 1, 2) == "on" then elseif string.sub(key, 1, 2) == "on" then
self:AddOnOutput(key, value) self:AddOnOutput(key, value)
end end

View file

@ -1,165 +1,170 @@
/////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
// NoXiousNet Zombie Survival FGD - Last Edit by Benjy (29th October 2014) // // NoXiousNet Zombie Survival FGD - Last Edit by Benjy (10th November 2014) //
// If there are any bugs with this file, or any additions that need to be made // // If there are any bugs with this file, or any additions that need to be made //
// make a post at: http://www.noxiousnet.com/forums/index.php?topic=14910 // // make a post at: http://www.noxiousnet.com/forums/index.php?topic=14910 //
/////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
@include "base.fgd" @include "base.fgd"
@include "halflife2.fgd" @include "halflife2.fgd"
@include "hl2mp.fgd" @include "hl2mp.fgd"
/////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
// Gamemode - Brush Entities ////////////////////////////////////////////////////// // Gamemode - Brush Entities /////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////
@SolidClass base(Targetname) = func_noair : "ZS: Anyone inside this brush requires air" @SolidClass base(Targetname) = func_noair : "ZS: Anyone inside this brush requires air"
[ [
enabled(choices) : "Enabled" : 0 : "Enable the brush entity." = // Keys
enabled(choices) : "Enabled" : 0 : "Enable the brush entity." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
input enable(void) : "Enable the entity."
input disable(void) : "Disable the entity." // Inputs
input toggle(void) : "Toggle the entity." input enable(void) : "Enable the entity."
input disable(void) : "Disable the entity."
input toggle(void) : "Toggle the entity."
] ]
@SolidClass base(Targetname) = trigger_zombieclass : "ZS: You can directly control the changing of classes with this." @SolidClass base(Targetname) = trigger_zombieclass : "ZS: You can directly control the changing of classes with this."
[ [
enabled(choices) : "Enabled" : 0 : "Enable the brush entity." = // Keys
enabled(choices) : "Enabled" : 0 : "Enable the brush entity." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
touchclass(choices) : "On Touch Class" : "zombie" : "Any living zombie touching the brush will be set to this class name." = touchclass(choices) : "On Touch Class" : "zombie" : "Any living zombie touching the brush will be set to this class name." =
[ [
"crow" : "Crow" "crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
"fresh dead" : "Fresh Dead" "fresh dead" : "Fresh Dead"
"zombie legs" : "Zombie Legs" "zombie legs" : "Zombie Legs"
"zombie torso" : "Zombie Torso" "zombie torso" : "Zombie Torso"
"flesh creeper" : "Flesh Creeper" "flesh creeper" : "Flesh Creeper"
"headcrab" : "Headcrab" "headcrab" : "Headcrab"
"fast headcrab" : "Fast Headcrab" "fast headcrab" : "Fast Headcrab"
"poison headcrab" : "Poison Headcrab" "poison headcrab" : "Poison Headcrab"
"ghoul" : "Ghoul" "ghoul" : "Ghoul"
"wraith" : "Wraith" "wraith" : "Wraith"
"bloated zombie" : "Bloated Zombie" "bloated zombie" : "Bloated Zombie"
"fast zombie" : "Fast Zombie" "fast zombie" : "Fast Zombie"
"fast zombie legs" : "Fast Zombie Legs" "fast zombie legs" : "Fast Zombie Legs"
"poison zombie" : "Poison Zombie" "poison zombie" : "Poison Zombie"
"chem zombie" : "Chem Zombie" "chem zombie" : "Chem Zombie"
"nightmare" : "Nightmare" "nightmare" : "Nightmare"
"puke pus" : "Puke Pus" "puke pus" : "Puke Pus"
"the tickle monster": "The Tickle Monster" "the tickle monster" : "The Tickle Monster"
"shade" : "Shade" "shade" : "Shade"
"bonemesh" : "Bonemesh" "bonemesh" : "Bonemesh"
"the butcher" : "The Butcher" "the butcher" : "The Butcher"
"super zombie" : "Super Zombie" "super zombie" : "Super Zombie"
"gore child" : "Gore Child" "gore child" : "Gore Child"
"giga gore child" : "Giga Gore Child" "giga gore child" : "Giga Gore Child"
] ]
endtouchclass(choices) : "On Leaving Class" : "zombie" : "Same as Touching Class but for when leaving the brush." = endtouchclass(choices) : "On Leaving Class" : "zombie" : "Same as Touching Class but for when leaving the brush." =
[ [
"crow" : "Crow" "crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
"fresh dead" : "Fresh Dead" "fresh dead" : "Fresh Dead"
"zombie legs" : "Zombie Legs" "zombie legs" : "Zombie Legs"
"zombie torso" : "Zombie Torso" "zombie torso" : "Zombie Torso"
"flesh creeper" : "Flesh Creeper" "flesh creeper" : "Flesh Creeper"
"headcrab" : "Headcrab" "headcrab" : "Headcrab"
"fast headcrab" : "Fast Headcrab" "fast headcrab" : "Fast Headcrab"
"poison headcrab" : "Poison Headcrab" "poison headcrab" : "Poison Headcrab"
"ghoul" : "Ghoul" "ghoul" : "Ghoul"
"wraith" : "Wraith" "wraith" : "Wraith"
"bloated zombie" : "Bloated Zombie" "bloated zombie" : "Bloated Zombie"
"fast zombie" : "Fast Zombie" "fast zombie" : "Fast Zombie"
"fast zombie legs" : "Fast Zombie Legs" "fast zombie legs" : "Fast Zombie Legs"
"poison zombie" : "Poison Zombie" "poison zombie" : "Poison Zombie"
"chem zombie" : "Chem Zombie" "chem zombie" : "Chem Zombie"
"nightmare" : "Nightmare" "nightmare" : "Nightmare"
"puke pus" : "Puke Pus" "puke pus" : "Puke Pus"
"the tickle monster": "The Tickle Monster" "the tickle monster" : "The Tickle Monster"
"shade" : "Shade" "shade" : "Shade"
"bonemesh" : "Bonemesh" "bonemesh" : "Bonemesh"
"the butcher" : "The Butcher" "the butcher" : "The Butcher"
"super zombie" : "Super Zombie" "super zombie" : "Super Zombie"
"gore child" : "Gore Child" "gore child" : "Gore Child"
"giga gore child" : "Giga Gore Child" "giga gore child" : "Giga Gore Child"
] ]
touchdeathclass(choices): "On Touch Respawn Class" : "zombie" : "Any living zombie touching the brush will be set to this class name on death." = touchdeathclass(choices) : "On Touch Respawn Class" : "zombie" : "Any living zombie touching the brush will be set to this class name on death." =
[ [
"crow" : "Crow" "crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
"fresh dead" : "Fresh Dead" "fresh dead" : "Fresh Dead"
"zombie legs" : "Zombie Legs" "zombie legs" : "Zombie Legs"
"zombie torso" : "Zombie Torso" "zombie torso" : "Zombie Torso"
"flesh creeper" : "Flesh Creeper" "flesh creeper" : "Flesh Creeper"
"headcrab" : "Headcrab" "headcrab" : "Headcrab"
"fast headcrab" : "Fast Headcrab" "fast headcrab" : "Fast Headcrab"
"poison headcrab" : "Poison Headcrab" "poison headcrab" : "Poison Headcrab"
"ghoul" : "Ghoul" "ghoul" : "Ghoul"
"wraith" : "Wraith" "wraith" : "Wraith"
"bloated zombie" : "Bloated Zombie" "bloated zombie" : "Bloated Zombie"
"fast zombie" : "Fast Zombie" "fast zombie" : "Fast Zombie"
"fast zombie legs" : "Fast Zombie Legs" "fast zombie legs" : "Fast Zombie Legs"
"poison zombie" : "Poison Zombie" "poison zombie" : "Poison Zombie"
"chem zombie" : "Chem Zombie" "chem zombie" : "Chem Zombie"
"nightmare" : "Nightmare" "nightmare" : "Nightmare"
"puke pus" : "Puke Pus" "puke pus" : "Puke Pus"
"the tickle monster": "The Tickle Monster" "the tickle monster" : "The Tickle Monster"
"shade" : "Shade" "shade" : "Shade"
"bonemesh" : "Bonemesh" "bonemesh" : "Bonemesh"
"the butcher" : "The Butcher" "the butcher" : "The Butcher"
"super zombie" : "Super Zombie" "super zombie" : "Super Zombie"
"gore child" : "Gore Child" "gore child" : "Gore Child"
"giga gore child" : "Giga Gore Child" "giga gore child" : "Giga Gore Child"
] ]
endtouchdeathclass(choices) : "On Leaving Respawn Class" : "zombie" : "Same as Touching Respawn Class but for when leaving the brush." = endtouchdeathclass(choices) : "On Leaving Respawn Class" : "zombie" : "Same as Touching Respawn Class but for when leaving the brush." =
[ [
"crow" : "Crow" "crow" : "Crow"
"will o' wisp" : "Will O' Wisp" "will o' wisp" : "Will O' Wisp"
"zombie" : "Zombie" "zombie" : "Zombie"
"classic Zombie" : "Classic Zombie" "classic Zombie" : "Classic Zombie"
"fresh dead" : "Fresh Dead" "fresh dead" : "Fresh Dead"
"zombie legs" : "Zombie Legs" "zombie legs" : "Zombie Legs"
"zombie torso" : "Zombie Torso" "zombie torso" : "Zombie Torso"
"flesh creeper" : "Flesh Creeper" "flesh creeper" : "Flesh Creeper"
"headcrab" : "Headcrab" "headcrab" : "Headcrab"
"fast headcrab" : "Fast Headcrab" "fast headcrab" : "Fast Headcrab"
"poison headcrab" : "Poison Headcrab" "poison headcrab" : "Poison Headcrab"
"ghoul" : "Ghoul" "ghoul" : "Ghoul"
"wraith" : "Wraith" "wraith" : "Wraith"
"bloated zombie" : "Bloated Zombie" "bloated zombie" : "Bloated Zombie"
"fast zombie" : "Fast Zombie" "fast zombie" : "Fast Zombie"
"fast zombie legs" : "Fast Zombie Legs" "fast zombie legs" : "Fast Zombie Legs"
"poison zombie" : "Poison Zombie" "poison zombie" : "Poison Zombie"
"chem zombie" : "Chem Zombie" "chem zombie" : "Chem Zombie"
"nightmare" : "Nightmare" "nightmare" : "Nightmare"
"puke pus" : "Puke Pus" "puke pus" : "Puke Pus"
"the tickle monster": "The Tickle Monster" "the tickle monster" : "The Tickle Monster"
"shade" : "Shade" "shade" : "Shade"
"bonemesh" : "Bonemesh" "bonemesh" : "Bonemesh"
"the butcher" : "The Butcher" "the butcher" : "The Butcher"
"super zombie" : "Super Zombie" "super zombie" : "Super Zombie"
"gore child" : "Gore Child" "gore child" : "Gore Child"
"giga gore child" : "Giga Gore Child" "giga gore child" : "Giga Gore Child"
] ]
onetime(choices) : "One Time?" : 0 : "If yes then anyone who gets swapped will be respawned as the last class they were before the change." = onetime(choices) : "One Time?" : 0 : "If yes then anyone who gets swapped will be respawned as the last class they were before the change." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
instantchange(choices) : "Change Instantly?" : 1 : "If yes then anyone who gets swapped will instantly be changed right on the spot." = instantchange(choices) : "Change Instantly?" : 1 : "If yes then anyone who gets swapped will instantly be changed right on the spot." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs // Inputs
input enable(void) : "Enable the entity." input enable(void) : "Enable the entity."
input disable(void) : "Disable the entity." input disable(void) : "Disable the entity."
@ -174,32 +179,33 @@
@SolidClass base(Targetname) = trigger_bossclass : "ZS: A zombie that touches this brush" @SolidClass base(Targetname) = trigger_bossclass : "ZS: A zombie that touches this brush"
[ [
// Keys
enabled(choices) : "Enabled" : 0 : "Enable the brush entity." = enabled(choices) : "Enabled" : 0 : "Enable the brush entity." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
silent(choices) : "Silent" : 0 : "If yes then then the server does not announce that a player has become the new boss." = silent(choices) : "Silent" : 0 : "If yes then then the server does not announce that a player has become the new boss." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
instantchange(choices) : "Change Instantly?" : 1 : "If yes then anyone who gets swapped will instantly be changed right on the spot." =
instantchange(choices) : "Change Instantly?" : 1 : "If yes then anyone who gets swapped will instantly be changed right on the spot." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs // Inputs
input enable(void) : "Enable the entity." input enable(void) : "Enable the entity."
input disable(void) : "Disable the entity." input disable(void) : "Disable the entity."
input seton(integer) : "Set Enabled keyvalue. <boolean>" input seton(integer) : "Set Enabled keyvalue. <boolean>"
input setsilent(integer) : "Set Silent keyvalue. <boolean>" input setsilent(integer) : "Set Silent keyvalue. <boolean>"
input setinstantchange(integer) : "Set Change Instantly keyvalue. <boolean>" input setinstantchange(integer) : "Set Change Instantly keyvalue. <boolean>"
input spawnboss(void) : "Spawns the boss using the zombie with the highest score" input spawnboss(void) : "Spawns the boss using the zombie with the highest score"
// Outputs // Outputs
output OnBossTouched(void) : "Set when a boss starts touching the brush. Is not fired when a zombie becomes a boss in this volume." output OnBossTouched(void) : "Set when a boss starts touching the brush. Is not fired when a zombie becomes a boss in this volume."
] ]
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
@ -208,11 +214,13 @@
@BaseClass base(Targetname) = ZSSpawn @BaseClass base(Targetname) = ZSSpawn
[ [
disabled(choices) : "Disabled" : 0 : "If disabled, players cannot spawn here." = // Keys
disabled(choices) : "Disabled" : 0 : "If disabled, players cannot spawn here." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs // Inputs
input enable(void) : "Enable the spawn point." input enable(void) : "Enable the spawn point."
input disable(void) : "Disable the spawn point." input disable(void) : "Disable the spawn point."
@ -237,24 +245,27 @@
@PointClass base(Targetname) = logic_beats : "ZS: Allows you to turn beats (the ambient music) on or off." @PointClass base(Targetname) = logic_beats : "ZS: Allows you to turn beats (the ambient music) on or off."
[ [
enabled(choices) : "Enabled" : 1 : "Allows ZS beats" = // Keys
enabled(choices) : "Enabled" : 1 : "Allows ZS beats" =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs // Inputs
input enable(void) : "Enables beats." input enable(void) : "Enables beats."
input disable(void) : "Disables beats." input disable(void) : "Disables beats."
// Outputs
] ]
@PointClass base(Targetname) = logic_dynamicspawning : "ZS: Allows you to control dynamic spawning." @PointClass base(Targetname) = logic_dynamicspawning : "ZS: Allows you to control dynamic spawning."
[ [
// Keys
enabled(choices) : "Enabled" : 1 : "Should dynamic spawning be on?" = enabled(choices) : "Enabled" : 1 : "Should dynamic spawning be on?" =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs // Inputs
input enable(void) : "Enable dynamic spawning." input enable(void) : "Enable dynamic spawning."
input disable(void) : "Disable dynamic spawning." input disable(void) : "Disable dynamic spawning."
@ -262,12 +273,15 @@
@PointClass base(Origin) iconsprite("particles/smokey") sphere( radius ) = zombiegasses : "ZS: Manually place a point for the zombies' noxious gases." @PointClass base(Origin) iconsprite("particles/smokey") sphere( radius ) = zombiegasses : "ZS: Manually place a point for the zombies' noxious gases."
[ [
// Keys
radius(integer) : "Radius" : 250 : "Radius that this can damage humans/heal zombies." radius(integer) : "Radius" : 250 : "Radius that this can damage humans/heal zombies."
] ]
@PointClass base(Targetname) = logic_pickupdrop : "ZS: Controls events when players pickup or drop things." @PointClass base(Targetname) = logic_pickupdrop : "ZS: Controls events when players pickup or drop things."
[ [
// Keys
EntityToWatch(target_destination) : "Entity to Watch" : " " : "Name of the entity to watch (for outputs)." EntityToWatch(target_destination) : "Entity to Watch" : " " : "Name of the entity to watch (for outputs)."
// Inputs // Inputs
input ForceDrop(string) : "Forces the dropping of something that's picked up by a human." input ForceDrop(string) : "Forces the dropping of something that's picked up by a human."
input DisablePickup(string) : "Disables human pickups for the specified entity. Does not force dropping if currently carried, use the above input." input DisablePickup(string) : "Disables human pickups for the specified entity. Does not force dropping if currently carried, use the above input."
@ -316,48 +330,54 @@
input setredeembrains(integer) : "Sets the amount of brains required for a zombie to automatically redeem. Setting it to 0 means no automatic redemptions." input setredeembrains(integer) : "Sets the amount of brains required for a zombie to automatically redeem. Setting it to 0 means no automatic redemptions."
// Outputs // Outputs
output OnConditionPassed(void) : "Thrown by ourselves when a condition is passed. The activator is always the player in question. The arguments are the amount that was checked against." output OnConditionPassed(void) : "Thrown by ourselves when a condition is passed. The activator is always the player in question. The arguments are the amount that was checked against."
output OnConditionFailed(void) : "Thrown by ourselves when a condition is failed. The activator is always the player in question. The arguments are the amount that was checked against." output OnConditionFailed(void) : "Thrown by ourselves when a condition is failed. The activator is always the player in question. The arguments are the amount that was checked against."
] ]
@PointClass base(Targetname) = logic_startingloadout : "ZS: Allows you to control what people start with." @PointClass base(Targetname) = logic_startingloadout : "ZS: Allows you to control what people start with."
[ [
startingloadout(string) : "Starting Loadout" : "worth" : "Sets the starting load out for all new humans. This is a comma-separated list of entity classes which is then separated by colons. For example: weapon_zs_peashooter:1,weapon_zs_axe:1,item_ammo_pistol:2 would give everyone a peashooter, an axe, and spawn two boxes of pistol ammo on them. It also accepts none for absolutely no starting items and worth for using the worth menu (default)." // Keys
startingloadout(string) : "Starting Loadout" : "worth" : "Sets the starting load out for all new humans. This is a comma-separated list of entity classes which is then separated by colons. For example: weapon_zs_peashooter:1,weapon_zs_axe:1,item_ammo_pistol:2 would give everyone a peashooter, an axe, and spawn two boxes of pistol ammo on them. It also accepts none for absolutely no starting items and worth for using the worth menu (default)."
// Inputs // Inputs
input setstartingloadout(string) : "Sets the keyvalue" input setstartingloadout(string) : "Sets the keyvalue"
] ]
@PointClass base(Targetname) = logic_worth : "ZS: Allows you to control Worth." @PointClass base(Targetname) = logic_worth : "ZS: Allows you to control Worth."
[ [
startingworth(integer) : "Starting Worth" : 100 : "The amount of Worth to start with. Use 0 to disable Worth." // Keys
startingworth(integer) : "Starting Worth" : 100 : "The amount of Worth to start with. Use 0 to disable Worth."
// Inputs // Inputs
input setstartingworth(integer) : "Sets the amount of worth to start with." input setstartingworth(integer) : "Sets the amount of worth to start with."
] ]
@PointClass base(Targetname) = logic_barricade : "ZS: Allows or disallows specific entities from being nailed." @PointClass base(Targetname) = logic_barricade : "ZS: Allows or disallows specific entities from being nailed."
[ [
// Inputs // Inputs
input disablethese(string) : "Takes the arguments in the form of a comma-separated array and disables any entities with that name. For example, disablethese objective1,somethingimportant,somethingelse. This would disable nailing of those entities." input disablethese(string) : "Takes the arguments in the form of a comma-separated array and disables any entities with that name. For example, disablethese objective1,somethingimportant,somethingelse. This would disable nailing of those entities."
input enablethese(string) : "Takes the arguments in the form of a comma-separated array and enables any entities with that name. For example, enablethese objective1,somethingimportant,somethingelse. This would enable nailing of those entities." input enablethese(string) : "Takes the arguments in the form of a comma-separated array and enables any entities with that name. For example, enablethese objective1,somethingimportant,somethingelse. This would enable nailing of those entities."
] ]
@PointClass base(Targetname) = logic_difficulty : "ZS: Adjusts the difficulty of the game." @PointClass base(Targetname) = logic_difficulty : "ZS: Adjusts the difficulty of the game."
[ [
// Inputs // Inputs
input setzombiespeedmultiplier(float) : "Multiplyer for Zombie speed." input setzombiespeedmultiplier(float) : "Multiplyer for Zombie speed."
input setzombiedamagemultiplier(float) : "Multiplyer for Zombie damage." input setzombiedamagemultiplier(float) : "Multiplyer for Zombie damage."
] ]
@PointClass base(Targetname) = logic_pickups : "ZS: Allows you to control how much stuff people can pickup in the map. Only things placed by the mapper work with this system. Stuff from dead humans doesn't count." @PointClass base(Targetname) = logic_pickups : "ZS: Allows you to control how much stuff people can pickup in the map. Only things placed by the mapper work with this system. Stuff from dead humans doesn't count."
[ [
maxweaponpickups(integer) : "Max Weapon Pickups" : 5 : "How many weapons a player can pickup from the map." // Keys
maxammopickups(integer) : "Max Ammo Pickups" : 5 : "How many ammo boxes a player can pickup from the map." maxweaponpickups(integer) : "Max Weapon Pickups" : 5 : "How many weapons a player can pickup from the map."
maxflashlightpickups(integer) : "Max Flashlight Pickups" : 5 : "How many flashlight batteries a player can pickup from the map." maxammopickups(integer) : "Max Ammo Pickups" : 5 : "How many ammo boxes a player can pickup from the map."
weaponrequiredforammo(choices) : "Correct Weapon Required" : 0 : "If 1 then players must have a weapon that takes the ammo before being able to pick up an ammo box." = maxflashlightpickups(integer) : "Max Flashlight Pickups" : 5 : "How many flashlight batteries a player can pickup from the map."
weaponrequiredforammo(choices) : "Correct Weapon Required" : 0 : "If 1 then players must have a weapon that takes the ammo before being able to pick up an ammo box." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs // Inputs
input setmaxweaponpickups(integer) : "Set the number of weapons a player can pickup from the map." input setmaxweaponpickups(integer) : "Set the number of weapons a player can pickup from the map."
input setmaxammopickups(integer) : "Set the number of ammo boxes a player can pickup from the map." input setmaxammopickups(integer) : "Set the number of ammo boxes a player can pickup from the map."
@ -367,23 +387,35 @@
@PointClass base(Targetname) = logic_classunlock : "ZS: Allows you to control class unlocks." @PointClass base(Targetname) = logic_classunlock : "ZS: Allows you to control class unlocks."
[ [
class(string) : "Class" : "zombie" : "Sets the name of the class to watch for any outputs." // Keys
// Inputs class(string) : "Class" : "zombie" : "Sets the name of the class to watch for any outputs."
input unlockclass(string) : "Forces a class to be unlocked." bossesenabled(choices) : "Enable Bosses" : 1 : "When enabled, bosses spawn at wave end as normal." =
input lockclass(string) : "Forces a class to be locked."
// Outputs
output OnClassUnlocked(void) : "Called when the class we're watching's class is unlocked by the game. This output isn't called if the class is unlocked by any logic_classunlock entities, only by the game."
]
@PointClass studio("models/crossbow_bolt.mdl") base(Targetname) = prop_nail : "ZS: Allows you to manually place nails."
[
healthoverride(integer) : "Health Override" : 210 : "Sets the nail's maximum health to a specific number."
healthmultiplier(float) : "Health Multiply" : 1 : "Multiply the nail's default maximum health by this number."
unremovable(choices) : "Unremovable" : 0 : "Set to yes to make this nail unremovable by players." =
[ [
1 : "Yes" 1 : "Yes"
0 : "No" 0 : "No"
] ]
// Inputs
input unlockclass(string) : "Forces a class to be unlocked."
input lockclass(string) : "Forces a class to be locked."
input setbossesenabled(integer) : "Enables or disables boss zombies."
// Outputs
output OnClassUnlocked(void) : "Called when the class we're watching's class is unlocked by the game. This output isn't called if the class is unlocked by any logic_classunlock entities, only by the game."
]
@PointClass studio("models/crossbow_bolt.mdl") base(Targetname) = prop_nail : "ZS: Allows you to manually place nails."
[
// Keys
healthoverride(integer) : "Health Override" : 210 : "Sets the nail's maximum health to a specific number."
healthmultiplier(float) : "Health Multiply" : 1 : "Multiply the nail's default maximum health by this number."
unremovable(choices) : "Unremovable" : 0 : "Set to yes to make this nail unremovable by players." =
[
1 : "Yes"
0 : "No"
]
// Inputs
input sethealth(integer) : "Sets the nail's remaining health." input sethealth(integer) : "Sets the nail's remaining health."
input attachto(string) : "Parent to this entity." input attachto(string) : "Parent to this entity."
input nailto(string) : "Nail to this entity. Use attachto first and then this to weld the two. Use 'worldspawn' here to weld to the world." input nailto(string) : "Nail to this entity. Use attachto first and then this to weld the two. Use 'worldspawn' here to weld to the world."
@ -394,42 +426,47 @@
@PointClass studio("models/Items/BoxMRounds.mdl") base(Targetname, Angles) = prop_ammo : "ZS: Game Specific Ammo." @PointClass studio("models/Items/BoxMRounds.mdl") base(Targetname, Angles) = prop_ammo : "ZS: Game Specific Ammo."
[ [
ammotype(choices) : "Ammo Type" : "pistol" : "Ammo type this entity becomes" = // Keys
ammotype(choices) : "Ammo Type" : "pistol" : "Ammo type this entity becomes" =
[ [
"pistol" : "Pistol" "pistol" : "Pistol"
"smg1" : "Sub-Machine Gun" "smg1" : "Sub-Machine Gun"
"ar2" : "Assault Rifle" "ar2" : "Assault Rifle"
"pulse" : "Pulse" "pulse" : "Pulse"
"buckshot" : "Shotgun" "buckshot" : "Shotgun"
"357" : "Rifle" "357" : "Rifle"
"XBowBolt" : "Crossbow Bolts" "XBowBolt" : "Crossbow Bolts"
"grenade" : "Grenades" "grenade" : "Grenades"
"SniperRound" : "Barricade Boards" "SniperRound" : "Barricade Boards"
"sniperpenetratedround" : "Det-Packs" "sniperpenetratedround" : "Det-Packs"
"Battery" : "Medical Ammo" "Battery" : "Medical Ammo"
"striderminigun" : "Message Beacons" "striderminigun" : "Message Beacons"
"GaussEnergy" : "Nails" "GaussEnergy" : "Nails"
"stone" : "Stones" "stone" : "Stones"
"thumper" : "Turrets" "thumper" : "Turrets"
] ]
amount(integer) : "Amount" : 0 : "Amount of ammo that collecting this item gives" amount(integer) : "Amount" : 0 : "Amount of ammo that collecting this item gives"
] ]
@PointClass studio("models/weapons/w_irifle.mdl") base(Targetname, Angles) = prop_weapon : "ZS: Game Specific Weapon." @PointClass studio("models/weapons/w_irifle.mdl") base(Targetname, Angles) = prop_weapon : "ZS: Game Specific Weapon."
[ [
weapontype(string) : "weapon_type" : "weapon_zs_m4" : "Weapon type this entity becomes" // Keys
weapontype(string) : "weapon_type" : "weapon_zs_m4" : "Weapon type this entity becomes"
] ]
@PointClass base(Targetname) sphere( range ) = point_worldhint : "ZS: Allows you to create 3D hints and information tags." @PointClass base(Targetname) sphere( range ) = point_worldhint : "ZS: Allows you to create 3D hints and information tags."
[ [
hint(string) : "Hint" : " " : "The hint to display." // Keys
viewer(choices) : "Seen By" : 0 : "The team that can view us." = hint(string) : "Hint" : " " : "The hint to display."
viewer(choices) : "Seen By" : 0 : "The team that can view us." =
[ [
"-1" : "Disabled" "-1" : "Disabled"
"0" : "Everyone" "0" : "Everyone"
"3" : "Zombies" "3" : "Zombies"
"4" : "Humans" "4" : "Humans"
] ]
range(integer) : "Range" : 0 : "The range from the player's camera we must be in to see this hint. It can also be 0 for infinite." range(integer) : "Range" : 0 : "The range from the player's camera we must be in to see this hint. It can also be 0 for infinite."
// Inputs // Inputs
input sethint(string) : "Sets the hint to display." input sethint(string) : "Sets the hint to display."
input setviewer(integer) : "Sets the team that can view us. Use 0 for everyone, -1 for no one (inactive), 3 for zombie, and 4 for human." input setviewer(integer) : "Sets the team that can view us. Use 0 for everyone, -1 for no one (inactive), 3 for zombie, and 4 for human."
@ -438,47 +475,46 @@
@PointClass base(Targetname) = prop_playergib : "ZS: Allows you to manually place gibs." @PointClass base(Targetname) = prop_playergib : "ZS: Allows you to manually place gibs."
[ [
// "models/gibs/HGIBS.mdl" // Keys
// "models/gibs/HGIBS_spine.mdl"
// "models/gibs/HGIBS_rib.mdl"
// "models/gibs/HGIBS_scapula.mdl"
// "models/gibs/antlion_gib_medium_2.mdl"
// "models/gibs/Antlion_gib_Large_1.mdl"
// "models/gibs/Strider_Gib4.mdl"
gibtype(choices) : "Gib Type" : 1 : "Overrides the gib's type." = gibtype(choices) : "Gib Type" : 1 : "Overrides the gib's type." =
[ [
1 : "Skull" 1 : "Skull" // "models/gibs/HGIBS.mdl"
2 : "Spine" 2 : "Spine" // "models/gibs/HGIBS_spine.mdl"
3 : "Rib" 3 : "Rib" // "models/gibs/HGIBS_rib.mdl"
4 : "Scapula" 4 : "Scapula" // "models/gibs/HGIBS_scapula.mdl"
7 : "Small Chunk" 7 : "Small Chunk" // "models/gibs/antlion_gib_medium_2.mdl"
5 : "Medium Chunk" 5 : "Medium Chunk" // "models/gibs/Antlion_gib_Large_1.mdl"
6 : "Large Chunk" 6 : "Large Chunk" // "models/gibs/Strider_Gib4.mdl"
] ]
lifetime(integer) : "Lifetime" : 0 : "Overrides how long for this gib should live. 0 for never automatically remove." lifetime(integer) : "Lifetime" : 0 : "Overrides how long for this gib should live. 0 for never automatically remove."
] ]
@PointClass base(Targetname) = logic_winlose : "ZS: When activated, this will end the round immediately, with the specified outcome." @PointClass base(Targetname) = logic_winlose : "ZS: When activated, this will end the round immediately, with the specified outcome."
[ [
// Inputs // Inputs
input win(void) : "Humans win the game, map over." input win(void) : "Humans win the game, map over."
input lose(void) : "Humans lose the game, map over." input lose(void) : "Humans lose the game, map over."
// Outputs // Outputs
output onwin(void) : "Called when humans win even if not by this entity." output onwin(void) : "Called when humans win even if not by this entity."
output onlose(void) : "Called when humans lose even if not by this entity." output onlose(void) : "Called when humans lose even if not by this entity."
] ]
@PointClass base(Targetname) = logic_infliction : "ZS: Watches for the specified infliction level." @PointClass base(Targetname) = logic_infliction : "ZS: Watches for the specified infliction level."
[ [
// Keys
infliction(float) : "Infliction" : "0.5" : "Defines infliction to watch for (float between 0.0 - 1.0)." infliction(float) : "Infliction" : "0.5" : "Defines infliction to watch for (float between 0.0 - 1.0)."
// Outputs // Outputs
output OnInflictionReached(void) : "Called when the specified infliction level has been reached." output OnInflictionReached(void) : "Called when the specified infliction level has been reached."
output OnLastHuman(void) : "Called when there is one person alive. !caller and !activator are both the last human's entity." output OnLastHuman(void) : "Called when there is one person alive. !caller and !activator are both the last human's entity."
] ]
@PointClass base(Targetname) = logic_waves : "ZS: Watches for the start of the specified wave." @PointClass base(Targetname) = logic_waves : "ZS: Watches for the start of the specified wave."
[ [
wave(integer) : "Wave" : 1 : "Any On* outputs will watch for this wave. Use -1 for all waves." // Keys
wave(integer) : "Wave" : 1 : "Any On* outputs will watch for this wave. Use -1 for all waves."
// Inputs // Inputs
input AdvanceWave(void) : "Advances to the next wave and sets the wave to active." input AdvanceWave(void) : "Advances to the next wave and sets the wave to active."
input EndWave(void) : "Sets the time that the wave ends to this very moment." input EndWave(void) : "Sets the time that the wave ends to this very moment."
@ -487,20 +523,24 @@
input SetWaves(integer) : "Sets the total amount of waves to the number specified. Don't worry about class unlocks, the gamemode does not use the max waves value directly." input SetWaves(integer) : "Sets the total amount of waves to the number specified. Don't worry about class unlocks, the gamemode does not use the max waves value directly."
input SetWaveStart(integer) : "Sets the time that the wave will start to TimeNow + <time>. You should use this instead of delayed entity inputs." input SetWaveStart(integer) : "Sets the time that the wave will start to TimeNow + <time>. You should use this instead of delayed entity inputs."
input SetWaveEnd(integer) : "Sets the time that the wave will end to TimeNow + <time>. You should use this instead of delayed entity inputs." input SetWaveEnd(integer) : "Sets the time that the wave will end to TimeNow + <time>. You should use this instead of delayed entity inputs."
// Outputs // Outputs
output OnWaveStart(void) : "Called when the specified wave has started." output OnWaveStart(void) : "Called when the specified wave has started."
output OnWaveEnd(void) : "Called when the specified wave has ended." output OnWaveEnd(void) : "Called when the specified wave has ended."
] ]
@PointClass base(Targetname) = point_zsmessage : "ZS: Custom message that is displayed with the specified message." @PointClass base(Targetname) = point_zsmessage : "ZS: Custom message that is displayed with the specified message."
[ [
team(choices) : "Team" : "all" : "Filter which team gets the message." = // Keys
team(choices) : "Team" : "all" : "Filter which team gets the message." =
[ [
"zombie" : "Zombies" "zombie" : "Zombies"
"human" : "Humans" "human" : "Humans"
"private" : "Activator Only" "private" : "Activator Only"
"all" : "All" "all" : "All"
] ]
// Inputs
input message(string) : "What to display. Supports the markup library." input message(string) : "What to display. Supports the markup library."
input sethumanhudmessage(string) : "Set a message to display in the human wave hud." input sethumanhudmessage(string) : "Set a message to display in the human wave hud."
input setzombiehudmessage(string) : "Set a message to display in the zombie wave hud." input setzombiehudmessage(string) : "Set a message to display in the zombie wave hud."
@ -508,7 +548,7 @@
input clearzombiehudmessage(void) : "Clear the message to display in the zombie wave hud." input clearzombiehudmessage(void) : "Clear the message to display in the zombie wave hud."
] ]
@PointClass base(Targetname) = logic_pantsmode : "ZS: When activated, this will set the special Pants Mode on." @PointClass base(Targetname) = logic_pantsmode : "ZS: When activated, this will set the special Pants Mode on."
[ [
// Inputs // Inputs
input enable(void) : "Enables pants mode." input enable(void) : "Enables pants mode."
@ -517,20 +557,21 @@
@PointClass base(Targetname) = info_gamehud : "ZS: Allows you to control a custom message that appears on the wave HUD for each team. Can be used to display objectives or other information." @PointClass base(Targetname) = info_gamehud : "ZS: Allows you to control a custom message that appears on the wave HUD for each team. Can be used to display objectives or other information."
[ [
message(string) : "Message" : " " : "The hint to display." // Keys
viewer(choices) : "Seen By" : 0 : "The team that can view us." = message(string) : "Message" : " " : "The hint to display."
viewer(choices) : "Seen By" : 0 : "The team that can view us." =
[ [
"-1" : "Disabled" "-1" : "Disabled"
"0" : "Everyone" "0" : "Everyone"
"3" : "Zombies" "3" : "Zombies"
"4" : "Humans" "4" : "Humans"
] ]
// Inputs // Inputs
input setmessage(string) : "Sets the hint to display." input setmessage(string) : "Sets the hint to display."
input setviewer(integer) : "Sets the team that can view us. Use 0 for everyone, -1 for no one (inactive), 3 for zombie, and 4 for human." input setviewer(integer) : "Sets the team that can view us. Use 0 for everyone, -1 for no one (inactive), 3 for zombie, and 4 for human."
] ]
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// Gamemode - Worth Weapons + Items /////////////////////////////////////////////// // Gamemode - Worth Weapons + Items ///////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
@ -741,7 +782,7 @@
"A hunting rifle that deals high amount of damage at the cost of slow reload speed. " [] "A hunting rifle that deals high amount of damage at the cost of slow reload speed. " []
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
// Gamemode - Crafting Weapons //|||||//////////////////////////////////////////// // Gamemode - Crafting Weapons ////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
@PointClass base(Weapon) studio("models/props_c17/oildrum001_explosive.mdl") = weapon_zs_megamasher : "Craftable Weapon.\n"+ @PointClass base(Weapon) studio("models/props_c17/oildrum001_explosive.mdl") = weapon_zs_megamasher : "Craftable Weapon.\n"+