Counter-Strike: Condition Zero Deleted Scenes FGD: Difference between revisions
Jump to navigation
Jump to search
Tip:Select the beginning of the line (usually the "//" comment) by clicking it, scroll down then hold ⇧ Shift, and click at the end of the line to select all.
Tag: Undo |
(Updated to the most recent version of the FGD (1.1.6 ). Changed POV to 3rd person. in the article itself. Not the FGD. Removed POV edit suggestion) |
||
Line 2: | Line 2: | ||
[[Category:FGD]] | [[Category:FGD]] | ||
[[Category:Custom FGDs]] | [[Category:Custom FGDs]] | ||
This FGD is considered to be a work-in-progress, while it does have all the functionality to make maps to the same quality of the main game, there might be some wonky stuff, mistakes or non-complete information about entities. There are still keys that are not fully understood and might not be understood until more experimentation is done. | |||
This FGD is considered to be a work-in-progress, while it does have all the functionality to make maps to the same quality of the main game, there might be some wonky stuff, mistakes or non-complete information about entities. There are still keys that | |||
=Important= | =Important= | ||
Here are some things to remember when choosing to use this FGD. Alternatively, you can pick this FGD up [https://twhl.info/vault/view/6501 from TWHL vault]. | Here are some things to remember when choosing to use this FGD. Alternatively, you can pick this FGD up [https://twhl.info/vault/view/6501 from TWHL vault]. | ||
* Hammer 3.5 only supports entity classnames with up to 32 characters. Therefore, This version of the CS:CZDS FGD file is not compatible with the default Hammer Editor that is provided with HL1. In this case, | * Hammer 3.5 only supports entity classnames with up to 32 characters. Therefore, This version of the CS:CZDS FGD file is not compatible with the default Hammer Editor that is provided with HL1. In this case, It is suggested to use {{jack|4.1}}, an alternative to Hammer for GoldSource. The program supports Windows and Linux and adds a number of features for level editing and modding. If you still want to use Hammer, you should refer to this [[Condition_Zero_Deleted_Scenes.fgd|page]] and just add in the missing content. | ||
* This is | * This is the most up-to-date FGD for CS:CZDS. It is an ongoing effort to bring users the best version of this FGD. If there are any bugs or things missing, please contact me and I will do my best to update it in a timely manner. | ||
* There are fixes provided in the FGD for the most common bugs in the game. | * There are fixes provided in the FGD for the most common bugs in the game. | ||
* If you are using J.A.C.K, the help button has a lot of information on usage of the entities. | * If you are using J.A.C.K, the help button has a lot of information on usage of the entities. | ||
* There is a section of the FGD dedicated to things that are slightly janky. This space is | * There is a section of the FGD dedicated to things that are slightly janky. This space is a space to document oddities within the game. | ||
=FGD= | =FGD= | ||
Line 23: | Line 21: | ||
// When I have more information or something to fix. So please check back as there might be an update waiting for you! | // When I have more information or something to fix. So please check back as there might be an update waiting for you! | ||
// There are most likely a lot of missing things and undocumented stuff. I've tried to include as much information on the entities in the help section of JACK. | // There are most likely a lot of missing things and undocumented stuff. I've tried to include as much information on the entities in the help section of JACK. | ||
// If anyone who was a dev of CS:CZDS and has any knowledge of any data or insights into the specifics of it, please contact me ('I have a plan') at the TWHL forum/discord. | // If anyone who was a dev of CS:CZDS and has any knowledge of any data or insights into the specifics of it, please contact me ('I have a plan') at the TWHL forum/discord. | ||
// | |||
// | // | ||
// :A WORD FROM CASTLE: FORMER LD FOR RITUAL ENTERTAINMENT: | // :A WORD FROM CASTLE: FORMER LD FOR RITUAL ENTERTAINMENT: | ||
Line 44: | Line 43: | ||
// :DETAILS AND NOTES: | // :DETAILS AND NOTES: | ||
// | // | ||
// Release version: 1.1. | // Release version: 1.1.6 'Another One' Edition | ||
// Release date: | // Release date: 16/7/2023 | ||
// Authors: cs_expert-tom793 : 小冬冬 / Dong : I have a plan : Castle | // Authors: cs_expert-tom793 : 小冬冬 / Dong : I have a plan : Castle | ||
// | // | ||
Line 62: | Line 61: | ||
//!NOTE! CBaseTrigger Still trying to work out what they do!! | //!NOTE! CBaseTrigger Still trying to work out what they do!! | ||
//> CBaseTrigger (Things like trigger_once, trigger_multiple, etc...) >> QUEARY TARGET NEEDS TO BE SET FOR THESE TO WORK!!!! | //> CBaseTrigger (Things like trigger_once, trigger_multiple, etc...) >> QUEARY TARGET NEEDS TO BE SET FOR THESE TO WORK!!!! | ||
// - isdead > ??? something about a deadflag, could be a normal trigger condition ??? | // - isdead > ??? something about a deadflag, could be a normal trigger condition ??? | ||
// - hasclassname > if classname is 'xyz', trigger this (this one is a bit tricky. >> SEEMS TO WORK SOMETIMES WITH Terrorist_xyz) | // - hasclassname > if classname is 'xyz', trigger this (this one is a bit tricky. >> SEEMS TO WORK SOMETIMES WITH Terrorist_xyz) | ||
Line 113: | Line 109: | ||
// You will not be able to see the entity next time you | // You will not be able to see the entity next time you | ||
// load it on Hammer. Next time you save, the origin will be erased. | // load it on Hammer. Next time you save, the origin will be erased. | ||
// | // | ||
// :INFO_TEXLIGHTS: | // :INFO_TEXLIGHTS: | ||
Line 140: | Line 128: | ||
// since there's a bug where cameras still use the player position for visibility testing this is used to get things to still render | // since there's a bug where cameras still use the player position for visibility testing this is used to get things to still render | ||
// if an entity isn't including in visibility testing it always gets added to the list of visible entities' -SOLOKILLER | // if an entity isn't including in visibility testing it always gets added to the list of visible entities' -SOLOKILLER | ||
// | // | ||
// :TRIGGER_ZIPLINE (AKA FANCY TELEPORTER): | // :TRIGGER_ZIPLINE (AKA FANCY TELEPORTER): | ||
Line 193: | Line 175: | ||
// :MAPTIER KEY: | // :MAPTIER KEY: | ||
// | // | ||
// This is an interesting key. The code suggests that, depending on the | // This is an interesting key. The code suggests that, depending on the number given, enemy behavior and schedules are changed. | ||
// | // | ||
// :ENV_PARTICLE CRASH: | // :ENV_PARTICLE CRASH: | ||
Line 217: | Line 199: | ||
// > rendermode : 2 | // > rendermode : 2 | ||
// > material : 7 | // > material : 7 | ||
// | // | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
Line 235: | Line 215: | ||
// | // | ||
// !NOTE! > is used to tag important things! Feel free to add your own! | // !NOTE! > is used to tag important things! Feel free to add your own! | ||
// | |||
// > 16/7/2023 1.1.6 'Another One' Edition | |||
// | |||
// - !!NOTE!! For the sake of parity between the original game maps and user maps. monster_terrorist will remain. One can manually change it to monster_t for a shorter list in JACK. | |||
// Hammer will have to be monster_t due to 32 bit limits on ent names. | |||
// - Added all weapon_ tools and ambient_generic to game_player_equip | |||
// - Added "killtarget" KV to "trigger_usetool" | |||
// - Added all music tracks to "Trigger_cdaudio" | |||
// - Rewrote "Viewcone Degree" KV description in the "Trigger" baseclass to more accurately discribe how to use it. | |||
// - Fixed and added more info to Func_mortar_zone. | |||
// - Added model selections for Monster_apache to better align with the ingame decompiles. | |||
// - Changed "Clips" from ammo entites to either magazines or boxes respectively. | |||
// | // | ||
// > 20/4/2022 1.1.5 'A lil update' Edition | // > 20/4/2022 1.1.5 'A lil update' Edition | ||
Line 376: | Line 368: | ||
// | // | ||
// - [] trigger_endmission might have a use only spawnflag > check line 124343 | // - [] trigger_endmission might have a use only spawnflag > check line 124343 | ||
// - [] Still working on `weapons` > 64 is | // - [] Still working on `weapons` > 64 is no weps and no ammo | ||
// | // | ||
// | // | ||
Line 389: | Line 381: | ||
// - [?] Figure out what flag 2 does on trigger_sequence. | // - [?] Figure out what flag 2 does on trigger_sequence. | ||
// - [?] Fix 'weapon' and 'behavior' key choices on BaseClass Monster to properly reflect code. < I don't know if this works at all... | // - [?] Fix 'weapon' and 'behavior' key choices on BaseClass Monster to properly reflect code. < I don't know if this works at all... | ||
// - [] BASECLASS Monster is overriding the monstermaker "cyclic" discription. Need to seperate. | |||
// - [] Find the differences between the Trigger_tool > info_camera > info_landmark. If this functions as a waypoint to store the player location in reletive to whatever sight line thing in the trigger_once "look at key" | |||
// | // | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
Line 422: | Line 416: | ||
skyname(sky) : "Environment map (cl_skyname)" : : "Choose what sky image you want.'" | skyname(sky) : "Environment map (cl_skyname)" : : "Choose what sky image you want.'" | ||
sounds(integer) : "CD track to play" : : "CD track to play when the level begins. Not working." | sounds(integer) : "CD track to play" : : "CD track to play when the level begins. Not working." | ||
light(integer) : "Default light level" : : " | light(integer) : "Default light level" : : "" | ||
WaveHeight(integer) : "Default Wave Height" : : "Set the default wave height here. A func_water will overide what is set here." | WaveHeight(integer) : "Default Wave Height" : : "Set the default wave height here. A func_water will overide what is set here." | ||
MaxRange(integer) : "Max viewable distance" : 8192 : "Maximum distance the world is rendered at. Can be changed for better performance." | MaxRange(integer) : "Max viewable distance" : 8192 : "Maximum distance the world is rendered at. Can be changed for better performance." | ||
chaptertitle(string) : "Chapter Title Message" : : "Text displayed when entering the level." | chaptertitle(string) : "Chapter Title Message" : : "Text displayed when entering the level." | ||
lightmultiplier(integer) : "Light multiplier" : : "Sets a global illumination on items, ammo and weapons. | lightmultiplier(integer) : "Light multiplier" : : "Sets a global illumination on items, ammo and weapons. Pretty much anything that is a model." | ||
radfile(string) : "Radfile" : : "Specifies a xyz.RAD file to use." | radfile(string) : "Radfile" : : "Specifies a xyz.RAD file to use." | ||
mapversion(integer) : "Map Version" : 220 : "Not sure what this does. Could be something to do with the way map versions were compiled from UBERRadiant." | mapversion(integer) : "Map Version" : 220 : "Not sure what this does. Could be something to do with the way map versions were compiled from UBERRadiant." | ||
Line 454: | Line 448: | ||
@BaseClass studio() = FuncAddition | @BaseClass studio() = FuncAddition | ||
[ | [ | ||
model(studio) : "Model (if not brush)" : : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | model(studio) : "Model (if not brush)" : "" : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | ||
body(integer) : "Body (if not brush)" : : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | body(integer) : "Body (if not brush)" : "" : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | ||
origin(string) : "Origin (XYZ) (if not brush)" : : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | origin(string) : "Origin (XYZ) (if not brush)" : "" : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | ||
zhlt_usemodel(string) : "Model Stealer" : : "Input the name of an item_generic that has a model, and it should steal the model from it to be used. Can also be used with brush entities." | zhlt_usemodel(string) : "Model Stealer" : "" : "Input the name of an item_generic that has a model, and it should steal the model from it to be used. Can also be used with brush entities." | ||
style(choices) : "Texlight style" : 0 : "Set a style of lighting for the texlight. Can be applied to any brush based entity." = | style(choices) : "Texlight style" : 0 : "Set a style of lighting for the texlight. Can be applied to any brush based entity." = | ||
[ | [ | ||
Line 479: | Line 473: | ||
@BaseClass base(FuncAddition) = Func2 | @BaseClass base(FuncAddition) = Func2 | ||
[ | [ | ||
skin(integer) : "Skin (if not brush)" : : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | skin(integer) : "Skin (if not brush)" : "" : "Refer to the 'COVERTING BRUSH ENTITIES' section of this FGD." | ||
] | ] | ||
@BaseClass = BeamStartEnd | @BaseClass = BeamStartEnd | ||
[ | [ | ||
LightningStart(target_destination) : "Start Entity" : : "The name of an entity to be used as the starting point for the beam. If undefined, the beam will choose a surface within the Radius to use as the starting point. (Note that if the Start Entity is undefined, the Ending Entity must also be undefined.)" | LightningStart(target_destination) : "Start Entity" : "" : "The name of an entity to be used as the starting point for the beam. If undefined, the beam will choose a surface within the Radius to use as the starting point. (Note that if the Start Entity is undefined, the Ending Entity must also be undefined.)" | ||
LightningEnd(target_destination) : "Ending Entity" : : "The name of an entity to be used as the end point for the beam. If undefined, the beam will choose a surface within the Radius to use as the end point." | LightningEnd(target_destination) : "Ending Entity" : "" : "The name of an entity to be used as the end point for the beam. If undefined, the beam will choose a surface within the Radius to use as the end point." | ||
] | ] | ||
@BaseClass = Global | @BaseClass = Global | ||
[ | [ | ||
globalname(string) : "Global Entity Name" : : "Global name of an entity, allows to have one entity in multiple maps (e.g. elevator in map1 and map2 have the same Global Entity Name which tells the engine to treat those entities as one single entity, so all elevator settings, positions, actions e.t.c. are copied to another map in map transitions)." | globalname(string) : "Global Entity Name" : "" : "Global name of an entity, allows to have one entity in multiple maps (e.g. elevator in map1 and map2 have the same Global Entity Name which tells the engine to treat those entities as one single entity, so all elevator settings, positions, actions e.t.c. are copied to another map in map transitions)." | ||
] | ] | ||
@BaseClass studio() = ModelFile | @BaseClass studio() = ModelFile | ||
[ | [ | ||
model(studio) : "Model" : : "Select an Model file to use." | model(studio) : "Model" : "" : "Select an Model file to use." | ||
body(integer) : "Body" : : "Input the value for the bodygroup to use. (Use SOLOKILLERS HLMV for the value)." | body(integer) : "Body" : "" : "Input the value for the bodygroup to use. (Use SOLOKILLERS HLMV for the value)." | ||
skin(integer) : "Skin" : : "Input the value for the skin to use. (Use SOLOKILLERS HLMV for the value)." | skin(integer) : "Skin" : "" : "Input the value for the skin to use. (Use SOLOKILLERS HLMV for the value)." | ||
head(integer) : "Head" : : "Input the value for the head to use. (Use SOLOKILLERS HLMV for the value)." | head(integer) : "Head" : "" : "Input the value for the head to use. (Use SOLOKILLERS HLMV for the value)." | ||
] | ] | ||
Line 518: | Line 512: | ||
] | ] | ||
zhlt_embedlightmapresolution(integer) : "Embed Light Map Resolution" : "" : "Set to a power of 2 number. Controls the resolution of embedded lightmaps on transparent textures (see keyvalue above). Higher value for better optimization. Default and recommended value is 4." | zhlt_embedlightmapresolution(integer) : "Embed Light Map Resolution" : "" : "Set to a power of 2 number. Controls the resolution of embedded lightmaps on transparent textures (see keyvalue above). Higher value for better optimization. Default and recommended value is 4." | ||
light_origin(string) : "Light Origin (Zhlt 2.2+)" : : "Set optional light placement. Can be applied to any brush based entity. light_origin can be used to place a brush based entity to a new location for the purposes of lighting. Typical use requires placing an info_target at the relevant location, and then setting the light_origin to point the info_target's name. If the entity is opaque, it will also cast shadows from that location in addition to being lit as if it were there." | light_origin(string) : "Light Origin (Zhlt 2.2+)" : "" : "Set optional light placement. Can be applied to any brush based entity. light_origin can be used to place a brush based entity to a new location for the purposes of lighting. Typical use requires placing an info_target at the relevant location, and then setting the light_origin to point the info_target's name. If the entity is opaque, it will also cast shadows from that location in addition to being lit as if it were there." | ||
zhlt_copylight(string) : "Copy Light Information" : : "You can specify a name of an entity to copy it's lightning values. It can be a model-based entity, Brush entity or a simply info_target" | zhlt_copylight(string) : "Copy Light Information" : "" : "You can specify a name of an entity to copy it's lightning values. It can be a model-based entity, Brush entity or a simply info_target" | ||
] | ] | ||
Line 564: | Line 558: | ||
@BaseClass = Master | @BaseClass = Master | ||
[ | [ | ||
master(target_destination) : "Master" : : "The name of a multisource (or game_team_master) entity. A master must usually be active in order for the entity to work. Thus they act almost like an on/off switch, in their simplest form, and like an AND gate in the case of the multisource." | master(target_destination) : "Master" : "" : "The name of a multisource (or game_team_master) entity. A master must usually be active in order for the entity to work. Thus they act almost like an on/off switch, in their simplest form, and like an AND gate in the case of the multisource." | ||
] | ] | ||
@BaseClass = Target | @BaseClass = Target | ||
[ | [ | ||
target(target_destination) : "Target" : : "When an entity is activated, it triggers the entity with the name specified by Target." | target(target_destination) : "Target" : "" : "When an entity is activated, it triggers the entity with the name specified by Target." | ||
] | ] | ||
@BaseClass = Targetname | @BaseClass = Targetname | ||
[ | [ | ||
targetname(target_source) : "Name" : : "Property used to identify entities." | targetname(target_source) : "Name" : "" : "Property used to identify entities." | ||
] | ] | ||
@BaseClass = Classtype | @BaseClass = Classtype | ||
[ | [ | ||
classtype(choices) : "Class type" : : "This is for selecting the faction that the monster or NPC is on. Great for infighting | classtype(choices) : "Class type" : "" : "This is for selecting the faction that the monster or NPC is on. Great for infighting monsters. Classes are: TS1/TS2/CTS1/CTS2/TH/CTH/TVIP/CTVIP/CIV." = | ||
[ | [ | ||
"" : "No classtype" | "" : "No classtype" | ||
Line 596: | Line 590: | ||
@BaseClass base(Target) = Targetx | @BaseClass base(Target) = Targetx | ||
[ | [ | ||
delay(string) : "Delay before trigger" : " | delay(string) : "Delay before trigger" : "" : "Usually the time in seconds before an entity should trigger its target (after being triggered itself). Under other SmartEdit names, delay might also be the time to wait before performing some other action." | ||
killtarget(target_destination) : "KillTarget" : : "When an entity is triggered, it will remove from the game the entity specified by this property." | killtarget(target_destination) : "KillTarget" : "" : "When an entity is triggered, it will remove from the game the entity specified by this property." | ||
] | ] | ||
Line 607: | Line 601: | ||
@BaseClass base(Target, Targetname, RenderFields, Angles) color(0 200 200) = Monster | @BaseClass base(Target, Targetname, RenderFields, Angles) color(0 200 200) = Monster | ||
[ | [ | ||
forcedtarget(target_destination) : "Forced Target" : : "Forces the monster to aggressively persue and kill what ever target name is input." | forcedtarget(target_destination) : "Forced Target" : "" : "Forces the monster to aggressively persue and kill what ever target name is input." | ||
TriggerTarget(target_destination) : "TriggerTarget" : : "The event to trigger when the TriggerCondition is met. Used by monsters." | TriggerTarget(target_destination) : "TriggerTarget" : "" : "The event to trigger when the TriggerCondition is met. Used by monsters." | ||
TriggerCondition(Choices) : "Trigger Condition" : "" : "This controls the condition under which a monster will trigger its TriggerTarget. The options are:" = | TriggerCondition(Choices) : "Trigger Condition" : "" : "This controls the condition under which a monster will trigger its TriggerTarget. The options are:" = | ||
[ | [ | ||
Line 634: | Line 628: | ||
] | ] | ||
deathangle(integer) : "Death Angle" : "" : "The angle at which the monster will face on death." | deathangle(integer) : "Death Angle" : "" : "The angle at which the monster will face on death." | ||
deathanim(string) : "Death animation name" : : "Choose a specific animation that will play on death." | deathanim(string) : "Death animation name" : "" : "Choose a specific animation that will play on death." | ||
deathtrigger(target_destination) : "Death Trigger" : : "Choose a target to trigger on death." | deathtrigger(target_destination) : "Death Trigger" : "" : "Choose a target to trigger on death." | ||
language(choices) : "language (AM, SP, JA)" : "" : "Choose a language that the monster or NPC will speak. Can also accept a custom suffix defined in a .SEQ file." = | language(choices) : "language (AM, SP, JA)" : "" : "Choose a language that the monster or NPC will speak. Can also accept a custom suffix defined in a .SEQ file." = | ||
[ | [ | ||
Line 675: | Line 669: | ||
] | ] | ||
idleanim(string) : "Idle Animation Name" : "" : "input the idle animation for the monster or NPC to use. (Use SOLOKILLERS HLMV for the value)" | idleanim(string) : "Idle Animation Name" : "" : "input the idle animation for the monster or NPC to use. (Use SOLOKILLERS HLMV for the value)" | ||
usetarget(target_destination) : "Use Target" : "" : "If left blank, the Monster or NPC will can be a follower. If not, It will trigger the entity with the same name as what is filled in." | usetarget(target_destination) : "Use Target" : "" : "If left blank, the Monster or NPC will can be a follower. If not, It will trigger the entity with the same name as what is filled in." | ||
alertable(choices) : "Alertable" : "" : "Choose if the enemy is immediatly alerted or not." = | alertable(choices) : "Alertable" : "" : "Choose if the enemy is immediatly alerted or not." = | ||
Line 683: | Line 675: | ||
1 : "Yes" | 1 : "Yes" | ||
] | ] | ||
weapons(choices) : "Weapons" : : "CASTLE> This was used to override the monsters defined weapon attributes. Still not sure if this is sound." = | weapons(choices) : "Weapons" : "" : "CASTLE> This was used to override the monsters defined weapon attributes. Still not sure if this is sound." = | ||
[ | [ | ||
1 : "1" | 1 : "1" | ||
Line 691: | Line 683: | ||
16 : "16" | 16 : "16" | ||
32 : "32" | 32 : "32" | ||
64 : " | 64 : "No weapons" : "Makes the monster hold nothing. When aggro, they constantly reload due to having 0 ammo at all times." | ||
128 : "128" : "s" | 128 : "128" : "s" | ||
256 : "256" | 256 : "256" | ||
Line 700: | Line 692: | ||
1 : "Yes" | 1 : "Yes" | ||
] | ] | ||
alertradius(integer) : "Alert Radius" : : "Supposedly, Sets the alert radius for the Terrorists. Not sure if working" | alertradius(integer) : "Alert Radius" : "" : "Supposedly, Sets the alert radius for the Terrorists. Not sure if working" | ||
behavior(choices) : "Behavior" : : "CASTLE> This was used to override the behavior of the set monster_T/CT_xyz class, making them adopt different movement and schedules, regardless of the weapon they have." = | behavior(choices) : "Behavior" : "" : "CASTLE> This was used to override the behavior of the set monster_T/CT_xyz class, making them adopt different movement and schedules, regardless of the weapon they have." = | ||
[ | [ | ||
0 : "PISTOL" | 0 : "PISTOL" | ||
Line 720: | Line 712: | ||
1 : "No" | 1 : "No" | ||
] | ] | ||
dontfall(integer) : "Don't Fall to Floor" : : "Suspends the monster in the air." | dontfall(integer) : "Don't Fall to Floor" : "" : "Suspends the monster in the air." | ||
dropchance( | dropchance(integer) : "Chance of Drop" : "" : "Item drop chance. Put a value between 0.0 and 1.0." | ||
dropitem(choices) : "Drop" : "" : "Define the item that drops from the NPC or monster. Make sure the item you spawn is actually in the map first, some items WILL cause an error and throw you back to the menu." = | dropitem(choices) : "Drop" : "" : "Define the item that drops from the NPC or monster. Make sure the item you spawn is actually in the map first, some items WILL cause an error and throw you back to the menu." = | ||
[ | [ | ||
Line 780: | Line 772: | ||
"item_antidote" : "Antidote" : "Spawn an antidote. Leftover code from HL1. Not sure if it functions." | "item_antidote" : "Antidote" : "Spawn an antidote. Leftover code from HL1. Not sure if it functions." | ||
] | ] | ||
weaponrange(integer) : "Weapon Range" : : "Defines the range (in units) that the Monster or NPC will attack the player at." | weaponrange(integer) : "Weapon Range" : "" : "Defines the range (in units) that the Monster or NPC will attack the player at." | ||
// poisoned(integer) : "Poisoned (?)" !WARNING! > CAUSES CRASH ON LEVEL LOAD | // poisoned(integer) : "Poisoned (?)" !WARNING! > CAUSES CRASH ON LEVEL LOAD | ||
pumped(choices) : "Pumped" : "" : "Not sure what this does. The code suggests it changes how the monster's health works." = | pumped(choices) : "Pumped" : "" : "Not sure what this does. The code suggests it changes how the monster's health works." = | ||
Line 803: | Line 795: | ||
@BaseClass base(Targetname, Classtype, Global, Target, RenderFields, Angles) = BaseTank | @BaseClass base(Targetname, Classtype, Global, Target, RenderFields, Angles) = BaseTank | ||
[ | [ | ||
master(target_destination) : "(Team) Master" : : "This version of the master keyvalue is mainly for use with 1009 team settings (game_team_master)." | master(target_destination) : "(Team) Master" : "" : "This version of the master keyvalue is mainly for use with 1009 team settings (game_team_master)." | ||
spawnflags(flags) = | spawnflags(flags) = | ||
[ | [ | ||
Line 834: | Line 826: | ||
4 : "Extra-large cone" | 4 : "Extra-large cone" | ||
] | ] | ||
minRange(string) : "Minimum target range" : " | minRange(string) : "Minimum target range" : "" : "Minimum range the target can be at for a non-player-controlled gun to fire." | ||
maxRange(string) : "Maximum target range" : " | maxRange(string) : "Maximum target range" : "" : "Maximum range the target can be at for a non-player-controlled gun to fire." | ||
_minlight(integer) : "Minimum light level" : | _minlight(integer) : "Minimum light level" : "" : "Brush entities only. Sets the minimum light level. Useful for when textures should always appear bright e.g. computer screens or holograms. Default is 0, max 1." | ||
] | ] | ||
Line 873: | Line 865: | ||
lip(integer) : "Lip" : "" : "Number of units left after move (the lip value is subtracted from the move distance)." | lip(integer) : "Lip" : "" : "Number of units left after move (the lip value is subtracted from the move distance)." | ||
dmg(integer) : "Damage inflicted when blocked" : "" : "Set the damage given to something if it blocks a door." | dmg(integer) : "Damage inflicted when blocked" : "" : "Set the damage given to something if it blocks a door." | ||
message(string) : "Message if triggered" : : "Set if the door fires a message. This key might not work." | message(string) : "Message if triggered" : "" : "Set if the door fires a message. This key might not work." | ||
netname(target_destination) : "Fire on Close" : : "Input a entity name that will be triggered when the door is closed. This key might not work." | netname(target_destination) : "Fire on Close" : "" : "Input a entity name that will be triggered when the door is closed. This key might not work." | ||
health(integer) : "Health (shoot open)" : "" : "With a non-zero value here, the door will have to be damaged to this extent to open. This key might not work." | health(integer) : "Health (shoot open)" : "" : "With a non-zero value here, the door will have to be damaged to this extent to open. This key might not work." | ||
spawnflags(flags) = | spawnflags(flags) = | ||
Line 959: | Line 951: | ||
@BaseClass size(-16 -16 -16, 16 16 16) base(Targetname, Angles) = gibshooterbase | @BaseClass size(-16 -16 -16, 16 16 16) base(Targetname, Angles) = gibshooterbase | ||
[ | [ | ||
m_iGibs(integer) : "Number of Gibs" : | m_iGibs(integer) : "Number of Gibs" : "" : "How many gibs to make." | ||
delay(string) : "Delay between shots" : " | delay(string) : "Delay between shots" : "" : "Delay (in seconds) between shots. If 0, all gibs shoot at once." | ||
m_flVelocity(string) : "Gib Velocity" : " | m_flVelocity(string) : "Gib Velocity" : "" : "How fast the gibs are fired." | ||
m_flVariance(string) : "Course Variance" : " | m_flVariance(string) : "Course Variance" : "" : "How much spread is added to the gibs." | ||
m_flGibLife(string) : "Gib Life" : " | m_flGibLife(string) : "Gib Life" : "" : "Time in seconds before the gibs disappear." | ||
bodygroup(integer) : "Bodygroup" : : "allows a specific bodygroup to be selected." | bodygroup(integer) : "Bodygroup" : "" : "allows a specific bodygroup to be selected." | ||
spawnflags(flags) = | spawnflags(flags) = | ||
[ | [ | ||
Line 991: | Line 983: | ||
12 : "Underwater" | 12 : "Underwater" | ||
] | ] | ||
pattern(string) : "Custom Appearance" : : "Use a string of letters to provide a custom light style. The property allows you to enter a string of letters from a to z, representing brightness. If you entered 'abcdefghihgfedcba' then the light would go from bright to dim and back again and then repeat. Complicating things, to use this feature, you must name the light. However, if you then use a trigger to activate it, then it will behave as a normal light." | pattern(string) : "Custom Appearance" : "" : "Use a string of letters to provide a custom light style. The property allows you to enter a string of letters from a to z, representing brightness. If you entered 'abcdefghihgfedcba' then the light would go from bright to dim and back again and then repeat. Complicating things, to use this feature, you must name the light. However, if you then use a trigger to activate it, then it will behave as a normal light." | ||
_fade(integer) : "Fade (ZHLT Only)" : 1 : "In the simplest words, it customizes light fading. '1.0' for normal fade, larger values for 'shorter' lights." | _fade(integer) : "Fade (ZHLT Only)" : 1 : "In the simplest words, it customizes light fading. '1.0' for normal fade, larger values for 'shorter' lights." | ||
_falloff(Choices) : "Falloff (ZHLT Only)" : 0 : "Changes the way that light is calculated. Inverse square is default. Linear creates collimated lighting, similar to that of a projector." = | _falloff(Choices) : "Falloff (ZHLT Only)" : 0 : "Changes the way that light is calculated. Inverse square is default. Linear creates collimated lighting, similar to that of a projector." = | ||
[ | [ | ||
Line 1,004: | Line 995: | ||
1 : "Initially dark" : 0 : "If enabled, the entity will need to be triggered to work." | 1 : "Initially dark" : 0 : "If enabled, the entity will need to be triggered to work." | ||
] | ] | ||
] | ] | ||
Line 1,064: | Line 1,046: | ||
] | ] | ||
rotation(integer) : "Spin amount" : 0 : "This is the amount in degrees the track will turn on its way up / down." | rotation(integer) : "Spin amount" : 0 : "This is the amount in degrees the track will turn on its way up / down." | ||
train(target_destination) : "Train to switch" : "The Name of the train that is using the track." | train(target_destination) : "Train to switch" : "" : "The Name of the train that is using the track." | ||
toptrack(target_destination) : "Top track" : "This is the Name of the last path_corner in the upper track." | toptrack(target_destination) : "Top track" : "" : "This is the Name of the last path_corner in the upper track." | ||
bottomtrack(target_destination) : "Bottom track" : "The Name of the first path_corner in the lower track." | bottomtrack(target_destination) : "Bottom track" : "" : "The Name of the first path_corner in the lower track." | ||
speed(integer) : "Move/Rotate speed" : 0 : "The speed in units/sec that the track platform will move. If the Rotate Only flag is set this will be the speed of rotation only." | speed(integer) : "Move/Rotate speed" : 0 : "The speed in units/sec that the track platform will move. If the Rotate Only flag is set this will be the speed of rotation only." | ||
] | ] | ||
Line 1,072: | Line 1,054: | ||
@BaseClass base(Targetname, Master, Target) = Trigger | @BaseClass base(Targetname, Master, Target) = Trigger | ||
[ | [ | ||
delay(string) : "Delay before trigger" : " | delay(string) : "Delay before trigger" : "" : "Time delay before triggering the target" | ||
killtarget(target_destination) : "Kill target" : : "Removes the targeted entity from the game." | killtarget(target_destination) : "Kill target" : "" : "Removes the targeted entity from the game." | ||
netname(target_destination) : "Target path" : : "If a trigger has a netname, that netname will become the target of the triggered object." | netname(target_destination) : "Target path" : "" : "If a trigger has a netname, that netname will become the target of the triggered object." | ||
querytarget(string) : "Query target" : : "Used to query a target. It can be set to a variety of entities. can be set to 'player'." | querytarget(string) : "Query target" : "" : "Used to query a target. It can be set to a variety of entities. can be set to 'player'." | ||
viewtarget(string) : "View target" : : "Define a view target. Commonly used to define a spot that the player must be looking at in order to trigger something. Can be an info_target." | viewtarget(string) : "View target" : "" : "Define a view target. Commonly used to define a spot that the player must be looking at in order to trigger something. Can be an info_target." | ||
viewconedegrees(integer) : "Viewcone | viewconedegrees(integer) : "Viewcone angle" : "" : "Used with 'View target'. Define the angle that the target must be seen from in order to trigger something. Value can be set between '1' > '360'. Use the compass in JACK to get an accurate angle." | ||
globalstate(string) : "Global state" : : "Queries a global state to make sure it is active before triggering something, kinda like a second master key but for the view target." | healthover(string) : "Health over" : "" : "Used with 'Query target'. Tigger X when health is over Y amount." | ||
healthunder(string) : "Health under" : "" : "Used with 'Query target'. Tigger X when health is under Y amount." | |||
healthequal(string) : "Health equal" : "" : "Used with 'Query target'. Tigger X when health is equal to Y amount." | |||
globalstate(string) : "Global state" : "" : "Queries a global state to make sure it is active before triggering something, kinda like a second master key but for the view target." | |||
//style(integer) : "Style" : 32 : "Not sure what this does." | //style(integer) : "Style" : 32 : "Not sure what this does." | ||
sounds(choices) : "Sound style" : | sounds(choices) : "Sound style" : "" : "This use to be the secret sounds found in Quake. It seems to not work anymore." = | ||
[ | [ | ||
0 : "No Sound" | 0 : "No Sound" | ||
] | ] | ||
message(string) : "Message" : : "A message to display when triggered." | message(string) : "Message" : "" : "A message to display when triggered." | ||
spawnflags(flags) = | spawnflags(flags) = | ||
[ | [ | ||
Line 1,097: | Line 1,082: | ||
@PointClass base(Targetname, Targetx, Angles) size(-16 -16 0, 16 16 72) color(255 0 255) flags (angle) = aiscripted_sequence : "AI Scripted Sequence: Like the scripted_sequence entity, the aiscripted_sequence entity allows you to make a monster entity move to a specific location and/or perform a given animation. Unlike scripted_sequence, aiscripted_sequence completely overrides the targeted monster's AI. Regardless of what you do to the monster, it will follow this sequence." | @PointClass base(Targetname, Targetx, Angles) size(-16 -16 0, 16 16 72) color(255 0 255) flags (angle) = aiscripted_sequence : "AI Scripted Sequence: Like the scripted_sequence entity, the aiscripted_sequence entity allows you to make a monster entity move to a specific location and/or perform a given animation. Unlike scripted_sequence, aiscripted_sequence completely overrides the targeted monster's AI. Regardless of what you do to the monster, it will follow this sequence." | ||
[ | [ | ||
m_iszEntity(target_destination) : "Target Monster" : : "The name of the monster entity that this sequence affects. You can also input a monster type (monster_scientist, for example. But, only one monster will be chosen to follow the sequence.)" | m_iszEntity(target_destination) : "Target Monster" : "" : "The name of the monster entity that this sequence affects. You can also input a monster type (monster_scientist, for example. But, only one monster will be chosen to follow the sequence.)" | ||
m_iszPlay(string) : "Action Animation" : : "The name of the animation that will be performed by Target Monster." | m_iszPlay(string) : "Action Animation" : "" : "The name of the animation that will be performed by Target Monster." | ||
m_flRadius(string) : "Search Radius" : "512.0" : "If you input a monster type into Target Monster, the entity will pick a monster within this radius of the entity to follow the sequence. If none are within the radius, the first monster to enter the radius will follow the sequence." | m_flRadius(string) : "Search Radius" : "512.0" : "If you input a monster type into Target Monster, the entity will pick a monster within this radius of the entity to follow the sequence. If none are within the radius, the first monster to enter the radius will follow the sequence." | ||
m_flRepeat(string) : "Repeat Rate ms" : " | m_flRepeat(string) : "Repeat Rate ms" : "" : "Seems to not work." | ||
m_fMoveTo(Choices) : "Move to Position" : 0 : "Sets how (or if) the monster moves before performing the animation. Choices are:" = | m_fMoveTo(Choices) : "Move to Position" : 0 : "Sets how (or if) the monster moves before performing the animation. Choices are:" = | ||
[ | [ | ||
Line 1,109: | Line 1,094: | ||
5 : "No - Turn to Face" : "The monster will not move, but will turn to the aiscripted_sequence's angle before performing the animation." | 5 : "No - Turn to Face" : "The monster will not move, but will turn to the aiscripted_sequence's angle before performing the animation." | ||
] | ] | ||
m_iFinishSchedule(Choices) : "AI Schedule when done" : | m_iFinishSchedule(Choices) : "AI Schedule when done" : "" : "Allows you to have the monster's AI schedule change to 'Ambush' when the sequence is done, which means that the monster will be in an attentive state and encounter enemies more actively. This key might not work." = | ||
[ | [ | ||
0 : "Default AI" | 0 : "Default AI" | ||
Line 1,129: | Line 1,114: | ||
@PointClass iconsprite("sprites/Hammer/AmbientGeneric.spr") base(Targetname, Angles) = ambient_generic : "Universal Ambient" | @PointClass iconsprite("sprites/Hammer/AmbientGeneric.spr") base(Targetname, Angles) = ambient_generic : "Universal Ambient" | ||
[ | [ | ||
message(sound) : "Path/filename.wav of WAV" : : "This defines which sound file will be played by the entity. This accepts an input of the form: path/filename.wav (starting from the sound folder). (Example: ambience/drips.wav). The name of a sentence defined in sentences.txt will also be accepted with the form: !SENTENCENAME. (Example: !HG_ALERT1)" | message(sound) : "Path/filename.wav of WAV" : "" : "This defines which sound file will be played by the entity. This accepts an input of the form: path/filename.wav (starting from the sound folder). (Example: ambience/drips.wav). The name of a sentence defined in sentences.txt will also be accepted with the form: !SENTENCENAME. (Example: !HG_ALERT1)" | ||
health(integer) : "Volume (10 = loudest)" : 10 : "Sets the volume of the sound. Scales from 0 (completely silent) to 10 (maximum, default). (If using dynamics attributes below, this is the maximum volume the sound will reach)." | health(integer) : "Volume (10 = loudest)" : 10 : "Sets the volume of the sound. Scales from 0 (completely silent) to 10 (maximum, default). (If using dynamics attributes below, this is the maximum volume the sound will reach)." | ||
preset(choices) :"Dynamic Presets" : 0 : "Sets the ambient_generic to use a predefined set of dynamics. If set to anything other than :None:, this will override every other attribute apart from Name and WAV Name." = | preset(choices) :"Dynamic Presets" : 0 : "Sets the ambient_generic to use a predefined set of dynamics. If set to anything other than :None:, this will override every other attribute apart from Name and WAV Name." = | ||
Line 1,162: | Line 1,147: | ||
27 : "Haunted" : "Slow switch between normal and slow speed. Quick fade out." | 27 : "Haunted" : "Slow switch between normal and slow speed. Quick fade out." | ||
] | ] | ||
volstart(integer) : "Start Volume" : | volstart(integer) : "Start Volume" : "" : "Sets the volume that the sound should start at when fading in, and that it should stop at when fading out. Scales from 0 (completely silent) to 10 (maximum). (Should be lower than Volume.)." | ||
fadein(integer) : "Fade in time (0-100)" : | fadein(integer) : "Fade in time (0-100)" : "" : "Sets how long the sound should take to fade in from Start Volume to Volume. Scales from 0 (instant) to 100 (very long)." | ||
fadeout(integer) : "Fade out time (0-100)" : | fadeout(integer) : "Fade out time (0-100)" : "" : "Sets how long the sound should take to fade out from Volume to Start Volume. Scales from 0 (instant) to 100 (very long)." | ||
pitch(integer) : "Pitch (> 100 = higher)" : | pitch(integer) : "Pitch (> 100 = higher)" : "" : "Sets the pitch of the sound. Scales from 100 (default), with lower values meaning lower pitch and higher values meaning higher pitch." | ||
pitchstart(integer) : "Start Pitch" : | pitchstart(integer) : "Start Pitch" : "" : "Sets the pitch that the sound should start at when spinning up, and that it should stop at when spinning down. Scales from 100 (default), with lower values meaning lower pitch and higher values meaning higher pitch. (Should be lower than Pitch.)" | ||
spinup(integer) : "Spin up time (0-100)" : | spinup(integer) : "Spin up time (0-100)" : "" : "Sets how long the sound should take to spin up from Start Pitch to Pitch. Scales from 0 (instant) to 100 (very long)." | ||
spindown(integer) : "Spin down time (0-100)" : | spindown(integer) : "Spin down time (0-100)" : "" : "Sets how long the sound should take to spin down from Pitch to Start Pitch. Scales from 0 (instant) to 100 (very long)." | ||
lfotype(choices) : "LFO type" : : "Allows the sound to have certain oscillating effects applied to its pitch." = | lfotype(choices) : "LFO type" : 0 : "Allows the sound to have certain oscillating effects applied to its pitch." = | ||
[ | [ | ||
0 : "Off" : "Disables the LFO effects." | 0 : "Off" : "Disables the LFO effects." | ||
Line 1,176: | Line 1,161: | ||
3 : "RND" : "Randomly switches pitches." | 3 : "RND" : "Randomly switches pitches." | ||
] | ] | ||
lforate(integer) : "LFO rate (0-1000)" : | lforate(integer) : "LFO rate (0-1000)" : "" : "Sets how quickly the pitch changes with the LFO effects. Scales between 0 (does not change) and 1000 (changes extremely quickly)." | ||
lfomodpitch(integer) : "LFO mod pitch (0-100)" : | lfomodpitch(integer) : "LFO mod pitch (0-100)" : "" : "Sets how much the pitch should change with the LFO effects. Scales between 0 (does not change) and 100 (very large changes)." | ||
lfomodvol(integer) : "LFO mod vol (0-100)" : | lfomodvol(integer) : "LFO mod vol (0-100)" : "" : "Sets how much the volume should change with the LFO effects. Seems to coincide with lower pitches. Scales between 0 (does not change) and 100 (silent)." | ||
cspinup(integer) : "Incremental spinup count" : | cspinup(integer) : "Incremental spinup count" : "" : "Sets how many times the ambient_generic can be triggered to have the pitch spin up on top of the pitch it was already playing at. Setting this to a value other than 0 will disable toggling the sound, and will prevent the sound from being turned off even it has been triggered that many times." | ||
spawnflags(flags) = | spawnflags(flags) = | ||
[ | [ | ||
Line 1,199: | Line 1,184: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (10 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines (Fill AWP)" | ||
] | ] | ||
] | ] | ||
Line 1,209: | Line 1,194: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (13 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines" | ||
4 : "4 | 4 : "4 Magazines (Fill P-228)" | ||
] | ] | ||
] | ] | ||
Line 1,220: | Line 1,205: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (12 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines" | ||
4 : "4 | 4 : "4 Magazines (Fill USP45)" | ||
5 : "5 | 5 : "5 Magazines" | ||
6 : "6 | 6 : "6 Magazines" | ||
7 : "7 | 7 : "7 Magazines" | ||
8 : "8 | 8 : "8 Magazines (Fill Mac-10)" | ||
9 : "9 | 9 : "9 Magazines (Fill UMP 45)" | ||
] | ] | ||
] | ] | ||
Line 1,236: | Line 1,221: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (7 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines" | ||
4 : "4 | 4 : "4 Magazines" | ||
5 : "5 | 5 : "5 Magazines (Fill Desert Eagle)" | ||
] | ] | ||
] | ] | ||
Line 1,248: | Line 1,233: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (30 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines (Fill SG552, M4A1, Aug and SG550)" | ||
] | ] | ||
] | ] | ||
Line 1,258: | Line 1,243: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (30 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines" | ||
4 : "4 | 4 : "4 Magazines" | ||
5 : "5 | 5 : "5 Magazines" | ||
6 : "6 | 6 : "6 Magazines" | ||
7 : "7 | 7 : "7 Magazines (Fill FN M249 Para)" | ||
] | ] | ||
] | ] | ||
Line 1,272: | Line 1,257: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (60 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines" | ||
4 : "4 | 4 : "4 Magazines (Fill M60)" | ||
] | ] | ||
] | ] | ||
Line 1,283: | Line 1,268: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (50 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines (Fill Five-Seven & P90)" | ||
] | ] | ||
] | ] | ||
Line 1,292: | Line 1,277: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (30 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines (Fill Scout & G3/S-G1)" | ||
3 : "3 | 3 : "3 Magazines (Fill AK-47)" | ||
] | ] | ||
] | ] | ||
Line 1,302: | Line 1,287: | ||
numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | numclips(choices) : "Number of magazines" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Magazine (30 Bullets Per Magazine)" | ||
2 : "2 | 2 : "2 Magazines" | ||
3 : "3 | 3 : "3 Magazines (Fill Glock 18)" | ||
4 : "4 | 4 : "4 Magazines (Fill Elites, MP5 & TMP)" | ||
] | ] | ||
] | ] | ||
Line 1,311: | Line 1,296: | ||
@PointClass base(RenderFields, Angles) studio("models/w_shotbox.mdl") = ammo_buckshot : "12 Gauge Ammo: For the M3 and XM1014." | @PointClass base(RenderFields, Angles) studio("models/w_shotbox.mdl") = ammo_buckshot : "12 Gauge Ammo: For the M3 and XM1014." | ||
[ | [ | ||
numclips(choices) : "Number of | numclips(choices) : "Number of shells" : 1 : "This defines the number of magazines in the ammo entity. If the value is more than 1, it will change the model(Example: 9mmBig.mdl)." = | ||
[ | [ | ||
1 : "1 | 1 : "1 Box (8 Shells Per Magazine)" | ||
2 : "2 | 2 : "2 Boxes" | ||
3 : "3 | 3 : "3 Boxes" | ||
4 : "4 | 4 : "4 Boxes (Fill Benelli M3, XM1014)" | ||
] | ] | ||
] | ] | ||
Line 1,324: | Line 1,309: | ||
@PointClass size(-16 -16 0, 16 16 64) color(0 128 0) studio("models/w_weaponbox.mdl") = weaponbox : "Ammo Container: Can specify a specific amount of ammo to give the player. 1 = 1 unit of ammo." | @PointClass size(-16 -16 0, 16 16 64) color(0 128 0) studio("models/w_weaponbox.mdl") = weaponbox : "Ammo Container: Can specify a specific amount of ammo to give the player. 1 = 1 unit of ammo." | ||
[ | [ | ||
357SIG | 357SIG : "357SIG Amount" : "" : "Amount of 357SIG to give the player." | ||
9mm | 9mm : "9mm Amount" : "" : "Amount of 9mm to give the player." | ||
45acp | 45acp : "45acp Amount" : "" : "Amount of 45acp to give the player." | ||
50AE | 50AE : "50AE Amount" : "" : "Amount of 50AE to give the player." | ||
57mm | 57mm : "57mm Amount" : "" : "Amount of 57mm to give the player." | ||
556Nato | 556Nato : "556Nato Amount" : "" : "Amount of 556Nato to give the player." | ||
762Nato | 762Nato : "762Nato Amount" : "" : "Amount of 762Nato to give the player." | ||
556NatoBox | 556NatoBox : "556NatoBox Amount" : "" : "Amount of 556NatoBox to give the player." | ||
762NatoBox | 762NatoBox : "762NatoBox Amount" : "" : "Amount of 762NatoBox to give the player." | ||
338Magnum | 338Magnum : "338Magnum Amount" : "" : "Amount of 338Magnum to give the player." | ||
buckshot | buckshot : "Buckshot Amount" : "" : "Amount of buckshot to give the player." | ||
bomb | bomb : "Bomb Amount" : "" : "Amount of bombs to give the player." | ||
skin(integer) : "Skin" : "" : "Input the value for the skin to use. (Use SOLOKILLERS HLMV for the value)" | |||
body(choices) : "Body" : "1" : "Input the value for the bodygroup to use. (Use SOLOKILLERS HLMV for the value)" = | |||
[ | |||
1 : "Bomb pack" | |||
2 : "Supply pack" | |||
] | |||
] | ] | ||
Line 1,548: | Line 1,539: | ||
rendercolor(color255) : "Fog color (R G B)" : "128 128 128" : "Fog colour." | rendercolor(color255) : "Fog color (R G B)" : "128 128 128" : "Fog colour." | ||
density(integer):"Density" : ".25" : "Density of the fog. Takes a value for 0.0 to 1.0." | density(integer):"Density" : ".25" : "Density of the fog. Takes a value for 0.0 to 1.0." | ||
fogStartDistance(integer): " | fogStartDistance(integer):"Fog start position" : : "Distance, in units, at which the fog starts to be visible. This needs to be greater than zero. Not sure if this works." | ||
fogStopDistance(integer): " | fogStopDistance(integer):"Fog end position" : : "Distance, in units, at which the fog appears opaque. This needs to be greater than the start distance. Not sure if this works." | ||
spawnflags(flags)= | spawnflags(flags)= | ||
[ | [ | ||
1: " | 1: "Start On" : 1 : "If enabled, creates fog on level load. Always have this to set." | ||
] | ] | ||
] | ] | ||
Line 1,682: | Line 1,673: | ||
] | ] | ||
@PointClass iconsprite("sprites/Hammer/EnvShooter.spr") base(gibshooterbase | @PointClass iconsprite("sprites/Hammer/EnvShooter.spr") base(RenderFields ,gibshooterbase) size(-16 -16 -16, 16 16 16) = env_shooter : "Model Shooter: The env_shooter entity, when triggered, shoots out a number of models or sprites, often used to create a spilling or bursting effect." | ||
[ | [ | ||
shootmodel(studio) : "Model" : "" : "This defines which model or sprite file will be shot by the entity." | shootmodel(studio) : "Model" : "" : "This defines which model or sprite file will be shot by the entity." | ||
Line 2,146: | Line 2,137: | ||
@SolidClass base(Targetname, RenderFields, ZHLT, Angles, FuncAddition) = func_illusionary : "Fake Wall/Light: The func_illusionary has all the properties of a func_wall entity, except for the fact that it is non-solid." | @SolidClass base(Targetname, RenderFields, ZHLT, Angles, FuncAddition) = func_illusionary : "Fake Wall/Light: The func_illusionary has all the properties of a func_wall entity, except for the fact that it is non-solid." | ||
[ | [ | ||
skin(choices) : "Contents" : | skin(choices) : "Contents" : "" : "Skin for brush entities is used to manually override the contents of the brush. The content of a volume determines things like if it's solid, if it's empty, if it's see-through, if it's water, if it's a water current, if it's a ladder, if it's lava, if it's slime, etc." = | ||
[ | [ | ||
0 : "Illusionary" | 0 : "Illusionary" | ||
Line 2,156: | Line 2,147: | ||
-16 : "Ladder" | -16 : "Ladder" | ||
] | ] | ||
_minlight(integer) : "Minimum light level" : | _minlight(integer) : "Minimum light level" : "" : "Brush entities only. Sets the minimum light level. Useful for when textures should always appear bright e.g. computer screens or holograms. Default is 0, max 1." | ||
] | ] | ||
Line 2,163: | Line 2,154: | ||
@SolidClass base(Targetname) = func_monsterclip : "Monster clip brush: This entity acts like the 'clip' brush, except it restricts monster movement, not the player's." [] | @SolidClass base(Targetname) = func_monsterclip : "Monster clip brush: This entity acts like the 'clip' brush, except it restricts monster movement, not the player's." [] | ||
@SolidClass base(Targetname) = func_mortar_field : "Mortar Field: This entity is used to define an area that an airstrike is called on." | @SolidClass base(Targetname) = func_mortar_field : "Mortar Field: FLASHBANGS ONLY!!! This entity is used to define an area that an airstrike is called on." | ||
[ | [ | ||
m_flSpread(integer) : "Spread Radius" : 64 : "Defines the accuracy of the bombardment." | m_flSpread(integer) : "Spread Radius" : 64 : "Defines the accuracy of the bombardment." | ||
Line 2,173: | Line 2,164: | ||
2 : "Table" : "Special case. The X and Y controllers can be used in cases where a table is used to define the strike location (as seen in Half-Life)." | 2 : "Table" : "Special case. The X and Y controllers can be used in cases where a table is used to define the strike location (as seen in Half-Life)." | ||
] | ] | ||
m_iszXController(target_destination) : "X Controller" : "The name of a momentary_rot_button to provide a relative strike position on the X axis." | m_iszXController(target_destination) : "X Controller" :"": "The name of a momentary_rot_button to provide a relative strike position on the X axis." | ||
m_iszYController(target_destination) : "Y Controller" : "The name of a momentary_rot_button to provide a relative strike position on the Y axis." | m_iszYController(target_destination) : "Y Controller" :"": "The name of a momentary_rot_button to provide a relative strike position on the Y axis." | ||
] | ] | ||
Line 2,448: | Line 2,439: | ||
@SolidClass base(Targetname, RenderFields, ZHLT) = func_wall : "Wall: This entity lets you create a stationary piece of geometry in your level which can then be modified (through its rendering properties) for a number of effects. Often used for things like unbreakable glass, masked textures (fences, ladders). In the past it was also used for performance reasons, but nowadays func_detail (introduced by Vluzacn's compile tools) is often a better choice." | @SolidClass base(Targetname, RenderFields, ZHLT) = func_wall : "Wall: This entity lets you create a stationary piece of geometry in your level which can then be modified (through its rendering properties) for a number of effects. Often used for things like unbreakable glass, masked textures (fences, ladders). In the past it was also used for performance reasons, but nowadays func_detail (introduced by Vluzacn's compile tools) is often a better choice." | ||
[ | [ | ||
_minlight(integer) : "Minimum light level" : | _minlight(integer) : "Minimum light level" : "" : "Brush entities only. Sets the minimum light level. Useful for when textures should always appear bright e.g. computer screens or holograms. Default is 0, max 1." | ||
style(choices) : "Texlight style" : 0 : "Set a style of lighting for the texlight. Can be applied to any brush based entity." = | style(choices) : "Texlight style" : 0 : "Set a style of lighting for the texlight. Can be applied to any brush based entity." = | ||
[ | [ | ||
Line 2,466: | Line 2,457: | ||
12 : "Underwater" | 12 : "Underwater" | ||
] | ] | ||
skin(choices) : "Contents" : | skin(choices) : "Contents" : "" : "Skin for brush entities is used to manually override the contents of the brush. The content of a volume determines things like if it's solid, if it's empty, if it's see-through, if it's water, if it's a water current, if it's a ladder, if it's lava, if it's slime, etc." = | ||
[ | [ | ||
0 : "Normal" | 0 : "Normal" | ||
Line 2,734: | Line 2,725: | ||
] | ] | ||
weapon_blowtorch (choices) : "Blowtorch Tool" : "" = | |||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
weapon_briefcase (choices) : "Briefcase Tool" : "" = | |||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
weapon_camera (choices) : "Camera Tool" : "" = | |||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
weapon_fiberopticcamera (choices) : "Fiber-Optic Camera Tool" : "" = | |||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
weapon_radiocontrolledbomb (choices) : "Radio Bomb Tool" : "" = | |||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
weapon_radio (choices) : "Radio Tool" : "" = | |||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
weapon_hegrenade (choices) : "Give High-Explosive Grenade" : "" = | weapon_hegrenade (choices) : "Give High-Explosive Grenade" : "" = | ||
[ | [ | ||
Line 2,741: | Line 2,768: | ||
weapon_smokegrenade (choices) : "Give Smoke Grenade" : "" = | weapon_smokegrenade (choices) : "Give Smoke Grenade" : "" = | ||
[ | |||
"": "No" | |||
1: "Yes" | |||
] | |||
ammo_generic (choices) : "Give Smoke Grenade" : "" = | |||
[ | [ | ||
"": "No" | "": "No" | ||
Line 2,749: | Line 2,782: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (30 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 | 3: "3 Magazines (Fill Glock 18)" | ||
4: "4 | 4: "4 Magazines (Fill Elites, MP5 & TMP)" | ||
] | ] | ||
Line 2,758: | Line 2,791: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (12 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 | 3: "3 Magazines" | ||
4: "4 | 4: "4 Magazines (Fill USP45)" | ||
5: "5 | 5: "5 Magazines" | ||
6: "6 | 6: "6 Magazines" | ||
7: "7 | 7: "7 Magazines" | ||
8: "8 | 8: "8 Magazines (Fill Mac-10)" | ||
9: "9 | 9: "9 Magazines (Fill UMP 45)" | ||
] | ] | ||
Line 2,772: | Line 2,805: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (7 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 | 3: "3 Magazines" | ||
4: "4 | 4: "4 Magazines" | ||
5: "5 | 5: "5 Magazines (Fill Desert Eagle)" | ||
] | ] | ||
Line 2,782: | Line 2,815: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (50 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines (Fill Five-Seven & P90)" | ||
] | ] | ||
Line 2,789: | Line 2,822: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (13 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 | 3: "3 Magazines" | ||
4: "4 | 4: "4 Magazines (Fill P-228)" | ||
] | ] | ||
Line 2,798: | Line 2,831: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Box (8 Shells Per Magazine)" | ||
2: "2 | 2: "2 Boxes" | ||
3: "3 | 3: "3 Boxes" | ||
4: "4 | 4: "4 Boxes (Fill Benelli M3, XM1014)" | ||
] | ] | ||
Line 2,807: | Line 2,840: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (30 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines (Fill Scout & G3/S-G1)" | ||
3: "3 | 3: "3 Magazines (Fill AK-47)" | ||
] | ] | ||
Line 2,815: | Line 2,848: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (30 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 (Fill SG552 M4A1 Aug SG550)" | 3: "3 (Fill SG552 M4A1 Aug SG550)" | ||
] | ] | ||
Line 2,823: | Line 2,856: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (30 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 | 3: "3 Magazines" | ||
4: "4 | 4: "4 Magazines" | ||
5: "5 | 5: "5 Magazines" | ||
6: "6 | 6: "6 Magazines" | ||
7: "7 | 7: "7 Magazines (Fill FN M249 Para)" | ||
] | ] | ||
Line 2,836: | Line 2,869: | ||
[ | [ | ||
"": "No" | "": "No" | ||
1: "1 | 1: "1 Magazine (10 Bullets Per Magazine)" | ||
2: "2 | 2: "2 Magazines" | ||
3: "3 | 3: "3 Magazines (Fill AWP)" | ||
] | ] | ||
Line 3,088: | Line 3,121: | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
@PointClass iconsprite("sprites/Hammer/lightsrc.spr") base(Targetname, Target, Light) = light : "Invisible lightsource: Point-based light. It can also be toggled on/off and pulse in a variety of pre-defined styles (as well as custom ones) in a limited fashion." [] | @PointClass iconsprite("sprites/Hammer/lightsrc.spr") flags(Light) base(Targetname, Target, Light) = light : "Invisible lightsource: Point-based light. It can also be toggled on/off and pulse in a variety of pre-defined styles (as well as custom ones) in a limited fashion." [] | ||
@PointClass | @PointClass iconsprite("sprites/Hammer/LightEnvironment.spr") flags(Light) base(Targetname, Target, Light) flags (angle) = light_environment : "Environment light: This entity makes the map's sky emit light. The only practical way of lighting outdoor maps. Sky brushes must have the 'SKY' texture on all faces or they won't emit light. The logic for this is a bit tricky." | ||
[ | [ | ||
angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 270 0" : "Use Pitch to shift the sun (or moon) vertically (similar to daytime/hours) and Yaw to shift it horizontally (cardinal direction or obliquity)." | angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 270 0" : "Use Pitch to shift the sun (or moon) vertically (similar to daytime/hours) and Yaw to shift it horizontally (cardinal direction or obliquity)." | ||
Line 3,097: | Line 3,130: | ||
] | ] | ||
@PointClass | @PointClass iconsprite("sprites/Hammer/LightSpot.spr") base(Targetname, Target, Angles, Light) flags (angle) = light_spot : "Spotlight: The light_spot entity allows you to create direct beams of light (like from a flashlight, spotlight, projector, and beacon) rather than spreading light within a radius of 360." | ||
[ | [ | ||
pitch(integer) : "Pitch" : -90 : "The pitch of the light (-90 is straight down, 90 is straight up)." | pitch(integer) : "Pitch" : -90 : "The pitch of the light (-90 is straight down, 90 is straight up)." | ||
Line 3,176: | Line 3,209: | ||
] | ] | ||
@PointClass base(Monster, Angles, Classtype, ModelFile | @PointClass base(Monster, Angles, Classtype, ModelFile) = monster_apache : "Apache: An attack helicopter. It can actually be turned into a HIND or HARRIER, with the use of the models from CZEROR." | ||
[ | [ | ||
health(integer) : "Health" : : "Changes the default health of the monster_apache." | |||
idlesound(sound) : "Idle sound" : : "Changes the idle sound of the monster_apache." | idlesound(sound) : "Idle sound" : : "Changes the idle sound of the monster_apache." | ||
deathsound(sound) : "Death sound" : : "Changes the death sound of the monster_apache." | deathsound(sound) : "Death sound" : : "Changes the death sound of the monster_apache." | ||
Line 3,186: | Line 3,220: | ||
1 : "Yes" | 1 : "Yes" | ||
] | ] | ||
model(Choices) : "Model" : models/props/blackhawk_gunship.mdl = | |||
[ | |||
models/props/blackhawk_gunship.mdl : "Blackhawk" | |||
models/props/harrier_gunship.mdl : "Harrier" | |||
models/props/hind_gunship.mdl : "Hind" | |||
] | |||
body(integer) : "Body" : : "Input the value for the bodygroup to use. (Use SOLOKILLERS HLMV for the value)." | |||
skin(integer) : "Skin" : : "Input the value for the skin to use. (Use SOLOKILLERS HLMV for the value)." | |||
head(integer) : "Head" : : "Input the value for the head to use. (Use SOLOKILLERS HLMV for the value)." | |||
spawnflags(flags) = | spawnflags(flags) = | ||
[ | [ | ||
Line 3,427: | Line 3,469: | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
@PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9 [] | |||
@PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9_assaultrifle : "CT - GSG9 - Assault Rifle" [] | @PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9_assaultrifle : "CT - GSG9 - Assault Rifle" [] | ||
@PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9_grenader : "CT - GSG9 - Grenadier" [] | @PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9_grenader : "CT - GSG9 - Grenadier" [] | ||
Line 3,437: | Line 3,480: | ||
@PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9_sniperrifle : "CT - GSG9 - Sniper Rifle" [] | @PointClass studio("models/gsg9.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gsg9_sniperrifle : "CT - GSG9 - Sniper Rifle" [] | ||
@PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign [] | |||
@PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign_assaultrifle : "CT - GIGN - Assault Rifle" [] | @PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign_assaultrifle : "CT - GIGN - Assault Rifle" [] | ||
@PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign_grenader : "CT - GIGN - Grenadier" [] | @PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign_grenader : "CT - GIGN - Grenadier" [] | ||
Line 3,447: | Line 3,491: | ||
@PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign_sniperrifle : "CT - GIGN - Sniper Rifle" [] | @PointClass studio("models/gign.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_gign_sniperrifle : "CT - GIGN - Sniper Rifle" [] | ||
@PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz [] | |||
@PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz_assaultrifle : "CT - Spetsnaz - Assault Rifle" [] | @PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz_assaultrifle : "CT - Spetsnaz - Assault Rifle" [] | ||
@PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz_grenader : "CT - Spetsnaz - Grenadier" [] | @PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz_grenader : "CT - Spetsnaz - Grenadier" [] | ||
Line 3,457: | Line 3,502: | ||
@PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz_sniperrifle : "CT - Spetsnaz - Sniper Rifle" [] | @PointClass studio("models/spetsnaz.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_spetsnaz_sniperrifle : "CT - Spetsnaz - Sniper Rifle" [] | ||
@PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat [] | |||
@PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat_assaultrifle : "CT - SWAT - Assault Rifle" [] | @PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat_assaultrifle : "CT - SWAT - Assault Rifle" [] | ||
@PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat_grenader : "CT - SWAT - Grenadier" [] | @PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat_grenader : "CT - SWAT - Grenadier" [] | ||
Line 3,467: | Line 3,513: | ||
@PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat_sniperrifle : "CT - SWAT - Sniper Rifle" [] | @PointClass studio("models/seal.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_swat_sniperrifle : "CT - SWAT - Sniper Rifle" [] | ||
@PointClass studio("models/sas.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_counter_terrorist_sas [] | |||
@PointClass studio("models/sas.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_sas_assaultrifle : "CT - SAS - Assault Rifle" [] | @PointClass studio("models/sas.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_sas_assaultrifle : "CT - SAS - Assault Rifle" [] | ||
@PointClass studio("models/sas.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_sas_grenader : "CT - SAS - Grenadier" [] | @PointClass studio("models/sas.mdl") size(-16 -16 0, 16 16 72) color(0 0 255) base(Monster, Classtype, ModelFile) = monster_ct_sas_grenader : "CT - SAS - Grenadier" [] | ||
Line 3,554: | Line 3,601: | ||
@PointClass studio("models/militia.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_urban_sniperrifle : "Terrorist - Urban - Sniper Rifle" [] | @PointClass studio("models/militia.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_urban_sniperrifle : "Terrorist - Urban - Sniper Rifle" [] | ||
@PointClass iconsprite("sprites/Hammer/MonsterMaker.spr") color(255 0 0) base(Monster, Classtype, Angles) size(-16 -16 -16, 16 16 16) = monstermaker : "Monster Maker: Makes monster or anything that can be spawned. From enemies to weapons." | |||
[ | [ | ||
target(target_destination) : "Target On Release" : : "Event to trigger when a monster is spawned." | target(target_destination) : "Target On Release" : : "Event to trigger when a monster is spawned." | ||
Line 3,680: | Line 3,725: | ||
1 : "Start On" : 0 : "If this is enabled, the monstermaker will start on and start spawning as soon as the map loads." | 1 : "Start On" : 0 : "If this is enabled, the monstermaker will start on and start spawning as soon as the map loads." | ||
2 : "PVS On/Off (NoImpl)" : 0 : "Potentially Visible Sets are used to accelerate the rendering of 3D environments. It is also related to NPCs. Refer to the notes section of this FGD" | 2 : "PVS On/Off (NoImpl)" : 0 : "Potentially Visible Sets are used to accelerate the rendering of 3D environments. It is also related to NPCs. Refer to the notes section of this FGD" | ||
4 : "Cyclic" : 0 : " | 4 : "Cyclic" : 0 : "HMM." | ||
8 : "MonsterClip" : 0 : "If this is enabled, spawned monsters will not be able to pass through func_monsterclip brushes." | 8 : "MonsterClip" : 0 : "If this is enabled, spawned monsters will not be able to pass through func_monsterclip brushes." | ||
] | ] | ||
Line 3,888: | Line 3,933: | ||
[ | [ | ||
// e.g. ARAB_OUTSIDE_YELL | // e.g. ARAB_OUTSIDE_YELL | ||
message(choices) : "Sentence Group Name" : : "The sentence group to randomly select sentences from. Use the choices or enter your own. For example: ARAB_OUTSIDE_YELL." = | message(choices) : "Sentence Group Name" :"": "The sentence group to randomly select sentences from. Use the choices or enter your own. For example: ARAB_OUTSIDE_YELL." = | ||
[ | [ | ||
"COOM" : "Silly" : "Silly Announcements" | |||
"OFFICE_SFX" : "Office SFX" : "Typical office sounds." | "OFFICE_SFX" : "Office SFX" : "Typical office sounds." | ||
"arcticwind_gust" : "Arctic wind SFX" : "Wind sounds for windy places." | "arcticwind_gust" : "Arctic wind SFX" : "Wind sounds for windy places." | ||
Line 3,989: | Line 4,035: | ||
[ | [ | ||
trackname(string) : "Track Name" : "sound/music/TITLE" : "Input a track to play. Use this format: 'sound/music/xyz'." | trackname(string) : "Track Name" : "sound/music/TITLE" : "Input a track to play. Use this format: 'sound/music/xyz'." | ||
trackname(choices) : "Track Name" : "" : "Input a track to play. Use this format for custom music: 'sound/music/xyz'." = | |||
[ | |||
"" : "None" | |||
sound/music/alamo_battle : "Alamo - Battle" | |||
sound/music/alamo_found : "Alamo - Found" | |||
sound/music/alamo_intro : "Alamo - Intro" | |||
sound/music/alamo_success : "Alamo - Success" | |||
sound/music/brecon_airstrike : "Building Recon - Airstrike" | |||
sound/music/brecon_intro : "Building Recon - Intro" | |||
sound/music/brecon_seenuke : "Building Recon - See Nuke" | |||
sound/music/brecon_showdown : "Building Recon - Showdown" | |||
sound/music/brecon_success : "Building Recon - Success" | |||
sound/music/downed_blow : "Downed - Blow" | |||
sound/music/downed_gassed : "Downed - Gassed" | |||
sound/music/downed_intro : "Downed - Intro" | |||
sound/music/downed_package : "Downed - Package" | |||
sound/music/downed_success : "Downed - Success" | |||
sound/music/downed_wakeup : "Downed - Wakeup" | |||
sound/music/fastline_begin : "Fastline - Begin" | |||
sound/music/fastline_bomb : "Fastline - Bomb" | |||
sound/music/fastline_flashed : "Fastline - Flashed" | |||
sound/music/fastline_intro : "Fastline - Intro" | |||
sound/music/fastline_transcop : "Fastline - Transit Cop" | |||
sound/music/hank_final : "Hankagai - Final" | |||
sound/music/hank_intro : "Hankagai - Intro" | |||
sound/music/hank_success : "Hankagai - Success" | |||
sound/music/hank_toshdown : "Hankagai - Toshi Down" | |||
sound/music/hank_toshyell : "Hankagai - Toshi Yell" | |||
sound/music/hr_bossplat" : "High Rise - Boss Platform" | |||
sound/music/hr_groundass" : "High Rise - Gound Assault" | |||
sound/music/hr_hithead" : "High Rise - Hit Head" | |||
sound/music/hr_intro" : "High Rise - Intro" | |||
sound/music/hr_miniboss" : "High Rise - Mini Boss" | |||
sound/music/hr_missioncue" : "High Rise - Mission Cue" | |||
sound/music/hr_nukes" : "High Rise - Nukes" | |||
sound/music/hr_success" : "High Rise - Success" | |||
sound/music/hr_failure" : "High Rise - Failure" | |||
sound/music/hr_toolate" : "High Rise - Too Late" | |||
sound/music/jungle_intro : "Druglab - Intro" | |||
sound/music/jungle_start : "Druglab - Start" | |||
sound/music/jungle_success : "Druglab - Success" | |||
sound/music/lost_end : "Lost Cause - End" | |||
sound/music/lost_intro : "Lost Cause - Intro" | |||
sound/music/lost_success : "Lost Cause - Success" | |||
sound/music/lost_team : "Lost Cause - Team" | |||
sound/music/miami_intro : "Miami - Intro" | |||
sound/music/miami_success : "Miami - Success" | |||
sound/music/miami_threat : "Miami - Threat" | |||
sound/music/motor_intro : "Motorcade Assault - Intro" | |||
sound/music/motor_success : "Motorcade Assault - Success" | |||
sound/music/pipe_bomb : "Pipe Dream - Bomb" | |||
sound/music/pipe_getover : "Pipe Dream - Get Over" | |||
sound/music/pipe_intro : "Pipe Dream - Intro" | |||
sound/music/pipe_success : "Pipe Dream - Success" | |||
sound/music/recoil_intro : "Recoil - Intro" | |||
sound/music/recoil_meetsnip : "Recoil - Meet Sniper" | |||
sound/music/recoil_rescuesnip : "Recoil - Rescue Sniper" | |||
sound/music/recoil_success : "Recoil - Success" | |||
sound/music/run_cue : "Run! - Cue" | |||
sound/music/run_helidown : "Run! - Heli Down" | |||
sound/music/run_intro : "Run! - Intro" | |||
sound/music/run_success : "Run! - Success" | |||
sound/music/run_truckover: "Run! - Truck" | |||
sound/music/sand_intro : "Sandstorm - Intro" | |||
sound/music/sand_scud : "Sandstorm - Scud" | |||
sound/music/sand_spotted : "Sandstorm - Spotted" | |||
sound/music/sand_success : "Sandstorm - Success" | |||
sound/music/secret_war : "Secret War - Secret War" | |||
sound/music/silo_attack : "Secret War - Attack" | |||
sound/music/silo_escape : "Secret War - Escape" | |||
sound/music/silo_explochase : "Secret War - Explosion" | |||
sound/music/silo_finalbattle : "Secret War - Final Battle" | |||
sound/music/silo_intro : "Secret War - Intro" | |||
sound/music/silo_success : "Secret War - Success" | |||
sound/music/thinice_boss : "Thin Ice - Boss" | |||
sound/music/thinice_intro : "Thin Ice - Intro" | |||
sound/music/thinice_ship : "Thin Ice - Ship" | |||
sound/music/thinice_success : "Thin Ice - Success" | |||
sound/music/train_failure : "CT Training - Failure" | |||
sound/music/train_intro : "CT Training - Intro" | |||
sound/music/train_success : "CT Training - Success" | |||
sound/music/train_work1 : "CT Training - Work" | |||
sound/music/train_work2 : "CT Training - Working Again" | |||
sound/music/truth_intro : "Truth - Intro" | |||
sound/music/truth_success : "Truth - Success" | |||
sound/music/truth_vx : "Truth - VX Gas" | |||
sound/music/turncrank_boss : "Turn Crank - Boss" | |||
sound/music/turncrank_flash : "Turn Crank - Flash" | |||
sound/music/turncrank_intro : "Turn Crank - Intro" | |||
sound/music/turncrank_success : "Turn Crank - Success" | |||
sound/music/turncrank_taunt : "Turn Crank - Taunt" | |||
sound/music/end : "End" | |||
sound/music/failure1 : "Failure 1" | |||
sound/music/failure2 : "Failure 2" | |||
sound/music/failure3 : "Failure 3" | |||
sound/music/failure4 : "Failure 4" | |||
sound/music/launcher_loop : "Launcher Loop" | |||
sound/music/menu_loop : "Menu Loop" | |||
] | |||
loop(choices) : "Loop" : 0 : "Select if the track loops." = | loop(choices) : "Loop" : 0 : "Select if the track loops." = | ||
[ | [ | ||
Line 4,220: | Line 4,370: | ||
[ | [ | ||
target(target_destination) : "Target" : : "Have this entity target something when a tool is used in the zone." | target(target_destination) : "Target" : : "Have this entity target something when a tool is used in the zone." | ||
killtarget(target_destination) : "KillTarget" : : "When an entity is triggered, it will remove from the game the entity specified by this property." | |||
rcbombtarget(target_destination) : "RC Bomb target" : : "Area where the RC bomb will be placed. Kind of like a guide." | rcbombtarget(target_destination) : "RC Bomb target" : : "Area where the RC bomb will be placed. Kind of like a guide." | ||
toolname(choices) : "Tool Name" : "" : "Tool to be used in this area. Options are:" = | toolname(choices) : "Tool Name" : "" : "Tool to be used in this area. Options are:" = | ||
Line 4,357: | Line 4,508: | ||
//Doesnt seem to be working. Looks for env_snow and env_rain. | //Doesnt seem to be working. Looks for env_snow and env_rain. | ||
@PointClass base(Targetname, Targetx) size(-16 -16 -16, 16 16 16) = env_randomweather : "Env_randomweather: Seems to not work. Is in the JANKY SECTION of theis FGD." [] | //@PointClass base(Targetname, Targetx) size(-16 -16 -16, 16 16 16) = env_randomweather : "Env_randomweather: Seems to not work. Is in the JANKY SECTION of theis FGD." [] | ||
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// | ||
Line 4,377: | Line 4,528: | ||
invulnerable(integer) : "Invulnerable" : 1 : "no damage" | invulnerable(integer) : "Invulnerable" : 1 : "no damage" | ||
] | ] | ||
@PointClass studio("models/leet.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_desert [] | @PointClass studio("models/leet.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_desert [] | ||
@PointClass studio("models/terror.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_russian [] | @PointClass studio("models/terror.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_russian [] | ||
Line 4,382: | Line 4,536: | ||
@PointClass studio("models/asian.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_asian [] | @PointClass studio("models/asian.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_asian [] | ||
@PointClass studio("models/guerilla.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_jungle [] | @PointClass studio("models/guerilla.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_jungle [] | ||
@PointClass studio("models/arctic.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) base(Monster, Classtype, ModelFile) = monster_terrorist_arctic [] | |||
@PointClass studio("models/gordo_new.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) = env_scale : "Gordon for size. Personal entity for scale when building in hammer" [] | @PointClass studio("models/gordo_new.mdl") size(-16 -16 0, 16 16 72) color(255 0 0) = env_scale : "Gordon for size. Personal entity for scale when building in hammer" [] | ||
</nowiki> }} | </nowiki> }} |
Revision as of 19:59, 16 August 2023
This FGD is considered to be a work-in-progress, while it does have all the functionality to make maps to the same quality of the main game, there might be some wonky stuff, mistakes or non-complete information about entities. There are still keys that are not fully understood and might not be understood until more experimentation is done.
Important
Here are some things to remember when choosing to use this FGD. Alternatively, you can pick this FGD up from TWHL vault.
- Hammer 3.5 only supports entity classnames with up to 32 characters. Therefore, This version of the CS:CZDS FGD file is not compatible with the default Hammer Editor that is provided with HL1. In this case, It is suggested to use
J.A.C.K., an alternative to Hammer for GoldSource. The program supports Windows and Linux and adds a number of features for level editing and modding. If you still want to use Hammer, you should refer to this page and just add in the missing content.
- This is the most up-to-date FGD for CS:CZDS. It is an ongoing effort to bring users the best version of this FGD. If there are any bugs or things missing, please contact me and I will do my best to update it in a timely manner.
- There are fixes provided in the FGD for the most common bugs in the game.
- If you are using J.A.C.K, the help button has a lot of information on usage of the entities.
- There is a section of the FGD dedicated to things that are slightly janky. This space is a space to document oddities within the game.
FGD
- This is a FGD (Forge Game Data) file used to define all of the entities of a game for a map editor (such as Hammer).
To add a FGD file to the map editor, copy the following text into a text editor such as Windows Notepad,Notepad++ or
Visual Studio Code, and save it with "save as type" being "all files" and .fgd appended to the file name. Then open your map editor and add the FGD to your game configuration (Example for HL:S).
