diff --git a/fgd_def/pd_300.fgd b/fgd_def/pd_300.fgd index 7ebce51..59e64c4 100644 --- a/fgd_def/pd_300.fgd +++ b/fgd_def/pd_300.fgd @@ -1,18 +1,19 @@ // // Quake game definition file (.fgd) -// for Worldcraft 1.6 and above +// for Trenchbroom 2.0 and above // // written by autolycus / autolycus@planetquake.com // email me with improvements and suggestions -// - // Modified by CZG : grawert@online.no : http://www.planetquake.com/greyvoid/ // further modified by various authors //for reference: -//name(string) : "Short description" : "Default" : "Long description" -//name(integer) : "Short description" : 1 : "Long description" -//name(float) : "Short description" : "1.5" : "Long description" +//name(string) : "User-friendly name" : "Default" : "Description" +//name(integer) : "User-friendly name" : 1 : "Description" +//name(float) : "User-friendly name" : "1.5" : "Description" +//name(studio) : "User-friendly name" : "progs/armor.mdl" : "Description" +//name(sprite) : "User-friendly name" : "progs/s_light.spr" : "Description" +//name(sound) : "User-friendly name" : "ambience/thunder1.wav" : "Description" ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Modified by dumptruck_ds and iw 2018/27/4 - 2020/12/4 @@ -42,7 +43,7 @@ 1 : "Reset to shotgun, axe, and 25 shells" 2 : "Reset to axe only" ] - _bounce(integer) : "Bounce lights" : 0 : "1 enables bounce lighting, disabled by default." + _bounce(integer) : "Bounce lights" : 0 : "1 enables bounce lighting, disabled by default. In 2.0-alpha3 and newer, set higher than 1 for multiple bounces." _bouncestyled(integer) : "Bounce styled lights" : 0 : "1 makes styled lights bounce (e.g. flickering or switchable lights), default is 0, they do not bounce." _sunlight(integer) : "Sunlight" : 0 : "Set the brightness of the sunlight coming from an unseen sun in the sky. Sky brushes (or more accurately bsp leafs with sky contents) will emit sunlight at an angle specified by the _sun_mangle key. Default 0" _sun_mangle(string) : "Sun mangle (Yaw pitch roll)" : "0 -90 0" : "Specifies the direction of sunlight using yaw(x), pitch(y) and roll(z) in degrees. Yaw specifies the angle around the Z-axis from 0 to 359 degrees and pitch specifies the angle from 90 (straight up) to -90 (straight down). Roll has no effect, so use any value (e.g. 0). Default is straight down (0 -90 0)" @@ -61,40 +62,49 @@ _minlight_dirt(integer) : "Minlight dirt" : -1 : "1 enables dirtmapping (ambient occlusion) on minlight, -1 to disable. Default is to use the value of '_dirt'" _dirtmode(integer) : "Dirt mode" : 0 : "Choose between ordered (0, default) and randomized (1) dirtmapping." _dirtdepth(integer) : "Dirt depth" : 128 : "Maximum depth of occlusion checking for dirtmapping, default 128." - _dirtscale(integer) : "Dirt scale" : 1 : "Scale factor used in dirt calculations, default 1. Lower values (e.g. 0.5) make the dirt fainter, 2.0 would create much darker shadows" - _dirtgain(integer) : "Dirt gain" : 1 : "Exponent used in dirt calculation, default 1. Lower values (e.g. 0.5) make the shadows darker and stretch further away from corners" - _gamma(integer) : "Lightmap gamma" : 1 : "Adjust brightness of final lightmap. Default 1, >1 is brighter, <1 is darker" - fog(string) : "Fog Command" : : "ENGINE only 'console command' for setting fog parameters, Density/R/G/B example = (0.05 0.3 0.3 0.3)." - fog_density(string) : "Fog Density example = (0.05)" + _dirtscale(float) : "Dirt scale" : 1 : "Scale factor used in dirt calculations, default 1. Lower values (e.g. 0.5) make the dirt fainter, 2.0 would create much darker shadows" + _dirtgain(float) : "Dirt gain" : 1 : "Exponent used in dirt calculation, default 1. Lower values (e.g. 0.5) make the shadows darker and stretch further away from corners" + _gamma(float) : "Lightmap gamma" : 1 : "Adjust brightness of final lightmap. Default 1, >1 is brighter, <1 is darker" + fog(string) : "Fog Command" : : "ENGINE only 'console command' for setting fog parameters, Density/R/G/B example = (0.05 0.3 0.3 0.3)." + fog_density(float) : "Fog Density example = (0.05)" fog_color(color1) : "Fog Color R/G/B example = (0.3 0.3 0.3)" skyfog_density(float) : "Skyfog Density" : "0.5" : "How much fog is applied to skybrushes (def 0.5). Set to -1 to disable." sky(string) : "Sky Texture" : : "Must have compatible skybox textures in gfx/env folder." skip_id1_overrides(integer) : "Skip ID1 Overrides" : 0 : "Disable hardcoded map features like intermissions and E1M8 gravity. 0 will keep the ID1 checks, anything else will disable them." - h_vial_mdl(string) : "Global health vial model" : : "Use this field to replace all vials with this model" - h_25_mdl(string) : "Global health box model" : : "Use this field to replace all vials with this model" - h_15_mdl(string) : "Global rotten health box model" : : "Use this field to replace all rotten health boxes with this model" - h_mega_mdl(string) : "Global Megahealth model" : : "Use this field to replace all Megahealths with this model" - s_sm_mdl(string) : "Global shell box model" : : "Use this field to replace all shell boxes with this model" - s_lg_mdl(string) : "Global large shell box model" : : "Use this field to replace all large shell boxes with this model" - n_sm_mdl(string) : "Global spike box model" : : "Use this field to replace all spike boxes with this model" - n_lg_mdl(string) : "Global large spike box model" : : "Use this field to replace all large spike boxes with this model" - r_sm_mdl(string) : "Global rocket box model" : : "Use this field to replace all rocket boxes with this model" - r_lg_mdl(string) : "Global large rocket box model" : : "Use this field to replace all large rocket boxes with this model" - c_sm_mdl(string) : "Global cell box model" : : "Use this field to replace all cell boxes with this model" - c_lg_mdl(string) : "Global large cell box model" : : "Use this field to replace all large cell boxes with this model" - a_shr_mdl(string) : "Global armor shard model" : : "Use this field to replace all armor shards with this model" - a_grn_mdl(string) : "Global Green Armor model" : : "Use this field to replace all Green Armors with this model" - a_ylw_mdl(string) : "Global Yellow Armor model" : : "Use this field to replace all Yellow Armors with this model" - a_red_mdl(string) : "Global Red Armor model" : : "Use this field to replace all Red Armors with this model" + h_vial_mdl(studio) : "Global health vial model" : : "Use this field to replace all vials with this model" + h_25_mdl(studio) : "Global health box model" : : "Use this field to replace all vials with this model" + h_15_mdl(studio) : "Global rotten health box model" : : "Use this field to replace all rotten health boxes with this model" + h_mega_mdl(studio) : "Global Megahealth model" : : "Use this field to replace all Megahealths with this model" + s_sm_mdl(studio) : "Global shell box model" : : "Use this field to replace all shell boxes with this model" + s_lg_mdl(studio) : "Global large shell box model" : : "Use this field to replace all large shell boxes with this model" + n_sm_mdl(studio) : "Global spike box model" : : "Use this field to replace all spike boxes with this model" + n_lg_mdl(studio) : "Global large spike box model" : : "Use this field to replace all large spike boxes with this model" + r_sm_mdl(studio) : "Global rocket box model" : : "Use this field to replace all rocket boxes with this model" + r_lg_mdl(studio) : "Global large rocket box model" : : "Use this field to replace all large rocket boxes with this model" + c_sm_mdl(studio) : "Global cell box model" : : "Use this field to replace all cell boxes with this model" + c_lg_mdl(studio) : "Global large cell box model" : : "Use this field to replace all large cell boxes with this model" + a_shr_mdl(studio) : "Global armor shard model" : : "Use this field to replace all armor shards with this model" + a_grn_mdl(studio) : "Global Green Armor model" : : "Use this field to replace all Green Armors with this model" + a_ylw_mdl(studio) : "Global Yellow Armor model" : : "Use this field to replace all Yellow Armors with this model" + a_red_mdl(studio) : "Global Red Armor model" : : "Use this field to replace all Red Armors with this model" ] // // base marker definitions // -@baseclass = Angle [ angle(integer) : "Direction" ] +@BaseClass = Angle +[ + angle(integer) : "Yaw Angle" +] + +@BaseClass = Angles +[ + angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0" : "This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis." +] -@baseclass = Appearflags [ +@BaseClass = Appearflags +[ spawnflags(Flags) = [ 256 : "Not on Easy" : 0 @@ -110,236 +120,249 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////// // bassclass modified by dumptruck_ds to include multiple targets and targetnames via custents // /////////////////////////////////////////////////////////////////////////////////////////////////////////// -@baseclass = CustomMdls +@BaseClass = CustomMdls [ - mdl_head(string) : "Path to custom head model" - mdl_body(string) : "Path to custom body model" - mdl_proj(string) : "Path to custom projectile model" - skin_head(float) : "Skin index of custom head model" - skin_proj(float) : "Skin index of custom projectile model" - mdl_gib1(string) : "Path to custom 1st gib model" - mdl_gib2(string) : "Path to custom 2nd gib model" - mdl_gib3(string) : "Path to custom 3rd gib model" + mdl_head(studio) : "Path to custom head model" + mdl_body(studio) : "Path to custom body model" + mdl_proj(studio) : "Path to custom projectile model" + skin_head(integer) : "Skin index of custom head model" + skin_proj(integer) : "Skin index of custom projectile model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" ] -@baseclass = CustomMdlsWizSham +@BaseClass = CustomMdlsWizSham [ - mdl_head(string) : "Path to custom head model" - mdl_body(string) : "Path to custom body model" - skin_head(float) : "Skin index of custom head model" - mdl_gib1(string) : "Path to custom 1st gib model" - mdl_gib2(string) : "Path to custom 2nd gib model" - mdl_gib3(string) : "Path to custom 3rd gib model" + mdl_head(studio) : "Path to custom head model" + mdl_body(studio) : "Path to custom body model" + skin_head(integer) : "Skin index of custom head model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" ] -@baseclass = CustomMdlsSpawn +@BaseClass = CustomMdlsSpawn [ - mdl_body(string) : "Path to custom body model" + mdl_body(studio) : "Path to custom body model" ] -@baseclass = CustomMdlsSkin +@BaseClass = CustomMdlsSkin [ -skin(integer) : "Skin index (default 0)" -mdl_body(string) : "Path to custom body model" + skin(integer) : "Skin index (default 0)" + mdl_body(studio) : "Path to custom body model" ] -@baseclass = CustomMdlsAmmo +@BaseClass = CustomMdlsAmmo [ - mdl_body(string) : "Path to custom body model" + mdl_body(studio) : "Path to custom body model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" ] -@baseclass = CustomMdlsHealth +@BaseClass = CustomMdlsHealth [ -skin(integer) : "Skin index (default 0)" -mdl_body(string) : "Path to custom body model" -// healamount(integer) : "Custom health amount (max of 250)" + skin(integer) : "Skin index (default 0)" + mdl_body(studio) : "Path to custom body model" + // healamount(integer) : "Custom health amount (max of 250)" ] -@baseclass = Berserk [ -berserk(choices) : "skip certain pain animations" : : "Skips certain pain animations similar to skill 3 (Makes a semi-nightmare monster!)" = +@BaseClass = Berserk [ + berserk(choices) : "skip certain pain animations" : : "Skips certain pain animations similar to skill 3 (Makes a semi-nightmare monster!)" = [ 0 : "Off (Default)" 1 : "Berserk (skip pain animations)" ] ] -@baseclass = Effects +@BaseClass = Effects [ -alpha(float) : "Transparancy (.1 barely visible - .9 almost opaque)" -effects(choices) : "Various visual effects" : : "Add a visual effect to an entity" = - [ - 0 : "None (Default)" - 1 : "Brightfield (yellow particles)" - 4 : "Bright light" - 8 : "Dim light" - ] -] -@baseclass = State [ -state(choices) = - [ - 0: "Off (Default)" - 1 : "Start on" - ] + alpha(float) : "Transparency" : : ".1 barely visible - .9 almost opaque)" + effects(flags) : "Various visual effects" : : "Add a visual effect to an entity" = + [ + 0 : "None (Default)" + 1 : "Brightfield (yellow particles)" + 4 : "Bright light" + 8 : "Dim light" + ] ] -@baseclass = Targetname [ +@BaseClass = State +[ + state(choices) = + [ + 0: "Off (Default)" + 1 : "Start on" + ] +] +@BaseClass = Targetname +[ targetname(target_source) : "Name" - targetname2(target_source) : "Name" - targetname3(target_source) : "Name" - targetname4(target_source) : "Name" - ] -@baseclass = Target [ + targetname2(target_source) : "Name 2" + targetname3(target_source) : "Name 3" + targetname4(target_source) : "Name 4" +] + +@BaseClass = Target +[ target(target_destination) : "Target" - target2(target_destination) : "Target2" - target3(target_destination) : "Target3" - target4(target_destination) : "Target4" + target2(target_destination) : "Target 2" + target3(target_destination) : "Target 3" + target4(target_destination) : "Target 4" killtarget(target_destination) : "Killtarget" - killtarget2(target_destination) : "Killtarget2" + killtarget2(target_destination) : "Killtarget 2" ] -@baseclass = OneTargetname[targetname(target_source) : "Name"] +@BaseClass = OneTargetname +[ + targetname(target_source) : "Name" +] -@baseclass = OneTarget[target(target_destination) : "Target"] +@BaseClass = OneTarget +[ + target(target_destination) : "Target" +] -@baseclass = TriggerWait [ - is_waiting(choices) : "Dormant Trigger" : 0 : - "If set to 1, the trigger starts dormant and waits for activation. Subsequent activations trigger its target as usual." = +@BaseClass = TriggerWait +[ + is_waiting(choices) : "Dormant Trigger" : 0 : "If set to 1, the trigger starts dormant and waits for activation. Subsequent activations trigger its target as usual." = [ 0 : "Default" 1 : "Wait for Trigger" ] ] -@baseclass = Message [ + +@BaseClass = Message +[ spawnflags(flags) = [ 1048576 : "Message all players" : 0 ] ] -@baseclass = Turret [ +@BaseClass = Turret +[ spawnflags(flags) = [ 262144 : "Turret Mode" : 0 ] ] +// SYJ - Was originally at start of "Triggers" section, but trigger_filter calls it before then, causing an error +@BaseClass base(Appearflags, Target, Targetname, TriggerWait, Message) = Trigger +[ + sounds(choices) : "Sound style" : 0 = + [ + 0 : "None" + 1 : "Secret sound" + 2 : "Beep beep" + 3 : "Large switch" + ] + delay(string) : "Delay before trigger" : "0" + message(string) : "Message" +] + + ////////////////////// // end dumptruck_ds // ////////////////////// -@baseclass = Fog [ - fog_density(string) : "Fog Density" : : "Set to -1 to disable fog." +@BaseClass = Fog [ + fog_density(float) : "Fog Density" : : "Set to -1 to disable fog." fog_color(color1) : "Fog Color" - skyfog_density(string) : "Skyfog Density": : "Set to -1 to disable skyfog." + skyfog_density(float) : "Skyfog Density": : "Set to -1 to disable skyfog." ] -@baseclass = FogShift [ - fog_density(string) : "Start Fog Density" : : "Set to -1 to disable fog." +@BaseClass = FogShift [ + fog_density(float) : "Start Fog Density" : : "Set to -1 to disable fog." fog_color(color1) : "Start Fog Color" - skyfog_density(string) : "Start Skyfog Density" : : "Set to -1 to disable skyfog." - fog_density2(string) : "End Fog Density" : : "Set to -1 to disable fog." + skyfog_density(float) : "Start Skyfog Density" : : "Set to -1 to disable skyfog." + fog_density2(float) : "End Fog Density" : : "Set to -1 to disable fog." fog_color2(color1) : "End Fog Color" - skyfog_density2(string) : "End Skyfog Density" : : "Set to -1 to disable skyfog." + skyfog_density2(float) : "End Skyfog Density" : : "Set to -1 to disable skyfog." ] + + + // // player starts, deathmatch, coop, teleport // -@baseclass base(Appearflags, Fog) size(-16 -16 -24, 16 16 32) - color(0 255 0) model({ "path": ":progs/player.mdl" }) = PlayerClass [] -@baseclass base(Appearflags, Fog) size(-16 -16 -24, 16 16 32) +@BaseClass base(Appearflags, Fog) size(-16 -16 -24, 16 16 32) + model({ "path": ":progs/player.mdl" }) = PlayerClass [] +@BaseClass base(Appearflags, Fog) size(-16 -16 -24, 16 16 32) color(0 255 0) model({ "path": ":progs/player.mdl" , "frame": 120}) = PlayerClassAlt [] -@baseclass base(Appearflags) size(-64 -64 -24, 64 64 32) +@BaseClass base(Appearflags) size(-64 -64 -24, 64 64 32) color(206 18 18) model( {{ mdl_body -> {"path": mdl_body, "skin" : skin}, {"path": "progs/teleport.mdl","skin" : 1} }}) = MonsterClass [] -@PointClass color(206 18 18) base(OneTarget, OneTargetname, Berserk, Appearflags) = func_monster_spawner : "Spawns monsters to targeted info_monster_spawnpoint (make sure both entities are close together or overlapping) - -Choose Style via dropdown - -Style 2 set to 1 overrides Style and chooses a random monster - -Default time between spawns is 5 seconds - -Can set Berserk to 1 to skip most pain animations. - -Can only use default health, models and sounds. -" +@PointClass color(206 18 18) base(OneTarget, OneTargetname, Berserk, Appearflags) = func_monster_spawner : "Spawns monsters to a targeted info_monster_spawnpoint (make sure both entities are close together or overlapping).\nChoose Style via dropdown.\nStyle 2 set to 1 overrides Style and chooses a random monster.\nDefault time between spawns is 5 seconds.\nSetting Berserk to 1 skips most pain animations.\nCan only use default health, models and sounds." [ spawnflags(flags) = - [ - 1: "Reset after completion" : 0 - 2: "Don't spawn angry" : 0 - 4: "Don't add to count" : 0 - 32: "Silent spawn" : 0 - ] -style(Choices) = -[ - 1 : "Dog (Default)" - 2 : "Grunt" - 3 : "Enforcer" - 4 : "Ogre" - 5 : "Fiend" - 6 : "Wizard" - 7 : "Shambler" - 8 : "Knight" - 9 : "HellKnight" - 10 : "Spawn" - 11 : "Zombie" - 12 : "Shalrath" -] -style2(integer) : "Overrides Style and selects random monster" -wait(integer) : "Wait this long between spawns (default 5)" -count(integer) : "How many monsters to spawn (default 5)" + [ + 1 : "Reset after completion" : 0 + 2 : "Don't spawn angry" : 0 + 4 : "Don't add to count" : 0 + 32 : "Silent spawn" : 0 + ] + style(Choices) = + [ + 1 : "Dog (Default)" + 2 : "Grunt" + 3 : "Enforcer" + 4 : "Ogre" + 5 : "Fiend" + 6 : "Wizard" + 7 : "Shambler" + 8 : "Knight" + 9 : "HellKnight" + 10 : "Spawn" + 11 : "Zombie" + 12 : "Shalrath" + ] + style2(integer) : "Overrides Style and selects random monster" + wait(integer) : "Wait this long between spawns (default 5)" + count(integer) : "How many monsters to spawn (default 5)" ] + @PointClass base(MonsterClass, OneTargetname) = info_monster_spawnpoint : "Destination for func_monster_spawner" [] -@PointClass base(PlayerClass) = info_player_start : "Player 1 start" [] -@PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" [] -@PointClass base(PlayerClass) = info_player_start2 : "Player episode return point" [] -@PointClass base(PlayerClass) = info_player_deathmatch : "Deathmatch start" [] +@PointClass base(PlayerClass) color(0 255 0) = info_player_start : "Player 1 start" [] +@PointClass base(PlayerClass) color(192 0 0) = info_player_deathmatch : "Player deathmatch start" [] +@PointClass base(PlayerClass) color(0 0 192) = info_player_coop : "Player cooperative start" [] +@PointClass base(PlayerClass) color(0 128 0) = info_player_start2 : "Player episode return point" [] @PointClass base(PlayerClass) = testplayerstart : "Testing player start" [] -@PointClass size(-32 -32 0, 32 32 64) base(PlayerClass, Targetname) = info_teleport_destination : "Teleporter destination" [] -@PointClass size(-32 -32 0, 32 32 64) base(PlayerClassAlt, Targetname) = info_teleport_random : "Random Teleporter destination +@PointClass size(-32 -32 0, 32 32 64) base(PlayerClass, Targetname) color(0 255 0) = info_teleport_destination : "Teleporter destination" [] -Only for use with trigger_teleport entities set to RANDOM" [] -@PointClass color(200 150 150) = info_null : "info_null (spotlight target)" +@PointClass size(-32 -32 0, 32 32 64) base(PlayerClassAlt, Targetname) = info_teleport_random : "Random Teleporter destination. Only for use with trigger_teleport entities set to RANDOM" [] +@PointClass color(128 128 128) = info_null : "info_null (spotlight target)" [ targetname(target_source) : "Name" ] -@PointClass base(Appearflags) color(0 255 0) = info_teleport_changedest : "info_teleport_changedest allows a mapper to change the target of a teleport_trigger. -Useful in maps where the player may fall into a void and the mapper wants to update where they respawn as they progress through the level. Could also be used for teleport puzzles and more. - -target = trigger_teleport to change, message = new info_teleport_destination's targetname to switch to, targetname = name of this entity so we can use it. - -NOTE when a trigger_teleport has a targetname it must be triggered to operate, so adding an overlapping trigger_multiple targeting the trigger_teleport will be neccessary" +@PointClass base(Appearflags) color(0 255 0) = info_teleport_changedest : "info_teleport_changedest allows a mapper to change the target of a teleport_trigger.\nUseful in maps where the player may fall into a void and the mapper wants to update where they respawn as they progress through the level. Could also be used for teleport puzzles and more.\nNOTE when a trigger_teleport has a targetname it must be triggered to operate, so adding an overlapping trigger_multiple targeting the trigger_teleport will be necessary" [ targetname(target_source) : "name of this entity so we can trigger it" - target(target_source) : "trigger_teleport to change" + target(target_destination) : "trigger_teleport to change" message(string) : "new info_teleport_destination's targetname to switch to" ] + @PointClass base(Appearflags, Target, Targetname) color(200 150 150) = info_notnull : "Wildcard entity" // I love you [ use(string) : "self.use" think(string) : "self.think" nextthink(integer) : "nextthink" - noise(string) : "noise" + noise(sound) : "noise" touch(string) : "self.touch" ] + @PointClass base(Appearflags, Fog) = info_intermission : "Intermission camera" [ mangle(string) : "Camera angle (Pitch Yaw Roll)" ] -@PointClass = info_intermissiontext : "Intermission Text - -See the `prefab_info_intermissiontext` sample map and refer to the manual for setup." +@PointClass = info_intermissiontext : "Intermission Text.\n\nSee the `prefab_info_intermissiontext` sample map and refer to the manual for setup." [ - message(string): "Text to show on intermission screen" - sounds(integer): "CD Track to play during intermission. This only takes effect on the first page." - cnt(integer): "Page number" + message(string) : "Text to show on intermission screen" + sounds(integer) : "Music track to play" : : "CD Track to play during intermission. This only takes effect on the first page." + cnt(integer) : "Page number" ] -@PointClass base(Targetname, Appearflags) color(255 0 128) size(32 32 32) = target_autosave : -"Saves the game when triggered by a player. Never appears in multiplayer. -the bprint tends to stomp any other prints on screen in most quake clients, so use a delayed trigger_relay if you fire this from an important pickup/trigger_counter/something else that puts text on screen more important than the autosave blurb." +@PointClass base(Targetname, Appearflags) color(255 0 128) size(32 32 32) = target_autosave : "Saves the game when triggered by a player. Never appears in multiplayer.\nThe bprint tends to stomp any other prints on screen in most quake clients, so use a delayed trigger_relay if you fire this from an important pickup/trigger_counter/something else that puts text on screen more important than the autosave blurb." [ message(string) : "Change save filename" : "auto" ] @@ -348,8 +371,7 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u // items // -@BaseClass base(Appearflags, Target, Targetname, Effects, Angle) = - NonRespawnableItem +@BaseClass base(Appearflags, Target, Targetname, Effects, Angle) = NonRespawnableItem [ spawnflags(flags) = [ @@ -362,8 +384,7 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u // delay(integer) : "Delay" ] -@BaseClass base(NonRespawnableItem) = - RespawnableItem +@BaseClass base(NonRespawnableItem) = RespawnableItem [ spawnflags(flags) = [ @@ -374,8 +395,7 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u respawncount(integer) : "How many respawns?" ] -@BaseClass size(0 0 0, 32 32 56) color(80 0 200) base(RespawnableItem, CustomMdlsAmmo) = - Ammo +@BaseClass size(0 0 0, 32 32 56) color(80 0 200) base(RespawnableItem, CustomMdlsAmmo) = Ammo [ spawnflags(flags) = [ @@ -425,6 +445,7 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u }} ) = item_spikes : "Nailgun/Perforator ammo" [] + @PointClass size(0 0 0, 32 32 56) base(RespawnableItem, CustomMdlsHealth) @@ -444,9 +465,9 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u 1 : "Rotten" : 0 2 : "Megahealth" : 0 ] - mdl_body(string) : "Path to custom model" + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to health pickup sound" + snd_misc(sound) : "Path to health pickup sound" ] @PointClass @@ -459,9 +480,9 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u ) = item_health_vial : "Small vial of health (default 5)" [ - mdl_body(string) : "Path to custom model" + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to health pickup sound" + snd_misc(sound) : "Path to health pickup sound" ] @BaseClass base(RespawnableItem, CustomMdlsAmmo, CustomMdlsSkin) size(-16 -16 -24, 16 16 32) = @@ -485,47 +506,49 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u }} ) = item_armorInv : "Red armor (200%)" - [ - mdl_body(string) : "Path to custom model" - particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" +[ + mdl_body(studio) : "Path to custom model" + particles_offset(string) : "Custom model particle offset" : : "Adjusts origin of spawning particles when using mdl_body. When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] @PointClass base(Armor) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/armor.mdl" , "skin" : 1} }} ) = item_armor2 : "Yellow armor (150%)" - [ - mdl_body(string) : "Path to custom model" +[ + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] @PointClass base(Armor) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/armor.mdl" , "skin" : skin} }} ) = item_armor1 : "Green armor (100%)" - [ - mdl_body(string) : "Path to custom model" +[ + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] @PointClass base(Armor) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/armshr.mdl" , "skin" : skin} }} ) = item_armor_shard : "A small piece of armor worth 5 points of Green armor protection. Can only add a max of 25 points to any armor." - [ - mdl_body(string) : "Path to custom model" +[ + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] + + @BaseClass base(NonRespawnableItem) size(-16 -16 -24, 16 16 32) = Key [] @@ -554,36 +577,13 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u mdl -> {"path" : mdl, "skin" : skin}, {"path": "progs/pd_r_key.mdl" , "skin" : 25} }} ) = item_key_custom : -"A customizable key item. - -This allows mappers to use any Quake compatible model, sprite or BSP as a key. We’ve also included new key models with different variations. You can find these in the progs folder and set their paths in the mdl key. - -keyname: name of the key, e.g. 'bronze key' (required), mdl: model file path (requiredL) noise: sound file for the pickup sound (default is per worldtype), skin: skin index (default 0), frame (default 0): display this single frame of the model, if animated. NOTE: The key will not display any animation. - -Three new models based on id’s original keys are included. One for each worldtype: base, runic and wizard. Each of these has four color variations, also referred to as their skin index: jade (green, skin 0), runic (magenta, skin 1), blood (red, skin 2) and alabaster (gray, skin 3). The development/wads folder has a small wad with textures for use with the different styles seen below. - -'keyname': name of the key, e.g. 'bronze key' (required) - -'mdl': model file (required) - -'noise': sound file for the pickup sound (default is per worldtype) - -'skin': skin index (default 0) - -The 'keyname' value is used both for the pickup message and to associate the key with the entity that it unlocks. - -To make a func_door or trigger_usekey require this key, set the 'keyname' value of that entity so that it matches the 'keyname' value of the key. - -If different item_key_custom entities have the same 'keyname' value, they will be treated as different copies of the same key and may be used interchangeably. - -A map may have a maximum of 23 unique 'keyname' values across all entities. - -The behavior of an item_key_custom should be as the player expects (based on the behavior of the silver and gold keys), except for the fact that it will not appear as an icon in the player's status bar when picked up. This is a limitation of the engine." +"A customizable key item.\n\nThis allows mappers to use any Quake compatible model, sprite or BSP as a key. We’ve also included new key models with different variations. You can find these in the progs folder and set their paths in the mdl key.\n\nThree new models based on id’s original keys are included. One for each worldtype: base, runic and wizard. Each of these has four color variations, also referred to as their skin index: jade (green, skin 0), runic (magenta, skin 1), blood (red, skin 2) and alabaster (gray, skin 3). The development/wads folder has a small wad with textures for use with the different styles seen below.\n\nThe behavior of an item_key_custom should be as the player expects (based on the behavior of the silver and gold keys), except for the fact that it will not appear as an icon in the player's status bar when picked up. This is a limitation of the engine." [ - keyname(string) : "Name of the key, e.g. 'bronze key' (required)" - mdl(string) : "Model file (required)" - noise(string) : "Sound file for the pickup sound (default is per worldtype)" - skin(integer) : "Skin index (default 0)" + keyname(string) : "Name of the key, e.g. 'bronze key' (required)" : : "name of the key, e.g. 'bronze key' (required).The 'keyname' value is used both for the pickup message and to associate the key with the entity that it unlocks.\n\nTo make a func_door or trigger_usekey require this key, set the 'keyname' value of that entity so that it matches the 'keyname' value of the key.\n\nIf different item_key_custom entities have the same 'keyname' value, they will be treated as different copies of the same key and may be used interchangeably.\n\nA map may have a maximum of 23 unique 'keyname' values across all entities." + mdl(studio) : "Model file (required)" : : "model file path (required)" + noise(sound) : "Pickup sound" : : "Sound file for the pickup sound (default is per worldtype)" + skin(integer) : "Skin" : 0 : "Skin index (default 0)" + frame(integer) : "Animation frame" : : "display this single frame of the model, if animated. NOTE: The key will not display any animation." ] @PointClass @@ -608,6 +608,51 @@ The behavior of an item_key_custom should be as the player expects (based on the ] ] +//item-backpack +@PointClass base(Appearflags, OneTargetname, Effects) size(-16 -16 0, 16 16 56) color(80 0 200) model( + {{ + mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/pd_bpack.mdl" , "skin" : skin} + }} +) = item_backpack +:"Placeable backpack\n\n An ammo type spawnflag must be set for this to appear in a map. The ALL_AMMO spawnflag gives roughly half the ammo from the 4 standard pickups:\n\n10 Shells\n12 Nails\n2 Rockets\n3 Cells\n\nOr you can use the spawnflags to mix and match types. Override the spawnflags defaults by adding custom amounts to:\n\nammo_shells\nammo_nails\nammo_rockets\nammo_cells\n\nMake sure and select both matching spawnflag and ammo_ type. Can trigger spawn and suspend in air, but not respawn.\n\nYou can set a skin index if you are using a custom model with skins.\n\nThe default pickup message is `You got a backpack.` But you can set a custom message with the netname key. 'You got' will be the prefixand the mapper chooses the rest of the message.\n\ne.g. For 'You got a bunch of rockets!' the netname value would be 'a bunch of rockets!'" +[ + ammo_shells(integer) : "Custom amount of shells" : 0 + ammo_nails(integer) : "Custom amount of nails" : 0 + ammo_rockets(integer) : "Custom amount of rockets" : 0 + ammo_cells(integer) : "Custom amount of cells" : 0 + netname(string) : "Custom text for ammo pickups" + snd_misc(sound) : "Path to custom pickup sound" + mdl_body(studio) : "Path to custom body model" + skin(choices) : "Backpack Skin" : 0 = + [ + 0 : "Default" + 1 : "Shells" + 2 : "Nails" + 3 : "Rockets" + 4 : "Cells" + 5 : "Red" + 6 : "Rust" + 7 : "Blue" + 8 : "Green" + 9 : "Purple" + 10 : "Cream" + 11 : "Gray" + 12 : "Orignal Vanilla skin" + ] + spawnflags(flags) = + [ + 1 : "All Ammo" : 0 + 2 : "Shells" : 0 + 4: "Nails" : 0 + 8 : "Rockets" : 0 + 16 : "Cells" : 0 + 32 : "Spawn Silently" : 0 + 64 : "Trigger spawned" : 0 + 128 : "Suspended in air" : 0 + ] +] + + // // weapons // @@ -616,28 +661,21 @@ The behavior of an item_key_custom should be as the player expects (based on the Weapon [] //axe not used in this version -//@PointClass base(Weapon) model({ "path": ":progs/g_axe.mdl" }) = -// weapon_axe : "Axe" [] -@PointClass base(Weapon) model({ "path": ":progs/g_shotgu.mdl" }) = - weapon_shotgun : "Shotgun"[] -@PointClass base(Weapon) model({ "path": ":progs/g_shot.mdl" }) = - weapon_supershotgun : "Double-barrelled shotgun" [] -@PointClass base(Weapon) model({ "path": ":progs/g_nail.mdl" }) = - weapon_nailgun : "Nailgun" [] -@PointClass base(Weapon) model({ "path": ":progs/g_nail2.mdl" }) = - weapon_supernailgun : "Super nailgun" [] -@PointClass base(Weapon) model({ "path": ":progs/g_rock.mdl" }) = - weapon_grenadelauncher : "Grenade launcher" [] -@PointClass base(Weapon) model({ "path": ":progs/g_rock2.mdl" }) = - weapon_rocketlauncher : "Rocket launcher" [] -@PointClass base(Weapon) model({ "path": ":progs/g_light.mdl" }) = - weapon_lightning : "Thunderbolt" [] +//@PointClass base(Weapon) model({ "path": ":progs/g_axe.mdl" }) = weapon_axe : "Axe" [] +@PointClass base(Weapon) model({ "path": ":progs/g_shotgu.mdl" }) = weapon_shotgun : "Shotgun"[] +@PointClass base(Weapon) model({ "path": ":progs/g_shot.mdl" }) = weapon_supershotgun : "Double-barrelled shotgun" [] +@PointClass base(Weapon) model({ "path": ":progs/g_nail.mdl" }) = weapon_nailgun : "Nailgun" [] +@PointClass base(Weapon) model({ "path": ":progs/g_nail2.mdl" }) = weapon_supernailgun : "Super nailgun" [] +@PointClass base(Weapon) model({ "path": ":progs/g_rock.mdl" }) = weapon_grenadelauncher : "Grenade launcher" [] +@PointClass base(Weapon) model({ "path": ":progs/g_rock2.mdl" }) = weapon_rocketlauncher : "Rocket launcher" [] +@PointClass base(Weapon) model({ "path": ":progs/g_light.mdl" }) = weapon_lightning : "Thunderbolt" [] // // monsters // -@baseclass base(Angle, Appearflags, Target, Targetname, Effects) color(220 0 0) = Monster +//dumptruck_ds start +@BaseClass base(Angle, Appearflags, Target, Targetname, Effects) color(220 0 0) = Monster [ spawnflags(Flags) = [ @@ -676,8 +714,8 @@ The behavior of an item_key_custom should be as the player expects (based on the 2 : "Infight with monsters with the same classname and model but a different skin" 3 : "Infight no matter what" ] - health(integer) : "Cutom health amount" : : "Set this to a custom health amount" - pain_target(string) : "Fire this target when pain_threshold is reached" : : "Fire this target when pain_threshold is reached" + health(integer) : "Custom health amount" : : "Set this to a custom health amount" + pain_target(target_destination) : "Fire this target when pain_threshold is reached" : : "Fire this target when pain_threshold is reached" pain_threshold(integer) : "Fire pain_target when health drops below this amount" : : "Fire pain_target when health drops below this amount" sight_trigger(integer) : "Fire this target upon seeing the player" : : "Fire this target upon seeing the player" skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" @@ -685,8 +723,8 @@ The behavior of an item_key_custom should be as the player expects (based on the obit_method(string) : "Custom description of HOW this monster killed the player." : : "When used with obit_name, will set part of the text for a custom obituary. e.g. eviscerated - If empty, defaults to killed." damage_mod(float) : "Damage multiplier (e.g. 4 = Quad damage)" : : "USE WITH CAUTION! Multiply all damage from this monster by this number (e.g. 4 = Quad damage)" homing(float) : "Multiplier for projectile homing, maximum 1. Only applies to non-grenade projectiles." : "0" - proj_speed_mod(float) : "Multiplier for projectile speed. Only applies to non-grenade projectiles." : "1" waitmin(float) : "When set, homing factor will begin to increase after (waitmin) seconds." : "0" + proj_speed_mod(float) : "Multiplier for projectile speed. Only applies to non-grenade projectiles." : "1" drop_item(Choices) = [ 0 : "(Default) Disabled" @@ -708,21 +746,21 @@ The behavior of an item_key_custom should be as the player expects (based on the Default health = 30" [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (GUNSHOT)" : : "Path to custom attack sound (GUNSHOT)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (PAIN 2)" : : "Path to custom sound (PAIN 2)" -style(Choices) : "Attack type" = + keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (GUNSHOT)" : : "Path to custom attack sound (GUNSHOT)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (PAIN 2)" : : "Path to custom sound (PAIN 2)" + style(Choices) : "Attack type" : 0 = [ 0 : "Default (shotgun)" - 1 : "rockets" - 2 : "grenades" - 3 : "lasers" - 4 : "nails (single fire)" - 5 : "nails (rapid fire)" + 1 : "Rockets" + 2 : "Grenades" + 3 : "Lasers" + 4 : "Nails (single fire)" + 5 : "Nails (rapid fire)" ] ] // @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-32 -32 -24, 32 32 40) model({ "path": ":progs/dog.mdl" }) = monster_dog : "Nasty Doggie @@ -733,35 +771,33 @@ style(Choices) : "Attack type" = ) = monster_dog : "Nasty Doggie Default health = 25" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" ] // @PointClass base(Monster, Berserk, CustomMdls) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/ogre.mdl" }) = monster_ogre : "Ogre @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-32 -32 -24, 32 32 64) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/ogre.mdl" , "skin" : skin} }} -) = monster_ogre : "Ogre - -Default health = 200" -[ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" -snd_idle(string) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" -snd_misc(string) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" -snd_misc1(string) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" -snd_misc2(string) : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" : : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" -cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" -style(Choices) : "Attack type" = +) = monster_ogre : "Ogre, Default health = 200" +[ + keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" + snd_idle(sound) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" + snd_misc(sound) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" + snd_misc1(sound) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" + snd_misc2(sound) : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" : : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" + cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" + style(Choices) : "Attack type" = [ 0 : "Default (grenade)" - 1 : "Flak Ogre (Marcher, Quoth)" + 1 : "Flak Ogre (Marcher, Quoth)" 2 : "sniper (shoots single, deadly lava round)" 3 : "multi-grenade (Mission Pack 2)" 4 : "Lava Ogre (shoots lavaballs that explode)" @@ -773,34 +809,30 @@ style(Choices) : "Attack type" = {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/ogre.mdl" , "skin" : skin, frame : 63} }} -) = monster_ogre_marksman : "Ogre marksman - -Default health = 200 - -The more accurate monster_ogre_marksman entity produces a slightly different ogre (won't make a sound when the player is sighted, won't make chainsaw dragging sounds, has a different decision-making process when choosing whether to attack, and will in-fight with regular ogres). In progs_dump this Ogre will also have better aiming at stationary players no matter what the elevation." [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" -snd_idle(string) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" -snd_misc(string) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" -snd_misc1(string) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" +) = monster_ogre_marksman : "Ogre marksman, Default health = 200.\n\n The more accurate monster_ogre_marksman entity produces a slightly different ogre (won't make a sound when the player is sighted, won't make chainsaw dragging sounds, won't make a proper obituary message, has a different decision-making process when choosing whether to attack, and will in-fight with regular ogres). In progs_dump this Ogre will also have better aiming at stationary players no matter what the elevation." +[ + keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" + snd_idle(sound) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" + snd_misc(sound) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" + snd_misc1(sound) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" ] // @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/knight.mdl" }) = monster_knight : "Knight @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-16 -16 -24, 16 16 40) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/knight.mdl" , "skin" : skin} }} -) = monster_knight : "Knight -Default heath = 75" +) = monster_knight : "Knight, Default heath = 75" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (SWORD SLASH 1)" : : "Path to custom attack sound (SWORD SLASH 1)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (SWORD SLASH 2)" : : "Path to custom sound (SWORD SLASH 2)" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (SWORD SLASH 1)" : : "Path to custom attack sound (SWORD SLASH 1)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (SWORD SLASH 2)" : : "Path to custom sound (SWORD SLASH 2)" ] // @PointClass base(Monster, Berserk, CustomMdls) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/hknight.mdl" }) = monster_hell_knight : "Hell Knight a.k.a. Death Knight @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-16 -16 -24, 16 16 40) model( @@ -810,26 +842,26 @@ snd_misc(string) : "Path to custom sound (SWORD SLASH 2)" : : "Path to custom so ) = monster_hell_knight : "Hell Knight a.k.a. Death Knight Default health = 250" [ -projexpl(Choices) : "Exploding projectiles" = - [ - 0 : "Normal (no explosions)" + projexpl(Choices) : "Exploding projectiles" = + [ + 0 : "Normal (no explosions)" 1 : "All projectiles explode" 2 : "Projectiles alternate between exploding and not" 3 : "Projectiles are randomly exploding" ] -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (MAGIC BOING)" : : "Path to custom attack sound (MAGIC BOING)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom SWORD SLASH sound" : : "Path to custom SWORD SLASH sound" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (MAGIC BOING)" : : "Path to custom attack sound (MAGIC BOING)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom SWORD SLASH sound" : : "Path to custom SWORD SLASH sound" -mdl_exproj(string) : "Path to custom exploding projectile model" -skin_exproj(float) : "Skin index for custom exploding projectile model" -style(Choices) : "Attack type" = + mdl_exproj(studio) : "Path to custom exploding projectile model" + skin_exproj(integer) : "Skin index for custom exploding projectile model" + style(choices) : "Attack type" = [ 0 : "Default (magic spikes)" - 1 : "lightning" + 1 : "Lightning" ] ] // @PointClass base(Monster, Berserk, CustomMdls) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/wizard.mdl" }) = monster_wizard : "Scrag a.k.a Wizard @@ -837,20 +869,18 @@ style(Choices) : "Attack type" = {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/wizard.mdl" , "skin" : skin} }} -) = monster_wizard : "Scrag a.k.a Wizard - -Default health = 80" -[ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound e.g. slimeball hits wall" -snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (IDLE 2)" : : "Path to custom sound (IDLE 2)" -projexpl(Choices) : "Exploding projectiles" = - [ - 0 : "Normal (no explosions)" +) = monster_wizard : "Scrag a.k.a Wizard, Default health = 80" +[ + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound e.g. slimeball hits wall" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (IDLE 2)" : : "Path to custom sound (IDLE 2)" + projexpl(Choices) : "Exploding projectiles" = + [ + 0 : "Normal (no explosions)" 1 : "Projectiles explode" ] ] @@ -859,16 +889,14 @@ projexpl(Choices) : "Exploding projectiles" = {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/demon.mdl" , "skin" : skin} }} -) = monster_demon1 : "Fiend - -Default heath = 300" +) = monster_demon1 : "Fiend, Default heath = 300" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" - snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" - snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" - snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" - snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound e.g. Enforcer laser hit" - snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound e.g. Enforcer laser hit" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" ] // @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/shambler.mdl" }) = monster_shambler : "Shambler @@ -876,26 +904,24 @@ snd_death(string) : "Path to custom death sound" : : "Path to custom death sound {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/shambler.mdl" , "skin" : skin} }} -) = monster_shambler : "Shambler - -Default health = 600" -[ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (GRUNT)" : : "Path to custom attack sound (GRUNT)" -snd_hit(string) : "Path to custom hit sound (FLESH TEARING)" : : "Path to custom hit sound (FLESH TEARING)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (GRUNT 2)" : : "Path to custom sound (GRUNT 2)" -snd_misc1(string) : "Path to custom sound (LIGHTNING ZAP)" : : "Path to custom sound (LIGHTNING ZAP)" -snd_misc2(string) : "Path to custom sound (LIGHTNING BOOM)" : : "Path to custom sound (LIGHTNING BOOM)" -mdl_proj(string) : "Path to custom projectile model" : : "Path to custom projectile model" -skin_proj(float) : "Path to custom projectile skin" : : "Path to custom projectile skin" -cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" -style(Choices) : "Attack type" = +) = monster_shambler : "Shambler, Default health = 600" +[ + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (GRUNT)" : : "Path to custom attack sound (GRUNT)" + snd_hit(sound) : "Path to custom hit sound (FLESH TEARING)" : : "Path to custom hit sound (FLESH TEARING)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (GRUNT 2)" : : "Path to custom sound (GRUNT 2)" + snd_misc1(sound) : "Path to custom sound (LIGHTNING ZAP)" : : "Path to custom sound (LIGHTNING ZAP)" + snd_misc2(sound) : "Path to custom sound (LIGHTNING BOOM)" : : "Path to custom sound (LIGHTNING BOOM)" + mdl_proj(sound) : "Path to custom projectile model" : : "Path to custom projectile model" + skin_proj(integer) : "Index of custom projectile skin" : : "Index of custom projectile skin" + cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" + style(Choices) : "Attack type" = [ 0 : "Default" - 1 : "Lavaballs" + 1 : "Lavaballs" ] ] @PointClass base(Monster, CustomMdls) size(-128 -128 -24, 128 128 256) model( @@ -907,47 +933,49 @@ style(Choices) : "Attack type" = {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/boss.mdl" , "skin" : skin, "frame" : 80} }} -) = monster_boss2 : "Killable Chthon - -Default health = 1000 (Skill 0), 3000 (Skill 1-3)" -[ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" -snd_move(string) : "Path to custom rising and lowering sound" : : "Path to custom rising and lowering sound" -spawnflags(Flags) = +) = monster_boss2 : "Killable Chthon, Default health = 1000 (Skill 0), 3000 (Skill 1-3)" [ -2 : "No Lava Splash Effect" : 0 -] + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_move(sound) : "Path to custom rising and lowering sound" : : "Path to custom rising and lowering sound" + spawnflags(Flags) = + [ + 2 : "No Lava Splash Effect" : 0 + ] ] // @PointClass base(Monster, Berserk, CustomMdls) size(-16 -16 -24, 16 16 40) model({ "path": ":progs/enforcer.mdl" }) = monster_enforcer : "Enforcer @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-16 -16 -24, 16 16 40) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/enforcer.mdl" , "skin" : skin} }} -) = monster_enforcer : "Enforcer -Default health = 80" [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -style(Choices) : "Attack type" = +) = monster_enforcer : "Enforcer, Default health = 80" +[ + keep_ammo(choices) : "Drop backpack" : : "Don't drop backpack upon death" = + [ + "" : "Yes" + 1 : "No" + ] + style(choices) : "Attack type" = [ 0 : "Default (lasers)" - 1 : "rockets" - 2 : "grenades" - 3 : "nails (single fire)" - 4 : "lightning" - 5 : "nails (rapid fire)" - ] -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom 1st pain sound" : : "Path to 1st custom pain sound" -snd_sight(string) : "Path to custom sight sound for STOP!" : : "Path to custom sight sound for STOP!" -snd_attack(string) : "Path to custom attack sound e.g laser firing" : : "Path to custom attack sound e.g laser firing" -snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound e.g. laser hits wall" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sight sound for FREEZE!" : : "Path to custom sight sound for FREEZE!" -snd_misc1(string) : "Path to custom sight sound for YOU THERE!" : : "Path to custom sight sound for YOU THERE!" -snd_misc2(string) : "Path to custom sight sound for HALT!" : : "Path to custom sight sound for HALT!" -snd_misc3(string) : "Path to 2nd custom pain sound" : : "Path to 2nd custom pain sound" + 1 : "Rockets" + 2 : "Grenades" + 3 : "Nails (single fire)" + 4 : "Lightning" + 5 : "Nails (rapid fire)" + ] + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom 1st pain sound" : : "Path to 1st custom pain sound" + snd_sight(sound) : "Path to custom sight sound for STOP!" : : "Path to custom sight sound for STOP!" + snd_attack(sound) : "Path to custom attack sound e.g laser firing" : : "Path to custom attack sound e.g laser firing" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound e.g. laser hits wall" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sight sound for FREEZE!" : : "Path to custom sight sound for FREEZE!" + snd_misc1(sound) : "Path to custom sight sound for YOU THERE!" : : "Path to custom sight sound for YOU THERE!" + snd_misc2(sound) : "Path to custom sight sound for HALT!" : : "Path to custom sight sound for HALT!" + snd_misc3(sound) : "Path to 2nd custom pain sound" : : "Path to 2nd custom pain sound" ] // @PointClass base(Monster, Berserk, CustomMdls) size(-32 -32 -24, 32 32 64) model({ "path": ":progs/shalrath.mdl" }) = ath : "Vore a.k.a Shalrath @@ -955,32 +983,26 @@ snd_misc3(string) : "Path to 2nd custom pain sound" : : "Path to 2nd custom pain {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/shalrath.mdl" , "skin" : skin} }} -) = monster_shalrath : "Vore a.k.a Shalrath - -Default health = 400" +) = monster_shalrath : "Vore a.k.a Shalrath, Default health = 400" [ -homing(float) : "Multiplier for projectile homing, maximum 1, -1 to disable completely" : "1" -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (VORE SNARL)" : : "Path to custom attack sound (VORE SNARL)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom attack2 sound (VOREBALL FIRE)" : : "Path to custom attack2 sound (VOREBALL FIRE)" + homing(float) : "Multiplier for projectile homing" : "1" : "Maximum 1, -1 to disable completely" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (VORE SNARL)" : : "Path to custom attack sound (VORE SNARL)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom attack2 sound (VOREBALL FIRE)" : : "Path to custom attack2 sound (VOREBALL FIRE)" ] @PointClass base(Monster, CustomMdlsSpawn) size(-16 -16 -24, 16 16 24) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/tarbaby.mdl" , "skin" : skin} }} -) = monster_spawn : "Spawn - -Default health = 80 - -Note: this monster is renamed in progs_dump but unchanged in all other aspects." +) = monster_spawn : "Spawn, Default health = 80 Note: this monster is renamed in progs_dump but unchanged in all other aspects" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound" -snd_misc(string) : "Path to custom sound (WET SLAPPING)" : : "Path to custom sound (WET SLAPPING)" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound" + snd_misc(sound) : "Path to custom sound (WET SLAPPING)" : : "Path to custom sound (WET SLAPPING)" ] // @PointClass base(Monster, CustomMdlsSpawn) size(-16 -16 -24, 16 16 24) model({ "path": ":progs/tarbaby.mdl" }) = monster_tarbaby : "Spawn // @@ -999,15 +1021,15 @@ snd_misc(string) : "Path to custom sound (WET SLAPPING)" : : "Path to custom sou ) = monster_fish : "Rotfish, Default health = 25" [ -snd_death(string) : "Path to custom death sound (BUBBLES)" : : "Path to custom death sound (BUBBLES)" -snd_attack(string) : "Path to custom attack sound (CRUNCHY BITE)" : : "Path to custom attack sound (CRUNCHY BITE)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -mdl_body(string) : "Path to custom body model" -mdl_gib1(string) : "Path to custom 1st gib model" -mdl_gib2(string) : "Path to custom 2nd gib model" -mdl_gib3(string) : "Path to custom 3rd gib model" - + snd_death(sound) : "Path to custom death sound (BUBBLES)" : : "Path to custom death sound (BUBBLES)" + snd_attack(sound) : "Path to custom attack sound (CRUNCHY BITE)" : : "Path to custom attack sound (CRUNCHY BITE)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + mdl_body(studio) : "Path to custom body model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" ] + // @PointClass base(Monster) size(-160 -128 -24, 160 128 256) model({ "path": ":progs/oldone.mdl" }) = monster_oldone : "Shub-Niggurath" @PointClass base(Monster) size(-160 -128 -24, 160 128 256) model( {{ @@ -1015,36 +1037,34 @@ mdl_gib3(string) : "Path to custom 3rd gib model" }} ) = monster_oldone : "Shub-Niggurath" [ -snd_death(string) : "Path to custom death sound PART 1" : : "Path to custom death sound PART 1" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_misc(string) : "Path to custom death sound PART 2" : : "Path to custom death sound PART 2" -mdl_body(string) : "Path to custom body model" -mdl_gib1(string) : "Path to custom 1st gib model" -mdl_gib2(string) : "Path to custom 2nd gib model" -mdl_gib3(string) : "Path to custom 3rd gib model" -mdl_proj(string) : "Path to custom projectile model" -skin_proj(float) : "Path to custom projectile skin" + snd_death(sound) : "Path to custom death sound PART 1" : : "Path to custom death sound PART 1" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_misc(sound) : "Path to custom death sound PART 2" : : "Path to custom death sound PART 2" + mdl_body(studio) : "Path to custom body model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" + mdl_proj(studio) : "Path to custom projectile model" + skin_proj(integer) : "Index for custom projectile skin" ] // @PointClass base(Monster) size(-160 -128 -24, 160 128 256) model({ "path": ":progs/oldone.mdl", "frame": 46}) = monster_oldone2 : "Killable Shub-Niggurath @PointClass base(Monster) size(-160 -128 -24, 160 128 256) model( {{ mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/oldone.mdl" , "skin" : skin, frame : 66} }} -) = monster_oldone2 : "Killable Shub-Niggurath - -Default health = 1000 (Skill 0), 3000 (Skill 1-3)" -[ -snd_death(string) : "Path to custom death sound (PART 2 GIBBING)" : : "Path to custom death sound (PART 2 GIBBING)" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_misc(string) : "Path to custom death sound (PART 1 DEATH SCREAM)" : : "Path to custom death sound (PART 1 DEATH SCREAM)" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_attack(string) : "Path to custom attack sound (FIREBALL WHOOSH)" : : "Path to custom attack sound (FIREBALL WHOOSH)" -mdl_body(string) : "Path to custom body model" -mdl_gib1(string) : "Path to custom 1st gib model" -mdl_gib2(string) : "Path to custom 2nd gib model" -mdl_gib3(string) : "Path to custom 3rd gib model" -mdl_proj(string) : "Path to custom projectile model" -skin_proj(float) : "Path to custom projectile skin" +) = monster_oldone2 : "Killable Shub-Niggurath\n\nDefault health = 1000 (Skill 0), 3000 (Skill 1-3)" +[ + snd_death(sound) : "Path to custom death sound (PART 2 GIBBING)" : : "Path to custom death sound (PART 2 GIBBING)" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_misc(sound) : "Path to custom death sound (PART 1 DEATH SCREAM)" : : "Path to custom death sound (PART 1 DEATH SCREAM)" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_attack(sound) : "Path to custom attack sound (FIREBALL WHOOSH)" : : "Path to custom attack sound (FIREBALL WHOOSH)" + mdl_body(studio) : "Path to custom body model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" + mdl_proj(studio) : "Path to custom projectile model" + skin_proj(integer) : "Index for custom projectile skin" ] // @PointClass base(Monster, CustomMdls) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/zombie.mdl","frame" : frame}) = monster_zombie : "Zombie @PointClass base(Monster, CustomMdls, Turret) size(-16 -16 -24, 16 16 32) model( @@ -1055,21 +1075,17 @@ skin_proj(float) : "Path to custom projectile skin" spawnflags & 16 -> {"path" : ":progs/zombie.mdl", "frame" : 173, "skin ": skin}, ":progs/zombie.mdl" }} -) = monster_zombie : "Zombie - -Default health = 60 - -If SPAWN_SLEEPING is used there must be a targetname set. The zombie will stand up when targeted. Crucified motionless zombies are silent and do not animate." //dumptruck_ds -[ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_attack(string) : "Path to custom attack sound (WHOOSH)" : : "Path to custom attack sound (WHOOSH)" -snd_idle(string) : "Path to custom idle sound (CRUCIFIED ONLY)" : : "Path to custom idle sound (CRUCIFIED ONLY)" -snd_misc(string) : "Path to custom (IDLE 2) sound" : : "Path to custom (IDLE 2) sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_misc2(string) : "Path to custom (PAIN 2) sound" : : "Path to custom (PAIN 2) sound" -snd_misc3(string) : "Path to custom (FALLING) sound" : : "Path to custom (FALLING) sound" -spawnflags(Flags) = +) = monster_zombie : "Zombie, Default health = 60. If SPAWN_SLEEPING is used there must be a targetname set. The zombie will stand up when targeted. Crucified motionless zombies are silent and do not animate." //dumptruck_ds +[ + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_attack(sound) : "Path to custom attack sound (WHOOSH)" : : "Path to custom attack sound (WHOOSH)" + snd_idle(sound) : "Path to custom idle sound (CRUCIFIED ONLY)" : : "Path to custom idle sound (CRUCIFIED ONLY)" + snd_misc(sound) : "Path to custom (IDLE 2) sound" : : "Path to custom (IDLE 2) sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_misc2(sound) : "Path to custom (PAIN 2) sound" : : "Path to custom (PAIN 2) sound" + snd_misc3(sound) : "Path to custom (FALLING) sound" : : "Path to custom (FALLING) sound" + spawnflags(Flags) = [ 1 : "Crucified" : 0 2 : "Ambush" : 0 @@ -1079,334 +1095,449 @@ spawnflags(Flags) = ] //start deadstuff entries -- dumptruck_ds -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/demon.mdl","skin" : skin, "frame" : 53}) = monster_dead_demon : "Demon Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/demon.mdl","skin" : skin, "frame" : 53}) = monster_dead_demon : "Demon Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/shambler.mdl","skin" : skin, "frame" : 93}) = monster_dead_shambler : "Shambler Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/shambler.mdl","skin" : skin, "frame" : 93}) = monster_dead_shambler : "Shambler Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/soldier.mdl","skin" : skin, "frame" : 28}) = monster_dead_army : "Soldier Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/soldier.mdl","skin" : skin, "frame" : 28}) = monster_dead_army : "Soldier Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "Face Up" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 40) studio({ "path": ":progs/dog.mdl","skin" : skin, "frame" : 16}) = monster_dead_dog : "Dog Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 40) studio({ "path": ":progs/dog.mdl","skin" : skin, "frame" : 16}) = monster_dead_dog : "Dog Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/enforcer.mdl","skin" : skin, "frame" : 54}) = monster_dead_enforcer : "Enforcer Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/enforcer.mdl","skin" : skin, "frame" : 54}) = monster_dead_enforcer : "Enforcer Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "Face Up" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/ogre.mdl","skin" : skin, "frame" : 135}) = monster_dead_ogre : "Ogre Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/ogre.mdl","skin" : skin, "frame" : 135}) = monster_dead_ogre : "Ogre Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "Face Up" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/knight.mdl","skin" : skin, "frame" : 96}) = monster_dead_knight : "Knight Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/knight.mdl","skin" : skin, "frame" : 96}) = monster_dead_knight : "Knight Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "On Side" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/hknight.mdl","skin" : skin, "frame" : 62}) = monster_dead_hell_knight : "Hellknight Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/hknight.mdl","skin" : skin, "frame" : 62}) = monster_dead_hell_knight : "Hellknight Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/shalrath.mdl","skin" : skin, "frame" : 22}) = monster_dead_shalrath : "Shalrath Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio({ "path": ":progs/shalrath.mdl","skin" : skin, "frame" : 22}) = monster_dead_shalrath : "Shalrath Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/wizard.mdl","skin" : skin, "frame" : 53}) = monster_dead_wizard : "Scrag Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio({ "path": ":progs/wizard.mdl","skin" : skin, "frame" : 53}) = monster_dead_wizard : "Scrag Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/player.mdl","skin" : skin, "frame" : 49}) = player_dead_axe: "Player Corpse Axe" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/player.mdl","skin" : skin, "frame" : 49}) = player_dead_axe: "Player Corpse Axe" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/player.mdl","skin" : skin, "frame" : 102}) = player_dead_on_side: "Player Corpse on Side" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/player.mdl","skin" : skin, "frame" : 102}) = player_dead_on_side: "Player Corpse on Side" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/player.mdl","skin" : skin, "frame" : 84}) = player_dead_face_down: "Player Corpse Face Down" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 32) studio({ "path": ":progs/player.mdl","skin" : skin, "frame" : 84}) = player_dead_face_down: "Player Corpse Face Down" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_demon.mdl","skin" : skin, "frame" : 0}) = gib_head_demon : "Demon Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_demon.mdl","skin" : skin, "frame" : 0}) = gib_head_demon : "Demon Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_dog.mdl","skin" : skin, "frame" : 0}) = gib_head_dog : "Dog Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_dog.mdl","skin" : skin, "frame" : 0}) = gib_head_dog : "Dog Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_guard.mdl","skin" : skin, "frame" : 0}) = gib_head_army : "Grunt Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_guard.mdl","skin" : skin, "frame" : 0}) = gib_head_army : "Grunt Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_hellkn.mdl","skin" : skin, "frame" : 0}) = gib_head_hell_knight : "Hellnight Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_hellkn.mdl","skin" : skin, "frame" : 0}) = gib_head_hell_knight : "Hellnight Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_knight.mdl","skin" : skin, "frame" : 0}) = gib_head_knight : "Knight Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_knight.mdl","skin" : skin, "frame" : 0}) = gib_head_knight : "Knight Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_mega.mdl","skin" : skin, "frame" : 0}) = gib_head_enforcer : "Enforcer Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_mega.mdl","skin" : skin, "frame" : 0}) = gib_head_enforcer : "Enforcer Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_ogre.mdl","skin" : skin, "frame" : 0}) = gib_head_ogre : "Orge Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_ogre.mdl","skin" : skin, "frame" : 0}) = gib_head_ogre : "Orge Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_player.mdl","skin" : skin, "frame" : 0}) = gib_head_player : "Player Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_player.mdl","skin" : skin, "frame" : 0}) = gib_head_player : "Player Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_shal.mdl","skin" : skin, "frame" : 0}) = gib_head_shalrath : "Shalrath Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_shal.mdl","skin" : skin, "frame" : 0}) = gib_head_shalrath : "Shalrath Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_shams.mdl","skin" : skin, "frame" : 0}) = gib_head_shambler : "Shambler Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_shams.mdl","skin" : skin, "frame" : 0}) = gib_head_shambler : "Shambler Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_wizard.mdl","skin" : skin, "frame" : 0}) = gib_head_wizard : "Wizard Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/h_wizard.mdl","skin" : skin, "frame" : 0}) = gib_head_wizard : "Wizard Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/gib1.mdl","skin" : skin, "frame" : 0}) = gib_misc_1 : "Gib 1" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/gib1.mdl","skin" : skin, "frame" : 0}) = gib_misc_1 : "Gib 1" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/gib2.mdl","skin" : skin, "frame" : 0}) = gib_misc_2 : "Gib 2" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/gib2.mdl","skin" : skin, "frame" : 0}) = gib_misc_2 : "Gib 2" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/gib3.mdl","skin" : skin, "frame" : 0}) = gib_misc_3 : "Gib 3" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio({ "path": ":progs/gib3.mdl","skin" : skin, "frame" : 0}) = gib_misc_3 : "Gib 3" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] + // end of deadstuff -- dumptruck_ds + // // // // // NEW ERICW TOOLS BRUSH ENTITIES // // // // // -@baseclass = ModelLight - [ - _minlight(integer) : "Min light" : : "Set the minimum light level for any surface of the brush model. Default 0" - _mincolor(color255) : "Min light color R G B" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the colour of the minlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted). Default is white light (255 255 255)" - _shadow(integer) : "Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" - _shadowself(integer) : "Self Shadow" : : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing. Default 0" - _dirt(integer) : "Dirt mapping (override)" : : "For brush models, -1 prevents dirtmapping on the brush model. Useful it the bmodel touches or sticks into the world, and you want to those ares from turning black. Default 0" - _phong(choices) : "Enable Phong shading" : 0 = - [ - 0: "No" - 1: "Yes" - ] - _phong_angle(integer) : "Phong shading angle" : : "Enables phong shading on faces of this model with a custom angle. Adjacent faces with normals this many degrees apart (or less) will be smoothed. Consider setting '_anglescale' to '1' on lights or worldspawn to make the effect of phong shading more visible. Use the '-phongdebug' command-line flag to save the interpolated normals to the lightmap for previewing (use 'r_lightmap 1' or 'gl_lightmaps 1' in your engine to preview.)" - ] -@baseclass = SwitchShadow [ - _switchableshadow(choices) : "Switchable shadow" : 0 : "Enables a switchable shadow that can be controlled with a targeting misc_shadowcontroller." = [ +@BaseClass = ModelLight +[ + _minlight(integer) : "Minimum light level" : : "Set the minimum light level for any surface of the brush model. Default 0" + _mincolor(color255) : "Color of minlight" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the color of the minlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted). Default is white light (255 255 255)" + _shadow(integer) : "Cast Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" + _shadowself(integer) : "Self-Shadowed" : : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing. Default 0" + _dirt(integer) : "Dirt mapping (override)" : : "For brush models, -1 prevents dirtmapping on the brush model. Useful it the bmodel touches or sticks into the world, and you want to those ares from turning black. Default 0" + _phong(choices) : "Enable Phong shading" = + [ 0: "No" 1: "Yes" ] + _phong_angle(integer) : "Phong shading angle" : : "Enables phong shading on faces of this model with a custom angle. Adjacent faces with normals this many degrees apart (or less) will be smoothed. Consider setting '_anglescale' to '1' on lights or worldspawn to make the effect of phong shading more visible. Use the '-phongdebug' command-line flag to save the interpolated normals to the lightmap for previewing (use 'r_lightmap 1' or 'gl_lightmaps 1' in your engine to preview.)" ] -@baseclass = Shadow [ - _shadow(integer) : "Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" +@BaseClass = Shadow +[ + _shadow(integer) : "Cast Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" _shadowself(integer) : "Self Shadow" : : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing. Default 0" ] -@SolidClass color(128 128 230)base(ModelLight) = func_detail : "Detail brush. Ignored by vis so can speed up compile times consideratbly. Also allows you to set new compiler lighting options on brushes. DOES NOT SEAL MAPS FROM VOID" [] +@BaseClass base(Shadow) = SwitchShadow +[ + _switchableshadow(choices) : "Switchable shadow" : : "Enables a switchable shadow that can be controlled with a targeting misc_shadowcontroller." = [ + "" : "No" + 1 : "Yes" + ] +] + + +@SolidClass color(128 128 230) base(ModelLight) = func_detail : "Detail brush. Ignored by vis so can speed up compile times consideratbly. Also allows you to set new compiler lighting options on brushes. DOES NOT SEAL MAPS FROM VOID" [] -@SolidClass color(128 128 230)base(ModelLight) = func_detail_illusionary : "func_detail variant with no collision (players / monsters / gunfire) and doesn't split world faces. Doesn't cast shadows unless enabled with _shadow 1. Useful for hanging vines. Still creates BSP leafs." [] +@SolidClass color(128 128 230) base(ModelLight) = func_detail_illusionary : "func_detail variant with no collision (players / monsters / gunfire) and doesn't split world faces. Doesn't cast shadows unless enabled with _shadow 1. Useful for hanging vines. Still creates BSP leafs." [] -@SolidClass color(128 128 230)base(ModelLight) = func_detail_wall : "func_detail variant that doesn't split world faces. Useful for when you want a decoration touching a floor or wall to not split the floor - wall faces (you'll get some overdraw instead.) If it completely covers up a world face, that face will get clipped away, so it's not suitable for fence textures; see func_detail_fence instead" [] +@SolidClass color(128 128 230) base(ModelLight) = func_detail_wall : "func_detail variant that doesn't split world faces. Useful for when you want a decoration touching a floor or wall to not split the floor - wall faces (you'll get some overdraw instead.) If it completely covers up a world face, that face will get clipped away, so it's not suitable for fence textures; see func_detail_fence instead" [] -@SolidClass color(128 128 230)base(ModelLight) = func_detail_fence : "Similar to func_detail_wall except it's suitable for fence textures, never clips away world faces. Useful for fences, grates, etc., that are solid and block gunfire" [] +@SolidClass color(128 128 230) base(ModelLight) = func_detail_fence : "Similar to func_detail_wall except it's suitable for fence textures, never clips away world faces. Useful for fences, grates, etc., that are solid and block gunfire" [] @SolidClass base(ModelLight) = func_group : "Brush group. Is treated by qbsp as world brushes but allows you to add light shading settings. _dirt and _shadow currently only accept -1 as a valid setting for func_group" [] +@SolidClass base(ModelLight) = func_illusionary_visblocker : "func_group variant with no collision. Still blocks VIS, unlike func_detail_illusionary. DOES NOT SEAL MAPS FROM VOID" [] + // // // // // END OF NEW ERICW TOOLS BRUSH ENTITIES // // // // // + // -// misc +// lights // -@SolidClass base(Appearflags, ModelLight) = func_illusionary : "Static nonsolid model" [] +@BaseClass color(192 192 32) = Light +[ + light(float) : "Brightness" : "300" + wait(float) : "Scale fade distance" : "1" + delay(choices) : "Attenuation" : 0 = + [ + 0 : "Linear attenuation (default)" + 1 : "1/x attenuation" + 2 : "1/(x^2) attenuation" + 3 : "No attenuation" + 4 : "Local minlight" + 5 : "1/(x^2) attenuation - variation" + ] + _falloff(float) : "Falloff distance" + _color(color255) : "Light color" + target(target_destination) : "Spotlight target" + mangle(string) : "Spotlight angle (Yaw Pitch Roll)" : "0 0 0" + angle(float) : "Spotlight angle width" : "40" + _softangle(float) : "Inner spotlight angle width" : "0" + targetname(string) : "Name" : : "Targetname for a switchable light" + style(choices) : "Preset lightstyle" = + [ + 0 : "Normal" + 1 : "Flicker A" + 2 : "Slow, strong pulse" + 3 : "Candle A" + 4 : "Fast strobe" + 6 : "Flicker B" + 5 : "Gentle pulse" + 7 : "Candle B" + 8 : "Candle C" + 9 : "Slow strobe" + 10: "Fluorescent flicker" + 11: "Slow pulse, noblack" + 12: "Blink on/off" + ] + style2(choices) : "Switchable preset lightstyle" = + [ + 0 : "Normal" + 1 : "Flicker A" + 2 : "Slow, strong pulse" + 3 : "Candle A" + 4 : "Fast strobe" + 6 : "Flicker B" + 5 : "Gentle pulse" + 7 : "Candle B" + 8 : "Candle C" + 9 : "Slow strobe" + 10: "Fluorescent flicker" + 11: "Slow pulse, noblack" + 12: "Blink on/off" + ] + _anglescale(float) : "Light angle scale" : "0.5" + _dirt(choices) : "Light dirtmapping" : 0 = + [ + -1 : "Disable dirtmapping" + 0 : "Inherit from worldspawn _dirt" + 1 : "Dirtmapping enabled" + ] + _dirtscale(float) : "Light dirtmapping scale" : "1" + _dirtgain(float) : "Light dirtmapping gain" : "1" + _deviance(float) : "Light sphere radius" : "0" + _samples(float) : "Light sphere samples" : "16" + _surface(string) : "Surface light texturename" + _surface_offset(float) : "Surface light offset" : "2" + _surface_spotlight(choices) : "Surface light spotlight" : 0 = + [ + 0 : "Not a spotlight" + 1 : "Spotlight" + ] + _project_texture(string) : "Project texturename" + _project_mangle(string) : "Project texture angle (yaw pitch roll)" : "0 0 0" + _project_fov(float) : "Project texture fov" : "90" + _bouncescale(float) : "Bounce lighting scale" : "1" + _sun(float) : "Is sun" : "0" : "Turn light into a sunlight" +] + +@BaseClass base(Light, Appearflags) = ToggleLight +[ + spawnflags(Flags) = + [ + 1 : "Start off" + 2 : "Fade in/out" + ] +] + +@BaseClass base(Light) = TorchLight // unused? +[ + spawnflags(Flags) = + [ + 1 : "No sound" + ] +] + + +@PointClass base(ToggleLight) = light : "Invisible lightsource (can fade up / down if not styled)" [] +@PointClass base(ToggleLight) = light_fluoro : "Invisible lightsource, with fluorescent hum" [] +@PointClass base(ToggleLight) = light_fluorospark : "Invisible lightsource, with broken sparking fluorescent sound" [] +@PointClass base(Light, Appearflags) model({ "path": "progs/s_light.spr" }) = light_globe : "Globe sprite light" [] +@PointClass base(Light, Appearflags) size(-8 -8 0, 8 8 76) model({ "path": ":progs/s_flame.spr" }) = light_sprite_flame : "Large animated flame" [] + +@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl", "frame" : 1 }) = + light_flame_large_yellow : "Large yellow flame" + [ + // spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/candle.mdl" }) = //dumptruck_ds + light_candle : "Candle" + [ + // spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = + light_flame_small_yellow : "Small yellow flame" + [ + // spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] +@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = + light_flame_small_white : "Small white flame" + [ + // spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] + +@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname, CustomMdlsSkin) + model( + {{ + mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/flame.mdl" , "skin" : skin} + }}) = + light_torch_small_walltorch : "Small walltorch" + [ + spawnflags(Flags) = + [ + 4 : "Silent" + ] + ] + +// +// misc +// @PointClass base(Appearflags) color(0 150 220) model({ "path": ":progs/s_bubble.spr" }) = air_bubbles : "Air bubbles" [] @PointClass base(Appearflags, Targetname) = @@ -1417,26 +1548,22 @@ spawnflags(Flags) = @PointClass base(Appearflags) size(0 0 0, 32 32 32) model({ "path": ":maps/b_exbox2.bsp" }) = misc_explobox2 : "Small exploding container" [] @PointClass base(Appearflags, Effects, CustomMdlsSkin) size(-8 -8 -8, 8 8 8) model( {{ - mdl_body -> {"path": mdl_body, "skin" : skin}, {"path": "progs/teleport.mdl","skin" : skin} }}) = misc_teleporttrain : "Flying teleporter destination - -This was used for the final boss level in the original game. In progs_dump you can use this as a moving decoration or even target it as a spawn point for a func_monster_spawner. Make sure and select the Don't Rotate spawnflag though or you'll experience a pretty hilarious effect! - -You set this up like a func_train using path_corners. By default, it will move automatically between path corners upon map load. However, you can have it wait to move by giving it a targetname. If you need to target it as a spawner and want it to move on map load, use the Start On spawnflag. - -You can add effects using the dropdown, use a custom model using the mdl_body keyvalue and even make it invisible with spawnflag 8. -" + mdl_body -> {"path": mdl_body, "skin" : skin}, {"path": "progs/teleport.mdl","skin" : skin} + }} +) = misc_teleporttrain : "Flying teleporter destination\n\nThis was used for the final boss level in the original game. In progs_dump you can use this as a moving decoration or even target it as a spawn point for a func_monster_spawner. Make sure and select the Don't Rotate spawnflag though or you'll experience a pretty hilarious effect!\n\nYou set this up like a func_train using path_corners. By default, it will move automatically between path corners upon map load. However, you can have it wait to move by giving it a targetname. If you need to target it as a spawner and want it to move on map load, use the Start On spawnflag.\n\nYou can add effects using the dropdown, use a custom model using the mdl_body keyvalue and even make it invisible with spawnflag 8." [ - target(string) : "First path_corner" + target(target_destination) : "First path_corner" targetname(target_source) : "Name" - mdl_body(string) : "Path to custom body model" + mdl_body(studio) : "Path to custom body model" speed(float) : "Speed between path corners" spawnflags(Flags) = [ - 2 : "Don't Rotate (use with func_monster_spawner)" - 4 : "Start On (even with targetname)" - 8 : "Invisible (mdl_body MUST be empty)" + 2 : "Don't Rotate (use with func_monster_spawner)" + 4 : "Start On (even with targetname)" + 8 : "Invisible (mdl_body MUST be empty)" ] ] + @PointClass base(Angle, Appearflags, Targetname) color(220 150 150) model({{ //modified by dumptruck_ds adding Angle and Targetname to baseclass spawnflags & 64 -> {"path":"progs/gib1.mdl"}, @@ -1447,7 +1574,8 @@ spawnflags & 4 -> {"path":"progs/lavaball.mdl", "scale":0.6}, spawnflags & 2 -> {"path":"progs/laser.mdl"}, spawnflags & 1 -> {"path":"progs/s_spike.mdl"}, "progs/spike.mdl"}}) = trap_spikeshooter : "Triggered shooter - use trigger_multiple to activate" [ - spawnflags(Flags) = [ + spawnflags(Flags) = + [ 1 : "Spike" : 0 2 : "Laser" : 0 4 : "Lavaball" : 0 @@ -1456,7 +1584,7 @@ spawnflags & 1 -> {"path":"progs/s_spike.mdl"}, 32 : "Grenade" : 0 64 : "Gibs" : 0 128 : "Silent" : 0 - ] + ] ] @PointClass base(Angle, Appearflags, Targetname) color(220 150 150) model({{ //modified by dumptruck_ds adding Angle and Targetname to baseclass @@ -1467,10 +1595,12 @@ spawnflags & 8 -> {"path":"progs/missile.mdl"}, spawnflags & 4 -> {"path":"progs/lavaball.mdl", "scale":0.6}, spawnflags & 2 -> {"path":"progs/laser.mdl"}, spawnflags & 1 -> {"path":"progs/s_spike.mdl"}, - "progs/spike.mdl"}}) = trap_shooter : "Continuous shooter" [ +"progs/spike.mdl"}}) = trap_shooter : "Continuous shooter" +[ nextthink(integer) : "Delay before first spike" wait(integer) : "Delay between firing" : 1 - spawnflags(Flags) = [ + spawnflags(Flags) = + [ 1 : "Spike" : 0 2 : "Laser" : 0 4 : "Lavaball" : 0 @@ -1478,173 +1608,120 @@ spawnflags & 1 -> {"path":"progs/s_spike.mdl"}, 16 : "Voreball" : 0 32 : "Grenade" : 0 64 : "Gibs" : 0 - 128 : "Silent" : 0]] - - @PointClass base(Angle, Appearflags, Targetname) color(220 150 150) model({{ - //modified by dumptruck_ds adding Angle and Targetname to baseclass - spawnflags & 64 -> {"path":"progs/gib1.mdl"}, - spawnflags & 32 -> {"path":"progs/grenade.mdl"}, - spawnflags & 16 -> {"path":"progs/v_spike.mdl"}, - spawnflags & 8 -> {"path":"progs/missile.mdl"}, - spawnflags & 4 -> {"path":"progs/lavaball.mdl", "scale":0.6}, - spawnflags & 2 -> {"path":"progs/laser.mdl"}, - spawnflags & 1 -> {"path":"progs/s_spike.mdl"}, - "progs/spike.mdl"}}) = trap_switched_shooter : "Continuous shooter can be toggled when targeted, start on or off" [ - nextthink(integer) : "Delay before first spike" - wait(integer) : "Delay between firing" : 1 - state(integer) : "0 initially off, 1 initially on" : 0 - spawnflags(Flags) = [ - 1 : "Spike" : 0 - 2 : "Laser" : 0 - 4 : "Lavaball" : 0 - 8 : "Rocket" : 0 - 16 : "Voreball" : 0 - 32 : "Grenade" : 0 - 64 : "Gibs" : 0 - 128 : "Silent" : 0 - ] - ] - -@PointClass base(Appearflags, Targetname) size(16 16 24) color(255 128 0) = trigger_shake : "Earthquake + 128 : "Silent" : 0 + ] +] -Earthquake trigger - shakes players in its radius when active. Strength of tremor is greatest at the centre. +@PointClass base(Angle, Appearflags, Targetname) color(220 150 150) model({{ +//modified by dumptruck_ds adding Angle and Targetname to baseclass +spawnflags & 64 -> {"path":"progs/gib1.mdl"}, +spawnflags & 32 -> {"path":"progs/grenade.mdl"}, +spawnflags & 16 -> {"path":"progs/v_spike.mdl"}, +spawnflags & 8 -> {"path":"progs/missile.mdl"}, +spawnflags & 4 -> {"path":"progs/lavaball.mdl", "scale":0.6}, +spawnflags & 2 -> {"path":"progs/laser.mdl"}, +spawnflags & 1 -> {"path":"progs/s_spike.mdl"}, +"progs/spike.mdl"}}) = trap_switched_shooter : "Continuous shooter can be toggled when targeted, start on or off" +[ + nextthink(integer) : "Delay before first spike" + wait(integer) : "Delay between firing" : 1 + state(integer) : "0 initially off, 1 initially on" : 0 + spawnflags(Flags) = + [ + 1 : "Spike" : 0 + 2 : "Laser" : 0 + 4 : "Lavaball" : 0 + 8 : "Rocket" : 0 + 16 : "Voreball" : 0 + 32 : "Grenade" : 0 + 64 : "Gibs" : 0 + 128 : "Silent" : 0 + ] +] -dmg = Strength at center (default is 120) -wait = Duration of shake (default is 1) -count = Effect radius (defalt is 200) -noise = Sound file to play when starting to shake -noise1 = Sound file to play when stopping -targetname = Must be triggered" +@PointClass base(Appearflags, Targetname) size(16 16 24) color(255 128 0) = trigger_shake : "Earthquake trigger, shakes players in its radius when active. Strength of tremor is greatest at the centre." [ - dmg(integer) : "Strength at center (default is 120)" - wait(integer) : "Duration of shake (default is 1)" - count(integer) : "Effect radius (defalt is 200)" - noise(string) : "Noise to play when starting to shake" - noise1(string) : "Noise to play when stopping" - targetname(string) : "Must be triggered" + dmg(integer) : "Strength at center" : 120 + wait(integer) : "Duration of shake" : 1 + count(integer) : "Effect radius" : 200 + noise(sound) : "Noise to play when starting to shake" + noise1(sound) : "Noise to play when stopping" + targetname(string) : "Name" : : "If set, must be triggered" spawnflags(Flags) = [ 1 : "View Only" : 0 ] ] -@PointClass base(Appearflags, Targetname) size(16 16 24) color(206 18 18) = play_gibs : "Triggerable Gib Effect - -style = 0 is regular gib effect, 1 is more violent -fly_sound = 0 is silent, 1 plays randomized gib sounds -targetname = Must be triggered" +@PointClass base(Appearflags, Targetname) size(16 16 24) color(206 18 18) = play_gibs : "Triggerable Gib Effect. If it has a name, then it must be triggered." [ - style(Choices) : "Appearance" : 0 = - [ - 0 : "Normal" - 1 : "Large" - ] - fly_sound(integer) : "Play gib sound effects" : 0 + style(choices) : "Appearance" : 0 : "''Normal'' is regular gib effect, ''Large'' is more violent" = + [ + 0 : "Normal" + 1 : "Large" + ] + fly_sound(choices) : "Gib sound effects" : 0 = + [ + 0 : "Silent" + 1 : "Random" + ] ] -@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 200 300) = ltrail_start : "Starting point of a lightning trail. See the manual for set up steps. - -Set currentammo key to amount of damage you want the lightning to do. -Default is 25. - -Set frags key to amount of time before next item is triggered. -Default is 0.3 seconds. - -Set weapon key to amount of time to be firing the lightning. -Default is 0.3 seconds. - -Set sounds key to 1 for silence -Default is 0 -Does not work with ltrail_relay (it will still make noise.) - -Set the Toggle spawnflag if you want the lightning shooter to continuously fire until triggered again. - -Set the Start On spawnflag to have the lightning shooter start on (DO NOT USE WITH TOGGLE)" -[ -spawnflags(Flags) = +@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 200 300) = ltrail_start : "Starting point of a lightning trail. See the manual for set up steps." [ - 1 : "Toggle" : 0 - 2 : "Start On" : 0 -] - currentammo(integer) : "Damage" : 0 - frags(float) : "Time before next trigger" : "0.3" - weapon(float) : "Duration of each strike" : "0.3" - sounds(integer) : "Set to 1 for silence (?)" : 0 + spawnflags(Flags) = + [ + 1 : "Toggle" : 0 : "Set the Toggle spawnflag if you want the lightning shooter to continuously fire until triggered again." + 2 : "Start On" : 0 : "Set the Start On spawnflag to have the lightning shooter start on (DO NOT USE WITH TOGGLE)" + ] + currentammo(integer) : "Damage" : 25 : "Amount of damage you want the lightning to do" + frags(float) : "Time before next trigger" : "0.3" : "Amount of time before next item is triggered" + weapon(float) : "Duration of each strike" : "0.3" : "Amount of time to be firing the lightning" + sounds(choices) : "Is silent" : 0 : "Does not work with ltrail_relay (it will still make noise.)" = + [ + 0 : No + 1 : Yes + ] ] -@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 200) = ltrail_end : "Ending point of a lightning trail. - -Does not fire any lightning. - -Set frags to amount of time before next item is triggered. -Default is 0.3 seconds. -" +@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 200) = ltrail_end : "Ending point of a lightning trail. Does not fire any lightning." [ - frags(float) : "Time before next trigger" : "0.3" + frags(float) : "Time before next trigger" : "0.3" : "Amount of time before next item is triggered" ] -@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 300) = ltrail_relay : "Relay point of a lightning trail. - -Set currentammo to amount of damage you want the lightning to do. -Default is 25. - -Set frags to amount of time before next item is triggered. -Default is 0.3 seconds. - -Set weapon to amount of time to be firing the lightning. -Default is 0.3 seconds. -" +@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 300) = ltrail_relay : "Relay point of a lightning trail." [ - currentammo(integer) : "Damage" : 0 - frags(float) : "Time before next trigger" : "0.3" - weapon(float) : "Duration of each strike" : "0.3" + currentammo(integer) : "Damage" : 25 : "Amount of damage you want the lightning to do" + frags(float) : "Time before next trigger" : "0.3" : "Amount of time before next item is triggered" + weapon(float) : "Duration of each strike" : "0.3" : "Amount of time to be firing the lightning" ] -@SolidClass base(Appearflags, TriggerWait, Targetname) = trigger_ladder : "Invisible ladder entity. - -When player is touching this entity, she can climb by pushing jump." +@SolidClass base(Appearflags, TriggerWait, Targetname) = trigger_ladder : "Invisible ladder entity. When player is touching this entity, they can climb by pushing jump." [ - angle(integer) : "the direction player must be facing to climb ladder" + angle(integer) : "Angle" : : "the direction player must be facing to climb ladder" ] -@SolidClass base(Appearflags, Targetname) = trigger_monsterface : "Running monsters that do not see their target and touch this will face in the direction of the trigger's angle instead of the unseen target. Use this trigger to make monsters leave their sniping spot and execute complex maneuvers." +@SolidClass base(Appearflags, OneTargetname) = trigger_monsterface : "Running monsters that do not see their target and touch this will face in the direction of the trigger's angle instead of the unseen target. Use this trigger to make monsters leave their sniping spot and execute complex maneuvers." [ angle(integer) : "Turn, face and move in this direction" wait(integer) : "time to wait between retriggers" ] @SolidClass base(Appearflags, TriggerWait, OneTargetname) = trigger_void : "Use this for a 'void' area. Removes monsters, ammo, etc... also kills player" - [ -spawnflags(Flags) = -[ - 1 : "No Effect on Monsters" : 0 - 2 : "No Effect on Players" : 0 -] + spawnflags(Flags) = + [ + 1 : "No Effect on Monsters" : 0 + 2 : "No Effect on Players" : 0 + ] ] -@PointClass base(Appearflags, Trigger) = trigger_filter : "Relays only if a given condition evaluates to true. - -Ultimate scripting ability. You can test various fields on the entity targeted by the 'include' field (you can target another entity's 'targetname2' as well). If you let the 'include' field empty, it'll test against the activating entity, be it the player, a monster or anything else - see trigger_everything for more details. - -You can, for example, relay a trigger only if a door or plat is in a certain position, or if a targeted enemy is alive/dead, or below a certain health amount, or if the player is carrying some specific weapon or item - the possibilites are almost endless. - -In case you're filtering to activate only in case if it's a specific weapon projectile (like a grenade), you can make the targets fire with the activating entity's owner as the activator - say, if the trigger is activated by a player's grenade, it'll fire with the player as activator. - -There are various fields available to test, selectable through the 'style' key. They all fall into three field types (float, flag and string), and for each there's a set of operations available to evaluate, selectable through the 'weapon' key. -- Float types can do all operations, and are compared to this entity's 'count' field. -- Flag types support Equal and bitwise AND, and are compared to the 'aflag' field. -- String types have only Equal evaluation, and are compared to this entity's 'type' field. - -You can set the trigger to fire if the condition evaluates to false by activating the spawnflag 'Trigger if false'. It'll never fire if the entity targeted by 'include' isn't found, regardless of this spawnflag. - -If you need to evaluate more than one condition, you can chain multiple filters in a row. -Also, the state of the last evaluation is stored in this entity's 'state' field (1 for fired, 0 for not fired). -" +@PointClass base(Appearflags, Trigger) = trigger_filter : "Relays only if a given condition evaluates to true.\n\nUltimate scripting ability. You can test various fields on the entity targeted by the 'include' field (you can target another entity's 'targetname2' as well). If you let the 'include' field empty, it'll test against the activating entity, be it the player, a monster or anything else - see trigger_everything for more details.\n\nYou can, for example, relay a trigger only if a door or plat is in a certain position, or if a targeted enemy is alive/dead, or below a certain health amount, or if the player is carrying some specific weapon or item - the possibilities are almost endless.\n\nIn case you're filtering to activate only in case if it's a specific weapon projectile (like a grenade), you can make the targets fire with the activating entity's owner as the activator - say, if the trigger is activated by a player's grenade, it'll fire with the player as activator.\n\nThere are various fields available to test, selectable through the 'style' key. They all fall into three field types (float, flag and string), and for each there's a set of operations available to evaluate, selectable through the 'weapon' key.\n- Float types can do all operations, and are compared to this entity's 'count' field.\n- Flag types support Equal and bitwise AND, and are compared to the 'aflag' field.\n- String types have only Equal evaluation, and are compared to this entity's 'type' field.\n\nYou can set the trigger to fire if the condition evaluates to false by activating the spawnflag 'Trigger if false'. It'll never fire if the entity targeted by 'include' isn't found, regardless of this spawnflag.\n\nIf you need to evaluate more than one condition, you can chain multiple filters in a row.Also, the state of the last evaluation is stored in this entity's 'state' field (1 for fired, 0 for not fired)." [ - include(target_destination) : "Entity's targetname to evaluate (leave empty to evaluate the activator)" - style(choices) : "Field to evaluate" : 0 =[ + include(target_destination) : "Entity to evaluate" : : "Entity's targetname to evaluate (leave empty to evaluate the activator)" + style(choices) : "Field to evaluate" : 0 = + [ 0 : "state (float, use 'count' field)" 1 : "health (float, use 'count' field)" 2 : "weapon (float, use 'count' field)" @@ -1669,38 +1746,29 @@ Also, the state of the last evaluation is stored in this entity's 'state' field count(integer) : "Float value to test" aflag(flags) = [] type(string) : "String value to test" - spawnflags(flags) = [ + spawnflags(flags) = + [ 1: "Trigger if false" 2: "Relay owner as activator" ] ] -@SolidClass base(Appearflags, Targetname, OneTarget, TriggerWait) = trigger_everything : " -A no-holds-barred touchable trigger. Everything triggers it. Players, monsters, projectiles, gibs, even solid entities like doors and plats. - -It can only fire targets matching its 'target' field. Doesn't have support for the 'target2-4' fields, neither 'message' nor 'killtarget'. Useful when used in conjunction with the trigger_filter point entity to filter out its firing. - -By default it'll fire for each and every registered touch, even if simultaneous. If given a 'wait' value, it'll act like a trigger_multiple, where a single activation puts it on hold for 'wait' seconds. If the target is a trigger_filter, you can set it to wait only if the filter evaluates to true. -" +@SolidClass base(Appearflags, Targetname, OneTarget, TriggerWait) = trigger_everything : "A no-holds-barred touchable trigger. Everything triggers it. Players, monsters, projectiles, gibs, even solid entities like doors and plats.\n\nIt can only fire targets matching its 'target' field. Doesn't have support for the 'target2-4' fields, neither 'message' nor 'killtarget'. Useful when used in conjunction with the trigger_filter point entity to filter out its firing.\n\nBy default it'll fire for each and every registered touch, even if simultaneous. If given a 'wait' value, it'll act like a trigger_multiple, where a single activation puts it on hold for 'wait' seconds. If the target is a trigger_filter, you can set it to wait only if the filter evaluates to true." [ wait(integer) : "Wait before reset" : 0 spawnflags(flags) = [ - 1: "Wait only if trigger_filter evaluates to true" + 1: "Wait only if trigger_filter == true" ] ] -@PointClass base(Appearflags, Targetname) = target_setcount : "Changes the targeted entity's 'count' field. Targets both targetname and targetname2 fields. -Can be used with a trigger_filter to dinamically change its comparing value, or to reset/change a trigger_counter's current use count. - -You can either replace the current value with a new one, or add/subtract to it (by using a positive or negative 'count'), by selecting into the 'style' field. -" +@PointClass base(Appearflags, Targetname) = target_setcount : "Changes the targeted entity's 'count' field. Targets both targetname and targetname2 fields.\nCan be used with a trigger_filter to dinamically change its comparing value, or to reset/change a trigger_counter's current use count.\n\nYou can either replace the current value with a new one, or add/subtract to it (by using a positive or negative 'count'), by selecting into the 'style' field." [ target(target_destination) : "Target" - target2(target_destination) : "Target" - target3(target_destination) : "Target" - target4(target_destination) : "Target" + target2(target_destination) : "Target 2" + target3(target_destination) : "Target 3" + target4(target_destination) : "Target 4" style(choices) : "Set style" : 0 = [ 0 : "Replace" 1 : "Add" @@ -1714,7 +1782,7 @@ You can either replace the current value with a new one, or add/subtract to it ( //@SolidClass = func_group : "Group of brushes for in-editor use" [] // @SolidClass = func_detail : "Group of brushes for certain compilers " [] - +//dumptruck_ds end // // ambient sounds // @@ -1727,9 +1795,7 @@ You can either replace the current value with a new one, or add/subtract to it ( @PointClass base(Appearflags) color(150 0 150) = ambient_suck_wind : "Wind sound" [] @PointClass base(Appearflags) color(150 0 150) = ambient_swamp1 : "Frogs croaking" [] @PointClass base(Appearflags) color(150 0 150) = ambient_swamp2 : "Frogs croaking B" [] -@PointClass base(Appearflags) color(255 0 150) = ambient_thunder : "Random Thunder sound - -Originally unused in the game. Plays the sound of thunder at a random interval. You only need one of these in your map. It will play everywhere. If you want it to play locally instead, use a play_sound with the appropriate speed setting. The path for the sound is: ambience/thunder1.wav" [] +@PointClass base(Appearflags) color(255 0 150) = ambient_thunder : "Random Thunder sound.\nOriginally unused in the game. Plays the sound of thunder at a random interval. You only need one of these in your map. It will play everywhere. If you want it to play locally instead, use a play_sound with the appropriate speed setting. The path for the sound is: ambience/thunder1.wav [] @PointClass base(Appearflags) color(255 0 150) = ambient_water1 : "Swirling Water Sound" [] @PointClass base(Appearflags) color(255 0 150) = ambient_wind2 : "Sky Wind Sound" [] @@ -1738,8 +1804,27 @@ Originally unused in the game. Plays the sound of thunder at a random interval. // moving things // +@BaseClass base(Appearflags, Targetname, Target) = Door // unused? +[ + speed(integer) : "Speed" : 100 + sounds(choices) : "Sound" : 1 = + [ + 1: "Stone" + 2: "Machine" + 3: "Stone Chain" + 4: "Screechy Metal" + ] + wait(choices) : "Delay before close" : 4 = + [ + -1 : "Stays open" + ] + lip(integer) : "Lip" + dmg(integer) : "Damage inflicted when blocked" : 0 + message(string) : "Message if triggered" + health(integer) : "Health (shoot open)" : 0 +] -@SolidClass base(Angle, Appearflags, Targetname, Target) = func_door : "Basic door" +@SolidClass base(Angle, Appearflags, Targetname, Target, SwitchShadow) = func_door : "Basic door" [ speed(integer) : "Speed" : 100 sounds(choices) : "Sound" : 0 = @@ -1750,8 +1835,8 @@ Originally unused in the game. Plays the sound of thunder at a random interval. 3: "Stone Chain" 4: "Screechy Metal" ] - wait(string) : "Wait before close" : "3" - delay(string) : "Delay before trigger" + wait(float) : "Wait before close" : "3" + delay(float) : "Delay before trigger" lip(integer) : "Lip" : 8 dmg(integer) : "Damage inflicted when blocked" : 2 message(string) : "Message if touched" @@ -1761,11 +1846,11 @@ Originally unused in the game. Plays the sound of thunder at a random interval. 0 : "Don't leave key in player's inventory" 1 : "Leave key in player's inventory" ] - keyname(string) : "Sets the keyname of the item_key_custom which unlocks this entity. If any key spawnflag is selected (either silver or gold), this only changes the display name of the required key." - noise1(string) : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" - noise2(string) : "Sound file for the 'move' sound (if set, overrides 'sounds')" - noise3(string) : "Sound file for the 'key required' sound (default is per worldtype)" - noise4(string) : "Sound file for the 'key used' sound (default is per worldtype)" + keyname(string) : "Required Key" : "Sets the keyname of the item_key_custom which unlocks this entity. If any key spawnflag is selected (either silver or gold), this only changes the display name of the required key." + noise1(sound) : "Sound - Stop Moving" : : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" + noise2(sound) : "Sound - Move" : : "Sound file for the 'move' sound (if set, overrides 'sounds')" + noise3(sound) : "Sound - Key Required" : : "Sound file for the 'key required' sound (default is per worldtype)" + noise4(sound) : "Sound - Use Key" : : "Sound file for the 'key used' sound (default is per worldtype)" spawnflags(flags) = [ 1 : "Starts Open" : 0 @@ -1775,19 +1860,15 @@ Originally unused in the game. Plays the sound of thunder at a random interval. 32: "Toggle" : 0 64: "Doom-style Unlock" : 0 ] - _switchableshadow(choices) : "Switchable shadow" : 0 : "Enables dynamic shadows that fade on/off when the door moves." = [ - 0: "No" - 1: "Yes" - ] ] -@SolidClass base(Appearflags, Targetname, Target) = func_door_secret : "Secret door" +@SolidClass base(Appearflags, Targetname, Target, SwitchShadow) = func_door_secret : "Secret door" [ angle(integer) : "Direction of second move" t_width(integer) : "First move length" t_length(integer) : "Second move length" dmg(integer) : "Damage when blocked" : 2 - wait(string) : "Wait before close" : "2" + wait(float) : "Wait before close" : "2" sounds(choices) : "Sounds" : 3 = [ 1: "Medieval" @@ -1815,10 +1896,9 @@ Originally unused in the game. Plays the sound of thunder at a random interval. // ] // ] -@SolidClass base(Appearflags, Targetname, Effects, ModelLight, SwitchShadow) = func_wall : "Wall, starts animation when triggered (if supporting texture). -Effects will require an origin brush to work properly (see func_fall2 in manual for details)" [] +@SolidClass base(Appearflags, Targetname, Effects, ModelLight, SwitchShadow) = func_wall : "Wall, starts animation when triggered (if supporting texture).\nEffects will require an origin brush to work properly (see func_fall2 in manual for details)" [] -@SolidClass base(Appearflags, Targetname, Effects, ModelLight) = func_togglevisiblewall : "A bmodel which you can toggle its visibility. Behaves much like a traditional func_wall in any other way, but you can target it to toggle visible/invisible. +@SolidClass base(Appearflags, Targetname, Effects, ModelLight, SwitchShadow) = func_togglevisiblewall : "A bmodel which you can toggle its visibility. Behaves much like a traditional func_wall in any other way, but you can target it to toggle visible/invisible. If the entity has a switchable shadow it also toggles automatically (no need for a shadow controller)." [ spawnflags(flags) = @@ -1826,110 +1906,91 @@ If the entity has a switchable shadow it also toggles automatically (no need for 1 : "Start Off" : 0 2 : "Non-solid" : 0 ] - _switchableshadow(choices) : "Switchable shadow" : 0 : "Enables dynamic shadows that toggle on/off with the entity" = [ - 0: "No" - 1: "Yes" - ] - ] -@SolidClass base(Targetname, Shadow, SwitchShadow) = func_shadow : "An invisible, non-solid brush entity that can be used to cast shadows. " [] - -@SolidClass base(Appearflags, Targetname) = func_explobox : "An exploding brush entity. Works just like misc_explobox. - -Keys: +@SolidClass base(Targetname, SwitchShadow) = func_shadow : "An invisible, non-solid brush entity that can be used to cast shadows. " [] -health default 20 - -dmg default 100" +@SolidClass base(Appearflags, Targetname) = func_explobox : "An exploding brush entity. Works just like misc_explobox." [ -health(integer) : "Health" : 20 -dmg(integer) : "Damage" : 100 + health(integer) : "Health" : 20 + dmg(integer) : "Damage" : 100 ] -@SolidClass base(Appearflags, Targetname) = func_togglewall : "Creates a invisible wall that can be toggled on and off. - -START_OFF wall doesn't block until triggered. - -noise is the sound to play when wall is turned off. -noise1 is the sound to play when wall is blocking. -dmg is the amount of damage to cause when touched." +@SolidClass base(Appearflags, Targetname) = func_togglewall : "Creates a invisible wall that can be toggled on and off." [ - noise(string) : "Power off sound" - noise1(string) : "Sound when touched" - dmg(integer) : "Amount of damage when touched" : 0 + noise(sound) : "Power off sound" : : "Sound to play when wall is turned off." + noise1(sound) : "Sound when touched" : : "sound to play when wall is blocking." + dmg(integer) : "Collision damage" : 0 : "Amount of damage when touched" spawnflags(flags) = [ - 1 : "Start Off" : 0 + 1 : "Start Off" : 0 : "Wall doesn't block until triggered" ] ] -@SolidClass base(Appearflags, Targetname) = func_particlefield : "Creates a brief particle flash roughly the size of the defining -brush each time it is triggered. -USE_COUNT when the activator is a func_counter, the field will only activate when count is equal to cnt. Same as using a func_oncount to trigger. - -cnt is the count to activate on when USE_COUNT is set. -color is the color of the particles. Default is 192 (yellow). -count is the density of the particles. Default is 2. -noise is the sound to play when triggered. Do not use a looping sound here. -dmg is the amount of damage to cause when touched." +@SolidClass base(Appearflags, Targetname) = func_particlefield : "Creates a brief particle flash roughly the size of the defining brush each time it is triggered." [ - cnt(integer) : "Number to activate" : 0 - color(integer) : "Palette index for color" : 192 + cnt(integer) : "Number to activate" : 0 : "Count to activate on when USE_COUNT is set." + color(integer) : "Palette index for color" : 192 : "Color of the particles. Default is 192 (yellow)." count(integer) : "Density of particles" : 2 - dmg(integer) : "Amount of damage when touched" : 0 + // SYJ - add missing noise KV + noise(sound) : "Sound when triggered" : : "Sound to play when triggered. Do not use a looping sound here." + dmg(integer) : "Damage when touched" : 0 : "Amount of damage to cause when touched." spawnflags(flags) = [ - 1 : "Use Count" : 0 + 1 : "Use Count" : 0 : "When the activator is a func_counter, the field will only activate when count is equal to cnt. Same as using a func_oncount to trigger." ] ] -@SolidClass base(Appearflags, OneTargetname) = func_bob : "A SOLID bmodel that gently moves back and forth." +@SolidClass base(Appearflags, OneTargetname, ModelLight, Shadow) = func_bob : "A SOLID bmodel that gently moves back and forth." [ - angle(integer) : "direction movement, use 360 for angle 0" : 0 - height(integer) : "direction intensity" : 8 - count(integer) : "direction cycle timer minimum = 1" : 2 - waitmin(integer) : "Speed up scale default = 1, 1+ =non linear" : 1 - waitmin2(integer) : "Slow down scale default = 0.75" - delay(integer) : "Starting time delay defualt = 0, -1 = random" - style(integer) : "If set to 1, starts off and waits for trigger" - _dirt(integer) : "-1 = will be excluded from dirtmapping" - _minlight(integer) : "Minimum light level for any surface of the brush model" - _mincolor(integer) : "Minimum light color for any surface (default = '1 1 1' RGB)" - _shadow(integer) : "Will cast shadows on other models and itself" - _shadowself(integer) : "Will cast shadows on itself" + angle(integer) : "Direction of movement" : : "Use 360 for angle 0" + height(integer) : "Direction intensity" : 8 + count(integer) : "Direction cycle timer" : 2 : "Minimum = 1" + waitmin(integer) : "Speed up scale" : 1 : "Default = 1, 1+ =non linear" + waitmin2(float) : "Slow down scale" : "0.75" + delay(integer) : "Starting time delay" : 0 : "Default = 0, -1 = random" + style(choices) : "Wait for trigger?" : : "If set to 1, starts off and waits for trigger" = + [ + "" : No + 1 : Yes + ] spawnflags(flags) = [ - 1 : "START_OFF" : 0 - 2 : "BOB_COLLISION" : 2 - 4 : "BOB_NONSOLID" : 0 + // 1 : "Start off" : 0 // DISABLED, Ripped out ESTATE System (RennyC) + 2 : "BOB_COLLISION" : 1 // why is this exposed? + 4 : "Not solid" : 0 ] ] @PointClass base(Appearflags, OneTargetname) size(16 16 16) color(255 128 0) studio({ "path" : mdl, "skin" : skin, "frame" : frame}) = misc_bob : "A model that gently moves back and forth." [ - angle(integer) : "direction movement, use 360 for angle 0" : 0 - height(integer) : "direction intensity" : 8 - count(integer) : "direction cycle timer minimum = 1" : 2 - waitmin(integer) : "Speed up scale default = 1, 1+ =non linear" : 1 - waitmin2(integer) : "Slow down scale default = 0.75" - delay(integer) : "Starting time delay defualt = 0, -1 = random" - style(integer) : "If set to 1, starts off and waits for trigger" - mdl(string) : "Path to mdl file" - skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" + mdl(studio) : "Model" : : "Path to mdl file" + skin(integer) : "Skin" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" + angle(integer) : "Direction of movement" : : "Use 360 for angle 0" + height(integer) : "Direction intensity" : 8 + count(integer) : "Direction cycle timer" : 2 : "Minimum = 1" + waitmin(integer) : "Speed up scale" : 1 : "Default = 1, 1+ =non linear" + waitmin2(float) : "Slow down scale" : "0.75" + delay(integer) : "Starting time delay" : 0 : "Default = 0, -1 = random" + style(choices) : "Wait for trigger?" : : "If set to 1, starts off and waits for trigger" = + [ + "" : No + 1 : Yes + ] + spawnflags(flags) = [ - 2 : "BOB_COLLISION (default)" : 2 - 4 : "BOB_NONSOLID" : 0 + 2 : "BOB_COLLISION" : 1 // why is this exposed? + 4 : "Not solid" : 0 ] ] -@PointClass base(Appearflags, Targetname) size(16 16 16) color(64 64 64) = misc_shadowcontroller : "Controls switchable shadows on any bmodel entity (except doors). -Target this entity to toggle the shadows on/off with an optional fading animation. +@PointClass base(Appearflags, Targetname) size(16 16 16) color(64 64 64) = misc_shadowcontroller : "Controls switchable shadows on any bmodel entity (except doors).\n +Target this entity to toggle the shadows on/off with an optional fading animation.\n\n -Targeted bmodel must have _switchableshadow set to 1. +Targeted bmodel must have _switchableshadow set to 1.\n\n If the target entity changes its default behavior when 'targetname' is set (such as breakables), you can target the entity's 'targetname2' key." [ @@ -1943,65 +2004,86 @@ If the target entity changes its default behavior when 'targetname' is set (such ] ] -@PointClass base(Appearflags, Targetname, Target) size(16 16 16) color(255 200 0) = misc_sparks : "Produces a burst of yellow sparks at random intervals. If targeted, it will toggle between on or off. If it targets a light, that light will flash along with each burst of sparks. Note: targeted lights should be set to START_OFF. Set sounds key to 1 for built-in spark sound effect or target a play_sound_triggered for a custom sound." + +@PointClass base(Appearflags, Targetname, Target) size(16 16 16) color(255 200 0) = misc_sparks : "Produces a burst of yellow sparks at random intervals.\n\n + +If targeted, it will toggle between on or off. If it targets a light, that light will flash along with each burst of sparks. Note: targeted lights should be set to START_OFF. Set sounds key to 1 for built-in spark sound effect or target a play_sound_triggered for a custom sound." [ - wait(integer) : "is the average delay between bursts (variance is 1/2 wait). Default is 2." - cnt(integer) : "is the average number of sparks in a burst (variance is 1/4 cnt). Default is 15." - sounds(integer) : "set to 1 for built-in spark sound effect. Default is 0 - silent." - noise(string) : "Path to custom spark sound, requires 'sounds' be set to 1" + wait(integer) : "Avg delay between bursts" : 2 : "The average delay between bursts (variance is 1/2 wait). Default is 2." + cnt(integer) : "Avg num sparks in burst" : 15 : "is the average number of sparks in a burst (variance is 1/4 cnt). Default is 15." + sounds(choices) : "Play sound?" : : "set to 1 for built-in spark sound effect. Default is 0 - silent." = + [ + "" : No + 1 : Yes + ] + noise(sound) : "Sound to play" : : "Path to custom spark sound, requires 'sounds' be set to 1" + spawnflags(flags) = [ - 1 : "START_OFF" : 0 - 2 : "SPARKS_BLUE" : 0 - 4 : "SPARKS_PALE" : 0 + 1 : "Start off" : 0 + 2 : "Blue sparks" : 0 + 4 : "Pale sparks" : 0 ] ] @PointClass base(Appearflags, Targetname) size(16 16 16) color(0 200 200) = misc_particles : "Produces a continuous particle splash for waterfalls and other effects." [ - color(integer) : "color of particles. 0 through 15, corresponds to a row of the quake palette. (default 0)" - movedir(integer) : "average movement vector of particles (default 0 0 4)" - wait(integer) : "time between particle generation cycles. (default 0.1)" - volume(integer) : "density of particles. (default 10)" + color(choices) : "Particle color" : 0 : "color of particles. 0 through 15, corresponds to a row of the quake palette. (default 0)" = + [ + 0 : "0 - White" + 1 : "1 - Brown" + 2 : "2 - Light Blue" + 3 : "3 - Green" + 4 : "4 - Crimson" + 5 : "5 - Orange" + 6 : "6 - Gold" + 7 : "7 - Nougat" + 8 : "8 - Lavender" + 9 : "9 - Purple" + 10 : "10 - Tan" + 11 : "11 - Light Green" + 12 : "12 - Yellow" + 13 : "13 - Blue" + 14 : "14 - Fire" + 15 : "15 - Fullbrights" + ] + movedir(string) : "Avg Direction" : "0 0 4" : "average movement vector of particles (default 0 0 4)" + wait(integer) : "Delay between cycles" : "0.1" : "time between particle generation cycles. (default 0.1)" + volume(integer) : "Density" : 10 : "density of particles. (default 10)" spawnflags(flags) = [ - 1 : "START_OFF" : 0 + 1 : "Start off" : 0 ] ] @PointClass base(Appearflags, Targetname) size(16 16 16) color(0 200 225) = misc_particlespray : "Shoots particles either when triggered, or contiuously when not triggered by anything." [ - color(integer) : "is the palette color of the particles. (default 47)" - movedir(integer) : "is the vector distance that the particles will travel before disappearing. (in x y z)" - delay(integer) : "is the delay between each triggering (default 0.1)" - duration(integer) : "is the amount of time that the it will continue to release particles so that it can release a long stream of particles with only one triggering" - count(integer) : "is the number of particles to make each time (default 15)" - noise(string) : "is the name of the wav file to play when triggered" + color(integer) : "Particle color index" : 47 : "The palette color of the particles. (default 47)" + movedir(string) : "Spray distance (X Y Z)" : "0 0 0" : "The vector distance that the particles will travel before disappearing. (in x y z)" + delay(float) : "Delay between cycles" : "0.1" : "The delay between each triggering (default 0.1)" + duration(integer) : "Duration" : : "is the amount of time that the it will continue to release particles so that it can release a long stream of particles with only one triggering" + count(integer) : "Number of particles" : 15 : "The number of particles to make each time (default 15)" + noise(sound) : "Sound when triggered" : : "The name of the WAV file to play when triggered" ] -@PointClass base(Appearflags, Target, Targetname) size(16 16 16) color(0 255 255) = misc_particle_stream : "A particle stream! It appears when triggered. - -This entity is one end of the stream, target another entity as the other end-point. I used the info_notnull, but you should be able to target anything even monsters. +@PointClass base(Appearflags, Target, Targetname) size(16 16 16) color(0 255 255) = misc_particle_stream : "A particle stream! It appears when triggered.\n\n -dmg 1st Color - Use if you want a single color stream -cnt 2nd Color - Mixes particles of both colors -noise Sound to play when triggered +This entity is one end of the stream, target another entity as the other end-point. I used the info_notnull, but you should be able to target any non-static entity, even monsters.\n\n NOTE: To have a continuous stream use a func_counter as the target, then set the misc_particle_stream as the target of the func_counter, finally set the Looping spawnflag on the counter" [ - target(target_source) : "End-point of the stream" - dmg(integer) : "1st Color" : 0 - cnt(integer) : "2nd Color" : 0 - noise(string) : "Path of sound when triggered" + target(target_destination) : "End-point of the stream" + dmg(integer) : "Color 1 palette index" : 0 : "Use if you want a single color stream" + cnt(integer) : "Color 2 palette index" : 0 : "Mixes particles of both colors" + noise(sound) : "Path of sound when triggered" ] -@SolidClass base(Angle, Appearflags, Targetname, Target, Message) = func_button : "Button" //modified by dumptruck_ds to add Target +@SolidClass base(Angle, Appearflags, Targetname, Target, Message, SwitchShadow) = func_button : "Button" //modified by dumptruck_ds to add Target [ speed(integer) : "Speed" : 40 lip(integer) : "Lip" : 4 - //target(target_source) : "Target" //modified by dumptruck_ds health(integer) : "Health (shootable)" - sounds(choices) : "Sounds" = + sounds(choices) : "Sounds" : 0 = [ 0 : "Steam metal" 1 : "Wooden clunk" @@ -2011,8 +2093,8 @@ NOTE: To have a continuous stream use a func_counter as the target, then set the wait(string) : "Wait before reset" : "1" delay(string) : "Delay before trigger" message(string) : "Message" - _shadow(integer) : "Shadows" ] + @SolidClass base(Angle, Appearflags, Targetname, Target) = func_elvtr_button : "Button for use with func_new_plat" //modified by dumptruck_ds to add Target [ spawnflags(Flags) = @@ -2021,9 +2103,8 @@ NOTE: To have a continuous stream use a func_counter as the target, then set the ] speed(integer) : "Speed" : 40 lip(integer) : "Lip" : 4 - //target(target_source) : "Target" //modified by dumptruck_ds health(integer) : "Health (shootable)" - sounds(choices) : "Sounds" = + sounds(choices) : "Sounds" : 0 = [ 0 : "Steam metal" 1 : "Wooden clunk" @@ -2036,20 +2117,7 @@ NOTE: To have a continuous stream use a func_counter as the target, then set the ] @SolidClass base(Appearflags, Targetname) = func_train : -"Trains are moving platforms that players, monsters and items can ride on. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. -Use path_corner as targets. -If given a targetname, it'll only start moving after triggered. -path_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path. - -'pausetime' sets a default waiting time when a value is not defined in path_corners. -'speed' sets the initial moving speed. If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards. - -Spawnflags: -- 'Move on trigger' will force the train to resume its path when triggered, even when temporarily waiting at a path_corner. -- 'Stop on trigger' will stop the train at the next path_corner when triggered. Trigger it again to resume. -The flags above are mutually exclusive and will cause an objerror when selected simultaneously. -- 'Custom alignment' allows you to directly specify how the train is offset relative to its path_corners using an 'origin' brush instead of using the vanilla corner alignment. -" +"Trains are moving platforms that players, monsters and items can ride on. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at.\nUse path_corner as targets.\nIf given a targetname, it'll only start moving after triggered.\npath_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path.\n\n'Move on trigger' and 'Stop on trigger' are mutually exclusive and will cause an objerror when selected simultaneously." [ sounds(choices) : "Sound" : 1 = [ @@ -2058,43 +2126,24 @@ The flags above are mutually exclusive and will cause an objerror when selected 2: "Base door" ] - speed(integer) : "Speed (units per second)" : 100 - pausetime(integer) : "Default wait time" : : "Wait time used when not defined in path_corner." + speed(integer) : "Initial Speed" : 100 : "Initial moving speed (in units per second). If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards" + pausetime(float) : "Default wait time" : : "Wait time used when not defined in path_corner." target(target_source) : "Train starting point" dmg(integer) : "Damage on crush" : 2 - noise1(string) : "Custom moving loop sound (if set, overrides 'sounds')" - noise(string) : "Custom stopping sound (if set, overrides 'sounds')" - noise2(string) : "Custom corner sound, for when the train crosses a path_corner without stopping" + noise1(sound) : "Sound - Moving" : : "Custom moving loop sound (if set, overrides 'sounds')" + noise(sound) : "Sound - Stop" : : "Custom stopping sound (if set, overrides 'sounds')" + noise2(sound) : "Sound - Pass Corner" : : "Custom corner sound, for when the train crosses a path_corner without stopping" spawnflags(flags) = [ - 2: "Move on trigger" : 0 - 4: "Stop on trigger" : 0 - 8: "Non-solid" : 0 - 64: "Custom alignment" : 0 + 2 : "Move on trigger" : 0 : "will force the train to resume its path when triggered, even when temporarily waiting at a path_corner." + 4 : "Stop on trigger" : 0 : "Will stop the train at the next path_corner when triggered. Trigger it again to resume." + 8 : "Non-solid" : 0 + 64 : "Custom alignment" : 0 : "Allows you to directly specify how the train is offset relative to its path_corners using an 'origin' brush instead of using the vanilla corner alignment." ] ] -@PointClass base(Targetname) studio({ "path" : mdl, "skin" : skin, "frame" : first_frame}) = misc_modeltrain : -"Trains are moving platforms that players can ride. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. -Use path_corner as targets. -If given a targetname, it'll only start moving after triggered. -path_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path. - -'pausetime' sets a default waiting time when a value is not defined in path_corners. -'speed' sets the initial moving speed. If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards. - -misc_modeltrain smoothly orients itself towards the next path_corner when moving. The turning speed is automatic and based on the movement speed, but you can set a multiplier for the turning speed with the 'multiplier' key. Set it to -1 to turn instantly. - -You can define two different frame ranges and animation speeds, for when the model is stopped and moving. If you don't need different stopped/moving animations, only setting 'first_frame'/'last_frame'/'frtime' is enough. If you don't need any animation at all, just set 'first_frame' to the desired frame and all other fields can go blank. - -If you want to explicitly set frame 0 in any '*_frame' fields, you must use -1 instead, or else the code understands 0 as a blank field. - - -Spawnflags: -- No rotation: model doesn't rotate when moving towards path_corners. -- Rotate Y only: model only rotates around the Y axis, so pitch/roll angles are kept as initially set (useful to fake walking NPCs). -" +@PointClass base(Targetname) studio({ "path" : mdl, "skin" : skin, "frame" : first_frame}) = misc_modeltrain : "Trains are moving platforms that players can ride. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at.\nUse path_corner as targets.\nIf given a targetname, it'll only start moving after triggered.\npath_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path.\n\nmisc_modeltrain smoothly orients itself towards the next path_corner when moving. The turning speed is automatic and based on the movement speed, but you can set a multiplier for the turning speed with the 'multiplier' key. Set it to -1 to turn instantly.\n\nYou can define two different frame ranges and animation speeds, for when the model is stopped and moving. If you don't need different stopped/moving animations, only setting 'first_frame'/'last_frame'/'frtime' is enough. If you don't need any animation at all, just set 'first_frame' to the desired frame and all other fields can go blank.\n\nIf you want to explicitly set frame 0 in any '*_frame' fields, you must use -1 instead, or else the code understands 0 as a blank field." [ sounds(choices) : "Sound" : 1 = [ @@ -2102,13 +2151,14 @@ Spawnflags: 1: "Ratchet Metal" 2: "Base door" ] - speed(integer) : "Speed (units per second)" : 100 + speed(integer) : "Initial Speed" : 100 : "Sets the initial moving speed (in units per second). If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards." pausetime(integer) : "Default wait time" : : "Wait time used when not defined in path_corner." target(target_source) : "First stop target" dmg(integer) : "Damage on crush" : 2 - mdl(string) : "Model file path (such as 'progs/model_name.mdl')" + mdl(studio) : "Model" : : "Model file path (such as 'progs/model_name.mdl')" cmins(string) : "Lower bounding box point" cmaxs(string) : "Upper bounding box point" + first_frame(integer) : "First frame sequence (stopped). Use -1 for frame 0" last_frame(integer) : "Last frame sequence (stopped). Use -1 for frame 0" first_frame2(integer) : "First frame sequence (moving). Use -1 for frame 0" @@ -2126,28 +2176,26 @@ Spawnflags: 2 : "Back and forth" ] multiplier(integer) : "Turning speed" : 1 : "Turning speed multiplier. Set to -1 to turn instantly" - noise1(string) : "Custom moving loop sound (if set, overrides 'sounds')" - noise(string) : "Custom stopping sound (if set, overrides 'sounds')" - noise2(string) : "Custom corner sound, for when the train crosses a path_corner without stopping" + noise1(sound) : "Custom moving loop sound (if set, overrides 'sounds')" + noise(sound) : "Custom stopping sound (if set, overrides 'sounds')" + noise2(sound) : "Custom corner sound, for when the train crosses a path_corner without stopping" + spawnflags(flags) = [ 2: "Move on trigger" : 0 4: "Stop on trigger" : 0 8: "Non-solid" : 0 - 16: "No rotation" : 0 - 32: "Rotate Y only" : 0 + 16: "No rotation" : 0 : "Model doesn't rotate when moving towards path_corners." + 32: "Rotate Y only" : 0 : "Model only rotates around the Y axis, so pitch/roll angles are kept as initially set (useful to fake walking NPCs)" ] ] -@PointClass base(Appearflags, Targetname) color(0 255 255) size(16 16 16) = path_corner : -"Waypoint for trains and walking monsters. -Check each field's description for more details. -" +@PointClass base(Appearflags, Targetname) color(0 255 255) size(16 16 16) = path_corner : "Waypoint for trains and walking monsters." [ - first_frame(integer) : "First frame sequence (stopped). Use -1 for frame 0" - last_frame(integer) : "Last frame sequence (stopped). Use -1 for frame 0" - first_frame2(integer) : "First frame sequence (moving). Use -1 for frame 0" - last_frame2(integer) : "Last frame sequence (moving). Use -1 for frame 0" + first_frame(integer) : "First frame sequence (stopped)" : : "Use -1 for frame 0" + last_frame(integer) : "Last frame sequence (stopped)" : : "Use -1 for frame 0" + first_frame2(integer) : "First frame sequence (moving)" : : "Use -1 for frame 0" + last_frame2(integer) : "Last frame sequence (moving)" : : "Use -1 for frame 0" frtime(float) : "Frame time (stopped)" : "0.1" frtime2(float) : "Frame time (moving)" : "0.1" animtype(choices) : "Animation type (stopped)" : 1 = @@ -2161,20 +2209,15 @@ Check each field's description for more details. 2 : "Back and forth" ] multiplier(integer) : "Turning speed" : 1 : "Turning speed multiplier. Set to -1 to turn instantly" - noise(string) : "Custom stopping sound for this point" - noise2(string) : "Custom corner sound for this point, for when the train crosses a path_corner without stopping" + noise(sound) : "Custom stopping sound for this point" + noise2(sound) : "Custom corner sound for this point, for when the train crosses a path_corner without stopping" - target(target_source) : "Next waypoint target" + target(target_destination) : "Next waypoint target" target2(target_destination) : "Target2" target3(target_destination) : "Target3" target4(target_destination) : "Target4" - wait(integer) : "Wait" : : "Waiting time at this point. -- A positive value directly sets a waiting time in seconds. -- A 0 value (or not defined) uses the 'pausetime' field value in the func_train (which defaults to 0s). -- A -1 value makes the train to stop at this point. -- A -2 value forces the train to not wait here even when 'pausetime' is set on the func_train. -" + wait(integer) : "Wait" : : "Waiting time at this point.\n- A positive value directly sets a waiting time in seconds.\n- A 0 value (or not defined) uses the 'pausetime' field value in the func_train (which defaults to 0s).\n- A -1 value makes the train to stop at this point.\n- A -2 value forces the train to not wait here even when 'pausetime' is set on the func_train." speed(integer) : "Speed" : : "Sets a new speed for the train to move from this point onwards." ] @@ -2196,7 +2239,7 @@ Check each field's description for more details. @SolidClass base(Appearflags, Targetname) = func_new_plat : "Enhanced Plat" //dumptruck_ds from Rogue DOE Mission Pack [ - spawnflags(Flags) = + spawnflags(flags) = [ 1 : "Plat Start at Top" : 0 2 : "Plat Toggle" : 0 @@ -2211,8 +2254,8 @@ Check each field's description for more details. health(integer) : "Seconds to wait at bottom if using Start at Top": 5 delay(integer) : "Seconds to wait if using Plat2" : 3 wait(integer) : "Seconds to retrigger Elevator" : 0 - noise(string) : "Path to custom sound for plat movement" - noise1(string) : "Path to custom sound for plat stopping" + noise(sound) : "Path to custom sound for plat movement" + noise1(sound) : "Path to custom sound for plat stopping" sounds(choices) : "Sound" : 1 = [ 1: "Base fast" @@ -2222,6 +2265,8 @@ Check each field's description for more details. ] ] +@SolidClass base(Appearflags, ModelLight) = func_illusionary : "Static nonsolid model" [] + @SolidClass base(Appearflags) = func_episodegate : "Episode Gate" [ spawnflags(Flags) = @@ -2246,30 +2291,17 @@ Check each field's description for more details. // triggers // -@baseclass base(Appearflags, Target, Targetname, TriggerWait, Message) = Trigger -[ - sounds(choices) : "Sound style" : 0 = - [ - 0 : "None" - 1 : "Secret sound" - 2 : "Beep beep" - 3 : "Large switch" - ] - delay(string) : "Delay before trigger" : "0" - message(string) : "Message" -] - @SolidClass base(OneTarget, OneTargetname, Appearflags, TriggerWait) = trigger_changelevel : "Trigger: Change level" [ map(string) : "Next map" //target(target_destination) : "Target" message(string) : "Message to show on intermission screen." - sounds(integer) : "CD track to show during intermission." - sounds2(integer) : "CD track to play during intermission text (if present)" + sounds(integer) : "Music track for intermission" + sounds2(integer) : "Music track for intermission text" spawnflags(flags) = [ 1: "No intermission" : 0 - 2: "Ignore intermissiontext" : 0 + 2: "Ignore info_intermissiontext" : 0 8: "Start Off" : 0 16: "Use info_player_start2" : 0 ] @@ -2283,35 +2315,32 @@ Check each field's description for more details. 0 : "Default" 1 : "Wait for Trigger" ] - spawnflags(flags) = [ 1: "Not touchable" : 0 ] + spawnflags(flags) = + [ + 1: "Not touchable" : 0 + ] ] -@SolidClass base(Appearflags, TriggerWait) = trigger_setgravity : "Trigger: sets the gravity of a player or monsters - -gravity = what to set the players gravity to - -If using multiple triggers, do not have them touching. Leave a 'buffer' between them. - - - 0 (default) normal gravity - - 1 no gravity - - 2 almost no gravity - - 15 floaty - - ... - - 101 normal gravity - - 102 slightly higher gravity - - ... - - 1000 very high gravity -" +@SolidClass base(Appearflags, TriggerWait) = trigger_setgravity : "Gravity Trigger: sets the gravity of a player or monsters\n\nIf using multiple triggers, do not have them touching. Leave a 'buffer' between them." [ - spawnflags(flags) = [ 8: "Start Off (can be toggled)" : 0 ] - gravity(integer) : "Gravity : Normal = 0" : 0 + spawnflags(flags) = + [ + 8: "Start Off (can be toggled)" : 0 + ] + gravity(choices) : "Gravity" : 0 : "what to set the players gravity to" = + [ + 0 : "0 - normal gravity" + 1 : "1 - no gravity" + 2 : "2 - almost no gravity" + 15 : "15 - floaty" + 101 : "101 - normal gravity" + 102 : "102 slightly higher gravity" + 1000 : "1000 - very high gravity" + ] ] //dumptruck_ds added from Hipnotic Mission Pack -@SolidClass base(Appearflags, Target, Targetname, TriggerWait) = trigger_usekey : -"Trigger: Requires a Key - -NOTE: You must specify either the silver or gold key by setting the relevant spawnflag, or specify an item_key_custom by setting the 'keyname' value so that it matches the 'keyname' value of the item_key_custom." +@SolidClass base(Appearflags, Target, Targetname, TriggerWait) = trigger_usekey : "Trigger: Requires a Key. NOTE: You must specify either the silver or gold key by setting the relevant spawnflag, or specify an item_key_custom by setting the 'keyname' value so that it matches the 'keyname' value of the item_key_custom." [ cnt(choices) : "Leave key in player's inventory?" : 0 = [ @@ -2321,8 +2350,8 @@ NOTE: You must specify either the silver or gold key by setting the relevant spa delay(float) : "Delay before trigger" : "0" : "Delay before trigger" keyname(string) : "Sets the keyname of the item_key_custom which unlocks this entity. If any key spawnflag is selected (either silver or gold), this only changes the display name of the required key." message(string) : "Custom message" - noise1(string) : "Sound file for the 'key required' sound (default is per worldtype)" - noise2(string) : "Sound file for the 'key used' sound (default is per worldtype)" + noise1(sound) : "Sound file for the 'key required' sound (default is per worldtype)" + noise2(sound) : "Sound file for the 'key used' sound (default is per worldtype)" spawnflags(flags) = [ 8 : "Silver Key Required" : 0 @@ -2334,7 +2363,8 @@ NOTE: You must specify either the silver or gold key by setting the relevant spa [ wait(string) : "Wait before reset" : "0.2" health(integer) : "Health (shootable)" - spawnflags(flags) = [ + spawnflags(flags) = + [ 1: "Not touchable" : 0 2: "Wait for retrigger" : 0 ] @@ -2344,10 +2374,12 @@ NOTE: You must specify either the silver or gold key by setting the relevant spa 1 : "Wait for Trigger" ] ] + @SolidClass base(OneTarget, OneTargetname, TriggerWait) = trigger_onlyregistered : "only Triggers only if game is registered (registered == 1)" [ spawnflags(flags) = [ 1: "Not touchable" : 0 ] ] + @SolidClass base(Trigger, OneTargetname, TriggerWait) = trigger_secret : "Trigger: Secret" [ sounds(choices) : "Sound" : 1 = @@ -2355,39 +2387,21 @@ NOTE: You must specify either the silver or gold key by setting the relevant spa 1 : "Secret sound" 2 : "Beep beep" ] - spawnflags(flags) = [ 1: "Not touchable" : 0 ] + spawnflags(flags) = + [ + 1: "Not touchable" : 0 + ] ] -@SolidClass base(Appearflags, OneTarget, Targetname, TriggerWait) = trigger_teleport : "Trigger: Teleporter - -Any object touching this will be transported to the corresponding -info_teleport_destination entity. Or if RANDOM is chosen, info_teleport_random -entities will be used. (See below.) - -NOTE To have a dormant trigger_teleport (will not teleport until unlocked), -set is_waiting to 1 and use targetname2 on the trigger_teleport. Target this -targetname2 with another trigger entity to unlock it. - -If the trigger_teleport has a targetname, it will only teleport entities -when it has been fired. NOTE This is not compatible with is_waiting. - -SILENT(2) eliminates the teleporter ambient noise (good for hidden monster teleporters. - -RANDOM(4) causes the teleporter to send the traveller to a random destination -among the info_teleport_random markers in the level. You MUST place a -count field that is the number of info_teleport_random entities you placed. - -STEALTH(8) eliminates the particle flash and noise when an entity is teleported. - -MONSTER_ONLY(16) will only teleport monsters" +@SolidClass base(Appearflags, OneTarget, Targetname, TriggerWait) = trigger_teleport : "Teleporter Trigger.\n\nAny object touching this will be transported to the correspondinginfo_teleport_destination entity. Or if RANDOM is chosen, info_teleport_random entities will be used. (See below.)\n\n NOTE To have a dormant trigger_teleport (will not teleport until unlocked), set is_waiting to 1 and use targetname2 on the trigger_teleport. Target this targetname2 with another trigger entity to unlock it.\n\nIf the trigger_teleport has a targetname, it will only teleport entitieswhen it has been fired. NOTE This is not compatible with is_waiting." [ spawnflags(Flags) = [ 1 : "Player only" : 0 - 2 : "Silent" : 0 - 4 : "Random" : 0 - 8 : "Stealth" : 0 - 16 : "Monster only" : 0 + 2 : "Silent" : 0 : "eliminates the teleporter ambient noise (good for hidden monster teleporters)." + 4 : "Random" : 0 : "causes the teleporter to send the traveller to a random destination among the info_teleport_random markers in the level. You MUST place a count field that is the number of info_teleport_random entities you placed." + 8 : "Stealth" : 0 : "eliminates the particle flash and noise when an entity is teleported." + 16 : "Monster only" : 0 : "will only teleport monsters" ] count(integer) : "Number of info_teleport_random entities" : : "Number of info_teleport_random entities" is_waiting(choices) : "Trigger" : 0 = @@ -2407,126 +2421,114 @@ MONSTER_ONLY(16) will only teleport monsters" 3 : "Nightmare!" ] ] -@PointClass base(Trigger) = trigger_relay : "Trigger: Relay" -[ -] -@SolidClass base(Appearflags, TriggerWait) = trigger_take_weapon : "Trigger: Remove shotgun on touch. Place at info_player_start for an axe only spawn. -Make sure and add a weapon_shotgun to your map!" -[] +@SolidClass base(Appearflags, TriggerWait) = trigger_take_weapon : "Trigger: Remove shotgun on touch. Place at 'info_player_start' for an axe only spawn. Make sure and add a 'weapon_shotgun' to your map!" [] + +@PointClass base(Targetname, Trigger) = trigger_relay : "Trigger relay" [] + @SolidClass base(Angle, Appearflags, OneTargetname, TriggerWait) = trigger_monsterjump : "Trigger: Monster jump" [ speed(integer) : "Jump Speed" : 200 height(integer) : "Jump Height" : 200 - spawnflags(flags) = [ 8: "Start Off (toggles)" : 0 ] //dumptruck_ds + spawnflags(flags) = + [ + 8: "Start Off (toggles)" : 0 //dumptruck_ds + ] ] + @PointClass base(Appearflags, Target, Targetname) = trigger_counter : "Trigger: Counter" [ - spawnflags(flags) = [ 1: "No Message" : 0 ] + spawnflags(flags) = + [ + 1: "No Message" : 0 + ] count(integer) : "Count before trigger" : 2 delay (integer) : "Delay" message(string) : "Message" ] + @SolidClass base(Angle, Appearflags, Targetname, TriggerWait) = trigger_push : "Trigger: Push" [ spawnflags(flags) = [ 1: "Push once" : 0 ] speed(integer) : "Speed" : 1000 ] -@SolidClass base(Angle, Appearflags, Targetname, TriggerWait) = trigger_push_custom : "Trigger: Push (Custom): Can be toggled on and off, use a custom sound (noise) and be made silent. -NOTE: Set BOTH Custom Noise spawnflag and the Noise key/value. Custom sounds should not be looped." +@SolidClass base(Angle, Appearflags, Targetname, TriggerWait) = trigger_push_custom : "Trigger: Push (Custom): Can be toggled on and off, use a custom sound (noise) and be made silent. NOTE: Set BOTH Custom Noise spawnflag and the Noise key/value. Custom sounds should not be looped." [ spawnflags(flags) = - [ - 1: "Push once" : 0 - 8: "Start Off" : 0 - 16: "Silent" : 0 - 32: "Custom Noise" : 0 - ] + [ + 1: "Push once" : 0 + 8: "Start Off" : 0 + 16: "Silent" : 0 + 32: "Custom Noise" : 0 + ] speed(integer) : "Speed" : 1000 - noise(string) : "Custom Sound" + noise(sound) : "Custom Sound" ] @SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_hurt : "Trigger: Hurt" [ dmg(integer) : "Damage per second" : 5 ] @PointClass size(16 16 16) = misc_noisemaker : "Debug entity: continuously plays enforcer sounds" [] -@PointClass size(16 16 16) = viewthing : "Debug entity: fake player model" [] -@PointClass base(Appearflags, Targetname, TriggerWait) = misc_infight : "Makes 'target' monster angry at 'target2'. +@PointClass size(16 16 16) model({"path":"progs/player.mdl"}) = viewthing : "Debug entity: fake player model" [] -By default, the infighting doesn't start mutually, that is, 'target2' monster will only get mad back at 'target' after it's been attacked. - -If you want to make them angry at each other instantly, you can set the spawnflag 'Mutual hate'." +@PointClass base(Appearflags, Targetname, TriggerWait) = misc_infight : "Makes 'target' monster angry at 'target2'.\n\nBy default, the infighting doesn't start mutually, that is, 'target2' monster will only get mad back at 'target' after it's been attacked.\n\nIf you want to make them angry at each other instantly, you can set the spawnflag 'Mutual hate'." [ - target(target_destination) : "The monster who will get angry." - target2(target_destination) : "Who target will get angry at." - spawnflags(flags) = [ + target(target_destination) : "Is angry" : : "The monster who will get angry." + target2(target_destination) : "Is angry at" : : "Who target will get angry at." + spawnflags(flags) = + [ 1: "Mutual hate" : 0 2: "Keep player as activator" : 0 - ] + ] ] -@PointClass base(Appearflags, Targetname) = trigger_changetarget : "Changes the target field on an entity. - -'message' is the value of the new target. - -'cnt' picks which 'target' field to modify. (target, target2, etc.)" +@PointClass base(Appearflags, Targetname) = trigger_changetarget : "Changes the target field on an entity." [ target(target_destination) : "The entity to change" message(target_destination) : "The new target value" - cnt(choices) : "Target field to modify. No value defaults to 'target'" : 0 = [ - 1 : "target" - 2 : "target2" - 3 : "target3" - 4 : "target4" - ] + cnt(choices) : "Target field to modify." : 1 : "No value defaults to 'target'" = + [ + 1 : "target" + 2 : "target2" + 3 : "target3" + 4 : "target4" + ] ] -@PointClass base(Appearflags, Targetname) = target_setstate : "Changes an entity's state. -Entities in a disabled state won't execute its main function, depending on context. -Triggers won't fire its targets. Doors won't respond to triggering and touching. Buttons will remain in a pressed position and can't be fired. -The 'style' key defines if target_setstate will toggle entities' current state, force them to active, or to inactive. -You can force the target entities to spawn disabled/locked with spawnflag 1. + +@PointClass base(Appearflags, Targetname) = target_setstate : "Changes an entity's state.\nEntities in a disabled state won't execute its main function, depending on context.\nTriggers won't fire its targets. Doors won't respond to triggering and touching. Buttons will remain in a pressed position and can't be fired.\nThe 'style' key defines if target_setstate will toggle entities' current state, force them to active, or to inactive.\nYou can force the target entities to spawn disabled/locked with spawnflag 1. " [ target(target_destination) : "Target" - target2(target_destination) : "Target" - target3(target_destination) : "Target" - target4(target_destination) : "Target" - spawnflags(flags) = [ + target2(target_destination) : "Target2" + target3(target_destination) : "Target3" + target4(target_destination) : "Target4" + spawnflags(flags) = + [ 1: "Targets start disabled" : 0 2: "Force all doors to close" : 0 4: "Don't reset button state" : 0 ] - style(choices) : "Setstate style" = [ + style(choices) : "Setstate style" = + [ 0 : "Toggle current state" 1 : "Force active" 2 : "Force inactive" ] ] + /////////////////////////////////////////////////////////// // Fog triggers // /////////////////////////////////////////////////////////// -@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fogblend : -"Trigger: Fog Blend -Acts as a smoothly blending portal between two zones of different fog. Sets the fog for any client passing through it, blending their global fog settings between start and end values proportional to their position within the trigger. - -- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1. -- will 'stuffcmd' 2 dozen times per frame so try not to make these huge -- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." +@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fogblend : "Fog Blend trigger. Acts as a smoothly blending portal between two zones of different fog. Sets the fog for any client passing through it, blending their global fog settings between start and end values proportional to their position within the trigger.\n\n- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1.\n- will 'stuffcmd' 2 dozen times per frame so try not to make these huge\n- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." [ - distance(integer) : "Length of blend distance (defaults to size of trigger)" - angle(integer) : "Axis of motion of blend (points toward end values)" + distance(integer) : "Blend distance" : : "Length of blend distance (defaults to size of trigger)" + angle(integer) : "Blend axis" : : "Axis of motion of blend (points toward end values)" ] -@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fog : -"Trigger: Sets a fog. -Smoothly blends client's currently applied fog to this value over time. - -- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1. -- will 'stuffcmd' 2 dozen times per frame so try not to make these huge -- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." +@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fog : "Fog set trigger. Smoothly blends client's currently applied fog to this value over time.\n\n- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1.\n- will 'stuffcmd' 2 dozen times per frame so try not to make these huge\n- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." [ fog_density(string) : "Fog Density" fog_color(color1) : "Fog Color" @@ -2534,110 +2536,87 @@ Smoothly blends client's currently applied fog to this value over time. delay(string) : "Pause before starting blend" ] -@PointClass base(Appearflags, Targetname, Target, FogShift) color(128 128 50) = target_fogblend : -"Target: Fog Blend -Activator's fog will toggle between fog_color/fog_density and fog_color2/fog_density2 values, smoothly blending it over time. -If you check the 'one-way' spawnflag, it'll only blend over to fog_color2/fog_density2 - unless you check the 'reverse' flag as well, which will make it blend only to fog_color/fog_density. -Checking 'All clients' will affect all connected players. - -- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1. -- will 'stuffcmd' 2 dozen times per frame so try not to make this take too long -- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." +@PointClass base(Appearflags, Targetname, Target, FogShift) color(128 128 50) = target_fogblend : "Fog Blend target. Activator's fog will toggle between fog_color/fog_density and fog_color2/fog_density2 values, smoothly blending it over time.\n\n- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1.\n- will 'stuffcmd' 2 dozen times per frame so try not to make this take too long\n- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." [ spawnflags(flags) = [ - 1 : "One-Way Only" : 0 + 1 : "One-Way Only" : 0 : "only blend over to fog_color2/fog_density2 - unless you check flag 2 as well, which will make it blend only to fog_color/fog_density." 2 : "Reverse Start/End" : 0 - 4 : "All clients" : 0 + 4 : "All clients" : 0 : "affect all connected players." ] - delay(string) : "Pause before starting blend" - speed(string) : "Time to blend (-1 for instant)" - speed2(string) : "Time to blend back, if different (-1 for instant)" + delay(float) : "Pause before starting blend" + speed(float) : "Time to blend" : : "-1 for instant" + speed2(float) : "Time to blend back" : : "If different from time to blend. -1 for instant" ] -@SolidClass base(Appearflags, Targetname, TriggerWait) = trigger_textstory : -"Trigger to show long centerprint texts. Message remains on screen while player is inside the trigger volume. Can have custom sounds, or be made silent. - -Horizontal space is limited to 40 characters, so you must place linefeeds (\n) into your text. - -Use 'fade_amt` to set the background fade to a custom value (default is 160). - -You can set it to be show the message only when the player is facing a certain angle within the trigger. Set the central angle with 'mangle', and the maximum angle offset with 'view_ofs' (both in 'pitch yaw 0' format)." - +@SolidClass base(Appearflags, Targetname, TriggerWait) = trigger_textstory : "Trigger to show long centerprint texts. Message remains on screen while player is inside the trigger volume. Can have custom sounds, or be made silent.\n\nHorizontal space is limited to 40 characters, so you must place line breaks (backslash n) into your text.\n\nYou can set it to be show the message only when the player is facing a certain angle within the trigger. Set the central angle with 'mangle', and the maximum angle offset with 'view_ofs' (both in 'pitch yaw 0' format)." [ mangle(string) : "Central view angle" : : "Central point of the viewcone, in 'pitch yaw 0' format" view_ofs(string) : "Maximum angle offset" : : "Angle offsets from the central viewcone point in each direction, in 'pitch yaw 0' format" message(string) : "Message" : : "Message to show on-screen." - noise1(string) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." - noise2(string) : "Deactivate sound" : : "Played when the message fades away." - fade_amt(float) : "Set a custom black level for background fade" : "160" - spawnflags(flags) = [ + noise1(sound) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." + noise2(sound) : "Deactivate sound" : : "Played when the message fades away." + fade_amt(float) : "Background fade level" : "160" : "Set a custom black level for background fade" + spawnflags(flags) = + [ 1: "Silent" 2: "No background fade" ] ] -@PointClass base(Appearflags, Targetname, Message) = target_textstory : -"Trigger to show long centerprint texts. Message remains on screen for the duration of 'wait'. Can have custom sounds, or be made silent. - -Horizontal space is limited to 40 characters, so you must place linefeeds (\n) into your text. - -Use 'fade_amt` to set the background fade to a custom value (default is 160). - -" +@PointClass base(Appearflags, Targetname, Message) = target_textstory : "Trigger to show long centerprint texts. Message remains on screen for the duration of 'wait'. Can have custom sounds, or be made silent.\n\nHorizontal space is limited to 40 characters, so you must place line breaks (backslash n) into your text." [ wait(integer) : "Message duration" : 5 message(string) : "Message" : : "Message to show on-screen." - noise1(string) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." - noise2(string) : "Deactivate sound" : : "Played when the message fades away." - fade_amt(float) : "Set a custom black level for background fade" : "160" - spawnflags(flags) = [ + noise1(sound) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." + noise2(sound) : "Deactivate sound" : : "Played when the message fades away." + fade_amt(float) : "Background fade level" : "160" : "Set a custom black level for background fade" + spawnflags(flags) = + [ 1: "Silent" - 2: "No background fade" + 2: "No background fade" ] ] -@PointClass base(Angle, Appearflags, Target, Targetname) size(32 32 32) color(255 128 0) studio({ "path" : mdl, "skin" : skin, "frame" : frame}) = misc_model : "A point entity for displaying models. A frame range can be given to animate the model. - -mdl: The model to display. Can be of type mdl, bsp, or spr. -frame: Single frame to display. Can also be used to offset the animation. -first_frame: The starting frame of the animation. -last_frame: The last frame of the animation. -speed: The frames per second of animation. Divide 1 by the fps for this value (default 0.1). -angles: pitch roll yaw (up/down, angle, tilt left/right) -NOTE: set angle value to 0 if using angles key to rotate mdls" -[ - skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" - mdl(string) : "Model Selection (ex progs/model.mdl)" - frame(integer) - first_frame(integer) - last_frame(integer) - speed(integer) : "1 divided by frames per second (default 0.1)" - angles(integer) : "set 'angle' to 0 if this is used" - mdlsz(integer) : "Entity size (x y z)" +/////////////////////////////////////////////////////////// +//dumptruck's additions via Joshua Skelton's Quake Tools/// +/////////////////////////////////////////////////////////// +@PointClass base(Angles, Appearflags, Target, Targetname) size(32 32 32) color(255 128 0) studio({ "path" : mdl, "skin" : skin, "frame" : frame, "scale" : mdlsz}) = misc_model : "A point entity for displaying models. A frame range can be given to animate the model. 'frame' can also be used to offset the animation." +[ + skin(integer) : "Skin" : 0 : "Skin index (default 0) Use this when your custom model has more than one skin to select" + mdl(studio) : "Model" : : "The model to display. Can be of type MDL, BSP, or SPR." + + frame(integer) : "Single Frame to Display" : : "Single frame to display. Can also be used to offset the animation." + first_frame(integer) : "Start Animation Frame" : : "The starting frame of the animation." + last_frame(integer) : "Last Animation Frame" : : "The last frame of the animation." + speed(float) : "Playback speed (1/FPS)" : "0.1" : "The frames per second of animation. Divide 1 by the fps for this value." + + + mdlsz(string) : "Scale (X Y Z)" centeroffset(integer) : "Model center offset" spawnflags(flags) = [ - 1: "Gravity" : 0 + 1: "Affected by gravity" : 0 2: "Solid" : 0 4: "Back and forth" : 0 8: "Only once" : 0 16: "Play count times" : 0 - 32: "Start Hidden" : 0 + 32: "Start hidden" : 0 ] ] -@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_lavasplash : "When triggered, play the lavasplash effect and sound from E1M7. -You can set the noise key to a custom sound." +/////////////////////////////////////////////////////////////////////// +// dumptrucks's additions: Hipnotic Sound Player via TB2 Quoth2.fgd//// +/////////////////////////////////////////////////////////////////////// + +@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_lavasplash : "When triggered, plays the lavasplash effect and sound from E1M7. You can set the noise key to a custom sound." [ -noise(float) : "Path to custom sound" + noise(sound) : "Path to custom sound" ] -@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_explosion : "When triggered, plays an explosion. - -Causes damage." +@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_explosion : "When triggered, plays an explosion. Causes damage." [ ] @@ -2649,23 +2628,19 @@ Causes damage." [ ] -@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_mflash : "When triggered, plays a brief muzzle flash effect. -" +@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_mflash : "When triggered, plays a brief muzzle flash effect." [ ] -@PointClass base(Targetname, Appearflags, State) size(16 16 24) color(255 128 0) = play_brlight : "When triggered, toggles a bright lighting effect on. Set state 1 to start on. -" +@PointClass base(Targetname, Appearflags, State) size(16 16 24) color(255 128 0) = play_brlight : "When triggered, toggles a bright lighting effect on. Set state 1 to start on." [ ] -@PointClass base(Targetname, Appearflags, State) size(16 16 24) color(255 128 0) = play_dimlight : "When triggered, toggles a lighting effect on. Set state 1 to start on. -" +@PointClass base(Targetname, Appearflags, State) size(16 16 24) color(255 128 0) = play_dimlight : "When triggered, toggles a lighting effect on. Set state 1 to start on." [ ] -@PointClass base(Targetname, Appearflags, State) size(16 16 24) color(255 128 0) = play_bfield : "When triggered, toggles a spherical yellow particle effect. Set state 1 to start on. -" +@PointClass base(Targetname, Appearflags, State) size(16 16 24) color(255 128 0) = play_bfield : "When triggered, toggles a spherical yellow particle effect. Set state 1 to start on." [ ] @@ -2676,300 +2651,223 @@ Causes damage." // [ // // ] -@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_tele : "When triggered, play_tele shows the teleport particle effects and sound. -This is the same effect as tele_fog in earlier versions of progs_dump -Use this when killtargeting an entity if the player can see it happen." -[ +@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_tele : "When triggered, 'play_tele' shows the teleport particle effects and sound. This is the same effect as 'tele_fog' in earlier versions of progs_dump. Use this when 'killtarget'ing an entity if the player can see it happen." [] -] -// FireAmbient has been replaced with ambient_fire for consistency, they work identically in QC -// @PointClass base(Appearflags) size(16 16 24) color(206 18 18) = FireAmbient : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models. " + +// FireAmbient has been deprecated by ambient_fire for consistency, they work identically in QC +// @PointClass base(Appearflags) size(16 16 24) color(206 18 18) = FireAmbient : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models." // [ // // ] -@PointClass base(Appearflags) size(16 16 24) color(206 18 18) = ambient_fire : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models. -This is the same effect as FireAmbient in earlier versions of progs_dump" -[ - -] - -@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 150 35) = play_sound : "Hipnotic sound player -Plays a one off sound on a periodic basis. -Do NOT use looped sounds with this entity. For looped sounds use ambient_general. -volume: how loud (range is 0.1 to 1 default is 1 = full volume) -noise: path of sound to play -wait: random time between sounds (default 20) -delay: minimum delay between sounds (default 2) -impulse: sound channel 0-7 (0 automatic is default) -speed: attenuation factor +//____TW_EDIT____ +@PointClass base(Appearflags) size(16 16 24) color(206 18 18) = ambient_fire : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models. This is the same effect as 'FireAmbient' in the vanilla game." [] -NOTE - Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" +@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 150 35) = play_sound : "Hipnotic sound player\n\nPlays a one off sound on a periodic basis.\nDo NOT use looped sounds with this entity. For looped sounds use ambient_general." +[ + noise(sound) : "Sound file to play" : : "Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + speed(choices) : "Attenuation of sound" : 1 = [ - - noise(string) : "Sound file to play" - speed(choices) : "Attenuation of sound" : 1 = - [ - -1 : "No attenuation (heard everywhere)" - 1 : "Normal" - 2 : "Idle" - 3 : "Static" - ] - volume(integer) : "Volume (0 - 1)" : 1 - impulse(integer) : "Channel (0 - 7) Automatic" : 0 - wait(integer) : "Random time between sounds" : 20 - delay(integer) : "Minimum time between sounds" : 2 + -1 : "No attenuation (heard everywhere)" + 1 : "Normal" + 2 : "Idle" + 3 : "Static" ] -@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 200 35) = play_sound_triggered : "Custom sound trigger - -toggle (spawnflags): stopped when triggered again -looped: check this and the toggle spawnflag to allow triggered, looping sounds to automatically restart after a save / load -volume: how loud (range is 0.1 to 1 default is 1 = full volume) -noise: path of sound to play -impulse: sound channel 0-7 (0 automatic is default) -speed: attenuation factor - -NOTE - Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + volume(integer) : "Volume (0 - 1)" : 1 : "how loud (range is 0.1 to 1 default is 1 = full volume)" + impulse(integer) : "Channel (0 - 7)" : 0 : "0 is automatic" + wait(integer) : "Random time between sounds" : 20 + delay(integer) : "Minimum time between sounds" : 2 +] + +@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 200 35) = play_sound_triggered : "Custom sound trigger" +[ + spawnflags(flags) = [ - spawnflags(flags) = [ - 1 : "Toggle" : 0 - 2 : "Looped" : 0 - ] - noise(string) : "Sound file to play" - speed(choices) : "Attenuation of sound" : 1 = - [ - -1 : "No attenuation (heard everywhere)" - 1 : "Normal" - 2 : "Idle" - 3 : "Static" - ] - volume(integer) : "Volume (0 - 1)" : 1 - impulse(integer) : "Channel (0 - 7) Automatic" : 0 - //wait(integer) : "Wait before retrigger" : 0 //Quoth2 + 1 : "Toggled" : 0 : "stopped when triggered again" + 2 : "Looped" : 0 : "check this and the toggle spawnflag to allow triggered, looping sounds to automatically restart after a save / load" ] - -@PointClass base (Appearflags) size (16 14 24) color (30 225 35) = ambient_general : "Custom Ambient Sound - -Only use looped sounds with this entity. - -NOTE - Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" - + noise(sound) : "Sound file to play" : : "Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + speed(choices) : "Attenuation of sound" : 1 = [ - noise(string) : "Sound file to play" - speed(choices) : "Attenuation of sound" : 1 = - [ - -1 : "No attenuation (heard everywhere)" - 1 : "Normal" - 2 : "Idle" - 3 : "Static" - ] - volume(integer) : "Volume (0 - 1)" : 1 + -1 : "No attenuation (heard everywhere)" + 1 : "Normal" + 2 : "Idle" + 3 : "Static" ] + volume(integer) : "Volume (0 - 1)" : 1 : "how loud (range is 0.1 to 1 default is 1 = full volume)" + impulse(integer) : "Channel (0 - 7)" : 0 : "0 is automatic" + //wait(integer) : "Wait before retrigger" : 0 //Quoth2 +] -@SolidClass base(Appearflags, OneTargetname) = func_fall : "A brush that drops and fades away when touched. Gibs monsters who touch it. Can be targeted by triggers etc. +@PointClass base (Appearflags) size (16 14 24) color (30 225 35) = ambient_general : "Custom Ambient Sound . Only use 'looped' sounds with this entity." -noise = sound to play when triggered -wait = wait this long before falling" [ -noise(string) : "Sound to play when fall starts" -wait(integer) : "Wait this long before falling" -spawnflags(flags) = - [ + noise(sound) : "Sound file to play" : : "Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + speed(choices) : "Attenuation of sound" : 1 = + [ + -1 : "No attenuation (heard everywhere)" + 1 : "Normal" + 2 : "Idle" + 3 : "Static" + ] + volume(integer) : "Volume (0 - 1)" : 1 : "how loud (range is 0.1 to 1 default is 1 = full volume)" +] + +@SolidClass base(Appearflags, OneTargetname) = func_fall : "A brush that drops and fades away when touched. Gibs monsters who touch it. Can be targeted by triggers etc." +[ + noise(sound) : "Sound to play when fall starts" + wait(integer) : "Wait this long before falling" + spawnflags(flags) = + [ 1 : "Don't Fade" : 0 2 : "Silent" : 0 - ] + ] ] -@SolidClass base(Appearflags, OneTargetname, Target) = func_fall2 : "Enhanced version with different behaviors. A brush that drops and fades away when touched. Can be targeted by triggers etc and can target other entities. - -wait = how long until the brush begins falling -noise = the sound to make when touched / activated -noise2 = the sound to make before it's removed, pain_finished of -1 disables noise2 as the object stays forever -cnt = 0 is default behavior, 1 means collisions are disabled while falling, 2 turns the brush into a bouncing entity -pain_finished = default of 0.01, higher value has the object/brush fade out faster thus in turn affecting how long it stays. -1 stays forever -speed = speed as to how fast something falls per game frame, default is 10, higher values mean faster falling. Only for cnt of 1. -Recommended to use lip for max fall speed on cnt 0 and 2 as they follow Quake's default gravity -lip = maximum fall speed that can be achieved, caps 'speed' variable. Default is -800 -avelocity = have it spin when activated using X, Y, Z vector coordinates. cnt 2 ignores avelocity. Use an origin brush for proper spin! - -spawnflags - Default behavior allows anyone to activate func_fall2 on touch ONLY - 1 - Player activated only - 2 - Monster activated only - 8 - break on impact (use style key for textures, see manual for more) - -Able to target other entities, including other func_fall2s" -[ -style(choices) : "Built-in debris style" : 0 = - [ - 0 : "Green Metal (default)" - 1 : "Red Metal" - 2 : "Concrete" - 3 : "Pine wood -- wood1_1" - 4 : "Brown wood -- wizwood1_3" - 5 : "Red wood -- dung01_2" - 6 : "Stained Glass Yellow Flames -- window02_1" - 7 : "Stained Glass Red Rays -- window01_4" - 8 : "Stained Glass Yellow Dragon -- window01_3" - 9 : "Stained Glass Blue Dragon -- window01_2" - 10 : "Stained Glass Red Dragon -- window01_1" - 11 : "Light Copper -- cop2_3" - 12 : "Dark Copper -- cop1_1" - 13 : "Tan Bricks Large -- wiz1_4" - 14 : "Brown Bricks Large -- wbrick1_5" - 15 : "Green Bricks Large -- wswamp2_1" - 16 : "Generic Light Brown -- tlight08" - 17 : "Red Brown Computer -- comp1_5" - 18 : "Grey Black Computer -- comp1_1" - 19 : "Blue Green Metal -- metal4_5" - 20 : "Blue Green Runic Wall -- metal4_4" - 21 : "Brown Metal -- metal2_2" - 22 : "Dark Brown Metal -- metal1_3" - 23 : "Medium Brown Metal -- metal1_2" - 24 : "Blue Metal -- m5_8" - 25 : "Green Stonework -- city8_2" - 26 : "Blue Stonework -- city6_7" - 27 : "Brown Bricks -- city2_8" - 28 : "Tan Blue Bricks -- city2_7" - 29 : "Red Bricks -- city2_1" - 30 : "Blue Bricks -- city2_5" - 31 : "Metal Rivets -- wizmet1_2" - ] -cnt(integer) : "Collision type, 0 is normal, 1 has no collision and 2 will bounce" : 0 -speed(integer) : "use with cnt 1 only, speed as to how fast something falls per game frame, default is 10" -lip(integer) : "use with cnt 0 and 2, maximum fall speed that can be achieved, caps 'speed' variable." : -800 -noise(string) : "the sound to make when touched / activated" : : "the sound to make when touched / activated" -noise2(string) : "the sound to make before it's removed" :: "the sound to make before it's removed" -wait(integer) : "Wait this long before falling" -pain_finished(integer) : "fade out speed, default 0.01 higher numbers fade out faster, -1 stays forever" -avelocity(string) : "spin when activated using X, Y, Z vector coordinates" : : "spin when activated using X, Y, Z vector coordinates. cnt 2 ignores avelocity Use an origin brush for proper spin! -" -spawnflags(flags) = - [ - 1 : "Player Activated only" : 0 - 2 : "Monster Activated only" : 0 - 8 : "Breakable" : 0 - ] +@SolidClass base(Appearflags, OneTargetname, Target) = func_fall2 : "Enhanced version of func_fall with different behaviors. A brush that drops and fades away when touched. Can be targeted by triggers etc and can target other entities. Able to target other entities, including other func_fall2s.\nDefault behavior allows anyone to activate func_fall2 on touch ONLY" +[ + style(choices) : "Built-in debris style" : 0 : "Used if spawnflag 8 set. See manual for more info" = + [ + 0 : "Green Metal (default)" + 1 : "Red Metal" + 2 : "Concrete" + 3 : "Pine wood -- wood1_1" + 4 : "Brown wood -- wizwood1_3" + 5 : "Red wood -- dung01_2" + 6 : "Stained Glass Yellow Flames -- window02_1" + 7 : "Stained Glass Red Rays -- window01_4" + 8 : "Stained Glass Yellow Dragon -- window01_3" + 9 : "Stained Glass Blue Dragon -- window01_2" + 10 : "Stained Glass Red Dragon -- window01_1" + 11 : "Light Copper -- cop2_3" + 12 : "Dark Copper -- cop1_1" + 13 : "Tan Bricks Large -- wiz1_4" + 14 : "Brown Bricks Large -- wbrick1_5" + 15 : "Green Bricks Large -- wswamp2_1" + 16 : "Generic Light Brown -- tlight08" + 17 : "Red Brown Computer -- comp1_5" + 18 : "Grey Black Computer -- comp1_1" + 19 : "Blue Green Metal -- metal4_5" + 20 : "Blue Green Runic Wall -- metal4_4" + 21 : "Brown Metal -- metal2_2" + 22 : "Dark Brown Metal -- metal1_3" + 23 : "Medium Brown Metal -- metal1_2" + 24 : "Blue Metal -- m5_8" + 25 : "Green Stonework -- city8_2" + 26 : "Blue Stonework -- city6_7" + 27 : "Brown Bricks -- city2_8" + 28 : "Tan Blue Bricks -- city2_7" + 29 : "Red Bricks -- city2_1" + 30 : "Blue Bricks -- city2_5" + 31 : "Metal Rivets -- wizmet1_2" + ] + cnt(choices) : "Collision type" : 0 : "0 is default behavior, 1 means collisions are disabled while falling, 2 turns the brush into a bouncing entity" = + [ + 0 : "Normal" + 1 : "Non-solid" + 2 : "Bouncy" + ] + speed(integer) : "Fall speed" : 10 : "use with cnt 1 only, speed as to how fast something falls per game frame. higher values mean faster falling. Recommended to use lip for max fall speed on cnt 0 and 2 as they follow Quake's default gravity." + lip(integer) : "Max fall speed" : -800 : "use with cnt 0 and 2, maximum fall speed that can be achieved, caps 'speed' variable." + noise(sound) : "sound when touched / activated" : : "the sound to make when touched / activated" + noise2(sound) : "sound when removed" : : "the sound to make before it's removed. pain_finished of -1 disables noise2 as the object stays forever" + wait(integer) : "Delay before falling" : : "how long until the brush begins falling" + pain_finished(float) : "Fade out speed" : "0.01" : "Higher value has the object/brush fade out faster thus in turn affecting how long it stays. -1 stays forever" + avelocity(string) : "spin when activated (X Y Z)" : : "spin when activated using X, Y, Z vector coordinates. cnt 2 ignores avelocity. Use an origin brush for proper spin!" + spawnflags(flags) = + [ + 1 : "Player-activated only" : 0 + 2 : "Monster-activated only" : 0 + 8 : "Break on impact" : 0 + ] ] -@SolidClass base(Target, Targetname, Appearflags, ModelLight, Shadow, SwitchShadow) = func_breakable : "Breakable - See manual for full details - -Defaults to built-in .mdl file with 32 styles, cnt is number of pieces of debris to spawn (built-in only) - -Or use spawnflag 4 and break_template1-4 to set path of custom .mdl or .bsp models. - -brk_object_count1-4 sets the number of pieces of each break_template when using custom .mdl or bsp models. - -If noise1 is not set it will default to various sounds in sound/break folder - -Use spawnflag 2 for an explosion, dmg is amount of damage inflicted" [ - spawnflags(flags) = [ - 1 : "No Monster Damage" : 0 : "Only the player can break" - 2 : "Explosion" : 0 : "Produces explosion effect and sound" - 4 : "Use custom mdls or bsp models" : 0 : "Uses models specified in break_template1, 2, etc" - ] - noise1(string) : "Path to custom break sound" - style(choices) : "Built-in debris style" : 0 = - [ - 0 : "Green Metal (default)" - 1 : "Red Metal" - 2 : "Concrete" - 3 : "Pine wood -- wood1_1" - 4 : "Brown wood -- wizwood1_3" - 5 : "Red wood -- dung01_2" - 6 : "Stained Glass Yellow Flames -- window02_1" - 7 : "Stained Glass Red Rays -- window01_4" - 8 : "Stained Glass Yellow Dragon -- window01_3" - 9 : "Stained Glass Blue Dragon -- window01_2" - 10 : "Stained Glass Red Dragon -- window01_1" - 11 : "Light Copper -- cop2_3" - 12 : "Dark Copper -- cop1_1" - 13 : "Tan Bricks Large -- wiz1_4" - 14 : "Brown Bricks Large -- wbrick1_5" - 15 : "Green Bricks Large -- wswamp2_1" - 16 : "Generic Light Brown -- tlight08" - 17 : "Red Brown Computer -- comp1_5" - 18 : "Grey Black Computer -- comp1_1" - 19 : "Blue Green Metal -- metal4_5" - 20 : "Blue Green Runic Wall -- metal4_4" - 21 : "Brown Metal -- metal2_2" - 22 : "Dark Brown Metal -- metal1_3" - 23 : "Medium Brown Metal -- metal1_2" - 24 : "Blue Metal -- m5_8" - 25 : "Green Stonework -- city8_2" - 26 : "Blue Stonework -- city6_7" - 27 : "Brown Bricks -- city2_8" - 28 : "Tan Blue Bricks -- city2_7" - 29 : "Red Bricks -- city2_1" - 30 : "Blue Bricks -- city2_5" - 31 : "Metal Rivets -- wizmet1_2" - ] - cnt(integer) : "Number of pieces of debris to spawn" : 5 - health(integer) : "Health of breakable" : 20 - dmg(integer) : "Amount of Explosive Damage" : 20 - break_template1(string) : "Template 1 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template2(string) : "Template 2 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template3(string) : "Template 3 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template4(string) : "Template 4 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template5(string) : "Template 5 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - brk_obj_count1(integer) : "Template 1 spawn count" - brk_obj_count2(integer) : "Template 2 spawn count" - brk_obj_count3(integer) : "Template 3 spawn count" - brk_obj_count4(integer) : "Template 4 spawn count" - brk_obj_count5(integer) : "Template 5 spawn count" - drop_item(Choices) = - [ - 0 : "(Default) Disabled" - 1 : "Drop a Silver Key upon death" - 2 : "Drop a Gold Key upon death" - 3 : "Drop a Health Vial upon death" - 4 : "Drop an Armor Shard upon death" - 5 : "Drop a Health Vial & Armor Shard" - 6 : "Random combination of 3 Vials and/or Shards" - ] +@SolidClass base(Target, Targetname, Appearflags, ModelLight, Shadow, SwitchShadow) = func_breakable : "Breakable - See manual for full details.\n\nDefaults to built-in .mdl file with 32 styles, cnt is number of pieces of debris to spawn (built-in only)\nOr use spawnflag 4 and break_template1-4 to set path of custom .mdl or .bsp models.\n\nbrk_object_count1-4 sets the number of pieces of each break_template when using custom .mdl or bsp models.\n\nUse spawnflag 2 for an explosion, dmg is amount of damage inflicted" +[ + spawnflags(flags) = + [ + 1 : "No Monster Damage" : 0 : "Only the player can break" + 2 : "Explosion" : 0 : "Produces explosion effect and sound" + 4 : "Use custom mdls or bsp models" : 0 : "Uses models specified in break_template1, 2, etc" + ] + noise1(sound) : "Custom break sound" : : "If not set, it will default to various sounds in sound/break folder" + style(choices) : "Built-in debris style" : 0 = + [ + 0 : "Green Metal (default)" + 1 : "Red Metal" + 2 : "Concrete" + 3 : "Pine wood -- wood1_1" + 4 : "Brown wood -- wizwood1_3" + 5 : "Red wood -- dung01_2" + 6 : "Stained Glass Yellow Flames -- window02_1" + 7 : "Stained Glass Red Rays -- window01_4" + 8 : "Stained Glass Yellow Dragon -- window01_3" + 9 : "Stained Glass Blue Dragon -- window01_2" + 10 : "Stained Glass Red Dragon -- window01_1" + 11 : "Light Copper -- cop2_3" + 12 : "Dark Copper -- cop1_1" + 13 : "Tan Bricks Large -- wiz1_4" + 14 : "Brown Bricks Large -- wbrick1_5" + 15 : "Green Bricks Large -- wswamp2_1" + 16 : "Generic Light Brown -- tlight08" + 17 : "Red Brown Computer -- comp1_5" + 18 : "Grey Black Computer -- comp1_1" + 19 : "Blue Green Metal -- metal4_5" + 20 : "Blue Green Runic Wall -- metal4_4" + 21 : "Brown Metal -- metal2_2" + 22 : "Dark Brown Metal -- metal1_3" + 23 : "Medium Brown Metal -- metal1_2" + 24 : "Blue Metal -- m5_8" + 25 : "Green Stonework -- city8_2" + 26 : "Blue Stonework -- city6_7" + 27 : "Brown Bricks -- city2_8" + 28 : "Tan Blue Bricks -- city2_7" + 29 : "Red Bricks -- city2_1" + 30 : "Blue Bricks -- city2_5" + 31 : "Metal Rivets -- wizmet1_2" + ] + cnt(integer) : "Num. debris to spawn" : 5 + health(integer) : "Health of breakable" : 20 + dmg(integer) : "Amount of Explosive Damage" : 20 + break_template1(string) : "Template 1 model" + break_template2(string) : "Template 2 model" + break_template3(string) : "Template 3 model" + break_template4(string) : "Template 4 model" + break_template5(string) : "Template 5 model" + brk_obj_count1(integer) : "Template 1 spawn count" + brk_obj_count2(integer) : "Template 2 spawn count" + brk_obj_count3(integer) : "Template 3 spawn count" + brk_obj_count4(integer) : "Template 4 spawn count" + brk_obj_count5(integer) : "Template 5 spawn count" + drop_item(choices) = + [ + 0 : "(Default) Disabled" + 1 : "Drop a Silver Key upon death" + 2 : "Drop a Gold Key upon death" + 3 : "Drop a Health Vial upon death" + 4 : "Drop an Armor Shard upon death" + 5 : "Drop a Health Vial & Armor Shard" + 6 : "Random combination of 3 Vials and/or Shards" + ] ] -@PointClass size(16 14 24) color(255 128 0) base(Targetname, Target, Appearflags) = func_counter : "Activation Counter - -TOGGLE causes the counter to switch between an on and off state -each time the counter is triggered. - -LOOP causes the counter to repeat infinitely. The count resets to zero -after reaching the value in count. - -STEP causes the counter to only increment when triggered. Effectively, -this turns the counter into a relay with counting abilities. - -RESET causes the counter to reset to 0 when restarted. - -RANDOM causes the counter to generate random values in the range 1 to count -at the specified interval. - -FINISHCOUNT causes the counter to continue counting until it reaches count -before shutting down even after being set to an off state. -START_ON causes the counter to be on when the level starts. - -count specifies how many times to repeat the event. If LOOP is set, -it specifies how high to count before resetting to zero. Default is 10. - -wait the length of time between each trigger event. Default is 1 second. - -delay how much time to wait before firing after being switched on." +@PointClass size(16 14 24) color(255 128 0) base(Targetname, Target, Appearflags) = func_counter : "Activation Counter" [ spawnflags(flags) = [ - 1 : "toggleable" : 0 - 2 : "Looping" : 1 - 4 : "Step" : 0 - 8 : "Reset" : 0 - 16 : "Random" : 0 - 32 : "Finishcount" : 0 - 64 : "Start On" : 1 + 1 : "Toggled" : 0 : "Causes the counter to switch between an on and off state each time the counter is triggered." + 2 : "Looping" : 1 : "Causes the counter to repeat infinitely. The count resets to zero after reaching the value in count." + 4 : "Step" : 0 : "Causes the counter to only increment when triggered. Effectively, this turns the counter into a relay with counting abilities." + 8 : "Reset" : 0 : "Causes the counter to reset to 0 when restarted." + 16 : "Random" : 0 : "Causes the counter to generate random values in the range 1 to count at the specified interval." + 32 : "Finish counting" : 0 : "Causes the counter to continue counting until it reaches count before shutting down even after being set to an off state." + 64 : "Start On" : 1 : "Causes the counter to be on when the level starts." ] - count(integer) : "Repeat event #" : 10 - wait(string) : "Sec. between each triggering" : "1" - delay(string) : "Delay before first trigger" + count(integer) : "Number of repeats" : 10 : "Specifies how many times to repeat the event. If LOOP is set, it specifies how high to count before resetting to zero." + wait(float) : "Sec. between each triggering" : "1" : "The length of time between each trigger event." + delay(float) : "Delay before first trigger" : : "How much time to wait before firing after being switched on."" ] + @PointClass size(16 14 24) color(255 175 0) base(Targetname, Target, Appearflags) = func_oncount : "Target for func_counter" [ count(integer) : "Repeat event #" : 1 @@ -2981,6 +2879,7 @@ delay how much time to wait before firing after being switched on." // @PointClass size(-4 -4 -4, 4 4 4) base(Targetname, Appearflags) = info_rotate : "Point of rotation" [] + @PointClass size(-8 -8 -8, 8 8 8) base(Targetname, Target, Appearflags) = func_rotate_entity : "Creates rotating entity" [ spawnflags(flags) = @@ -2990,10 +2889,11 @@ delay how much time to wait before firing after being switched on." ] deathtype(string) : "Kill Message" rotate(string) : "Rate of rotation (x y z)" - target(string) : "Center of rotation" + target(target_destination) : "Center of rotation" speed(string) : "Speed (0 to full) time" ] -@PointClass base(Targetname, Target) = path_rotate : "path_rotate" + +@PointClass base(Angles, Targetname, Target) = path_rotate : "path_rotate" [ spawnflags(flags) = [ @@ -3006,19 +2906,19 @@ delay how much time to wait before firing after being switched on." 64 : "Set Damage" : 0 ] rotate(string) : "Rotation (x y z)" - angles(string) : "Angles (x y z)" - noise(string) : "Wait Noise" - noise1(string) : "Move Noise" + noise(sound) : "Wait Noise" + noise1(sound) : "Move Noise" wait(integer) : "Wait Time" event(string) : "Event Target" message(string) : "Event Message" dmg(integer) : "Damage" - speed(integer) : "Move Time(if flaged) or Speed" + speed(integer) : "Move Time(if flagged) or Speed" ] + @PointClass size(-8 -8 -8, 8 8 8) base(Targetname, Target, Appearflags) = func_rotate_train : "Moving platform" [ - noise1(string) : "Train move noise" - noise(string) : "Train stop noise" + noise1(sound) : "Train move noise" + noise(sound) : "Train stop noise" path(string) : "First path_rotate" deathtype(string) : "Kill Message" speed(integer) : "Speed" : 100 @@ -3029,8 +2929,10 @@ delay how much time to wait before firing after being switched on." 1: "Ratchet Metal" ] ] + @SolidClass base(Targetname, Target, Appearflags) = rotate_object : "Object to be rotated"[] -@PointClass size(-8 -8 -8, 8 8 8) base(Targetname, Target, Appearflags) = func_rotate_door : "Create rotating door" + +@PointClass size(-8 -8 -8, 8 8 8) base(Angles, Targetname, Target, Appearflags) = func_rotate_door : "Create rotating door" [ spawnflags(flags) = [ @@ -3038,11 +2940,10 @@ delay how much time to wait before firing after being switched on." ] dmg(integer) : "Damage" : 2 speed(integer) : "Time to rotate" : 10 - angles(string) : "Angles (x y z)" rotate(string) : "Rotate (x y z)" - noise1(string) : "Custom door start noise" - noise2(string) : "Custom door move noise" - noise3(string) : "Custom door stop noise" + noise1(sound) : "Custom door start noise" + noise2(sound) : "Custom door move noise" + noise3(sound) : "Custom door stop noise" sounds(choices) : "Sound" : 1 = [ 0: "None" @@ -3086,148 +2987,21 @@ delay how much time to wait before firing after being switched on." alpha(float) : "Alpha of Laser Effect" : "0.5" message(string) : "Message Upon Activation" message2(string) : "Message Upon Deactivation" - noise(string) : "Sound Upon Activation" - noise1(string) : "Sound Upon Deactivation" + noise(sound) : "Sound Upon Activation" + noise1(sound) : "Sound Upon Deactivation" ] -// -// lights -// - -@BaseClass color(192 192 32) = Light +@SolidClass base(Appearflags, TriggerWait, OneTargetname) = trigger_changemusic : "Trigger that changes the currently playing music track. The number of the track to play goes in sounds just like worldspawn." [ - light(float) : "Light intensity" : "300" - wait(float) : "Scale fade distance" : "1" - delay(choices) : "Attenuation" : 0 = - [ - 0 : "Linear attenuation (default)" - 1 : "1/x attenuation" - 2 : "1/(x^2) attenuation" - 3 : "No attenuation" - 4 : "Local minlight" - 5 : "1/(x^2) attenuation - variation" - ] - _falloff(float) : "Falloff distance" - _color(color) : "Light color" - target(target_destination) : "Spotlight target" - mangle(string) : "Spotlight angle (Yaw Pitch Roll)" : "0 0 0" - angle(float) : "Spotlight angle width" : "40" - _softangle(float) : "Inner spotlight angle width" : "0" - targetname(string) : "Targetname for a switchable light" - style(choices) : "Animated light style" : 0 = - [ - 0 : "Normal" - 1 : "Flicker A" - 2 : "Slow, strong pulse" - 3 : "Candle A" - 4 : "Fast strobe" - 6 : "Flicker B" - 5 : "Gentle pulse" - 7 : "Candle B" - 8 : "Candle C" - 9 : "Slow strobe" - 10: "Fluorescent flicker" - 11: "Slow pulse, noblack" - 12: "Blink on/off" - ] - style2(choices) : "Switchable light animated style" : 0 = - [ - 0 : "Normal" - 1 : "Flicker A" - 2 : "Slow, strong pulse" - 3 : "Candle A" - 4 : "Fast strobe" - 6 : "Flicker B" - 5 : "Gentle pulse" - 7 : "Candle B" - 8 : "Candle C" - 9 : "Slow strobe" - 10: "Fluorescent flicker" - 11: "Slow pulse, noblack" - 12: "Blink on/off" - ] - _anglescale(float) : "Light angle scale" : "0.5" - _dirt(choices) : "Light dirtmapping" : 0 = - [ - -1 : "Disable dirtmapping" - 0 : "Inherit from worldspawn _dirt" - 1 : "Dirtmapping enabled" - ] - _dirtscale(float) : "Light dirtmapping scale" : "1" - _dirtgain(float) : "Light dirtmapping gain" : "1" - _deviance(float) : "Light sphere radius" : "0" - _samples(float) : "Light sphere samples" : "16" - _surface(string) : "Surface light texturename" - _surface_offset(float) : "Surface light offset" : "2" - _surface_spotlight(choices) : "Surface light spotlight" : 0 = - [ - 0 : "Not a spotlight" - 1 : "Spotlight" - ] - _project_texture(string) : "Project texturename" - _project_mangle(string) : "Project texture angle (yaw pitch roll)" : "0 0 0" - _project_fov(float) : "Project texture fov" : "90" - _bouncescale(float) : "Bounce lighting scale" : "1" - _sun(float) : "Turn light into a sunlight" : "0" + sounds(integer) : "Track Number" : : "CD track or number of audio file to play from within music folder" ] -@BaseClass base(Light, Appearflags) = ToggleLight +//_____TRIGGER CD TRACK_____ +@PointClass base(Appearflags, Targetname) size(-8 -8 -8, 8 8 8) color(200 128 0) = trigger_cdtrack : "Trigger that changes the currently playing music track. The number of the track to play goes in the count key." [ - spawnflags(Flags) = - [ - 1 : "Start off" - 2 : "Fade in/out" - ] + sounds(integer) : "Track Number" : : "CD track or number of audio file to play from within music folder" ] -@PointClass base(ToggleLight) = light : "Invisible lightsource (can fade up / down if not styled)" [] -@PointClass base(ToggleLight) = light_fluoro : "Invisible lightsource, with fluorescent hum" [] -@PointClass base(ToggleLight) = light_fluorospark : "Invisible lightsource, with broken sparking fluorescent sound" [] -@PointClass base(Light, Appearflags) model({ "path": "progs/s_light.spr" }) = light_globe : "Globe sprite light" [] -@PointClass base(Light, Appearflags) size(-8 -8 0, 8 8 76) = light_sprite_flame : "Large animated flame" [] - -@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = - light_flame_large_yellow : "Large yellow flame" - [ - // spawnflags(Flags) = [ 1 : "Start off" : 0 ] - ] -@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/candle.mdl" }) = //dumptruck_ds - light_candle : "Candle" - [ - // spawnflags(Flags) = [ 1 : "Start off" : 0 ] - ] -@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = - light_flame_small_yellow : "Small yellow flame" - [ - // spawnflags(Flags) = [ 1 : "Start off" : 0 ] - ] -@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname) model({ "path": ":progs/flame2.mdl" }) = - light_flame_small_white : "Small white flame" - [ - // spawnflags(Flags) = [ 1 : "Start off" : 0 ] - ] - -@PointClass size(-4 -4 -12, 4 4 20) base(Appearflags, Light, Target, Targetname, CustomMdlsSkin) - model( - {{ - mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/flame.mdl" , "skin" : skin} - }}) = - light_torch_small_walltorch : "Small walltorch" - [ - spawnflags(Flags) = - [ - 4 : "Silent" - ] - ] - -@SolidClass base(Appearflags, TriggerWait, OneTargetname) = trigger_changemusic : "Trigger that changes the currently playing music track. The number of the track to play goes in sounds just like worldspawn." -[ -sounds(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to play from within music folder" -] -//_____TRIGGER CD TRACK_____ -@PointClass base(Appearflags, Targetname) size(-8 -8 -8, 8 8 8) color(200 128 0) = trigger_cdtrack : "Trigger that changes the currently playing music track. The number of the track to play goes in the count key." [ - count(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to play from within music folder" -] @SolidClass base(Appearflags, Trigger, Target, TriggerWait) = trigger_look : "Trigger: Trigger something when a player enters this volume and looks directly at a targeted brush entity. Use the first target key for the looked at item and subsequent targets to trigger events. Add a wait key to make this a trigger_multiple" [ speed(integer) : "Distance from player to search for trigger, adjust if the target is too far from the trigger" : 500 @@ -3240,105 +3014,15 @@ sounds(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to pla 3 : "Large switch" 4 : "Custom sound, requires a path set in noise1 key" ] - noise1(string) : "Path to custom sound. Use with sounds key set to 4" -] -//item-backpack -@PointClass base(Appearflags, OneTargetname, Effects) size(-16 -16 0, 16 16 56) color(80 0 200) model( - {{ - mdl_body -> {"path" : mdl_body, "skin" : skin}, {"path": "progs/pd_bpack.mdl" , "skin" : skin} - }} -) = item_backpack -:"Placeable backpack - -An ammo type spawnflag must be set for this to appear in a map. -The ALL_AMMO spawnflag gives roughly half the ammo from the 4 standard pickups: - -10 Shells -12 Nails -2 Rockets -3 Cells - -Or you can use the spawnflags to mix and match types. -Override the spawnflags defaults by adding custom amounts to: - -ammo_shells -ammo_nails -ammo_rockets -ammo_cells - -Make sure and select both matching spawnflag and ammo_ type. -Can trigger spawn and suspend in air, but not respawn. - -You can set a skin index if you are using a custom model with skins. - -The default pickup message is `You got a backpack.` But you can -set a custom message with the netname key. 'You got' will be the prefix -and the mapper chooses the rest of the message. - -e.g. For 'You got a bunch of rockets!' the netname value would be -'a bunch of rockets!'" -[ -skin(Choices) : "Backpack Skin" : 0 = - [ - 0 : "Default" - 1 : "Shells" - 2 : "Nails" - 3 : "Rockets" - 4 : "Cells" - 5 : "Red" - 6 : "Rust" - 7 : "Blue" - 8 : "Green" - 9 : "Purple" - 10 : "Cream" - 11 : "Gray" - 12 : "Orignal Vanilla skin" - ] -ammo_shells(integer) : "Custom amount of shells" : 0 -ammo_nails(integer) : "Custom amount of nails" : 0 -ammo_rockets(integer) : "Custom amount of rockets" : 0 -ammo_cells(integer) : "Custom amount of cells" : 0 -netname(string) : "Custom text for ammo pickups" -snd_misc(string) : "Path to custom pickup sound" -mdl_body(string) : "Path to custom body model" -spawnflags(flags) = - [ - 1 : "All Ammo" : 0 - 2 : "Shells" : 0 - 4 : "Nails" : 0 - 8 : "Rockets" : 0 - 16 : "Cells" : 0 - 32 : "Spawn Silently" : 0 - 64 : "Trigger spawned" : 0 - 128 : "Suspended in air" : 0 - ] - // [ - // 1 : "Shells" : 0 - // 2 : "Nails" : 0 - // 4 : "Rockets" : 0 - // 8 : "Cells" : 0 - // 32 : "Spawn Silently" : 0 - // 64 : "Trigger spawned" : 0 - // 128 : "Suspended in air" : 0 - // ] + noise1(sound) : "Path to custom sound. Use with sounds key set to 4" ] -@SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_heal : "Trigger: Heal -Any object touching this will be healed -heal_amount -- the amount to heal each time (default 5) -wait -- the time between each healing (default 1) -health_max -- the upper limit for the healing (default 100, max 250) -noise -- path to custom sound file -message -- message to print on heal -count -- maximum heal before exhausted -speed -- amount to recharge at a time -delay -- time before recharging -message2 -- message to print when exhausted" +@SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_heal : "Trigger: Heal Any object touching this will be healed" [ - wait(integer) : "Time between each healing (default 1)" : 1 + wait(float) : "Time between each healing" : 1 heal_amount(integer) : "Healing per second" : 5 health_max(integer) : "Maximum heath given" : 100 : "The upper limit for healing (default 100, max 250)" - noise(string) : "Path to custom healing sound." + noise(sound) : "Custom healing sound." message(string) : "Message to print on heal" count(integer) : "Maximum to heal before exhausted" speed(integer) : "Amount to recharge at a time" @@ -3351,75 +3035,48 @@ message2 -- message to print when exhausted" 4 : "Monsters only" : 0 : "Will not heal players." ] ] + //////////////////////////////////////////////////////////////////////////////////////////// ///////////// CUTSCENE ENTITIES //////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// -@SolidClass color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera : -"A player touching this will be transported to the corresponding " + -"info_movie_camera entity. You must set the target field, and put an " + -"info_movie_camera with a targetname field that matches. At least one script is required, however it can have a blank message. The script " + -"key gives a starting script number, and the script_delay key is the " + -"amount of time(seconds) to stay on the first script page. - -If the trigger_camera has a targetname, it will only enter camera mode after it has been fired." -[ -focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." -script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" -script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overidden by the info_script script_delay but is still required. Set this to 1." -] - -@PointClass size(-8 -8 -8, 8 8 8) color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera_point : -"Point entity version of trigger_camera, when targeted will behave the same as the brush-based version. " + -"info_movie_camera entity. You must set the target field, and put an " + -"info_movie_camera with a targetname field that matches. At least one script is required, however it can have a blank message. The script " + -"key gives a starting script number, and the script_delay key is the " + -"amount of time(seconds) to stay on the first script page. - -A trigger_camera_point requires a targetname unlike the brush-based version." -[ -focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." -script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" -script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overidden by the info_script script_delay but is still required." -] -@PointClass size(-8 -8 -8, 8 8 32) color(21 59 194) base(OneTargetname, Appearflags) = info_movie_camera : -"This is the destination marker for a camera. It should have a targetname " + -"field with the same value as a camera-trigger's target field. The focal_point is the name of info_focal_point to focus on. Set delay to 1 to "+ -"ignore the focal_point when moving the camera. Setting the speed key on an info_movie_camera controls the rate of travel TO THAT CAMERA from another camera position. "+ -"The target key names the next info_movie_camera in a sequence." -[ -delay(integer) : "Don't track focal_point when animated" : 0 : "When camera moves, don't track the focal_point, keep existing view angle." -focal_point(string) : "info_focal_point to face (REQUIRED)" : : "Name of info_focal_point to face" -speed(integer) : "Speed of travel to the info_movie_camera if in a sequence" : 0 :"Rate of travel to an info_movie_camera if part of a sequence" -target(string) : "Next info_movie_camera if part of a sequence" -wait(integer) : "Wait at this point (seconds) if animated" : 0 : "Wait in seconds before moving to next info_movie_camera if part of a sequence" -] -@PointClass size(-8 -8 -8, 8 8 16) color(27 45 247) base(Appearflags, OneTargetname) = info_focal_point : -"This is the point that the camera will face. It should have a targetname "+ -"field with the same value as a camera-trigger's focal_point field." -[] -@PointClass size(-8 -8 -8, 8 8 16) color(115 142 240) base(Appearflags) = info_script : -"This is the destination marker for a script." + -"It should have a script_num field that signifies the script number, and "+ -"a next_script to signal the next script (0 if this is the last page of "+ -"the script), a script_delay to signify how many seconds to display this "+ -"page, and of course a message field with the text to display. " -[ -message(string) : "Text of script" -script_num(integer) : "Number of script (REQUIRED)" : 0 : "Number of script matching the script key in trigger_camera" -script_delay(integer) : "Seconds on this page (REQUIRED)" : 0 : "How many seconds on this page " -next_script(integer) : "Next script in sequence (REQUIRED)" : 0 : "The next script (0 if this is the last page)" -target(target_destination) : "Target" -target2(target_destination) : "Target2" -target3(target_destination) : "Target3" -target4(target_destination) : "Target4" -] -@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = info_script_sound : -"A sound player targeted by info_script. You only need this if you want a sound to play when text is "+ -"printed on the screen. You can use one for multiple info scripts. You can also trigger custom dialogue tracks with this entity. " -[ -noise1(string) : "Path to custom sound file. Requires sounds key set to 4" -sounds(choices) : "Sound style" : 0 = +@SolidClass color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera : "A player touching this will be transported to the corresponding info_movie_camera entity. You must set the target field, and put an info_movie_camera with a targetname field that matches. At least one script is required, however it can have a blank message. The script key gives a starting script number, and the script_delay key is the amount of time(seconds) to stay on the first script page.\n\nIf the trigger_camera has a targetname, it will only enter camera mode after it has been fired." +[ + focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." + script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" + script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overidden by the info_script script_delay but is still required. Set this to 1." +] + +@PointClass size(-8 -8 -8, 8 8 8) color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera_point : "Point entity version of trigger_camera, when targeted will behave the same as the brush-based version. info_movie_camera entity. You must set the target field, and put an info_movie_camera with a targetname field that matches. At least one script is required, however it can have a blank message. The script key gives a starting script number, and the script_delay key is the amount of time(seconds) to stay on the first script page.\n\nA trigger_camera_point requires a targetname unlike the brush-based version." +[ + focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." + script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" + script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overridden by the info_script script_delay but is still required." +] + +@PointClass size(-8 -8 -8, 8 8 32) color(21 59 194) base(OneTargetname, Appearflags) = info_movie_camera : "This is the destination marker for a camera. It should have a targetname field with the same value as a camera-trigger's target field. The focal_point is the name of info_focal_point to focus on. Set delay to 1 to ignore the focal_point when moving the camera. Setting the speed key on an info_movie_camera controls the rate of travel TO THAT CAMERA from another camera position. The target key names the next info_movie_camera in a sequence." +[ + delay(integer) : "Don't track focal_point when animated" : 0 : "When camera moves, don't track the focal_point, keep existing view angle." + focal_point(target_destination) : "info_focal_point to face (REQUIRED)" : : "Name of info_focal_point to face" + speed(integer) : "Speed of travel to the info_movie_camera if in a sequence" : 0 :"Rate of travel to an info_movie_camera if part of a sequence" + target(target_destination) : "Next info_movie_camera if part of a sequence" + wait(integer) : "Wait at this point (seconds) if animated" : 0 : "Wait in seconds before moving to next info_movie_camera if part of a sequence" +] + +@PointClass size(-8 -8 -8, 8 8 16) color(27 45 247) base(Appearflags, OneTargetname) = info_focal_point : "This is the point that the camera will face. It should have a targetname field with the same value as a camera-trigger's focal_point field." [] + +@PointClass size(-8 -8 -8, 8 8 16) color(115 142 240) base(Appearflags, Target) = info_script : "This is the destination marker for a script. It should have a script_num field that signifies the script number, and "+ +"a next_script to signal the next script (0 if this is the last page of the script), a script_delay to signify how many seconds to display this page, and of course a message field with the text to display. " +[ + message(string) : "Text of script" + script_num(integer) : "Number of script (REQUIRED)" : 0 : "Number of script matching the script key in trigger_camera" + script_delay(integer) : "Seconds on this page (REQUIRED)" : 0 : "How many seconds on this page " + next_script(integer) : "Next script in sequence (REQUIRED)" : 0 : "The next script (0 if this is the last page)" +] + +@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = info_script_sound : "A sound player targeted by info_script. You only need this if you want a sound to play when text is printed on the screen. You can use one for multiple info scripts. You can also trigger custom dialogue tracks with this entity. " +[ + sounds(choices) : "Sound style" : 0 = [ // 0 : "None (Default)" not needed as scripts are silent by default 1 : "Secret sound" @@ -3427,21 +3084,24 @@ sounds(choices) : "Sound style" : 0 = 3 : "Large switch" 4 : "Custom sound set in noise1 key" ] + noise1(sound) : "Custom sound" : : "Path to custom sound file. Requires sounds key set to 4" ] + ////////////////////// // end dumptruck_ds // // start Kex lights // ////////////////////// -@BaseClass size(-8 -8 -8, 8 8 8) color(255 128 0) base(Target) = KexDynamicLight : "Dynamic KEX light" [ - _shadowlight(integer) : "If set to 1, the engine will spawn a per-pixel light that cast shadows from the entity's origin when the level is loaded" : 0 - _shadowlightintensity(float) : "Intensity scalar for the light." : "1.0" - _shadowlightcull(choices) : "Enable culling when shadow mapping the affected geometry." : "0" = +@BaseClass size(-8 -8 -8, 8 8 8) color(255 128 0) base(Target) = KexDynamicLight : "Dynamic KEX light" +[ + _shadowlight(integer) : "Cast shadows" : 0 : "If set to 1, the engine will spawn a per-pixel light that cast shadows from the entity's origin when the level is loaded" + _shadowlightintensity(float) : "Intensity scale" : "1.0" : "Intensity scalar for the light." + _shadowlightcull(choices) : "Culling" : 0 : "Enable culling when shadow mapping the affected geometry." = [ 0 : "No culling" 1 : "Front culling" 2 : "Back culling" ] - _shadowlightresolution(choices) : "Override a shadow map resolution. Engine will automatically round the value into powers of 2. If value is 0, then the engine will determine the resolution based on the light's radius. Recommended that you keep the resolution below 2048 in order for other shadow maps to fit on the main shadow texture atlas (which is defined as 8192x8192)" : "0" = + _shadowlightresolution(choices) : "Shadow map resolution" : "0" : "Override a shadow map resolution. Engine will automatically round the value into powers of 2. If value is 0, then the engine will determine the resolution based on the light's radius. Recommended that you keep the resolution below 2048 in order for other shadow maps to fit on the main shadow texture atlas (which is defined as 8192x8192)" = [ 64 : "64" 128 : "128" @@ -3450,10 +3110,11 @@ sounds(choices) : "Sound style" : 0 = 1024 : "1024" 2048 : "2048" ] - _shadowlightradius(float) : "Sets the radius." : "300" - _color(color) : "Light color" : "1.0 1.0 1.0" - _shadowlightconeangle(float) : "Sets the outer cone angle if this light is a spot light." : "45" - _shadowlightstyle(choices) : "Appearance" : "0" = [ + _shadowlightradius(float) : "Radius" : "300" + _color(color1) : "Light color" : "1.0 1.0 1.0" + _shadowlightconeangle(float) : "Light cone angle" : "45" : "Sets the outer cone angle if this light is a spot light." + _shadowlightstyle(choices) : "Lightstyle" : 0 = + [ 0 : "Normal" 10: "Fluorescent flicker" 2 : "Slow, strong pulse" @@ -3468,11 +3129,12 @@ sounds(choices) : "Sound style" : 0 = 9 : "Slow strobe" // New styles below here ] - _shadowlightstartfadedistance(float) : "The distance in world units (from player's view position) in which fading begins" : "0" - _shadowlightendfadedistance(float) : "The distance in world units (from player's view position) in which the light is fully faded out and not rendered" : "0" + _shadowlightstartfadedistance(float) : "Shadow start fade distance" : : "The distance in world units (from player's view position) in which fading begins" + _shadowlightendfadedistance(float) "Shadow end fade distance" : : "The distance in world units (from player's view position) in which the light is fully faded out and not rendered" ] + @PointClass base(KexDynamicLight) = dynamiclight : "Dynamic KEX light" [ spawnflags(Flags) = @@ -3481,23 +3143,20 @@ sounds(choices) : "Sound style" : 0 = ] ] -@PointClass base(Appearflags, Targetname) = trigger_remove : "Any object touching this will be removed from the game. Use with caution." -[ - -] -@SolidClass base(Angle, Appearflags, Targetname, Target) = func_slider : "Brush that slides along an axis +@PointClass base(Appearflags, Targetname) = trigger_remove : "Any object touching this will be removed from the game. Use with caution." [] -Requires an origin brush to be part of the entity. Create an info_notnull and align it where you want the origin brush to end up." +@SolidClass base(Angle, Appearflags, Targetname, Target) = func_slider : "Brush that slides along an axis.\nRequires an origin brush to be part of the entity. Create an info_notnull and align it where you want the origin brush to end up." [ speed(integer) : "Speed" : 40 dmg(float) : "Base damage to apply" - style(choices) : "Damage type: grow increases exponentially, crush continually applies, const applies with pauses between" : "0" = [ - 0 : "grow" - 1 : "const" - 2 : "crush" + style(choices) : "Damage type" : 0 = [ + 0 : "Grow (increases exponentially)" + 1 : "Constant (applies with pauses between)" + 2 : "Crush (continually applies)" ] - target(string) : "Reference point for movement" - sounds(choices) : "Sound set" = [ + target(target_destination) : "Movement target" : : "Reference point for movement" + sounds(choices) : "Sound set" = + [ 1: "Stone door" 2: "Machine door" 3: "Chain door" @@ -3509,17 +3168,16 @@ Requires an origin brush to be part of the entity. Create an info_notnull and al 9: "Chain plat" 10: "Train ratchet" ] - noise1(string) : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" - noise2(string) : "Sound file for the 'move' sound (if set, overrides 'sounds')" + noise2(sound) : "Sound when moving" : : "Sound file for the 'move' sound (if set, overrides 'sounds')" + noise1(sound) : "Sound when stopping" : : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" spawnflags(flags) = [ 1 : "Solid" : 0 ] ] -@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = trigger_slider : -"Activates a slider to move a certain distance." +@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = trigger_slider : "Activates a slider to move a certain distance." [ - target(string) : "Slider to target" - distance(float) : "Distance from the slider's target. 0 is initial position, 1 is directly on the target." -] \ No newline at end of file + target(target_destination) : "Slider to target" + distance(float) : "Distance from target" : : "Distance from the slider's target. 0 is initial position, 1 is directly on the target." +] diff --git a/fgd_def/pd_300_JACK.fgd b/fgd_def/pd_300_JACK.fgd index 1fd72cb..47b0e0c 100644 --- a/fgd_def/pd_300_JACK.fgd +++ b/fgd_def/pd_300_JACK.fgd @@ -3,17 +3,43 @@ // for Jackhammer 1.0 and above // // written by autolycus / autolycus@planetquake.com +// Modified by CZG : grawert@online.no : http://www.planetquake.com/greyvoid/ // modified by XaeroX / support@hlfx.ru -// +// further modified by various authors + +//for reference: +//name(string) : "User-friendly name" : "Default" : "Description" +//name(integer) : "User-friendly name" : 1 : "Description" +//name(float) : "User-friendly name" : "1.5" : "Description" +//name(studio) : "User-friendly name" : "progs/armor.mdl" : "Description" +//name(sprite) : "User-friendly name" : "progs/s_light.spr" : "Description" +//name(sound) : "User-friendly name" : "ambience/thunder1.wav" : "Description" +//Jack also adds: +//name(sky) : "User-friendly name" : "sky_city" : "Description" +//name(shader) : "User-friendly name" : "WINDOW02_1" : "Description" +// Do NOT put default values if they are not expected; they are auto-filled by the map editor upon creating an entity! + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Modified by dumptruck_ds and iw 2018/27/4 - 2020/12/4 // Unlike TB FGDs "model" must instead be "studio" using this format: // @PointClass base(Monster) size(-16 -16 -24, 16 16 40) studio("progs/soldier.mdl") = monster_army : "Grunt" [] +// +// Default skin and animation frame can be set like so: +// @PointClass base(Monster) size(-16 -16 -24, 16 16 40) studio("progs/soldier.mdl") skin(2) sequence(7) = monster_army : "Grunt" [] +// +// Keep empty to define via KVs. Sprites must use sprite() instead. +// +// For converting to NRC, Ctrl+F for "NRC NOTE". ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// +// worldspawn +// + @SolidClass = worldspawn : "World entity" [ message(string) : "Level name" + style(integer) : "Set to 1 to override default BSP ammo with Copper MDLs" worldtype(choices) : "Ambience" : 0 = [ 0 : "Medieval" @@ -21,64 +47,75 @@ 2 : "Present (base)" ] sounds(integer) : "Music track to play" : 0 - light(integer) : "Ambient light" : 0 : "Set a global minimum light level of 'n' across the whole map. This is an easy way to eliminate completely dark areas of the level, however you may lose some contrast as a result, so use with care. Default 0" + light(integer) : "Ambient light" : : "Set a global minimum light level of 'n' across the whole map. This is an easy way to eliminate completely dark areas of the level, however you may lose some contrast as a result, so use with care. Default 0" reset_items(choices) : "Reset the player's inventory on spawn" : 0 = [ 0 : "Don't reset the player's inventory" 1 : "Reset to shotgun, axe, and 25 shells" 2 : "Reset to axe only" ] - _sunlight(integer) : "Sunlight" : 0 : "Set the brightness of the sunlight coming from an unseen sun in the sky. Sky brushes (or more accurately bsp leafs with sky contents) will emit sunlight at an angle specified by the _sun_mangle key. Default 0" - _sun_mangle(string) : "Sun mangle (Yaw pitch roll)" : "0 -90 0" : "Specifies the direction of sunlight using yaw(x), pitch(y) and roll(z) in degrees. Yaw specifies the angle around the Z-axis from 0 to 359 degrees and pitch specifies the angle from 90 (straight up) to -90 (straight down). Roll has no effect, so use any value (e.g. 0). Default is straight down (0 -90 0)" - _sunlight_penumbra(integer) : "Sunlight penumbra in degrees" : 0 : "Specifies the penumbra width, in degrees, of sunlight. Useful values are 3-4 for a gentle soft edge, or 10-20+ for more diffuse sunlight. Default is 0" - _sunlight_color(color255) : "Sunlight color R G B" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the colour of the sunlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted). Default is white light (255 255 255)" - _sunlight2(integer) : "Sunlight 2 brightness" : 0 : "Set the brightness of a large dome of lights positioned around the map (16K unit radius). Useful for simulating higly diffused light (e.g. cloudy skies) in outdoor areas. Default 0" - _sunlight2_color(color255) : "Sunlight 2 color R G B" : "255 255 255" : "Specifies the colour of _sunlight2, same format as _sunlight_color. Default is white light (255 255 255)" - _sunlight3(integer) : "Sunlight 3 brightness" : 0 : "Same as _sunlight2 but creates lights on the bottom hemisphere. Default 0" - _sunlight3_color(color255) : "Sunlight 3 color R G B" : "255 255 255" : "Specifies the colour of _sunlight3, same format as _sunlight_color. Default is white light (255 255 255)" - _dist(integer) : "Global light scale" : 1 : "Scales the fade distance of all lights by a factor of n. If n is more than 1 lights fade more quickly with distance and if n is less than 1, lights fade more slowly with distance and light reaches further" - _range(float) : "Global light range" : "0.5" : "Scales the brightness range of all lights without affecting their fade discance. Values of n more than 0.5 makes lights brighter and n less than 0.5 makes lights less bright. The same effect can be achieved on individual lights by adjusting both the 'light' and 'wait' attributes" - _anglescale(float) : "Light angle scale" : "0.5" : "Sets a scaling factor for how much influence the angle of incidence of sunlight on a surface has on the brightness of the surface. n must be between 0.0 and 1.0. Smaller values mean less attenuation, with zero meaning that angle of incidence has no effect at all on the brightness. Default 0.5" - _dirt(integer) : "Dirt mapping (AO)" : -1 : "1 enables dirtmapping (ambient occlusion) on all lights, borrowed from q3map2. This adds shadows to corners and crevices. You can override the global setting for specific lights with the _dirt light entity key or _sunlight_dirt, _sunlight2_dirt, and _minlight_dirt worldspawn keys. Default is no dirtmapping (-1)" - _sunlight_dirt(integer) : "Sunlight dirt" : -1 : "1 enables dirtmapping (ambient occlusion) on sunlight, -1 to disable (making it illuminate the dirtmapping shadows). Default is to use the value of '_dirt'" - _sunlight2_dirt(integer) : "Sublight 2 dirt" : -1 : "1 enables dirtmapping (ambient occlusion) on sunlight2, -1 to disable. Default is to use the value of '_dirt'" - _minlight_dirt(integer) : "Minlight dirt" : -1 : "1 enables dirtmapping (ambient occlusion) on minlight, -1 to disable. Default is to use the value of '_dirt'" - _dirtmode(integer) : "Dirt mode" : 0 : "Choose between ordered (0, default) and randomized (1) dirtmapping." - _dirtdepth(integer) : "Dirt depth" : 128 : "Maximum depth of occlusion checking for dirtmapping, default 128." - _dirtscale(integer) : "Dirt scale" : 1 : "Scale factor used in dirt calculations, default 1. Lower values (e.g. 0.5) make the dirt fainter, 2.0 would create much darker shadows" - _dirtgain(integer) : "Dirt gain" : 1 : "Exponent used in dirt calculation, default 1. Lower values (e.g. 0.5) make the shadows darker and stretch further away from corners" - _gamma(integer) : "Lightmap gamma" : 1 : "Adjust brightness of final lightmap. Default 1, >1 is brighter, <1 is darker" - fog(string) : "Fog Command" : : "ENGINE only 'console command' for setting fog parameters, Density/R/G/B example = (0.05 0.3 0.3 0.3)." - fog_density(string) : "Fog Density example = (0.05)" - fog_color(string) : "Fog Color R/G/B example = (0.3 0.3 0.3)" - sky(string) : "Sky Texture" : : "Must have compatible skybox textures in gfx/env folder." - skyfog_density(float) : "Skyfog Density" : "0.5" : "How much fog is applied to skybrushes (def 0.5). Set to -1 to disable." + _bounce(integer) : "Bounce lights" : : "1 enables bounce lighting, disabled by default. In 2.0-alpha3 and newer, set higher than 1 for multiple bounces." + _bouncestyled(integer) : "Bounce styled lights" : : "1 makes styled lights bounce (e.g. flickering or switchable lights), default is 0, they do not bounce." + _sunlight(integer) : "Sunlight" : : "Set the brightness of the sunlight coming from an unseen sun in the sky. Sky brushes (or more accurately bsp leafs with sky contents) will emit sunlight at an angle specified by the _sun_mangle key. Default 0" + _sun_mangle(string) : "Sun mangle (Yaw pitch roll)" : : "Specifies the direction of sunlight using yaw(x), pitch(y) and roll(z) in degrees. Yaw specifies the angle around the Z-axis from 0 to 359 degrees and pitch specifies the angle from 90 (straight up) to -90 (straight down). Roll has no effect, so use any value (e.g. 0). Default is straight down (0 -90 0)" + _sunlight_penumbra(integer) : "Sunlight penumbra in degrees" : : "Specifies the penumbra width, in degrees, of sunlight. Useful values are 3-4 for a gentle soft edge, or 10-20+ for more diffuse sunlight. Default is 0" + _sunlight_color(color255) : "Sunlight color R G B" : : "Specify red(r), green(g) and blue(b) components for the colour of the sunlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted). Default is white light (255 255 255)" + _sunlight2(integer) : "Sunlight 2 brightness" : : "Set the brightness of a large dome of lights positioned around the map (16K unit radius). Useful for simulating higly diffused light (e.g. cloudy skies) in outdoor areas. Default 0" + _sunlight2_color(color255) : "Sunlight 2 color R G B" : : "Specifies the colour of _sunlight2, same format as _sunlight_color. Default is white light (255 255 255)" + _sunlight3(integer) : "Sunlight 3 brightness" : : "Same as _sunlight2 but creates lights on the bottom hemisphere. Default 0" + _sunlight3_color(color255) : "Sunlight 3 color R G B" : : "Specifies the colour of _sunlight3, same format as _sunlight_color. Default is white light (255 255 255)" + _dist(integer) : "Global light scale" : : "Scales the fade distance of all lights by a factor of n. If n is more than 1 lights fade more quickly with distance and if n is less than 1, lights fade more slowly with distance and light reaches further" + _range(float) : "Global light range" : : "Scales the brightness range of all lights without affecting their fade discance. Values of n more than 0.5 makes lights brighter and n less than 0.5 makes lights less bright. The same effect can be achieved on individual lights by adjusting both the 'light' and 'wait' attributes" + _anglescale(float) : "Light angle scale" : : "Sets a scaling factor for how much influence the angle of incidence of sunlight on a surface has on the brightness of the surface. n must be between 0.0 and 1.0. Smaller values mean less attenuation, with zero meaning that angle of incidence has no effect at all on the brightness. Default 0.5" + _dirt(integer) : "Dirt mapping (AO)" : : "1 enables dirtmapping (ambient occlusion) on all lights, borrowed from q3map2. This adds shadows to corners and crevices. You can override the global setting for specific lights with the _dirt light entity key or _sunlight_dirt, _sunlight2_dirt, and _minlight_dirt worldspawn keys. Default is no dirtmapping (-1)" + _sunlight_dirt(integer) : "Sunlight dirt" : : "1 enables dirtmapping (ambient occlusion) on sunlight, -1 to disable (making it illuminate the dirtmapping shadows). Default is to use the value of '_dirt'" + _sunlight2_dirt(integer) : "Sublight 2 dirt" : : "1 enables dirtmapping (ambient occlusion) on sunlight2, -1 to disable. Default is to use the value of '_dirt'" + _minlight_dirt(integer) : "Minlight dirt" : : "1 enables dirtmapping (ambient occlusion) on minlight, -1 to disable. Default is to use the value of '_dirt'" + _dirtmode(integer) : "Dirt mode" : : "Choose between ordered (0, default) and randomized (1) dirtmapping." + _dirtdepth(integer) : "Dirt depth" : : "Maximum depth of occlusion checking for dirtmapping, default 128." + _dirtscale(float) : "Dirt scale" : : "Scale factor used in dirt calculations, default 1. Lower values (e.g. 0.5) make the dirt fainter, 2.0 would create much darker shadows" + _dirtgain(float) : "Dirt gain" : : "Exponent used in dirt calculation, default 1. Lower values (e.g. 0.5) make the shadows darker and stretch further away from corners" + _gamma(float) : "Lightmap gamma" : : "Adjust brightness of final lightmap. Default 1, >1 is brighter, <1 is darker" + fog(string) : "Fog Command" : : "ENGINE only 'console command' for setting fog parameters, Density/R/G/B example = (0.05 0.3 0.3 0.3)." + fog_density(float) : "Fog Density example = (0.05)" + fog_color(color1) : "Fog Color R/G/B example = (0.3 0.3 0.3)" + skyfog_density(float) : "Skyfog Density" : : "How much fog is applied to skybrushes (def 0.5). Set to -1 to disable." + sky(sky) : "Sky Texture" : : "Must have compatible skybox textures in gfx/env folder." skip_id1_overrides(integer) : "Skip ID1 Overrides" : 0 : "Disable hardcoded map features like intermissions and E1M8 gravity. 0 will keep the ID1 checks, anything else will disable them." - h_vial_mdl(string) : "Global health vial model" : : "Use this field to replace all vials with this model" - h_25_mdl(string) : "Global health box model" : : "Use this field to replace all vials with this model" - h_15_mdl(string) : "Global rotten health box model" : : "Use this field to replace all rotten health boxes with this model" - h_mega_mdl(string) : "Global Megahealth model" : : "Use this field to replace all Megahealths with this model" - s_sm_mdl(string) : "Global shell box model" : : "Use this field to replace all shell boxes with this model" - s_lg_mdl(string) : "Global large shell box model" : : "Use this field to replace all large shell boxes with this model" - n_sm_mdl(string) : "Global spike box model" : : "Use this field to replace all spike boxes with this model" - n_lg_mdl(string) : "Global large spike box model" : : "Use this field to replace all large spike boxes with this model" - r_sm_mdl(string) : "Global rocket box model" : : "Use this field to replace all rocket boxes with this model" - r_lg_mdl(string) : "Global large rocket box model" : : "Use this field to replace all large rocket boxes with this model" - c_sm_mdl(string) : "Global cell box model" : : "Use this field to replace all cell boxes with this model" - c_lg_mdl(string) : "Global large cell box model" : : "Use this field to replace all large cell boxes with this model" - a_shr_mdl(string) : "Global armor shard model" : : "Use this field to replace all armor shards with this model" - a_grn_mdl(string) : "Global Green Armor model" : : "Use this field to replace all Green Armors with this model" - a_ylw_mdl(string) : "Global Yellow Armor model" : : "Use this field to replace all Yellow Armors with this model" - a_red_mdl(string) : "Global Red Armor model" : : "Use this field to replace all Red Armors with this model" + h_vial_mdl(studio) : "Global health vial model" : : "Use this field to replace all vials with this model" + h_25_mdl(studio) : "Global health box model" : : "Use this field to replace all vials with this model" + h_15_mdl(studio) : "Global rotten health box model" : : "Use this field to replace all rotten health boxes with this model" + h_mega_mdl(studio) : "Global Megahealth model" : : "Use this field to replace all Megahealths with this model" + s_sm_mdl(studio) : "Global shell box model" : : "Use this field to replace all shell boxes with this model" + s_lg_mdl(studio) : "Global large shell box model" : : "Use this field to replace all large shell boxes with this model" + n_sm_mdl(studio) : "Global spike box model" : : "Use this field to replace all spike boxes with this model" + n_lg_mdl(studio) : "Global large spike box model" : : "Use this field to replace all large spike boxes with this model" + r_sm_mdl(studio) : "Global rocket box model" : : "Use this field to replace all rocket boxes with this model" + r_lg_mdl(studio) : "Global large rocket box model" : : "Use this field to replace all large rocket boxes with this model" + c_sm_mdl(studio) : "Global cell box model" : : "Use this field to replace all cell boxes with this model" + c_lg_mdl(studio) : "Global large cell box model" : : "Use this field to replace all large cell boxes with this model" + a_shr_mdl(studio) : "Global armor shard model" : : "Use this field to replace all armor shards with this model" + a_grn_mdl(studio) : "Global Green Armor model" : : "Use this field to replace all Green Armors with this model" + a_ylw_mdl(studio) : "Global Yellow Armor model" : : "Use this field to replace all Yellow Armors with this model" + a_red_mdl(studio) : "Global Red Armor model" : : "Use this field to replace all Red Armors with this model" ] // // base marker definitions // -@baseclass = Angle [ angle(integer) : "Direction" ] +@BaseClass = Angle +[ + angle(angle) : "Yaw Angle" +] + +@BaseClass = Angles +[ + angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0" : "This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis." +] -@baseclass = Appearflags [ +@BaseClass = Appearflags +[ spawnflags(Flags) = [ 256 : "Not on Easy" : 0 @@ -94,112 +131,106 @@ /////////////////////////////////////////////////////////////////////////////////////////////////////////// // bassclass modified by dumptruck_ds to include multiple targets and targetnames via custents // /////////////////////////////////////////////////////////////////////////////////////////////////////////// -@baseclass = CustomMdls +@BaseClass = CustomMdls [ - mdl_head(string) : "Path to custom head model" - mdl_body(string) : "Path to custom body model" - mdl_proj(string) : "Path to custom projectile model" - skin_head(float) : "Skin index of custom head model" - skin_proj(float) : "Skin index of custom projectile model" - mdl_gib1(string) : "Path to custom 1st gib model" - mdl_gib2(string) : "Path to custom 2nd gib model" - mdl_gib3(string) : "Path to custom 3rd gib model" + mdl_head(studio) : "Path to custom head model" + mdl_body(studio) : "Path to custom body model" + mdl_proj(studio) : "Path to custom projectile model" + skin_head(integer) : "Skin index of custom head model" + skin_proj(integer) : "Skin index of custom projectile model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" ] -@baseclass = CustomMdlsWizSham +@BaseClass = CustomMdlsWizSham [ - mdl_head(string) : "Path to custom head model" - mdl_body(string) : "Path to custom body model" - skin_head(float) : "Skin index of custom head model" - mdl_gib1(string) : "Path to custom 1st gib model" - mdl_gib2(string) : "Path to custom 2nd gib model" - mdl_gib3(string) : "Path to custom 3rd gib model" + mdl_head(studio) : "Path to custom head model" + mdl_body(studio) : "Path to custom body model" + skin_head(integer) : "Skin index of custom head model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" ] -@baseclass = CustomMdlsSpawn +@BaseClass = CustomMdlsSpawn [ - mdl_body(string) : "Path to custom body model" + mdl_body(studio) : "Path to custom body model" ] -@baseclass studio() = CustomMdlsSkin +@BaseClass studio() = CustomMdlsSkin [ -skin(integer) : "Skin index (default 0)" -mdl_body(studio) : "Path to custom body model" + skin(integer) : "Skin index (default 0)" + mdl_body(studio) : "Path to custom body model" ] -@baseclass = CustomMdlsAmmo +@BaseClass = CustomMdlsAmmo [ - mdl_body(string) : "Path to custom body model" + mdl_body(studio) : "Path to custom body model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" ] -@baseclass = CustomMdlsHealth +@BaseClass = CustomMdlsHealth [ -skin(integer) : "Skin index (default 0)" -mdl_body(string) : "Path to custom body model" -// healamount(integer) : "Custom health amount (max of 250)" + skin(integer) : "Skin index (default 0)" + mdl_body(studio) : "Path to custom body model" + // healamount(integer) : "Custom health amount (max of 250)" ] -@baseclass = Berserk [ -berserk(choices) : "skip certain pain animations" : : "Skips certain pain animations similar to skill 3 (Makes a semi-nightmare monster!)" = +@BaseClass = Berserk [ + berserk(choices) : "skip certain pain animations" : : "Skips certain pain animations similar to skill 3 (Makes a semi-nightmare monster!)" = [ 0 : "Off (Default)" 1 : "Berserk (skip pain animations)" ] ] -@baseclass = Effects [ -alpha(float) : "Transparancy (.1 barely visible - .9 almost opaque)" -effects(choices) : "Various visual effects" : : "Add a visual effect to an entity" = - [ - 0 : "None (Default)" - 1 : "Brightfield (yellow particles)" - 4 : "Bright light" - 8 : "Dim light" - ] +@BaseClass = Effects +[ + alpha(float) : "Transparency" : : ".1 barely visible - .9 almost opaque)" + effects(choices) : "Various visual effects" : : "Add a visual effect to an entity. Add together to stack." = + [ + 0 : "None (Default)" + 1 : "Brightfield (yellow particles)" + 4 : "Bright light" + 8 : "Dim light" + ] ] -@baseclass = State [ -state(choices) = - [ - 0: "Off (Default)" - 1 : "Start on" - ] +@BaseClass = State +[ + state(choices) = + [ + 0: "Off (Default)" + 1 : "Start on" + ] ] -@baseclass = Targetname [ +@BaseClass = Targetname +[ + targetname(target_source) : "Name" + targetname2(target_source) : "Name 2" + targetname3(target_source) : "Name 3" + targetname4(target_source) : "Name 4" +] - targetname(target_source) : "Targetname" - targetname2(target_source) : "Targetname2" - targetname3(target_source) : "Targetname3" - targetname4(target_source) : "Targetname4" - ] -@baseclass = Target [ +@BaseClass = Target +[ target(target_destination) : "Target" - target2(target_destination) : "Target2" - target3(target_destination) : "Target3" - target4(target_destination) : "Target4" + target2(target_destination) : "Target 2" + target3(target_destination) : "Target 3" + target4(target_destination) : "Target 4" killtarget(target_destination) : "Killtarget" - killtarget2(target_destination) : "Killtarget2" + killtarget2(target_destination) : "Killtarget 2" ] -@baseclass = OneTargetname[targetname(target_source) : "Targetname"] - -@baseclass = OneTarget[target(target_destination) : "Target"] - - -@baseclass = Fog [ - fog_density(string) : "Fog Density" : : "Set to -1 to disable fog." - fog_color(color1) : "Fog Color" - skyfog_density(string) : "Skyfog Density": : "Set to -1 to disable skyfog." -] -@baseclass = FogShift [ - fog_density(string) : "Start Fog Density" : : "Set to -1 to disable fog." - fog_color(color1) : "Start Fog Color" - skyfog_density(string) : "Start Skyfog Density" : : "Set to -1 to disable skyfog." - fog_density2(string) : "End Fog Density" : : "Set to -1 to disable fog." - fog_color2(color1) : "End Fog Color" - skyfog_density2(string) : "End Skyfog Density" : : "Set to -1 to disable skyfog." +@BaseClass = OneTargetname +[ + targetname(target_source) : "Name" ] +@BaseClass = OneTarget +[ + target(target_destination) : "Target" +] - -@baseclass = TriggerWait [ - is_waiting(choices) : "Dormant Trigger" : 0 : "If set to 1, the trigger starts dormant and waits for activation. Subsequent activations trigger its target as usual." = +@BaseClass = TriggerWait +[ + is_waiting(choices) : "Dormant Trigger" : 0 : "If set to 1, the trigger starts dormant and waits for activation. Subsequent activations trigger its target as usual." = [ 0 : "Default" 1 : "Wait for Trigger" @@ -207,104 +238,150 @@ state(choices) = ] -@baseclass = Message [ +@BaseClass = Message +[ spawnflags(flags) = [ 1048576 : "Message all players" : 0 ] ] -@baseclass = Turret [ +@BaseClass = Turret +[ spawnflags(flags) = [ 262144 : "Turret Mode" : 0 ] ] +// SYJ - Was originally at start of "Triggers" section, but trigger_filter calls it before then, causing an error +@BaseClass base(Appearflags, Target, Targetname, TriggerWait, Message) = Trigger +[ + sounds(choices) : "Sound style" : 0 = + [ + 0 : "None" + 1 : "Secret sound" + 2 : "Beep beep" + 3 : "Large switch" + ] + delay(string) : "Delay before trigger" : "0" + message(string) : "Message" +] + + +////////////////////// +// end dumptruck_ds // +////////////////////// + + +@BaseClass = Fog [ + fog_density(float) : "Fog Density" : : "Set to -1 to disable fog." + fog_color(color1) : "Fog Color" + skyfog_density(float) : "Skyfog Density": : "Set to -1 to disable skyfog." +] +@BaseClass = FogShift [ + fog_density(float) : "Start Fog Density" : : "Set to -1 to disable fog." + fog_color(color1) : "Start Fog Color" + skyfog_density(float) : "Start Skyfog Density" : : "Set to -1 to disable skyfog." + fog_density2(float) : "End Fog Density" : : "Set to -1 to disable fog." + fog_color2(color1) : "End Fog Color" + skyfog_density2(float) : "End Skyfog Density" : : "Set to -1 to disable skyfog." +] + + + + // // player starts, deathmatch, coop, teleport // -@baseclass base(Appearflags, Fog) flags(Angle) size(-16 -16 -24, 16 16 32) offset(0 0 24) color(0 255 0) = PlayerClass [] -@baseclass base(Appearflags, Fog) size(-16 -16 -24, 16 16 32)color(0 255 0) studio("progs/player.mdl") = PlayerClassAlt [] -@baseclass base(Appearflags) size(-64 -64 -24, 64 64 32)color(206 18 18) studio("progs/teleport.mdl") = MonsterClass [] +@BaseClass base(Appearflags, Fog) flags(Angle) size(-16 -16 -24, 16 16 32) offset(0 0 24) = PlayerClass [] +@BaseClass base(Appearflags, Fog) size(-16 -16 -24, 16 16 32) color(0 255 0) studio("progs/player.mdl") sequence(120) = PlayerClassAlt [] +@BaseClass base(Appearflags) size(-64 -64 -24, 64 64 32)color(206 18 18) studio("progs/teleport.mdl") skin(1) = MonsterClass [] //____TW_EDIT____ -@PointClass color(206 18 18) base(OneTarget, OneTargetname, Berserk, Appearflags) = func_monster_spawner : "Spawns monsters to a targeted info_monster_spawnpoint (make sure both entities are close together or overlapping). Choose Style via dropdown. Style 2 set to 1 overrides Style and chooses a random monster. Default time between spawns is 5 seconds. Setting Berserk to 1 skips most pain animations. Can only use default health, models and sounds." [ - spawnflags(flags) = - [ - 1: "Reset after completion" : 0 - 2: "Don't spawn angry" : 0 - 4: "Don't add to count" : 0 - 32: "Silent spawn" : 0 - ] - style(Choices) = [ - 1 : "Dog (Default)" - 2 : "Grunt" - 3 : "Enforcer" - 4 : "Ogre" - 5 : "Fiend" - 6 : "Wizard" - 7 : "Shambler" - 8 : "Knight" - 9 : "HellKnight" - 10 : "Spawn" - 11 : "Zombie" - 12 : "Shalrath" - ] - style2(integer) : "Overrides Style and selects random monster" - wait(integer) : "Wait this long between spawns (Default 5)" - count(integer) : "How many monsters to spawn (default 5)" : 5 -] - -@PointClass base(MonsterClass) = info_monster_spawnpoint : "Destination for func_monster_spawner" [] -@PointClass base(PlayerClass) = info_player_start : "Player 1 start" [] -@PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" [] -@PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" [] -@PointClass base(PlayerClass) = info_player_start2 : "Player episode return point" [] -@PointClass base(PlayerClass, Targetname) = info_teleport_destination : "Teleport destination" [] +@PointClass color(206 18 18) base(OneTarget, OneTargetname, Berserk, Appearflags) = func_monster_spawner : "Spawns monsters to a targeted info_monster_spawnpoint (make sure both entities are close together or overlapping).\nChoose Style via dropdown.\nStyle 2 set to 1 overrides Style and chooses a random monster.\nDefault time between spawns is 5 seconds.\nSetting Berserk to 1 skips most pain animations.\nCan only use default health, models and sounds." +[ + spawnflags(flags) = + [ + 1 : "Reset after completion" : 0 + 2 : "Don't spawn angry" : 0 + 4 : "Don't add to count" : 0 + 32 : "Silent spawn" : 0 + ] + style(Choices) = + [ + 1 : "Dog (Default)" + 2 : "Grunt" + 3 : "Enforcer" + 4 : "Ogre" + 5 : "Fiend" + 6 : "Wizard" + 7 : "Shambler" + 8 : "Knight" + 9 : "HellKnight" + 10 : "Spawn" + 11 : "Zombie" + 12 : "Shalrath" + ] + style2(integer) : "Overrides Style and selects random monster" + wait(integer) : "Wait this long between spawns (default 5)" + count(integer) : "How many monsters to spawn (default 5)" +] + +@PointClass base(MonsterClass, OneTargetname) = info_monster_spawnpoint : "Destination for func_monster_spawner" [] +@PointClass base(PlayerClass) color(0 255 0) = info_player_start : "Player 1 start" [] +@PointClass base(PlayerClass) color(192 0 0) = info_player_deathmatch : "Player deathmatch start" [] +@PointClass base(PlayerClass) color(0 0 192) = info_player_coop : "Player cooperative start" [] +@PointClass base(PlayerClass) color(0 128 0) = info_player_start2 : "Player episode return point" [] @PointClass base(PlayerClass) = testplayerstart : "Testing player start" [] +@PointClass size(-32 -32 0, 32 32 64) base(PlayerClass, Targetname) color(0 255 0) = info_teleport_destination : "Teleporter destination" [] //____TW_EDIT____ @PointClass size(-32 -32 0, 32 32 64) base(PlayerClassAlt, Targetname) = info_teleport_random : "Random Teleporter destination. Only for use with trigger_teleport entities set to RANDOM" [] -@PointClass = info_null : "info_null (spotlight target)" +@PointClass color(128 128 128) = info_null : "info_null (spotlight target)" [ targetname(target_source) : "Name" ] //____TW_EDIT____ -@PointClass base(Appearflags) color(0 255 0) = info_teleport_changedest : "info_teleport_changedest allows a mapper to change the target of a teleport_trigger .Useful in maps where the player may fall into a void and the mapper wants to update where they respawn as they progress through the level. Could also be used for teleport puzzles and more. target = trigger_teleport to change, message = new info_teleport_destination's targetname to switch to, targetname = name of this entity so we can use it.NOTE - when a trigger_teleport has a targetname it must be triggered to operate, so adding an overlapping trigger_multiple targeting the trigger_teleport will be neccessary." +@PointClass base(Appearflags) color(0 255 0) = info_teleport_changedest : "info_teleport_changedest allows a mapper to change the target of a teleport_trigger.\nUseful in maps where the player may fall into a void and the mapper wants to update where they respawn as they progress through the level. Could also be used for teleport puzzles and more.\nNOTE when a trigger_teleport has a targetname it must be triggered to operate, so adding an overlapping trigger_multiple targeting the trigger_teleport will be necessary" [ targetname(target_source) : "name of this entity so we can trigger it" - target(target_source) : "trigger_teleport to change" + target(target_destination) : "trigger_teleport to change" message(string) : "new info_teleport_destination's targetname to switch to" ] + @PointClass base(Appearflags, Target, Targetname) color(200 150 150) = info_notnull : "Wildcard entity" // dumptruck_ds [ use(string) : "self.use" think(string) : "self.think" nextthink(integer) : "nextthink" - noise(string) : "noise" + noise(sound) : "noise" touch(string) : "self.touch" ] -@PointClass base(Appearflags) = info_intermission : "Intermission camera" [] +// SYJ: "sprites/trigger_camera.spr" is an editor sprite included with Jack +@PointClass base(Appearflags, Fog) iconsprite("sprites/trigger_camera.spr") = info_intermission : "Intermission camera" +[ + mangle(string) : "Camera angle (Pitch Yaw Roll)" +] -@PointClass = info_intermissiontext : "Intermission Text" +@PointClass = info_intermissiontext : "Intermission Text.\n\nSee the `prefab_info_intermissiontext` sample map and refer to the manual for setup." [ - message(string): "Text to show on intermission screen" - cnt(integer): "Page number" + message(string) : "Text to show on intermission screen" + sounds(integer) : "Music track to play" : : "CD Track to play during intermission. This only takes effect on the first page." + cnt(integer) : "Page number" ] -@PointClass base(Targetname, Appearflags) color(255 0 128) size(32 32 32) = target_autosave : "Saves the game when triggered by a player. Never appears in multiplayer. -the bprint tends to stomp any other prints on screen in most quake clients, so use a delayed trigger_relay if you fire this from an important pickup/trigger_counter/something else that puts text on screen more important than the autosave blurb." +@PointClass base(Targetname, Appearflags) color(255 0 128) size(32 32 32) = target_autosave : "Saves the game when triggered by a player. Never appears in multiplayer.\nThe bprint tends to stomp any other prints on screen in most quake clients, so use a delayed trigger_relay if you fire this from an important pickup/trigger_counter/something else that puts text on screen more important than the autosave blurb." [ message(string) : "Change save filename" : "auto" ] + // // items // -@BaseClass base(Appearflags, Target, Targetname, Effects, Angle) = - NonRespawnableItem +@BaseClass base(Appearflags, Target, Targetname, Effects, Angle) = NonRespawnableItem [ spawnflags(flags) = [ @@ -317,8 +394,7 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u // delay(integer) : "Delay" ] -@BaseClass base(NonRespawnableItem) = - RespawnableItem +@BaseClass base(NonRespawnableItem) = RespawnableItem [ spawnflags(flags) = [ @@ -329,8 +405,7 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u respawncount(integer) : "How many respawns?" ] -@BaseClass size(0 0 0, 32 32 56) color(80 0 200) base(RespawnableItem) = - Ammo +@BaseClass size(0 0 0, 32 32 56) color(80 0 200) base(RespawnableItem, CustomMdlsAmmo) = Ammo [ spawnflags(flags) = [ @@ -343,27 +418,24 @@ the bprint tends to stomp any other prints on screen in most quake clients, so u @PointClass base(Ammo) studio("maps/b_shell0.bsp") = item_shells : "Shells" [] @PointClass base(Ammo) studio("maps/b_nail0.bsp") = item_spikes : "Perforator/Nailgun ammo" [] -@PointClass size(-16 -16 0, 16 16 56) base(RespawnableItem, CustomMdlsHealth, CustomMdlsSkin) studio("progs/h_mdls/pd_vial.mdl") = -item_health_vial : "Small vial of health (default 5)" -[ - mdl_body(string) : "Path to custom model" - particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to health pickup sound" -] - -@PointClass size(0 0 0, 32 32 56) base(RespawnableItem, CustomMdlsHealth) studio("maps/b_bh25.bsp") = - item_health : "Health pack" +@PointClass size(0 0 0, 32 32 56) base(RespawnableItem, CustomMdlsHealth) studio("maps/b_bh25.bsp") = item_health : "Health pack" [ spawnflags(flags) = [ 1 : "Rotten" : 0 2 : "Megahealth" : 0 ] - mdl_body(string) : "Path to custom model" - particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" - snd_misc(string) : "Path to health pickup sound" + mdl_body(studio) : "Path to custom model" + particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." + snd_misc(sound) : "Path to health pickup sound" ] +@PointClass size(-16 -16 0, 16 16 56) base(RespawnableItem, CustomMdlsHealth, CustomMdlsSkin) studio("progs/h_mdls/pd_vial.mdl") = item_health_vial : "Small vial of health (default 5)" +[ + mdl_body(studio) : "Path to custom model" + particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." + snd_misc(sound) : "Path to health pickup sound" +] @BaseClass base(RespawnableItem, CustomMdlsAmmo, CustomMdlsSkin) size(-16 -16 -24, 16 16 32) = Artifact [] @@ -377,79 +449,70 @@ item_health_vial : "Small vial of health (default 5)" item_artifact_invisibility : "Ring of Shadows" [] @BaseClass base(RespawnableItem) size(-16 -16 0, 16 16 56) = Armor [] -// -// @PointClass base(Armor) studio("progs/armor.mdl") = -// item_armorInv : "Red armor (200%)" [] -// @PointClass base(Armor) studio("progs/armor.mdl") = -// item_armor2 : "Yellow armor (150%)" [] -// @PointClass base(Armor) studio("progs/armor.mdl") = -// item_armor1 : "Green armor (100%)" [] -// -@PointClass base(Armor) studio("progs/armor.mdl") = + + +@PointClass base(Armor) studio("progs/armor.mdl") skin(2) = item_armorInv : "Red armor (200%)" - [ - mdl_body(string) : "Path to custom model" - particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" +[ + mdl_body(studio) : "Path to custom model" + particles_offset(string) : "Custom model particle offset" : : "Adjusts origin of spawning particles when using mdl_body. When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] -@PointClass base(Armor) studio("progs/armor.mdl") = +] +@PointClass base(Armor) studio("progs/armor.mdl") skin (1) = item_armor2 : "Yellow armor (150%)" - [ - mdl_body(string) : "Path to custom model" +[ + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] @PointClass base(Armor) studio("progs/armor.mdl") = item_armor1 : "Green armor (100%)" - [ - mdl_body(string) : "Path to custom model" +[ + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] @PointClass base(Armor) studio("progs/armshr.mdl") = item_armor_shard : "A small piece of armor worth 5 points of Green armor protection. Can only add a max of 25 points to any armor." - [ - mdl_body(string) : "Path to custom model" +[ + mdl_body(studio) : "Path to custom model" particles_offset(string) : "Adjust origin of spawning particles when using mdl_body" : : "When trigger spawning or respawning, a custom model may not display t-fog correctly. Adjust the origin here." - snd_misc(string) : "Path to custom pickup sound" + snd_misc(sound) : "Path to custom pickup sound" obit_name(string) : "Custom name for this armor." : : "Set a custom name for your armor. Just complete the sentence `You got` e.g. the Mega Armor! for `You got the Mega Armor!'" - ] +] + @BaseClass base(NonRespawnableItem) size(-16 -16 -24, 16 16 32) = Key [] + // @PointClass base(Key) model({ "path": ":progs/w_s_key.mdl" }) = @PointClass base(Key, CustomMdlsSkin) studio("progs/w_s_key.mdl") = item_key1 : "Silver key" [ keyname(string) : "Custom name for the key when picked up, e.g. 'silver eyekey'" ] -// @PointClass base(Key) model({ "path": ":progs/w_g_key.mdl" }) = +// @PointClass base(Key) studio("progs/w_g_key.mdl") = +// item_key2 : "Gold key" [] @PointClass base(Key, CustomMdlsSkin) studio("progs/w_s_key.mdl") = item_key2 : "Gold key" [ keyname(string) : "Custom name for the key when picked up, e.g. 'gold eyekey'" ] -// @PointClass base(Key) studio("progs/w_s_key.mdl") = +// @PointClass base(Key) studio("progs/pd_w_key.mdl") skin(1) = // item_key1 : "Silver key" [] -// @PointClass base(Key) studio("progs/w_g_key.mdl") = -// item_key2 : "Gold key" [] + //____TW_EDIT____ -@PointClass base(Key) = item_key_custom :"A customizable key item. This allows mappers to use any Quake compatible model, sprite or BSP as a key. We’ve also included new key models with different variations. You can find these in the progs folder and set their paths in the mdl key. -keyname: name of the key, e.g. 'bronze key' (required), mdl: model file path (required) noise: sound file for the pickup sound (default is per worldtype), skin: skin index (default 0), frame (default 0): display this single frame of the model, if animated. NOTE: The key will not display any animation. -Three new models based on id’s original keys are included. One for each worldtype: base, runic and wizard. Each of these has four color variations, also referred to as their skin index: jade (green, skin 0), runic (magenta, skin 1), blood (red, skin 2) and alabaster (gray, skin 3). The development/wads folder has a small wad with textures for use with the different styles seen below. -The 'keyname' value is used both for the pickup message and to associate the key with the entity that it unlocks. To make a func_door or trigger_usekey require this key, set the 'keyname' value of that entity so that it matches the 'keyname' value of the key. If different item_key_custom entities have the same 'keyname' value, they will be treated as different copies of the same key and may be used erchangeably. A map may have a maximum of 23 unique 'keyname' values across all entities. The behavior of an item_key_custom should be as the player expects (based on the behavior of the silver and gold keys), except for the fact that it will not appear as an icon in the player's status bar when picked up. This is a limitation of the engine." -//'keyname': name of the key, e.g. 'bronze key' (required) -//'mdl': model file (required) -//'noise': sound file for the pickup sound (default is per worldtype) -//'skin': skin index (default 0) -[ - keyname(string) : "Name of the key, e.g. 'bronze key' (required)" - mdl(string) : "Model file (required)" - noise(string) : "Sound file for the pickup sound (default is per worldtype)" - skin(integer) : "Skin index (default 0)" +@PointClass base(Key) studio() = item_key_custom : "A customizable key item.\n\nThis allows mappers to use any Quake compatible model, sprite or BSP as a key. We’ve also included new key models with different variations. You can find these in the progs folder and set their paths in the mdl key.\n\nThree new models based on id’s original keys are included. One for each worldtype: base, runic and wizard. Each of these has four color variations, also referred to as their skin index: jade (green, skin 0), runic (magenta, skin 1), blood (red, skin 2) and alabaster (gray, skin 3). The development/wads folder has a small wad with textures for use with the different styles seen below.\n\nThe behavior of an item_key_custom should be as the player expects (based on the behavior of the silver and gold keys), except for the fact that it will not appear as an icon in the player's status bar when picked up. This is a limitation of the engine." +[ + keyname(string) : "Name of the key, e.g. 'bronze key' (required)" : : "name of the key, e.g. 'bronze key' (required).The 'keyname' value is used both for the pickup message and to associate the key with the entity that it unlocks.\n\nTo make a func_door or trigger_usekey require this key, set the 'keyname' value of that entity so that it matches the 'keyname' value of the key.\n\nIf different item_key_custom entities have the same 'keyname' value, they will be treated as different copies of the same key and may be used interchangeably.\n\nA map may have a maximum of 23 unique 'keyname' values across all entities." + mdl(studio) : "Model file (required)" : : "model file path (required)" + noise(sound) : "Pickup sound" : : "Sound file for the pickup sound (default is per worldtype)" + skin(integer) : "Skin" : 0 : "Skin index (default 0)" + frame(integer) : "Animation frame" : : "display this single frame of the model, if animated. NOTE: The key will not display any animation." + sequence(integer) : "Animation frame (editor)" : : "Frame to display in the editor (no effect in-game)." ] @PointClass size(-16 -16 -24, 16 16 32) base(NonRespawnableItem) studio("progs/end1.mdl") = @@ -464,6 +527,47 @@ The 'keyname' value is used both for the pickup message and to associate the key ] ] +//item-backpack +//____TW_EDIT____ +@PointClass base(Appearflags, OneTargetname, Effects) size(-16 -16 0, 16 16 56) color(80 0 200) studio("progs/backpack.mdl") = item_backpack :"Placeable backpack\n\n An ammo type spawnflag must be set for this to appear in a map. The ALL_AMMO spawnflag gives roughly half the ammo from the 4 standard pickups:\n\n10 Shells\n12 Nails\n2 Rockets\n3 Cells\n\nOr you can use the spawnflags to mix and match types. Override the spawnflags defaults by adding custom amounts to:\n\nammo_shells\nammo_nails\nammo_rockets\nammo_cells\n\nMake sure and select both matching spawnflag and ammo_ type. Can trigger spawn and suspend in air, but not respawn.\n\nYou can set a skin index if you are using a custom model with skins.\n\nThe default pickup message is `You got a backpack.` But you can set a custom message with the netname key. 'You got' will be the prefixand the mapper chooses the rest of the message.\n\ne.g. For 'You got a bunch of rockets!' the netname value would be 'a bunch of rockets!'" +[ + ammo_shells(integer) : "Custom amount of shells" : 0 + ammo_nails(integer) : "Custom amount of nails" : 0 + ammo_rockets(integer) : "Custom amount of rockets" : 0 + ammo_cells(integer) : "Custom amount of cells" : 0 + netname(string) : "Custom text for ammo pickups" + snd_misc(sound) : "Path to custom pickup sound" + mdl_body(studio) : "Path to custom body model" + skin(choices) : "Backpack Skin" : 0 = + [ + 0 : "Default" + 1 : "Shells" + 2 : "Nails" + 3 : "Rockets" + 4 : "Cells" + 5 : "Red" + 6 : "Rust" + 7 : "Blue" + 8 : "Green" + 9 : "Purple" + 10 : "Cream" + 11 : "Gray" + 12 : "Orignal Vanilla skin" + ] + spawnflags(flags) = + [ + 1 : "All Ammo" : 0 + 2 : "Shells" : 0 + 4: "Nails" : 0 + 8 : "Rockets" : 0 + 16 : "Cells" : 0 + 32 : "Spawn Silently" : 0 + 64 : "Trigger spawned" : 0 + 128 : "Suspended in air" : 0 + ] +] + + // // weapons // @@ -472,29 +576,21 @@ The 'keyname' value is used both for the pickup message and to associate the key Weapon [] //axe not used in this version -//@PointClass base(Weapon) studio("progs/g_axe.mdl") = -// weapon_axe : "Axe" [] -@PointClass base(Weapon) studio("progs/g_shotgu.mdl") = - weapon_shotgun : "Shotgun"[] -@PointClass base(Weapon) studio("progs/g_shot.mdl") = - weapon_supershotgun : "Double-barrelled shotgun" [] -@PointClass base(Weapon) studio("progs/g_nail.mdl") = - weapon_nailgun : "Nailgun" [] -@PointClass base(Weapon) studio("progs/g_nail2.mdl") = - weapon_supernailgun : "Super nailgun" [] -@PointClass base(Weapon) studio("progs/g_rock.mdl") = - weapon_grenadelauncher : "Grenade launcher" [] -@PointClass base(Weapon) studio("progs/g_rock2.mdl") = - weapon_rocketlauncher : "Rocket launcher" [] -@PointClass base(Weapon) studio("progs/g_light.mdl") = - weapon_lightning : "Thunderbolt" [] +//@PointClass base(Weapon) studio("progs/g_axe.mdl") = weapon_axe : "Axe" [] +@PointClass base(Weapon) studio("progs/g_shotgu.mdl") = weapon_shotgun : "Shotgun"[] +@PointClass base(Weapon) studio("progs/g_shot.mdl") = weapon_supershotgun : "Double-barrelled shotgun" [] +@PointClass base(Weapon) studio("progs/g_nail.mdl") = weapon_nailgun : "Nailgun" [] +@PointClass base(Weapon) studio("progs/g_nail2.mdl") = weapon_supernailgun : "Super nailgun" [] +@PointClass base(Weapon) studio("progs/g_rock.mdl") = weapon_grenadelauncher : "Grenade launcher" [] +@PointClass base(Weapon) studio("progs/g_rock2.mdl") = weapon_rocketlauncher : "Rocket launcher" [] +@PointClass base(Weapon) studio("progs/g_light.mdl") = weapon_lightning : "Thunderbolt" [] // -// badasses +// monsters // //dumptruck_ds start -@baseclass base(Angle, Appearflags, Target, Targetname, Effects) color(220 0 0) offset(0 0 24) = Monster +@BaseClass base(Angle, Appearflags, Target, Targetname, Effects) color(220 0 0) offset(0 0 24) = Monster [ spawnflags(Flags) = [ @@ -504,7 +600,6 @@ The 'keyname' value is used both for the pickup message and to associate the key 64 : "Passive until attacked" : 0 128 : "Passive always" : 0 2097152 : "Spawn Silently" : 0 - ] delay(choices) : "Trigger spawn delay time" : : "Delay spawn in for this amount of time" = [ @@ -518,43 +613,43 @@ The 'keyname' value is used both for the pickup message and to associate the key ] // wait(choices) : "Play an effect when trigger spawned?" : : "Play an effect when trigger spawned?" = // [ - // 0: "Teleport Effects (Default)" + // 0 : "Teleport Effects (Default)" // 1 : "Spawn Silently" // ] spawn_angry(Choices) = -[ - 0 : "Only when trigger spawned, default behavior - not angry" - 1 : "Only use when trigger spawned, set to 1 to spawn angry at player" -] + [ + 0 : "Only when trigger spawned, default behavior - not angry" + 1 : "Only when trigger spawned, set to 1 to spawn angry at player" + ] infight_mode(Choices) = -[ - -1 : "Never infight" - 0 : "Default behavior, only with different classnames" - 1 : "Infight with monsters with the same classname but a different mdl_body" - 2 : "Infight with monsters with the same classname and model but a different skin" - 3 : "Infight no matter what" -] -health(integer) : "Cutom health amount" : : "Set this to a custom health amount" -pain_target(string) : "Fire this target when pain_threshold is reached" : : "Fire this target when pain_threshold is reached" -pain_threshold(integer) : "Fire pain_target when health drops below this amount" : : "Fire pain_target when health drops below this amount" -sight_trigger(integer) : "Fire this target upon seeing the player" : : "Fire this target upon seeing the player" -skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" -obit_name(string) : "Custom description of WHO killed the player." : "When used with obit_method, this will set part of the text for a custom obituary. e.g. a Super Soldier! Using the examples here, the obituary would read: Player was eviscerated by a Super Solider!" -obit_method(string) : "Custom description of HOW this monster killed the player." : "When used with obit_name, will set part of the text for a custom obituary. e.g. eviscerated - If empty, defaults to killed." -damage_mod(float) : "Damage multiplier (e.g. 4 = Quad damage)" : : "USE WITH CAUTION! Multiply all damage from this monster by this number (e.g. 4 = Quad damage)" -homing(float) : "Multiplier for projectile homing, maximum 1. Only applies to non-grenade projectiles." : "0" -waitmin(float) : "When set, homing factor will begin to increase after (waitmin) seconds." : "0" -proj_speed_mod(float) : "Multiplier for projectile speed. Only applies to non-grenade projectiles." : "1" -drop_item(Choices) = -[ - 0 : "(Default) Disabled" - 1 : "Drop a Silver Key upon death" - 2 : "Drop a Gold Key upon death" - 3 : "Drop a Health Vial upon death" - 4 : "Drop an Armor Shard upon death" - 5 : "Drop a Health Vial & Armor Shard" - 6 : "Random combination of 3 Vials and/or Shards" -] + [ + -1 : "Never infight" + 0 : "Default behavior, only with different classnames" + 1 : "Infight with monsters with the same classname but a different mdl_body" + 2 : "Infight with monsters with the same classname and model but a different skin" + 3 : "Infight no matter what" + ] + health(integer) : "Custom health amount" : : "Set this to a custom health amount" + pain_target(target_destination) : "Fire this target when pain_threshold is reached" : : "Fire this target when pain_threshold is reached" + pain_threshold(integer) : "Fire pain_target when health drops below this amount" : : "Fire pain_target when health drops below this amount" + sight_trigger(integer) : "Fire this target upon seeing the player" : : "Fire this target upon seeing the player" + skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" + obit_name(string) : "Custom description of WHO killed the player." : : "When used with obit_method, this will set part of the text for a custom obituary. e.g. a Super Soldier! Using the examples here, the obituary would read: Player was eviscerated by a Super Solider!" + obit_method(string) : "Custom description of HOW this monster killed the player." : : "When used with obit_name, will set part of the text for a custom obituary. e.g. eviscerated - If empty, defaults to killed." + damage_mod(float) : "Damage multiplier (e.g. 4 = Quad damage)" : : "USE WITH CAUTION! Multiply all damage from this monster by this number (e.g. 4 = Quad damage)" + homing(float) : "Multiplier for projectile homing, maximum 1. Only applies to non-grenade projectiles." : "0" + waitmin(float) : "When set, homing factor will begin to increase after (waitmin) seconds." : "0" + proj_speed_mod(float) : "Multiplier for projectile speed. Only applies to non-grenade projectiles." : "1" + drop_item(Choices) = + [ + 0 : "(Default) Disabled" + 1 : "Drop a Silver Key upon death" + 2 : "Drop a Gold Key upon death" + 3 : "Drop a Health Vial upon death" + 4 : "Drop an Armor Shard upon death" + 5 : "Drop a Health Vial & Armor Shard" + 6 : "Random combination of 3 Vials and/or Shards" + ] ] //dumptruck_ds //@PointClass base(Monster) size(-16 -16 -24, 16 16 40) studio("progs/soldier.mdl") = monster_army : "Grunt Default health 30" [] @@ -562,48 +657,48 @@ drop_item(Choices) = //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-16 -16 -24, 16 16 40) studio("progs/soldier.mdl") = monster_army : "Grunt, Default health = 30" [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (GUNSHOT)" : : "Path to custom attack sound (GUNSHOT)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (PAIN 2)" : : "Path to custom sound (PAIN 2)" -style(Choices) : "Attack type" : 0 = + keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (GUNSHOT)" : : "Path to custom attack sound (GUNSHOT)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (PAIN 2)" : : "Path to custom sound (PAIN 2)" + style(Choices) : "Attack type" : 0 = [ 0 : "Default (shotgun)" - 1 : "rockets" - 2 : "grenades" - 3 : "lasers" - 4 : "nails (single fire)" - 5 : "nails (rapid fire)" + 1 : "Rockets" + 2 : "Grenades" + 3 : "Lasers" + 4 : "Nails (single fire)" + 5 : "Nails (rapid fire)" ] ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-32 -32 -24, 32 32 40) studio("progs/dog.mdl") = monster_dog : "Nasty Doggie, Default health = 25" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-32 -32 -24, 32 32 64) studio("progs/ogre.mdl") = monster_ogre : "Ogre, Default health = 200" [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" -snd_idle(string) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" -snd_misc(string) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" -snd_misc1(string) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" -snd_misc2(string) : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" : : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" -cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" -style(Choices) : "Attack type" = + keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" + snd_idle(sound) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" + snd_misc(sound) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" + snd_misc1(sound) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" + snd_misc2(sound) : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" : : "Path to custom sound (MAGIC SOUND) Used in Style 4 only" + cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" + style(Choices) : "Attack type" = [ 0 : "Default (grenade)" 1 : "Flak Ogre (Marcher, Quoth)" @@ -614,61 +709,68 @@ style(Choices) : "Attack type" = ] //____TW_EDIT____ -@PointClass base(Monster, Berserk, CustomMdls, Turret) size(-32 -32 -24, 32 32 64) studio("progs/ogre.mdl") = monster_ogre_marksman : "Ogre marksman, Default health = 200. The more accurate monster_ogre_marksman entity produces a slightly different ogre (won't make a sound when the player is sighted, won't make chainsaw dragging sounds, won't make a proper obituary message, has a different decision-making process when choosing whether to attack, and will in-fight with regular ogres). In progs_dump this Ogre will also have better aiming at stationary players no matter what the elevation." +@PointClass base(Monster, Berserk, CustomMdls, Turret) size(-32 -32 -24, 32 32 64) studio("progs/ogre.mdl") = monster_ogre_marksman : "Ogre marksman, Default health = 200.\n\n The more accurate monster_ogre_marksman entity produces a slightly different ogre (won't make a sound when the player is sighted, won't make chainsaw dragging sounds, won't make a proper obituary message, has a different decision-making process when choosing whether to attack, and will in-fight with regular ogres). In progs_dump this Ogre will also have better aiming at stationary players no matter what the elevation." [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (CHAINSAW)" : : "Path to custom attack sound (CHAINSAW)" + snd_idle(sound) : "Path to custom idle sound (IDLE)" : : "Path to custom idle sound (IDLE)" + snd_misc(sound) : "Path to custom sound (IDLE CHAINSAW DRAG)" : : "Path to custom sound (IDLE CHAINSAW DRAG)" + snd_misc1(sound) : "Path to custom sound (ATTACK GRUNT)" : : "Path to custom sound (ATTACK GRUNT)" ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-16 -16 -24, 16 16 40) studio("progs/knight.mdl") = monster_knight : "Knight, Default heath = 75" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (SWORD SLASH 1)" : : "Path to custom attack sound (SWORD SLASH 1)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (SWORD SLASH 2)" : : "Path to custom sound (SWORD SLASH 2)" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (SWORD SLASH 1)" : : "Path to custom attack sound (SWORD SLASH 1)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (SWORD SLASH 2)" : : "Path to custom sound (SWORD SLASH 2)" ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-16 -16 -24, 16 16 40) studio("progs/hknight.mdl") = monster_hell_knight : "Hell Knight a.k.a. Death Knight, Default health = 250" [ -projexpl(Choices) : "Exploding projectiles" = - [ - 0 : "Normal (no explosions)" + projexpl(Choices) : "Exploding projectiles" = + [ + 0 : "Normal (no explosions)" 1 : "All projectiles explode" 2 : "Projectiles alternate between exploding and not" 3 : "Projectiles are randomly exploding" ] -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (MAGIC BOING)" : : "Path to custom attack sound (MAGIC BOING)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom SWORD SLASH sound" : : "Path to custom SWORD SLASH sound" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (MAGIC BOING)" : : "Path to custom attack sound (MAGIC BOING)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom SWORD SLASH sound" : : "Path to custom SWORD SLASH sound" -mdl_exproj(string) : "Path to custom exploding projectile model" -skin_exproj(float) : "Skin index for custom exploding projectile model" -style(Choices) : "Attack type" = + mdl_exproj(studio) : "Path to custom exploding projectile model" + skin_exproj(integer) : "Skin index for custom exploding projectile model" + style(choices) : "Attack type" = [ 0 : "Default (magic spikes)" - 1 : "lightning" + 1 : "Lightning" ] ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdls) size(-16 -16 -24, 16 16 40) studio("progs/wizard.mdl") = monster_wizard : "Scrag a.k.a Wizard, Default health = 80" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" -snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound e.g. slimeball hits wall" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (IDLE 2)" : : "Path to custom sound (IDLE 2)" -projexpl(Choices) : "Exploding projectiles" = - [ - 0 : "Normal (no explosions)" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound e.g. slimeball hits wall" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (IDLE 2)" : : "Path to custom sound (IDLE 2)" + projexpl(Choices) : "Exploding projectiles" = + [ + 0 : "Normal (no explosions)" 1 : "Projectiles explode" ] ] @@ -676,482 +778,474 @@ projexpl(Choices) : "Exploding projectiles" = //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdlsWizSham) size(-32 -32 -24, 32 32 64) studio("progs/demon.mdl") = monster_demon1 : "Fiend, Default heath = 300" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" - snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" - snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" - snd_attack(string) : "Path to custom attack sound" : : "Path to custom attack sound" - snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound e.g. Enforcer laser hit" - snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound e.g. Enforcer laser hit" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdlsWizSham, Turret) size(-32 -32 -24, 32 32 64) studio("progs/shambler.mdl") = monster_shambler : "Shambler, Default health = 600" [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (GRUNT)" : : "Path to custom attack sound (GRUNT)" -snd_hit(string) : "Path to custom hit sound (FLESH TEARING)" : : "Path to custom hit sound (FLESH TEARING)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sound (GRUNT 2)" : : "Path to custom sound (GRUNT 2)" -snd_misc1(string) : "Path to custom sound (LIGHTNING ZAP)" : : "Path to custom sound (LIGHTNING ZAP)" -snd_misc2(string) : "Path to custom sound (LIGHTNING BOOM)" : : "Path to custom sound (LIGHTNING BOOM)" -mdl_proj(string) : "Path to custom projectile model" : : "Path to custom projectile model" -skin_proj(float) : "Path to custom projectile skin" : : "Path to custom projectile skin" -cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" -style(Choices) : "Attack type" = + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (GRUNT)" : : "Path to custom attack sound (GRUNT)" + snd_hit(sound) : "Path to custom hit sound (FLESH TEARING)" : : "Path to custom hit sound (FLESH TEARING)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sound (GRUNT 2)" : : "Path to custom sound (GRUNT 2)" + snd_misc1(sound) : "Path to custom sound (LIGHTNING ZAP)" : : "Path to custom sound (LIGHTNING ZAP)" + snd_misc2(sound) : "Path to custom sound (LIGHTNING BOOM)" : : "Path to custom sound (LIGHTNING BOOM)" + mdl_proj(sound) : "Path to custom projectile model" : : "Path to custom projectile model" + skin_proj(integer) : "Index of custom projectile skin" : : "Index of custom projectile skin" + cust_avelocity(string) : "custom spin of projectile in x, y, z" : : "custom spin of projectile in (x, y, z) DEFAULT is 200 100 300, DISABLE with 0 0 1" + style(Choices) : "Attack type" = [ 0 : "Default" - 1 : "Lavaballs" + 1 : "Lavaballs" ] - ] @PointClass base(Monster, CustomMdls) size(-128 -128 -24, 128 128 256) studio("progs/boss.mdl") = monster_boss : "Chthon" [] -@PointClass base(Monster, CustomMdls) size(-128 -128 -24, 128 128 256) studio("progs/boss.mdl") = monster_boss2 : "Killable Chthon" -[ -snd_death(string) : "Path to custom death sound" : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound" : "Path to custom attack sound" -snd_move(string) : "Path to custom rising and lowering sound" : "Path to custom rising and lowering sound" -spawnflags(Flags) = + +@PointClass base(Monster, CustomMdls) size(-128 -128 -24, 128 128 256) studio("progs/boss.mdl") = monster_boss2 : "Killable Chthon, Default health = 1000 (Skill 0), 3000 (Skill 1-3)" [ -2 : "No Lava Splash Effect" : 0 -] + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound" : : "Path to custom attack sound" + snd_move(sound) : "Path to custom rising and lowering sound" : : "Path to custom rising and lowering sound" + spawnflags(Flags) = + [ + 2 : "No Lava Splash Effect" : 0 + ] ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-16 -16 -24, 16 16 40) studio("progs/enforcer.mdl") = monster_enforcer : "Enforcer, Default health = 80" - [ -keep_ammo(integer) : "Don't drop backpack" : : "Don't drop backpack upon death" -style(Choices) : "Attack type" : 0 = +[ + keep_ammo(choices) : "Drop backpack" : : "Don't drop backpack upon death" = + [ + "" : "Yes" + 1 : "No" + ] + style(choices) : "Attack type" = [ 0 : "Default (lasers)" - 1 : "rockets" - 2 : "grenades" - 3 : "nails (single fire)" - 4 : "lightning" - 5 : "nails (rapid fire)" - ] -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom 1st pain sound" : : "Path to 1st custom pain sound" -snd_sight(string) : "Path to custom sight sound for STOP!" : : "Path to custom sight sound for STOP!" -snd_attack(string) : "Path to custom attack sound e.g laser firing" : : "Path to custom attack sound e.g laser firing" -snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound e.g. laser hits wall" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom sight sound for FREEZE!" : : "Path to custom sight sound for FREEZE!" -snd_misc1(string) : "Path to custom sight sound for YOU THERE!" : : "Path to custom sight sound for YOU THERE!" -snd_misc2(string) : "Path to custom sight sound for HALT!" : : "Path to custom sight sound for HALT!" -snd_misc3(string) : "Path to 2nd custom pain sound" : : "Path to 2nd custom pain sound" + 1 : "Rockets" + 2 : "Grenades" + 3 : "Nails (single fire)" + 4 : "Lightning" + 5 : "Nails (rapid fire)" + ] + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom 1st pain sound" : : "Path to 1st custom pain sound" + snd_sight(sound) : "Path to custom sight sound for STOP!" : : "Path to custom sight sound for STOP!" + snd_attack(sound) : "Path to custom attack sound e.g laser firing" : : "Path to custom attack sound e.g laser firing" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound e.g. laser hits wall" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom sight sound for FREEZE!" : : "Path to custom sight sound for FREEZE!" + snd_misc1(sound) : "Path to custom sight sound for YOU THERE!" : : "Path to custom sight sound for YOU THERE!" + snd_misc2(sound) : "Path to custom sight sound for HALT!" : : "Path to custom sight sound for HALT!" + snd_misc3(sound) : "Path to 2nd custom pain sound" : : "Path to 2nd custom pain sound" ] //____TW_EDIT____ @PointClass base(Monster, Berserk, CustomMdls, Turret) size(-32 -32 -24, 32 32 64) studio("progs/shalrath.mdl") = monster_shalrath : "Vore a.k.a Shalrath, Default health = 400" [ -homing(float) : "Multiplier for projectile homing, maximum 1, -1 to disable completely" : 1 -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_attack(string) : "Path to custom attack sound (VORE SNARL)" : : "Path to custom attack sound (VORE SNARL)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -snd_misc(string) : "Path to custom attack2 sound (VOREBALL FIRE)" : : "Path to custom attack2 sound (VOREBALL FIRE)" + homing(float) : "Multiplier for projectile homing" : "1" : "Maximum 1, -1 to disable completely" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_attack(sound) : "Path to custom attack sound (VORE SNARL)" : : "Path to custom attack sound (VORE SNARL)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + snd_misc(sound) : "Path to custom attack2 sound (VOREBALL FIRE)" : : "Path to custom attack2 sound (VOREBALL FIRE)" ] //____TW_EDIT____ -@PointClass base(Monster, CustomMdlsSpawn) size(-16 -16 -24, 16 16 24) studio("progs/tarbaby.mdl") = monster_spawn : "Spawn, Default health = 80 Note: this monster is renamed in progs_dump but unchnaged in all other aspects." +@PointClass base(Monster, CustomMdlsSpawn) size(-16 -16 -24, 16 16 24) studio("progs/tarbaby.mdl") = monster_spawn : "Spawn, Default health = 80 Note: this monster is renamed in progs_dump but unchanged in all other aspects." [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound" -snd_misc(string) : "Path to custom sound (WET SLAPPING)" : : "Path to custom sound (WET SLAPPING)" + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_hit(sound) : "Path to custom hit sound" : : "Path to custom hit sound" + snd_misc(sound) : "Path to custom sound (WET SLAPPING)" : : "Path to custom sound (WET SLAPPING)" ] // @PointClass base(Monster, CustomMdlsSpawn) size(-16 -16 -24, 16 16 24) studio("progs/tarbaby.mdl") = monster_tarbaby : "Spawn // // Default health = 80" // [ -// snd_death(string) : "Path to custom death sound" : "Path to custom death sound" -// snd_sight(string) : "Path to custom sight sound" : "Path to custom sight sound" -// snd_hit(string) : "Path to custom hit sound" : "Path to custom hit sound" -// snd_misc(string) : "Path to custom sound (WET SLAPPING)" : "Path to custom sound (WET SLAPPING)" +// snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" +// snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" +// snd_hit(string) : "Path to custom hit sound" : : "Path to custom hit sound" +// snd_misc(string) : "Path to custom sound (WET SLAPPING)" : : "Path to custom sound (WET SLAPPING)" // ] //____TW_EDIT____ @PointClass base(Monster, Berserk) size(-16 -16 -24, 16 16 24) studio("progs/fish.mdl") = monster_fish : "Rotfish, Default health = 25" [ -snd_death(string) : "Path to custom death sound (BUBBLES)" : : "Path to custom death sound (BUBBLES)" -snd_attack(string) : "Path to custom attack sound (CRUNCHY BITE)" : : "Path to custom attack sound (CRUNCHY BITE)" -snd_idle(string) : "Path to custom idle sound" : : "Path to custom idle sound" -mdl_body(string) : "Path to custom body model" -mdl_gib1(string) : "Path to custom 1st gib model" -mdl_gib2(string) : "Path to custom 2nd gib model" -mdl_gib3(string) : "Path to custom 3rd gib model" + snd_death(sound) : "Path to custom death sound (BUBBLES)" : : "Path to custom death sound (BUBBLES)" + snd_attack(sound) : "Path to custom attack sound (CRUNCHY BITE)" : : "Path to custom attack sound (CRUNCHY BITE)" + snd_idle(sound) : "Path to custom idle sound" : : "Path to custom idle sound" + mdl_body(studio) : "Path to custom body model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" ] @PointClass base(Monster) size(-160 -128 -24, 160 128 256) studio("progs/oldone.mdl") = monster_oldone : "Shub-Niggurath" [ -snd_death(string) : "Path to custom death sound PART 1" : : "Path to custom death sound PART 1" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_misc(string) : "Path to custom death sound PART 2" : : "Path to custom death sound PART 2" -mdl_body(string) : "Path to custom body model" -mdl_gib1(string) : "Path to custom 1st gib model" -mdl_gib2(string) : "Path to custom 2nd gib model" -mdl_gib3(string) : "Path to custom 3rd gib model" -mdl_proj(string) : "Path to custom projectile model" -skin_proj(float) : "Path to custom projectile skin" -] -@PointClass base(Monster) size(-160 -128 -24, 160 128 256) studio("progs/oldone.mdl") = monster_oldone2 : "Killable Shub-Niggurath" -[ -snd_death(string) : "Path to custom death sound (PART 2 GIBBING)" : : "Path to custom death sound (PART 2 GIBBING)" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_misc(string) : "Path to custom death sound (PART 1 DEATH SCREAM)" : : "Path to custom death sound (PART 1 DEATH SCREAM)" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_attack(string) : "Path to custom attack sound (FIREBALL WHOOSH)" : : "Path to custom attack sound (FIREBALL WHOOSH)" -mdl_body(string) : "Path to custom body model" -mdl_gib1(string) : "Path to custom 1st gib model" -mdl_gib2(string) : "Path to custom 2nd gib model" -mdl_gib3(string) : "Path to custom 3rd gib model" -mdl_proj(string) : "Path to custom projectile model" -skin_proj(float) : "Path to custom projectile skin" + snd_death(sound) : "Path to custom death sound PART 1" : : "Path to custom death sound PART 1" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_misc(sound) : "Path to custom death sound PART 2" : : "Path to custom death sound PART 2" + mdl_body(studio) : "Path to custom body model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" + mdl_proj(studio) : "Path to custom projectile model" + skin_proj(integer) : "Index for custom projectile skin" +] + +@PointClass base(Monster) size(-160 -128 -24, 160 128 256) studio("progs/oldone.mdl") sequence(46) = monster_oldone2 : "Killable Shub-Niggurath\n\nDefault health = 1000 (Skill 0), 3000 (Skill 1-3)" + +[ + snd_death(sound) : "Path to custom death sound (PART 2 GIBBING)" : : "Path to custom death sound (PART 2 GIBBING)" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_misc(sound) : "Path to custom death sound (PART 1 DEATH SCREAM)" : : "Path to custom death sound (PART 1 DEATH SCREAM)" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_attack(sound) : "Path to custom attack sound (FIREBALL WHOOSH)" : : "Path to custom attack sound (FIREBALL WHOOSH)" + mdl_body(studio) : "Path to custom body model" + mdl_gib1(studio) : "Path to custom 1st gib model" + mdl_gib2(studio) : "Path to custom 2nd gib model" + mdl_gib3(studio) : "Path to custom 3rd gib model" + mdl_proj(studio) : "Path to custom projectile model" + skin_proj(integer) : "Index for custom projectile skin" ] //____TW_EDIT____ @PointClass base(Monster, CustomMdls, Turret) size(-16 -16 -24, 16 16 32) studio("progs/zombie.mdl") = monster_zombie : "Zombie, Default health = 60. If SPAWN_SLEEPING is used there must be a targetname set. The zombie will stand up when targeted. Crucified motionless zombies are silent and do not animate." //dumptruck_ds [ -snd_death(string) : "Path to custom death sound" : : "Path to custom death sound" -snd_pain(string) : "Path to custom pain sound" : : "Path to custom pain sound" -snd_attack(string) : "Path to custom attack sound (WHOOSH)" : : "Path to custom attack sound (WHOOSH)" -snd_idle(string) : "Path to custom idle sound (CRUCIFIED ONLY)" : : "Path to custom idle sound (CRUCIFIED ONLY)" -snd_misc(string) : "Path to custom (IDLE 2) sound" : : "Path to custom (IDLE 2) sound" -snd_sight(string) : "Path to custom sight sound" : : "Path to custom sight sound" -snd_misc2(string) : "Path to custom (PAIN 2) sound" : : "Path to custom (PAIN 2) sound" -snd_misc3(string) : "Path to custom (FALLING) sound" : : "Path to custom (FALLING) sound" -spawnflags(Flags) = + // SYJ: need this b/c we don't have conditional model({}) definitions (Jack reads this automatically) + sequence(choices) : "Pose to display in editor" : : "No effect in-game. Use recommended when spawnflags 1, 4, or 16 are set." = + [ + 0 : "0 - Default" + 173 : "173 - Crucified" + 194 : "194 - Sleeping" + ] + + snd_death(sound) : "Path to custom death sound" : : "Path to custom death sound" + snd_pain(sound) : "Path to custom pain sound" : : "Path to custom pain sound" + snd_attack(sound) : "Path to custom attack sound (WHOOSH)" : : "Path to custom attack sound (WHOOSH)" + snd_idle(sound) : "Path to custom idle sound (CRUCIFIED ONLY)" : : "Path to custom idle sound (CRUCIFIED ONLY)" + snd_misc(sound) : "Path to custom (IDLE 2) sound" : : "Path to custom (IDLE 2) sound" + snd_sight(sound) : "Path to custom sight sound" : : "Path to custom sight sound" + snd_misc2(sound) : "Path to custom (PAIN 2) sound" : : "Path to custom (PAIN 2) sound" + snd_misc3(sound) : "Path to custom (FALLING) sound" : : "Path to custom (FALLING) sound" + spawnflags(Flags) = [ 1 : "Crucified" : 0 2 : "Ambush" : 0 4 : "Crucified motionless" : 0 - 16 : "Spawn Sleeping" : 0 + 16 : "Spawn Sleeping" : 0 ] ] //start deadstuff entries -- dumptruck_ds -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/demon.mdl") = monster_dead_demon : "Demon Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/demon.mdl") sequence(53) = monster_dead_demon : "Demon Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/shambler.mdl") = monster_dead_shambler : "Shambler Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/shambler.mdl") sequence(93) = monster_dead_shambler : "Shambler Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) offset(0 0 24) studio("progs/soldier.mdl") = monster_dead_army : "Soldier Corpse" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) offset(0 0 24) studio("progs/soldier.mdl") sequence(28) = monster_dead_army : "Soldier Corpse" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "Face Up" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 40) offset(0 0 24) studio("progs/dog.mdl") = monster_dead_dog : "Dog Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 40) offset(0 0 24) studio("progs/dog.mdl") sequence(16) = monster_dead_dog : "Dog Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/enforcer.mdl") = monster_dead_enforcer : "Enforcer Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/enforcer.mdl") sequence(54) = monster_dead_enforcer : "Enforcer Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "Face Up" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/ogre.mdl") = monster_dead_ogre : "Ogre Corpse" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/ogre.mdl") sequence(135) = monster_dead_ogre : "Ogre Corpse" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "Face Up" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/knight.mdl") = monster_dead_knight : "Knight Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/knight.mdl") sequence(96) = monster_dead_knight : "Knight Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -2 : "On Side" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/hknight.mdl") = monster_dead_hell_knight : "Hellknight Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/hknight.mdl") sequence(62) = monster_dead_hell_knight : "Hellknight Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/shalrath.mdl") = monster_dead_shalrath : "Shalrath Corpse" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-32 -32 -24, 32 32 64) studio("progs/shalrath.mdl") sequence(22) = monster_dead_shalrath : "Shalrath Corpse" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/wizard.mdl") = monster_dead_wizard : "Scrag Corpse" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 40) studio("progs/wizard.mdl") sequence(53) = monster_dead_wizard : "Scrag Corpse" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 32) studio("progs/player.mdl") = player_dead_axe: "Player Corpse Axe" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 32) studio("progs/player.mdl") sequence(49) = player_dead_axe: "Player Corpse Axe" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 32) studio("progs/player.mdl") = player_dead_on_side: "Player Corpse on Side" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 32) studio("progs/player.mdl") sequence(102) = player_dead_on_side: "Player Corpse on Side" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 -24, 16 16 32) studio("progs/player.mdl") = player_dead_face_down: "Player Corpse Face Down" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 -24, 16 16 32) studio("progs/player.mdl") sequence(84) = player_dead_face_down: "Player Corpse Face Down" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_demon.mdl") = gib_head_demon : "Demon Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_demon.mdl") = gib_head_demon : "Demon Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_dog.mdl") = gib_head_dog : "Dog Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_dog.mdl") = gib_head_dog : "Dog Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_guard.mdl") = gib_head_army : "Grunt Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_guard.mdl") = gib_head_army : "Grunt Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_hellkn.mdl") = gib_head_hell_knight : "Hellnight Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_hellkn.mdl") = gib_head_hell_knight : "Hellnight Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_knight.mdl") = gib_head_knight : "Knight Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_knight.mdl") = gib_head_knight : "Knight Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_mega.mdl") = gib_head_enforcer : "Enforcer Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_mega.mdl") = gib_head_enforcer : "Enforcer Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_ogre.mdl") = gib_head_ogre : "Orge Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_ogre.mdl") = gib_head_ogre : "Orge Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_player.mdl") = gib_head_player : "Player Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_player.mdl") = gib_head_player : "Player Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_shal.mdl") = gib_head_shalrath : "Shalrath Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_shal.mdl") = gib_head_shalrath : "Shalrath Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_shams.mdl") = gib_head_shambler : "Shambler Head" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_shams.mdl") = gib_head_shambler : "Shambler Head" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_wizard.mdl") = gib_head_wizard : "Wizard Head" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/h_wizard.mdl") = gib_head_wizard : "Wizard Head" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/gib1.mdl") = gib_misc_1 : "Gib 1" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/gib1.mdl") = gib_misc_1 : "Gib 1" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/gib2.mdl") = gib_misc_2 : "Gib 2" //dumptruck_ds +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/gib2.mdl") = gib_misc_2 : "Gib 2" //dumptruck_ds [ -angles(integer) -targetname(string) -spawnflags(Flags) = -[ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] -@PointClass base(Appearflags) size(-16 -16 0, 16 16 56) studio("progs/gib3.mdl") = gib_misc_3 : "Gib 3" //dumptruck_ds -[ -angles(integer) -targetname(string) -spawnflags(Flags) = +@PointClass base(Angles, OneTargetname, Appearflags) size(-16 -16 0, 16 16 56) studio("progs/gib3.mdl") = gib_misc_3 : "Gib 3" //dumptruck_ds [ -0 : "Non-Solid (defaut)" : 0 -1 : "Solid" : 0 -] + skin(integer) : "Skin" + spawnflags(Flags) = + [ + 0 : "Non-Solid (default)" : 0 + 1 : "Solid" : 0 + ] ] + // end of deadstuff -- dumptruck_ds + + // // // // // NEW ERICW TOOLS BRUSH ENTITIES // // // // // -@baseclass = ModelLight - [ - _minlight(integer) : "Min light" : : "Set the minimum light level for any surface of the brush model. Default 0" - _mincolor(color255) : "Min light color R G B" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the colour of the minlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted). Default is white light (255 255 255)" - _shadow(integer) : "Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" - _shadowself(integer) : "Self Shadow" : : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing. Default 0" - _dirt(integer) : "Dirt mapping (override)" : : "For brush models, -1 prevents dirtmapping on the brush model. Useful it the bmodel touches or sticks into the world, and you want to those ares from turning black. Default 0" - _phong(choices) : "Enable Phong shading" : 0 = - [ - 0: "No" - 1: "Yes" - ] - _phong_angle(integer) : "Phong shading angle" : : "Enables phong shading on faces of this model with a custom angle. Adjacent faces with normals this many degrees apart (or less) will be smoothed. Consider setting '_anglescale' to '1' on lights or worldspawn to make the effect of phong shading more visible. Use the '-phongdebug' command-line flag to save the interpolated normals to the lightmap for previewing (use 'r_lightmap 1' or 'gl_lightmaps 1' in your engine to preview.)" - ] -@baseclass = SwitchShadow [ - _switchableshadow(choices) : "Switchable shadow" : 0 : "Enables a switchable shadow that can be controlled with a targeting misc_shadowcontroller." = [ +@BaseClass = ModelLight +[ + _minlight(integer) : "Minimum light level" : : "Set the minimum light level for any surface of the brush model. Default 0" + _mincolor(color255) : "Color of minlight" : "255 255 255" : "Specify red(r), green(g) and blue(b) components for the color of the minlight. RGB component values are between 0 and 255 (between 0 and 1 is also accepted). Default is white light (255 255 255)" + _shadow(integer) : "Cast Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" + _shadowself(integer) : "Self-Shadowed" : : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing. Default 0" + _dirt(integer) : "Dirt mapping (override)" : : "For brush models, -1 prevents dirtmapping on the brush model. Useful it the bmodel touches or sticks into the world, and you want to those ares from turning black. Default 0" + _phong(choices) : "Enable Phong shading" = + [ 0: "No" 1: "Yes" ] + _phong_angle(integer) : "Phong shading angle" : : "Enables phong shading on faces of this model with a custom angle. Adjacent faces with normals this many degrees apart (or less) will be smoothed. Consider setting '_anglescale' to '1' on lights or worldspawn to make the effect of phong shading more visible. Use the '-phongdebug' command-line flag to save the interpolated normals to the lightmap for previewing (use 'r_lightmap 1' or 'gl_lightmaps 1' in your engine to preview.)" ] -@baseclass = Shadow [ - _shadow(integer) : "Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" +@BaseClass = Shadow +[ + _shadow(integer) : "Cast Shadows" : : "If n is 1, this model will cast shadows on other models and itself (i.e. '_shadow' implies '_shadowself'). Note that this doesn’t magically give Quake dynamic lighting powers, so the shadows will not move if the model moves. Func_detail ONLY - If set to -1, light will pass through this brush model. Default 0" _shadowself(integer) : "Self Shadow" : : "If n is 1, this model will cast shadows on itself if one part of the model blocks the light from another model surface. This can be a better compromise for moving models than full shadowing. Default 0" ] -@SolidClass color(128 128 230)base(ModelLight) = func_detail : "Detail brush. Ignored by vis so can speed up compile times consideratbly. Also allows you to set new compiler lighting options on brushes. DOES NOT SEAL MAPS FROM VOID" [] +@BaseClass base(Shadow) = SwitchShadow +[ + _switchableshadow(choices) : "Switchable shadow" : : "Enables a switchable shadow that can be controlled with a targeting misc_shadowcontroller." = [ + "" : "No" + 1 : "Yes" + ] +] + -@SolidClass color(128 128 230)base(ModelLight) = func_detail_illusionary : "func_detail variant with no collision (players / monsters / gunfire) and doesn't split world faces. Doesn't cast shadows unless enabled with _shadow 1. Useful for hanging vines. Still creates BSP leafs." [] +@SolidClass color(128 128 230) base(ModelLight) = func_detail : "Detail brush. Ignored by vis so can speed up compile times consideratbly. Also allows you to set new compiler lighting options on brushes. DOES NOT SEAL MAPS FROM VOID" [] -@SolidClass color(128 128 230)base(ModelLight) = func_detail_wall : "func_detail variant that doesn't split world faces. Useful for when you want a decoration touching a floor or wall to not split the floor - wall faces (you'll get some overdraw instead.) If it completely covers up a world face, that face will get clipped away, so it's not suitable for fence textures; see func_detail_fence instead" [] +@SolidClass color(128 128 230) base(ModelLight) = func_detail_illusionary : "func_detail variant with no collision (players / monsters / gunfire) and doesn't split world faces. Doesn't cast shadows unless enabled with _shadow 1. Useful for hanging vines. Still creates BSP leafs." [] -@SolidClass color(128 128 230)base(ModelLight) = func_detail_fence : "Similar to func_detail_wall except it's suitable for fence textures, never clips away world faces. Useful for fences, grates, etc., that are solid and block gunfire" [] +@SolidClass color(128 128 230) base(ModelLight) = func_detail_wall : "func_detail variant that doesn't split world faces. Useful for when you want a decoration touching a floor or wall to not split the floor - wall faces (you'll get some overdraw instead.) If it completely covers up a world face, that face will get clipped away, so it's not suitable for fence textures; see func_detail_fence instead" [] + +@SolidClass color(128 128 230) base(ModelLight) = func_detail_fence : "Similar to func_detail_wall except it's suitable for fence textures, never clips away world faces. Useful for fences, grates, etc., that are solid and block gunfire" [] @SolidClass base(ModelLight) = func_group : "Brush group. Is treated by qbsp as world brushes but allows you to add light shading settings. _dirt and _shadow currently only accept -1 as a valid setting for func_group" [] +@SolidClass base(ModelLight) = func_illusionary_visblocker : "func_group variant with no collision. Still blocks VIS, unlike func_detail_illusionary. DOES NOT SEAL MAPS FROM VOID" [] + // // // // // END OF NEW ERICW TOOLS BRUSH ENTITIES // @@ -1161,9 +1255,12 @@ spawnflags(Flags) = // // lights // -@BaseClass = Light [ - light(float) : "Light intensity" : 300 - wait(float) : "Scale fade distance" : 1 + +// NRC NOTE: remove `flags(Light)` +@BaseClass flags(Light) = Light +[ + light(float) : "Brightness" : "300" + wait(float) : "Scale fade distance" : : "Default 1" delay(choices) : "Attenuation" : 0 = [ 0 : "Linear attenuation (default)" @@ -1173,14 +1270,14 @@ spawnflags(Flags) = 4 : "Local minlight" 5 : "1/(x^2) attenuation - variation" ] -_falloff(float) : "Falloff distance" : 0 -_color(color255) : "Light color" + _falloff(float) : "Falloff distance" + _color(color255) : "Light color" target(target_destination) : "Spotlight target" - mangle(string) : "Spotlight angle (Yaw Pitch Roll)" : "0 0 0" - angle(float) : "Spotlight angle width" : 40 - _softangle(float) : "Inner spotlight angle width" : 0 - targetname(string) : "Targetname for a switchable light" - style(choices) : "Animated light style" : 0 = + mangle(string) : "Spotlight angle (Yaw Pitch Roll)" : : "Default 0 0 0" + angle(float) : "Spotlight angle width" : : "Default 40" + _softangle(float) : "Inner spotlight angle width" : : "Default 0" + targetname(string) : "Name" : : "Targetname for a switchable light" + style(choices) : "Preset lightstyle" = [ 0 : "Normal" 1 : "Flicker A" @@ -1196,7 +1293,7 @@ _color(color255) : "Light color" 11: "Slow pulse, noblack" 12: "Blink on/off" ] - style2(choices) : "Switchable light animated style" : 0 = + style2(choices) : "Switchable preset lightstyle" = [ 0 : "Normal" 1 : "Flicker A" @@ -1212,29 +1309,30 @@ _color(color255) : "Light color" 11: "Slow pulse, noblack" 12: "Blink on/off" ] - _anglescale(float) : "Light angle scale" : 0.5 - _dirt(choices) : "Light dirtmapping" : 0 = + _anglescale(float) : "Light angle scale" : : "Default 0.5" + _dirt(choices) : "Light dirtmapping" : : "Default 0" = [ -1 : "Disable dirtmapping" 0 : "Inherit from worldspawn _dirt" 1 : "Dirtmapping enabled" ] - _dirtscale(float) : "Light dirtmapping scale" : "1" - _dirtgain(float) : "Light dirtmapping gain" : "1" - _deviance(float) : "Light sphere radius" : "0" - _samples(float) : "Light sphere samples" : "16" + _dirtscale(float) : "Light dirtmapping scale" : : "Default 1" + _dirtgain(float) : "Light dirtmapping gain" : : "Default 1" + _deviance(float) : "Light sphere radius" : : "Default 0" + _samples(float) : "Light sphere samples" : : "Default 16" _surface(string) : "Surface light texturename" - _surface_offset(float) : "Surface light offset" : "2" - _surface_spotlight(choices) : "Surface light spotlight" : 0 = + _surface_offset(float) : "Surface light offset" : : "Default 2" + _surface_spotlight(choices) : "Surface light spotlight" = [ - 0 : "Not a spotlight" + 0 : "Not a spotlight (default)" 1 : "Spotlight" ] - _project_texture(string) : "Project texturename" - _project_mangle(string) : "Project texture angle (yaw pitch roll)" : "0 0 0" - _project_fov(float) : "Project texture fov" : 90 - _bouncescale(float) : "Bounce lighting scale" : 1 - _sun(float) : "Turn light into a sunlight" : 0 + // NRC NOTE: change to _project_texture(string) + _project_texture(shader) : "Texture to project" + _project_mangle(string) : "Projected texture angle (yaw pitch roll)" + _project_fov(float) : "Project texture FOV" : : "Default 90" + _bouncescale(float) : "Bounce lighting scale" : : "Default 1" + _sun(float) : "Is sun" : : "Turn light into a sunlight" ] @BaseClass base(Light, Appearflags) = ToggleLight @@ -1246,7 +1344,7 @@ _color(color255) : "Light color" ] ] -@BaseClass base(Light) = TorchLight +@BaseClass base(Light) = TorchLight // unused? [ spawnflags(Flags) = [ @@ -1254,13 +1352,14 @@ _color(color255) : "Light color" ] ] -@PointClass base(ToggleLight) = light : "Invisible lightsource (can fade up / down if not styled)" [] -@PointClass base(ToggleLight) = light_fluoro : "Invisible lightsource, with fluorescent hum" [] -@PointClass base(ToggleLight) = light_fluorospark : "Invisible lightsource, with broken sparking fluorescent sound" [] -@PointClass base(Light, Appearflags) = light_globe : "Globe sprite light" [] -@PointClass base(Light, Appearflags) size(-8 -8 0, 8 8 76) = light_sprite_flame : "Large animated flame" [] +// SYJ: "sprites/light.spr" is an editor sprite included with Jack +@PointClass base(ToggleLight) iconsprite("sprites/light.spr") = light : "Invisible lightsource (can fade up / down if not styled)" [] +@PointClass base(ToggleLight) iconsprite("sprites/light.spr") = light_fluoro : "Invisible lightsource, with fluorescent hum" [] +@PointClass base(ToggleLight) iconsprite("sprites/light.spr") = light_fluorospark : "Invisible lightsource, with broken sparking fluorescent sound" [] +@PointClass base(Light, Appearflags) sprite("progs/s_light.spr") = light_globe : "Globe sprite light" [] +@PointClass base(Light, Appearflags) size(-8 -8 0, 8 8 76) sprite("progs/s_flame.spr") = light_sprite_flame : "Large animated flame" [] -@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) studio("progs/flame2.mdl") = +@PointClass size(-8 -8 -12, 8 8 20) base(Appearflags, Light, Target, Targetname) studio("progs/flame2.mdl") sequence(1) = light_flame_large_yellow : "Large yellow flame" [ // spawnflags(Flags) = [ 1 : "Start off" : 0 ] @@ -1288,35 +1387,37 @@ _color(color255) : "Light color" 4 : "Silent" ] ] + // // misc // -@PointClass base(Appearflags) = air_bubbles : "Air bubbles" [] +@PointClass base(Appearflags) sprite("progs/s_bubble.spr") = air_bubbles : "Air bubbles" [] @PointClass base(Appearflags, Targetname) = event_lightning : "Chthon's lightning" [] -@PointClass base(Appearflags) = misc_fireball : "Small fireball" +@PointClass base(Appearflags) studio("progs/lavaball.mdl") = misc_fireball : "Small fireball" [ speed(integer) : "Speed" : 40 ] -@PointClass studio("maps/b_explob.bsp") = misc_explobox : "Large nuclear container" [] -@PointClass studio("maps/b_exbox2.bsp") = misc_explobox2 : "Small nuclear container" [] +@PointClass base(Appearflags) size(0 0 0, 32 32 64) studio("maps/b_explob.bsp") = misc_explobox : "Large exploding container" [] +@PointClass base(Appearflags) size(0 0 0, 32 32 32) studio("maps/b_exbox2.bsp") = misc_explobox2 : "Small exploding container" [] //____TW_EDIT____ -@PointClass base(Appearflags, Effects) size(-8 -8 -8, 8 8 8) studio("progs/teleport.mdl") = misc_teleporttrain : "Flying teleporter destination, This was used for the final boss level in the original game. In progs_dump you can use this as a moving decoration or even target it as a spawn point for a func_monster_spawner. Make sure and select the 'Don't Rotate' spawnflag though, or you'll experience a pretty hilarious effect! You set it up like a func_train using path_corners. By default, it will move automatically between path corners upon map load. However, you can have it wait to move by giving it a targetname. If you need to target it as a spawner, and want it to move on map load, use the 'Start On' spawnflag. You can add effects using the dropdown, use a custom model using the mdl_body keyvalue and even make it invisible with spawnflag 8." +@PointClass base(Appearflags, Effects) size(-8 -8 -8, 8 8 8) studio("progs/teleport.mdl") = misc_teleporttrain : "Flying teleporter destination\n\nThis was used for the final boss level in the original game. In progs_dump you can use this as a moving decoration or even target it as a spawn point for a func_monster_spawner. Make sure and select the Don't Rotate spawnflag though or you'll experience a pretty hilarious effect!\n\nYou set this up like a func_train using path_corners. By default, it will move automatically between path corners upon map load. However, you can have it wait to move by giving it a targetname. If you need to target it as a spawner and want it to move on map load, use the Start On spawnflag.\n\nYou can add effects using the dropdown, use a custom model using the mdl_body keyvalue and even make it invisible with spawnflag 8." [ - target(string) : "First path_corner" + target(target_destination) : "First path_corner" targetname(target_source) : "Name" - mdl_body(string) : "Path to custom body model" + mdl_body(studio) : "Path to custom body model" speed(float) : "Speed between path corners" spawnflags(Flags) = [ - 2 : "Don't Rotate (use with func_monster_spawner)" - 4 : "Start On (even with targetname)" - 8 : "Invisible (mdl_body MUST be empty)" + 2 : "Don't Rotate (use with func_monster_spawner)" + 4 : "Start On (even with targetname)" + 8 : "Invisible (mdl_body MUST be empty)" ] ] @PointClass base(Angle, Appearflags, Targetname) color(220 150 150) = trap_spikeshooter : "Triggered shooter - use trigger_multiple to activate" //modified by dumptruck_ds adding Angle and Targetname to baseclass [ + // SYJ: Not setting editor model; an iconsprite() would make more sense for this one. (TODO) spawnflags(Flags) = [ 1 : "Spike" : 0 @@ -1331,6 +1432,7 @@ _color(color255) : "Light color" ] @PointClass base(Angle, Appearflags, Targetname) color(220 150 150) = trap_shooter : "Continuous shooter" //modified by dumptruck_ds adding Angle & Targetname to baseclass [ + // SYJ: Not setting editor model; an iconsprite() would make more sense for this one. (TODO) nextthink(integer) : "Delay before first spike" wait(integer) : "Delay between firing" : 1 spawnflags(Flags) = @@ -1348,6 +1450,7 @@ _color(color255) : "Light color" @PointClass base(Angle, Appearflags, Targetname) color(220 150 150) = trap_switched_shooter : "Continuous shooter can be toggled when targeted, start on or off" //modified by dumptruck_ds adding Angle & Targetname to baseclass [ + // SYJ: Not setting editor model; an iconsprite() would make more sense for this one. (TODO) nextthink(integer) : "Delay before first spike" wait(integer) : "Delay between firing" : 1 state(integer) : "0 initially off, 1 initially on" : 0 @@ -1366,20 +1469,13 @@ _color(color255) : "Light color" //____TW_EDIT____ @PointClass base(Appearflags, Targetname) size(16 16 24) color(255 128 0) = trigger_shake : "Earthquake trigger, shakes players in its radius when active. Strength of tremor is greatest at the centre." - -//dmg = Strength at center (default is 120) -//wait = Duration of shake (default is 1) -//count = Effect radius (defalt is 200) -//noise = Sound file to play when starting to shake -//noise1 = Sound file to play when stopping -//targetname = Must be triggered" -[ - dmg(integer) : "Strength at center (default is 120)" - wait(integer) : "Duration of shake (default is 1)" - count(integer) : "Effect radius (defalt is 200)" - noise(string) : "Noise to play when starting to shake" - noise1(string) : "Noise to play when stopping" - targetname(string) : "Must be triggered" +[ + dmg(integer) : "Strength at center" : 120 + wait(integer) : "Duration of shake" : 1 + count(integer) : "Effect radius" : 200 + noise(sound) : "Noise to play when starting to shake" + noise1(sound) : "Noise to play when stopping" + targetname(string) : "Name" : : "If set, must be triggered" spawnflags(Flags) = [ 1 : "View Only" : 0 @@ -1387,17 +1483,57 @@ _color(color255) : "Light color" ] //____TW_EDIT____ -@SolidClass base(Appearflags, TriggerWait, Targetname) = trigger_ladder : "Invisible ladder entity. When player is touching this entity, they can climb by pressing jump." +@PointClass base(Appearflags, Targetname) size(16 16 24) color(206 18 18) = play_gibs : "Triggerable Gib Effect. If it has a name, then it must be triggered." +[ + style(choices) : "Appearance" : 0 : "''Normal'' is regular gib effect, ''Large'' is more violent" = + [ + 0 : "Normal" + 1 : "Large" + ] + fly_sound(choices) : "Gib sound effects" : 0 = + [ + 0 : "Silent" + 1 : "Random" + ] +] + +//____TW_EDIT____ +@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 200 300) = ltrail_start : "Starting point of a lightning trail. See the manual for set up steps." [ - angle(integer) : "the direction player must be facing to climb ladder" + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition + spawnflags(Flags) = + [ + 1 : "Toggle" : 0 : "Set the Toggle spawnflag if you want the lightning shooter to continuously fire until triggered again." + 2 : "Start On" : 0 : "Set the Start On spawnflag to have the lightning shooter start on (DO NOT USE WITH TOGGLE)" + ] + currentammo(integer) : "Damage" : 25 : "Amount of damage you want the lightning to do" + frags(float) : "Time before next trigger" : "0.3" : "Amount of time before next item is triggered" + weapon(float) : "Duration of each strike" : "0.3" : "Amount of time to be firing the lightning" + sounds(choices) : "Is silent" : 0 : "Does not work with ltrail_relay (it will still make noise.)" = + [ + 0 : No + 1 : Yes + ] ] -@SolidClass base(Appearflags, TriggerWait, Targetname) = trigger_void : "Use this for a 'void' area. Removes monsters, ammo, etc... also kills player" + +//____TW_EDIT____ +@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 200) = ltrail_end : "Ending point of a lightning trail. Does not fire any lightning." [ -spawnflags(Flags) = + frags(float) : "Time before next trigger" : "0.3" : "Amount of time before next item is triggered" +] + +//____TW_EDIT____ +@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 300) = ltrail_relay : "Relay point of a lightning trail." [ - 1 : "No Effect on Monsters" : 0 - 2 : "No Effect on Players" : 0 + currentammo(integer) : "Damage" : 25 : "Amount of damage you want the lightning to do" + frags(float) : "Time before next trigger" : "0.3" : "Amount of time before next item is triggered" + weapon(float) : "Duration of each strike" : "0.3" : "Amount of time to be firing the lightning" ] + +//____TW_EDIT____ +@SolidClass base(Appearflags, TriggerWait, Targetname) = trigger_ladder : "Invisible ladder entity. When player is touching this entity, they can climb by pushing jump." +[ + angle(integer) : "Angle" : : "the direction player must be facing to climb ladder" ] @SolidClass base(Appearflags, OneTargetname) = trigger_monsterface : "Running monsters that do not see their target and touch this will face in the direction of the trigger's angle instead of the unseen target. Use this trigger to make monsters leave their sniping spot and execute complex maneuvers." @@ -1406,27 +1542,21 @@ spawnflags(Flags) = wait(integer) : "time to wait between retriggers" ] -@PointClass base(Appearflags, Trigger) = trigger_filter : "Relays only if a given condition evaluates to true. - -Ultimate scripting ability. You can test various fields on the entity targeted by the 'include' field (you can target another entity's 'targetname2' as well). If you let the 'include' field empty, it'll test against the activating entity, be it the player, a monster or anything else - see trigger_everything for more details. - -You can, for example, relay a trigger only if a door or plat is in a certain position, or if a targeted enemy is alive/dead, or below a certain health amount, or if the player is carrying some specific weapon or item - the possibilites are almost endless. - -In case you're filtering to activate only in case if it's a specific weapon projectile (like a grenade), you can make the targets fire with the activating entity's owner as the activator - say, if the trigger is activated by a player's grenade, it'll fire with the player as activator. - -There are various fields available to test, selectable through the 'style' key. They all fall into three field types (float, flag and string), and for each there's a set of operations available to evaluate, selectable through the 'weapon' key. -- Float types can do all operations, and are compared to this entity's 'count' field. -- Flag types support Equal and bitwise AND, and are compared to the 'aflag' field. -- String types have only Equal evaluation, and are compared to this entity's 'type' field. +@SolidClass base(Appearflags, TriggerWait, OneTargetname) = trigger_void : "Use this for a 'void' area. Removes monsters, ammo, etc... also kills player" +[ + spawnflags(Flags) = + [ + 1 : "No Effect on Monsters" : 0 + 2 : "No Effect on Players" : 0 + ] +] -You can set the trigger to fire if the condition evaluates to false by activating the spawnflag 'Trigger if false'. It'll never fire if the entity targeted by 'include' isn't found, regardless of this spawnflag. -If you need to evaluate more than one condition, you can chain multiple filters in a row. -Also, the state of the last evaluation is stored in this entity's 'state' field (1 for fired, 0 for not fired). -" +@PointClass base(Appearflags, Trigger) = trigger_filter : "Relays only if a given condition evaluates to true.\n\nUltimate scripting ability. You can test various fields on the entity targeted by the 'include' field (you can target another entity's 'targetname2' as well). If you let the 'include' field empty, it'll test against the activating entity, be it the player, a monster or anything else - see trigger_everything for more details.\n\nYou can, for example, relay a trigger only if a door or plat is in a certain position, or if a targeted enemy is alive/dead, or below a certain health amount, or if the player is carrying some specific weapon or item - the possibilities are almost endless.\n\nIn case you're filtering to activate only in case if it's a specific weapon projectile (like a grenade), you can make the targets fire with the activating entity's owner as the activator - say, if the trigger is activated by a player's grenade, it'll fire with the player as activator.\n\nThere are various fields available to test, selectable through the 'style' key. They all fall into three field types (float, flag and string), and for each there's a set of operations available to evaluate, selectable through the 'weapon' key.\n- Float types can do all operations, and are compared to this entity's 'count' field.\n- Flag types support Equal and bitwise AND, and are compared to the 'aflag' field.\n- String types have only Equal evaluation, and are compared to this entity's 'type' field.\n\nYou can set the trigger to fire if the condition evaluates to false by activating the spawnflag 'Trigger if false'. It'll never fire if the entity targeted by 'include' isn't found, regardless of this spawnflag.\n\nIf you need to evaluate more than one condition, you can chain multiple filters in a row.Also, the state of the last evaluation is stored in this entity's 'state' field (1 for fired, 0 for not fired)." [ - include(target_destination) : "Entity's targetname to evaluate (leave empty to evaluate the activator)" - style(choices) : "Field to evaluate" : 0 =[ + include(target_destination) : "Entity to evaluate" : : "Entity's targetname to evaluate (leave empty to evaluate the activator)" + style(choices) : "Field to evaluate" : 0 = + [ 0 : "state (float, use 'count' field)" 1 : "health (float, use 'count' field)" 2 : "weapon (float, use 'count' field)" @@ -1449,40 +1579,32 @@ Also, the state of the last evaluation is stored in this entity's 'state' field //6 : "| (bitwise OR, valid for floats and flags)" ] count(integer) : "Float value to test" - aflag(flags) = [] + // SYJ - only Trenchbroom and Strata Hammer properly handle flags KV type for KVs other than spawnflags; Jack flat-out omits them + aflag(integer) : "Spawnflags to test" type(string) : "String value to test" - spawnflags(flags) = [ + spawnflags(flags) = + [ 1: "Trigger if false" 2: "Relay owner as activator" ] ] -@SolidClass base(Appearflags, Targetname, OneTarget, TriggerWait) = trigger_everything : " -A no-holds-barred touchable trigger. Everything triggers it. Players, monsters, projectiles, gibs, even solid entities like doors and plats. - -It can only fire targets matching its 'target' field. Doesn't have support for the 'target2-4' fields, neither 'message' nor 'killtarget'. Useful when used in conjunction with the trigger_filter point entity to filter out its firing. - -By default it'll fire for each and every registered touch, even if simultaneous. If given a 'wait' value, it'll act like a trigger_multiple, where a single activation puts it on hold for 'wait' seconds. If the target is a trigger_filter, you can set it to wait only if the filter evaluates to true. -" +@SolidClass base(Appearflags, Targetname, OneTarget, TriggerWait) = trigger_everything : "A no-holds-barred touchable trigger. Everything triggers it. Players, monsters, projectiles, gibs, even solid entities like doors and plats.\n\nIt can only fire targets matching its 'target' field. Doesn't have support for the 'target2-4' fields, neither 'message' nor 'killtarget'. Useful when used in conjunction with the trigger_filter point entity to filter out its firing.\n\nBy default it'll fire for each and every registered touch, even if simultaneous. If given a 'wait' value, it'll act like a trigger_multiple, where a single activation puts it on hold for 'wait' seconds. If the target is a trigger_filter, you can set it to wait only if the filter evaluates to true." [ wait(integer) : "Wait before reset" : 0 spawnflags(flags) = [ - 1: "Wait only if trigger_filter evaluates to true" + 1: "Wait only if trigger_filter == true" ] ] -@PointClass base(Appearflags, Targetname) = target_setcount : "Changes the targeted entity's 'count' field. Targets both targetname and targetname2 fields. -Can be used with a trigger_filter to dinamically change its comparing value, or to reset/change a trigger_counter's current use count. - -You can either replace the current value with a new one, or add/subtract to it (by using a positive or negative 'count'), by selecting into the 'style' field. -" +@PointClass base(Appearflags, Targetname) = target_setcount : "Changes the targeted entity's 'count' field. Targets both targetname and targetname2 fields.\nCan be used with a trigger_filter to dinamically change its comparing value, or to reset/change a trigger_counter's current use count.\n\nYou can either replace the current value with a new one, or add/subtract to it (by using a positive or negative 'count'), by selecting into the 'style' field." [ target(target_destination) : "Target" - target2(target_destination) : "Target" - target3(target_destination) : "Target" - target4(target_destination) : "Target" + target2(target_destination) : "Target 2" + target3(target_destination) : "Target 3" + target4(target_destination) : "Target 4" style(choices) : "Set style" : 0 = [ 0 : "Replace" 1 : "Add" @@ -1493,44 +1615,6 @@ You can either replace the current value with a new one, or add/subtract to it ( ] ] -//____TW_EDIT____ -@PointClass base(Appearflags, Targetname) size(16 16 24) color(206 18 18) = play_gibs : "Triggerable Gib Effect. style = 0 is regular gib effect, 1 is more violent. fly_sound = 0 is silent, 1 plays randomized gib sounds. targetname = Must be triggered" -[ - style(Choices) : "Appearance" : 0 = - [ - 0 : "Normal" - 1 : "Large" - ] - fly_sound(integer) : "Play gib sound effects" : 0 -] - -//____TW_EDIT____ -@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 200 300) = ltrail_start : "Starting point of a lightning trail. See the manual for set up steps. Set 'currentammo' key to amount of damage you want the lightning to do. Default = 25. Set 'frag' key to amount of time before next item is triggered. Default is 0.3 seconds. Set 'weapon' key to amount of time to be firing the lightning. Default is 0.3 seconds. Set 'sounds' key to 1 for silence, Default is 0. Does not work with trail_relay (it will still make noise.) Set the 'Toggle' spawnflag if you want the lightning shooter to continuously fire until triggered again. Set the 'Start On' spawnflag to have the lightning shooter start on (DO NOT USE WITH TOGGLE)" -[ -spawnflags(Flags) = -[ - 1 : "Toggle" : 0 - 2 : "Start On" : 0 -] - currentammo(integer) : "Damage" : 0 - frags(float) : "Time before next trigger" : "0.3" - weapon(float) : "Duration of each strike" : "0.3" - sounds(integer) : "Set to 1 for silence (?)" : 0 -] - -//____TW_EDIT____ -@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 200) = ltrail_end : "Ending point of a lightning trail. Does not fire any lightning. Set 'frags' to amount of time before next item is triggered, Default is 0.3 seconds." -[ - frags(float) : "Time before next trigger" : "0.3" -] - -//____TW_EDIT____ -@PointClass base(Appearflags, OneTarget, OneTargetname) size(16 16 16) color(0 150 300) = ltrail_relay : "Relay point of a lightning trail. Set 'currentammo' to amount of damage you want the lightning to do, Default is 25. Set 'frags' to amount of time before next item is triggered, Default is 0.3 seconds. Set 'weapon' to amount of time to be firing the lightning, Default is 0.3 seconds." -[ - currentammo(integer) : "Damage" : 0 - frags(float) : "Time before next trigger" : "0.3" - weapon(float) : "Duration of each strike" : "0.3" -] //@SolidClass = func_group : "Group of brushes for in-editor use" [] // @SolidClass = func_detail : "Group of brushes for certain compilers " [] @@ -1539,24 +1623,23 @@ spawnflags(Flags) = // ambient sounds // -@PointClass = ambient_drip : "Dripping sound" [] -@PointClass = ambient_drone : "Engine/machinery sound" [] -@PointClass = ambient_comp_hum : "Computer background sounds" [] -@PointClass = ambient_flouro_buzz : "Fluorescent buzzing sound" [] -@PointClass = ambient_light_buzz : "Buzzing sound from light" [] -@PointClass = ambient_suck_wind : "Wind sound" [] -@PointClass = ambient_swamp1 : "Frogs croaking" [] -@PointClass = ambient_swamp2 : "Frogs croaking B" [] - -//____TW_EDIT____ -@PointClass base(Appearflags) color(255 0 150) = ambient_thunder : "Random Thunder sound. Originally unused in the game. Plays the sound of thunder at a random interval. You only need one of these in your map. It will play everywhere. If you want it to play locally instead, use a play_sound with the appropriate speed setting. The path for the sound is: ambience/thunder1.wav" [] -@PointClass = ambient_water1 : "Swirling Water Sound" [] -@PointClass = ambient_wind2 : "Sky Wind Sound" [] +// SYJ - "sprites/speaker.spr" is an editor sprite included with Jack +@PointClass iconsprite("sprites/speaker.spr") = ambient_drip : "Dripping sound" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_drone : "Engine/machinery sound" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_comp_hum : "Computer background sounds" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_flouro_buzz : "Fluorescent buzzing sound" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_light_buzz : "Buzzing sound from light" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_suck_wind : "Wind sound" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_swamp1 : "Frogs croaking" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_swamp2 : "Frogs croaking B" [] +@PointClass base(Appearflags) color(255 0 150) iconsprite("sprites/speaker.spr") = ambient_thunder : "Random Thunder sound.\nOriginally unused in the game. Plays the sound of thunder at a random interval. You only need one of these in your map. It will play everywhere. If you want it to play locally instead, use a play_sound with the appropriate speed setting. The path for the sound is: ambience/thunder1.wav" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_water1 : "Swirling Water Sound" [] +@PointClass iconsprite("sprites/speaker.spr") = ambient_wind2 : "Sky Wind Sound" [] // // moving things // -@baseclass base(Appearflags, Targetname, Target) = Door +@BaseClass base(Appearflags, Targetname, Target) = Door // unused? [ speed(integer) : "Speed" : 100 sounds(choices) : "Sound" : 1 = @@ -1576,7 +1659,7 @@ spawnflags(Flags) = health(integer) : "Health (shoot open)" : 0 ] -@SolidClass base(Angle, Appearflags, Targetname, Target) = func_door : "Basic door" +@SolidClass base(Angle, Appearflags, Targetname, Target, SwitchShadow) = func_door : "Basic door" [ speed(integer) : "Speed" : 100 sounds(choices) : "Sound" : 0 = @@ -1587,8 +1670,8 @@ spawnflags(Flags) = 3: "Stone Chain" 4: "Screechy Metal" ] - wait(string) : "Wait before close" : "3" - delay(string) : "Delay before trigger" + wait(float) : "Wait before close" : "3" + delay(float) : "Delay before trigger" lip(integer) : "Lip" : 8 dmg(integer) : "Damage inflicted when blocked" : 2 message(string) : "Message if touched" @@ -1598,11 +1681,11 @@ spawnflags(Flags) = 0 : "Don't leave key in player's inventory" 1 : "Leave key in player's inventory" ] - keyname(string) : "Sets the keyname of the item_key_custom which unlocks this entity. If any key spawnflag is selected (either silver or gold), this only changes the display name of the required key." - noise1(string) : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" - noise2(string) : "Sound file for the 'move' sound (if set, overrides 'sounds')" - noise3(string) : "Sound file for the 'key required' sound (default is per worldtype)" - noise4(string) : "Sound file for the 'key used' sound (default is per worldtype)" + keyname(string) : "Required Key" : "Sets the keyname of the item_key_custom which unlocks this entity. If any key spawnflag is selected (either silver or gold), this only changes the display name of the required key." + noise1(sound) : "Sound - Stop Moving" : : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" + noise2(sound) : "Sound - Move" : : "Sound file for the 'move' sound (if set, overrides 'sounds')" + noise3(sound) : "Sound - Key Required" : : "Sound file for the 'key required' sound (default is per worldtype)" + noise4(sound) : "Sound - Use Key" : : "Sound file for the 'key used' sound (default is per worldtype)" spawnflags(flags) = [ 1 : "Starts Open" : 0 @@ -1614,13 +1697,13 @@ spawnflags(Flags) = ] ] -@SolidClass base(Appearflags, Targetname, Target) = func_door_secret : "Secret door" +@SolidClass base(Appearflags, Targetname, Target, SwitchShadow) = func_door_secret : "Secret door" [ angle(integer) : "Direction of second move" t_width(integer) : "First move length" t_length(integer) : "Second move length" dmg(integer) : "Damage when blocked" : 2 - wait(string) : "Wait before close" : "2" + wait(float) : "Wait before close" : "2" sounds(choices) : "Sounds" : 3 = [ 1: "Medieval" @@ -1638,10 +1721,19 @@ spawnflags(Flags) = ] ] -@SolidClass base(Appearflags, Targetname, Effects, Shadow, SwitchShadow, ModelLight) = func_wall : "Wall, starts animation when triggered (if supporting texture) -Effects will require an origin brush to work properly (see func_fall2 in manual for details)" [] +// @SolidClass base(Appearflags, Targetname) = func_breakable : "An object that can be broken apart by shooting or being axed." +// [ +// dmg(integer) : "Explosion damage" : 0 +// spawnflags(Flags) = +// [ +// 1 : "No monster damage" : 0 +// 2 : "Explode" : 0 +// ] +// ] -@SolidClass base(Appearflags, Targetname, Effects, ModelLight) = func_togglevisiblewall : "A bmodel which you can toggle its visibility. Behaves much like a traditional func_wall in any other way, but you can target it to toggle visible/invisible. +@SolidClass base(Appearflags, Targetname, Effects, ModelLight, SwitchShadow) = func_wall : "Wall, starts animation when triggered (if supporting texture).\nEffects will require an origin brush to work properly (see func_fall2 in manual for details)" [] + +@SolidClass base(Appearflags, Targetname, Effects, ModelLight, SwitchShadow) = func_togglevisiblewall : "A bmodel which you can toggle its visibility. Behaves much like a traditional func_wall in any other way, but you can target it to toggle visible/invisible. If the entity has a switchable shadow it also toggles automatically (no need for a shadow controller)." [ spawnflags(flags) = @@ -1649,93 +1741,96 @@ If the entity has a switchable shadow it also toggles automatically (no need for 1 : "Start Off" : 0 2 : "Non-solid" : 0 ] - _switchableshadow(choices) : "Switchable shadow" : 0 : "Enables dynamic shadows that toggle on/off with the entity" = [ - 0: "No" - 1: "Yes" - ] - ] -@SolidClass base(Targetname, Shadow, SwitchShadow) = func_shadow : "An invisible, non-solid brush entity that can be used to cast shadows. " [] + +@SolidClass base(Targetname, SwitchShadow) = func_shadow : "An invisible, non-solid brush entity that can be used to cast shadows. " [] //____TW_EDIT____ @SolidClass base(Appearflags, Targetname) = func_explobox : "An exploding brush entity. Works just like misc_explobox." -//Keys: -//health default 20 -//dmg default 100" [ -health(integer) : "Health" : 20 -dmg(integer) : "Damage" : 100 + health(integer) : "Health" : 20 + dmg(integer) : "Damage" : 100 ] //____TW_EDIT____ -@SolidClass base(Appearflags, Targetname) = func_togglewall : "Creates a invisible wall that can be toggled on and off. 'Start Off' wall doesn't block until triggered. 'noise' is the sound to play when wall is turned off. 'noise1' is the sound to play when wall is blocking. 'dmg' is the amount of damage to cause when touched." +@SolidClass base(Appearflags, Targetname) = func_togglewall : "Creates a invisible wall that can be toggled on and off." [ - noise(string) : "Power off sound" - noise1(string) : "Sound when touched" - dmg(integer) : "Amount of damage when touched" : 0 + noise(sound) : "Power off sound" : : "Sound to play when wall is turned off." + noise1(sound) : "Sound when touched" : : "sound to play when wall is blocking." + dmg(integer) : "Collision damage" : 0 : "Amount of damage when touched" spawnflags(flags) = [ - 1 : "Start Off" : 0 + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition + 1 : "Start Off" : 0 : "Wall doesn't block until triggered" ] ] //____TW_EDIT____ -@SolidClass base(Appearflags, Targetname) = func_particlefield : "Creates a brief particle flash roughly the size of the defining brush each time it is triggered. Set 'USE_COUNT' when the activator is a func_counter, the field will only activate when 'count' is equal to 'cnt'. Same as using a 'func_oncount' to trigger. 'cnt' is the count to activate on when 'USE_COUNT' is set. 'color' is the color of the particles, Default is 192 (yellow). 'count' is the density of the particles, Default is 2. 'noise' is the sound to play when triggered. Do not use a looping sound here. 'dmg' is the amount of damage to cause when touched." -//NOTE - noise seems to be missing? +@SolidClass base(Appearflags, Targetname) = func_particlefield : "Creates a brief particle flash roughly the size of the defining brush each time it is triggered." [ - cnt(integer) : "Number to activate" : 0 - color(integer) : "Palette index for color" : 192 + cnt(integer) : "Number to activate" : 0 : "Count to activate on when USE_COUNT is set." + color(integer) : "Palette index for color" : 192 : "Color of the particles. Default is 192 (yellow)." count(integer) : "Density of particles" : 2 - dmg(integer) : "Amount of damage when touched" : 0 + // SYJ - add missing noise KV + noise(sound) : "Sound when triggered" : : "Sound to play when triggered. Do not use a looping sound here." + dmg(integer) : "Damage when touched" : 0 : "Amount of damage to cause when touched." spawnflags(flags) = [ - 1 : "Use Count" : 0 + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition + 1 : "Use Count" : 0 : "When the activator is a func_counter, the field will only activate when count is equal to cnt. Same as using a func_oncount to trigger." ] ] -@SolidClass base(Appearflags, OneTargetname) = func_bob : "A SOLID bmodel that gently moves back and forth." + +@SolidClass base(Appearflags, OneTargetname, ModelLight, Shadow) = func_bob : "A SOLID bmodel that gently moves back and forth." [ - angle(integer) : "direction movement, use 360 for angle 0" : 0 - height(integer) : "direction intensity" : 8 - count(integer) : "direction cycle timer minimum = 1" : 2 - waitmin(integer) : "Speed up scale default = 1, 1+ =non linear" : 1 - waitmin2(integer) : "Slow down scale default = 0.75" - delay(integer) : "Starting time delay defualt = 0, -1 = random" - style(integer) : "If set to 1, starts off and waits for trigger" - _dirt(integer) : "-1 = will be excluded from dirtmapping" - _minlight(integer) : "Minimum light level for any surface of the brush model" - _mincolor(integer) : "Minimum light color for any surface (default = '1 1 1' RGB)" - _shadow(integer) : "Will cast shadows on other models and itself" - _shadowself(integer) : "Will cast shadows on itself" + angle(integer) : "Direction of movement" : : "Use 360 for angle 0" + height(integer) : "Direction intensity" : 8 + count(integer) : "Direction cycle timer" : 2 : "Minimum = 1" + waitmin(integer) : "Speed up scale" : 1 : "Default = 1, 1+ =non linear" + waitmin2(float) : "Slow down scale" : "0.75" + delay(integer) : "Starting time delay" : 0 : "Default = 0, -1 = random" + style(choices) : "Wait for trigger?" : : "If set to 1, starts off and waits for trigger" = + [ + "" : No + 1 : Yes + ] spawnflags(flags) = [ - 2 : "BOB_COLLISION" : 2 - 4 : "BOB_NONSOLID" : 0 + // 1 : "Start off" : 0 // DISABLED, Ripped out ESTATE System (RennyC) + 2 : "BOB_COLLISION" : 1 // why is this exposed? + 4 : "Not solid" : 0 ] ] -@PointClass base(Appearflags, OneTargetname) size(16 16 16) color(255 128 0) = misc_bob : "A model that gently moves back and forth." +@PointClass base(Appearflags, OneTargetname) size(16 16 16) color(255 128 0) studio() = misc_bob : "A model that gently moves back and forth." [ - angle(integer) : "direction movement, use 360 for angle 0" : 0 - height(integer) : "direction intensity" : 8 - count(integer) : "direction cycle timer minimum = 1" : 2 - waitmin(integer) : "Speed up scale default = 1, 1+ =non linear" : 1 - waitmin2(integer) : "Slow down scale default = 0.75" - delay(integer) : "Starting time delay defualt = 0, -1 = random" - style(integer) : "If set to 1, starts off and waits for trigger" - mdl(string) : "Path to mdl file" - skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" + mdl(studio) : "Model" : : "Path to mdl file" + skin(integer) : "Skin" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" + angle(integer) : "Direction of movement" : : "Use 360 for angle 0" + height(integer) : "Direction intensity" : 8 + count(integer) : "Direction cycle timer" : 2 : "Minimum = 1" + waitmin(integer) : "Speed up scale" : 1 : "Default = 1, 1+ =non linear" + waitmin2(float) : "Slow down scale" : "0.75" + delay(integer) : "Starting time delay" : 0 : "Default = 0, -1 = random" + style(choices) : "Wait for trigger?" : : "If set to 1, starts off and waits for trigger" = + [ + "" : No + 1 : Yes + ] + spawnflags(flags) = [ - 2 : "BOB_COLLISION (default)" : 2 - 4 : "BOB_NONSOLID" : 0 + 2 : "BOB_COLLISION" : 1 // why is this exposed? + 4 : "Not solid" : 0 ] ] -@PointClass base(Appearflags, Targetname) size(16 16 16) color(64 64 64) = misc_shadowcontroller : "Controls switchable shadows on any bmodel entity (except doors). -Target this entity to toggle the shadows on/off with an optional fading animation. -Targeted bmodel must have _switchableshadow set to 1. +@PointClass base(Appearflags, Targetname) size(16 16 16) color(64 64 64) = misc_shadowcontroller : "Controls switchable shadows on any bmodel entity (except doors).\n +Target this entity to toggle the shadows on/off with an optional fading animation.\n\n + +Targeted bmodel must have _switchableshadow set to 1.\n\n If the target entity changes its default behavior when 'targetname' is set (such as breakables), you can target the entity's 'targetname2' key." [ @@ -1750,58 +1845,86 @@ If the target entity changes its default behavior when 'targetname' is set (such ] -@PointClass base(Appearflags, Targetname, Target) size(16 16 16) color(255 200 0) = misc_sparks : "Produces a burst of yellow sparks at random intervals. If targeted, it will toggle between on or off. If it targets a light, that light will flash along with each burst of sparks. Note: targeted lights should be set to START_OFF. Set sounds key to 1 for built-in spark sound effect or target a play_sound_triggered for a custom sound." +@PointClass base(Appearflags, Targetname, Target) size(16 16 16) color(255 200 0) = misc_sparks : "Produces a burst of yellow sparks at random intervals.\n\n + +If targeted, it will toggle between on or off. If it targets a light, that light will flash along with each burst of sparks. Note: targeted lights should be set to START_OFF. Set sounds key to 1 for built-in spark sound effect or target a play_sound_triggered for a custom sound." [ - wait(integer) : "is the average delay between bursts (variance is 1/2 wait). Default is 2." - cnt(integer) : "is the average number of sparks in a burst (variance is 1/4 cnt). Default is 15." - sounds(integer) : "set to 1 for built-in spark sound effect. Default is 0 - silent." - noise(string) : "Path to custom spark sound, requires 'sounds' be set to 1" + wait(integer) : "Avg delay between bursts" : 2 : "The average delay between bursts (variance is 1/2 wait). Default is 2." + cnt(integer) : "Avg num sparks in burst" : 15 : "is the average number of sparks in a burst (variance is 1/4 cnt). Default is 15." + sounds(choices) : "Play sound?" : : "set to 1 for built-in spark sound effect. Default is 0 - silent." = + [ + "" : No + 1 : Yes + ] + noise(sound) : "Sound to play" : : "Path to custom spark sound, requires 'sounds' be set to 1" + spawnflags(flags) = [ - 1 : "START_OFF" : 0 - 2 : "SPARKS_BLUE" : 0 - 4 : "SPARKS_PALE" : 0 + 1 : "Start off" : 0 + 2 : "Blue sparks" : 0 + 4 : "Pale sparks" : 0 ] ] @PointClass base(Appearflags, Targetname) size(16 16 16) color(0 200 200) = misc_particles : "Produces a continuous particle splash for waterfalls and other effects." [ - color(integer) : "color of particles. 0 through 15, corresponds to a row of the quake palette. (default 0)" - movedir(integer) : "average movement vector of particles (default 0 0 4)" - wait(integer) : "time between particle generation cycles. (default 0.1)" - volume(integer) : "density of particles. (default 10)" + color(choices) : "Particle color" : 0 : "color of particles. 0 through 15, corresponds to a row of the quake palette. (default 0)" = + [ + 0 : "0 - White" + 1 : "1 - Brown" + 2 : "2 - Light Blue" + 3 : "3 - Green" + 4 : "4 - Crimson" + 5 : "5 - Orange" + 6 : "6 - Gold" + 7 : "7 - Nougat" + 8 : "8 - Lavender" + 9 : "9 - Purple" + 10 : "10 - Tan" + 11 : "11 - Light Green" + 12 : "12 - Yellow" + 13 : "13 - Blue" + 14 : "14 - Fire" + 15 : "15 - Fullbrights" + ] + movedir(string) : "Avg Direction" : "0 0 4" : "average movement vector of particles (default 0 0 4)" + wait(integer) : "Delay between cycles" : "0.1" : "time between particle generation cycles. (default 0.1)" + volume(integer) : "Density" : 10 : "density of particles. (default 10)" spawnflags(flags) = [ - 1 : "START_OFF" : 0 + 1 : "Start off" : 0 ] ] @PointClass base(Appearflags, Targetname) size(16 16 16) color(0 200 225) = misc_particlespray : "Shoots particles either when triggered, or contiuously when not triggered by anything." [ - color(integer) : "is the palette color of the particles. (default 47)" - movedir(integer) : "is the vector distance that the particles will travel before disappearing. (in x y z)" - delay(integer) : "is the delay between each triggering (default 0.1)" - duration(integer) : "is the amount of time that the it will continue to release particles so that it can release a long stream of particles with only one triggering" - count(integer) : "is the number of particles to make each time (default 15)" - noise(string) : "is the name of the wav file to play when triggered" + color(integer) : "Particle color index" : 47 : "The palette color of the particles. (default 47)" + movedir(string) : "Spray distance (X Y Z)" : "0 0 0" : "The vector distance that the particles will travel before disappearing. (in x y z)" + delay(float) : "Delay between cycles" : "0.1" : "The delay between each triggering (default 0.1)" + duration(integer) : "Duration" : : "is the amount of time that the it will continue to release particles so that it can release a long stream of particles with only one triggering" + count(integer) : "Number of particles" : 15 : "The number of particles to make each time (default 15)" + noise(sound) : "Sound when triggered" : : "The name of the WAV file to play when triggered" ] //____TW_EDIT____ -@PointClass base(Appearflags, Target, Targetname) size(16 16 16) color(0 255 255) = misc_particle_stream : "A particle stream! It appears when triggered. This entity is one end of the stream, target another entity as the other end-point. I used the 'info_notnull', but you should be able to target anything, even monsters. 'dmg' 1st Color - Use if you want a single color stream. 'cnt' 2nd Color - Mixes particles of both colors. 'noise' - Sound to play when triggered. NOTE: To have a continuous stream use a 'func_counter' as the target, then set the 'misc_particle_stream' as the target of the 'func_counter'. Finally, set the Looping spawnflag on the counter." +@PointClass base(Appearflags, Target, Targetname) size(16 16 16) color(0 255 255) = misc_particle_stream : "A particle stream! It appears when triggered.\n\n + +This entity is one end of the stream, target another entity as the other end-point. I used the info_notnull, but you should be able to target any non-static entity, even monsters.\n\n + +NOTE: To have a continuous stream use a func_counter as the target, then set the misc_particle_stream as the target of the func_counter, finally set the Looping spawnflag on the counter" [ - target(target_source) : "End-point of the stream" - dmg(integer) : "1st Color" : 0 - cnt(integer) : "2nd Color" : 0 - noise(string) : "Path of sound when triggered" + target(target_destination) : "End-point of the stream" + dmg(integer) : "Color 1 palette index" : 0 : "Use if you want a single color stream" + cnt(integer) : "Color 2 palette index" : 0 : "Mixes particles of both colors" + noise(sound) : "Path of sound when triggered" ] -@SolidClass base(Angle, Appearflags, Targetname, Target, Message) = func_button : "Button" //modified by dumptruck_ds to add Target +@SolidClass base(Angle, Appearflags, Targetname, Target, Message, SwitchShadow) = func_button : "Button" //modified by dumptruck_ds to add Target [ speed(integer) : "Speed" : 40 lip(integer) : "Lip" : 4 - //target(target_source) : "Target" //modified by dumptruck_ds health(integer) : "Health (shootable)" - sounds(choices) : "Sounds" = + sounds(choices) : "Sounds" : 0 = [ 0 : "Steam metal" 1 : "Wooden clunk" @@ -1821,9 +1944,8 @@ If the target entity changes its default behavior when 'targetname' is set (such ] speed(integer) : "Speed" : 40 lip(integer) : "Lip" : 4 - //target(target_source) : "Target" //modified by dumptruck_ds health(integer) : "Health (shootable)" - sounds(choices) : "Sounds" = + sounds(choices) : "Sounds" : 0 = [ 0 : "Steam metal" 1 : "Wooden clunk" @@ -1834,20 +1956,8 @@ If the target entity changes its default behavior when 'targetname' is set (such delay(integer) : "Delay before trigger" message(string) : "Message" ] -@SolidClass base(Appearflags, Targetname) = func_train : "Trains are moving platforms that players, monsters and items can ride on. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. -Use path_corner as targets. -If given a targetname, it'll only start moving after triggered. -path_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path. - -'pausetime' sets a default waiting time when a value is not defined in path_corners. -'speed' sets the initial moving speed. If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards. -Spawnflags: -- 'Move on trigger' will force the train to resume its path when triggered, even when temporarily waiting at a path_corner. -- 'Stop on trigger' will stop the train at the next path_corner when triggered. Trigger it again to resume. -The flags above are mutually exclusive and will cause an objerror when selected simultaneously. -- 'Custom alignment' allows you to directly specify how the train is offset relative to its path_corners using an 'origin' brush instead of using the vanilla corner alignment. -" +@SolidClass base(Appearflags, Targetname) = func_train : "Trains are moving platforms that players, monsters and items can ride on. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at.\nUse path_corner as targets.\nIf given a targetname, it'll only start moving after triggered.\npath_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path.\n\n'Move on trigger' and 'Stop on trigger' are mutually exclusive and will cause an objerror when selected simultaneously." [ sounds(choices) : "Sound" : 1 = [ @@ -1856,42 +1966,26 @@ The flags above are mutually exclusive and will cause an objerror when selected 2: "Base door" ] - speed(integer) : "Speed (units per second)" : 100 - pausetime(integer) : "Default wait time" : : "Wait time used when not defined in path_corner." + speed(integer) : "Initial Speed" : 100 : "Initial moving speed (in units per second). If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards" + pausetime(float) : "Default wait time" : : "Wait time used when not defined in path_corner." target(target_source) : "Train starting point" dmg(integer) : "Damage on crush" : 2 - noise1(string) : "Custom moving loop sound (if set, overrides 'sounds')" - noise(string) : "Custom stopping sound (if set, overrides 'sounds')" - noise2(string) : "Custom corner sound, for when the train crosses a path_corner without stopping" + noise1(sound) : "Sound - Moving" : : "Custom moving loop sound (if set, overrides 'sounds')" + noise(sound) : "Sound - Stop" : : "Custom stopping sound (if set, overrides 'sounds')" + noise2(sound) : "Sound - Pass Corner" : : "Custom corner sound, for when the train crosses a path_corner without stopping" spawnflags(flags) = [ - 2: "Move on trigger" : 0 - 4: "Stop on trigger" : 0 - 8: "Non-solid" : 0 - 64: "Custom alignment" : 0 + + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition + 2 : "Move on trigger" : 0 : "will force the train to resume its path when triggered, even when temporarily waiting at a path_corner." + 4 : "Stop on trigger" : 0 : "Will stop the train at the next path_corner when triggered. Trigger it again to resume." + 8 : "Non-solid" : 0 + 64 : "Custom alignment" : 0 : "Allows you to directly specify how the train is offset relative to its path_corners using an 'origin' brush instead of using the vanilla corner alignment." ] ] -@PointClass base(Targetname) studio(mdl) = misc_modeltrain :"Trains are moving platforms that players can ride. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at. -Use path_corner as targets. -If given a targetname, it'll only start moving after triggered. -path_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path. - -'pausetime' sets a default waiting time when a value is not defined in path_corners. -'speed' sets the initial moving speed. If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards. - -misc_modeltrain smoothly orients itself towards the next path_corner when moving. The turning speed is automatic and based on the movement speed, but you can set a multiplier for the turning speed with the 'multiplier' key. Set it to -1 to turn instantly. - -You can define two different frame ranges and animation speeds, for when the model is stopped and moving. If you don't need different stopped/moving animations, only setting 'first_frame'/'last_frame'/'frtime' is enough. If you don't need any animation at all, just set 'first_frame' to the desired frame and all other fields can go blank. - -If you want to explicitly set frame 0 in any '*_frame' fields, you must use -1 instead, or else the code understands 0 as a blank field. - - -Spawnflags: -- No rotation: model doesn't rotate when moving towards path_corners. -- Rotate Y only: model only rotates around the Y axis, so pitch/roll angles are kept as initially set (useful to fake walking NPCs). -" +@PointClass base(Targetname) studio() = misc_modeltrain :"Trains are moving platforms that players can ride. The target's origin specifies the min point of the train at each corner. The train spawns at the first target it is pointing at.\nUse path_corner as targets.\nIf given a targetname, it'll only start moving after triggered.\npath_corners with a 'wait -1' value will stop the train. Trigger the func_train again to resume its path.\n\nmisc_modeltrain smoothly orients itself towards the next path_corner when moving. The turning speed is automatic and based on the movement speed, but you can set a multiplier for the turning speed with the 'multiplier' key. Set it to -1 to turn instantly.\n\nYou can define two different frame ranges and animation speeds, for when the model is stopped and moving. If you don't need different stopped/moving animations, only setting 'first_frame'/'last_frame'/'frtime' is enough. If you don't need any animation at all, just set 'first_frame' to the desired frame and all other fields can go blank.\n\nIf you want to explicitly set frame 0 in any '*_frame' fields, you must use -1 instead, or else the code understands 0 as a blank field." [ sounds(choices) : "Sound" : 1 = [ @@ -1899,13 +1993,14 @@ Spawnflags: 1: "Ratchet Metal" 2: "Base door" ] - speed(integer) : "Speed (units per second)" : 100 + speed(integer) : "Initial Speed" : 100 : "Sets the initial moving speed (in units per second). If the train encounters a path_corner with its 'speed' field set it will move at that speed afterwards." pausetime(integer) : "Default wait time" : : "Wait time used when not defined in path_corner." target(target_source) : "First stop target" dmg(integer) : "Damage on crush" : 2 - mdl(string) : "Model file path (such as 'progs/model_name.mdl')" + mdl(studio) : "Model" : : "Model file path (such as 'progs/model_name.mdl')" cmins(string) : "Lower bounding box point" cmaxs(string) : "Upper bounding box point" + sequence(integer) : "Animation frame (editor)" : : "Frame to display in the editor (no effect in-game)." first_frame(integer) : "First frame sequence (stopped). Use -1 for frame 0" last_frame(integer) : "Last frame sequence (stopped). Use -1 for frame 0" first_frame2(integer) : "First frame sequence (moving). Use -1 for frame 0" @@ -1923,27 +2018,26 @@ Spawnflags: 2 : "Back and forth" ] multiplier(integer) : "Turning speed" : 1 : "Turning speed multiplier. Set to -1 to turn instantly" - noise1(string) : "Custom moving loop sound (if set, overrides 'sounds')" - noise(string) : "Custom stopping sound (if set, overrides 'sounds')" - noise2(string) : "Custom corner sound, for when the train crosses a path_corner without stopping" + noise1(sound) : "Custom moving loop sound (if set, overrides 'sounds')" + noise(sound) : "Custom stopping sound (if set, overrides 'sounds')" + noise2(sound) : "Custom corner sound, for when the train crosses a path_corner without stopping" + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition spawnflags(flags) = [ 2: "Move on trigger" : 0 4: "Stop on trigger" : 0 8: "Non-solid" : 0 - 16: "No rotation" : 0 - 32: "Rotate Y only" : 0 + 16: "No rotation" : 0 : "Model doesn't rotate when moving towards path_corners." + 32: "Rotate Y only" : 0 : "Model only rotates around the Y axis, so pitch/roll angles are kept as initially set (useful to fake walking NPCs)" ] ] -@PointClass base(Appearflags, Targetname) color(0 255 255) size(16 16 16) = path_corner : "Waypoint for trains and walking monsters. -Check each field's description for more details. -" +@PointClass base(Appearflags, Targetname) color(0 255 255) size(16 16 16) = path_corner : "Waypoint for trains and walking monsters." [ - first_frame(integer) : "First frame sequence (stopped). Use -1 for frame 0" - last_frame(integer) : "Last frame sequence (stopped). Use -1 for frame 0" - first_frame2(integer) : "First frame sequence (moving). Use -1 for frame 0" - last_frame2(integer) : "Last frame sequence (moving). Use -1 for frame 0" + first_frame(integer) : "First frame sequence (stopped)" : : "Use -1 for frame 0" + last_frame(integer) : "Last frame sequence (stopped)" : : "Use -1 for frame 0" + first_frame2(integer) : "First frame sequence (moving)" : : "Use -1 for frame 0" + last_frame2(integer) : "Last frame sequence (moving)" : : "Use -1 for frame 0" frtime(float) : "Frame time (stopped)" : "0.1" frtime2(float) : "Frame time (moving)" : "0.1" animtype(choices) : "Animation type (stopped)" : 1 = @@ -1957,20 +2051,15 @@ Check each field's description for more details. 2 : "Back and forth" ] multiplier(integer) : "Turning speed" : 1 : "Turning speed multiplier. Set to -1 to turn instantly" - noise(string) : "Custom stopping sound for this point" - noise2(string) : "Custom corner sound for this point, for when the train crosses a path_corner without stopping" + noise(sound) : "Custom stopping sound for this point" + noise2(sound) : "Custom corner sound for this point, for when the train crosses a path_corner without stopping" - target(target_source) : "Next waypoint target" + target(target_destination) : "Next waypoint target" target2(target_destination) : "Target2" target3(target_destination) : "Target3" target4(target_destination) : "Target4" - wait(integer) : "Wait" : : "Waiting time at this point. -- A positive value directly sets a waiting time in seconds. -- A 0 value (or not defined) uses the 'pausetime' field value in the func_train (which defaults to 0s). -- A -1 value makes the train to stop at this point. -- A -2 value forces the train to not wait here even when 'pausetime' is set on the func_train. -" + wait(integer) : "Wait" : : "Waiting time at this point.\n- A positive value directly sets a waiting time in seconds.\n- A 0 value (or not defined) uses the 'pausetime' field value in the func_train (which defaults to 0s).\n- A -1 value makes the train to stop at this point.\n- A -2 value forces the train to not wait here even when 'pausetime' is set on the func_train." speed(integer) : "Speed" : : "Sets a new speed for the train to move from this point onwards." ] @@ -1992,23 +2081,23 @@ Check each field's description for more details. @SolidClass base(Appearflags, Targetname) = func_new_plat : "Enhanced Plat" //dumptruck_ds from Rogue DOE Mission Pack [ -spawnflags(Flags) = -[ - 1 : "Plat Start at Top" : 0 - 2 : "Plat Toggle" : 0 - 4 : "Elevator" : 0 - 8 : "Elevator Start at Top" : 0 - 16 : "Plat2" : 0 - //32 : "Plat2 Bottom" : 0 -] + spawnflags(flags) = + [ + 1 : "Plat Start at Top" : 0 + 2 : "Plat Toggle" : 0 + 4 : "Elevator" : 0 + 8 : "Elevator Start at Top" : 0 + 16 : "Plat2" : 0 + //32 : "Plat2 Bottom" : 0 + ] speed(integer) : "Speed" : 150 cnt(integer) : "Number of floors when used as elevator" height(integer) : "Travel altitude (can be negative)" : 0 health(integer) : "Seconds to wait at bottom if using Start at Top": 5 delay(integer) : "Seconds to wait if using Plat2" : 3 wait(integer) : "Seconds to retrigger Elevator" : 0 - noise(string) : "Path to custom sound for plat movement" - noise1(string) : "Path to custom sound for plat stopping" + noise(sound) : "Path to custom sound for plat movement" + noise1(sound) : "Path to custom sound for plat stopping" sounds(choices) : "Sound" : 1 = [ 1: "Base fast" @@ -2032,40 +2121,29 @@ spawnflags(Flags) = ] ] -@SolidClass = func_bossgate : "Boss gate" +@SolidClass base(Appearflags) = func_bossgate : "Boss gate" [ spawnflags(Flags) = [ 16 : "Reverse functionality" : 0 - ] -] - -// -// triggers -// - -@baseclass base(Appearflags, Target, Targetname, TriggerWait, Message) = Trigger -[ - sounds(choices) : "Sound style" : 0 = - [ - 0 : "None" - 1 : "Secret sound" - 2 : "Beep beep" - 3 : "Large switch" - ] - delay(string) : "Delay before trigger" : "0" - message(string) : "Message" + ] ] +// +// triggers +// + @SolidClass base(OneTarget, OneTargetname, Appearflags, TriggerWait) = trigger_changelevel : "Trigger: Change level" [ map(string) : "Next map" //target(target_destination) : "Target" - message(string) : "Message to show on intermission screen." + message(string) : "Message to show on intermission screen." + sounds(integer) : "Music track for intermission" + sounds2(integer) : "Music track for intermission text" spawnflags(flags) = [ 1: "No intermission" : 0 - 2: "Ignore intermissiontext" : 0 + 2: "Ignore info_intermissiontext" : 0 8: "Start Off" : 0 16: "Use info_player_start2" : 0 ] @@ -2079,14 +2157,30 @@ spawnflags(Flags) = 0 : "Default" 1 : "Wait for Trigger" ] + spawnflags(flags) = + [ + 1: "Not touchable" : 0 + ] ] //____TW_EDIT____ - @SolidClass base(Trigger) = trigger_setgravity : "Trigger: sets the gravity of a player or monsters gravity = what to set the players gravity to If using multiple triggers, do not have them touching. Leave a 'buffer' between them. - 0 (default) normal gravity | 1 no gravity | 2 almost no gravity | 15 floaty | 101 normal gravity | 102 slightly higher gravity | 1000 very high gravity." +@SolidClass base(Appearflags, TriggerWait) = trigger_setgravity : "Gravity Trigger: sets the gravity of a player or monsters\n\nIf using multiple triggers, do not have them touching. Leave a 'buffer' between them." +[ + spawnflags(flags) = [ - spawnflags(flags) = [ 8: "Start Off (can be toggled)" : 0 ] - gravity(integer) : "Gravity (normal = 0)" : 0 + 8: "Start Off (can be toggled)" : 0 ] + gravity(choices) : "Gravity" : 0 : "what to set the players gravity to" = + [ + 0 : "0 - normal gravity" + 1 : "1 - no gravity" + 2 : "2 - almost no gravity" + 15 : "15 - floaty" + 101 : "101 - normal gravity" + 102 : "102 slightly higher gravity" + 1000 : "1000 - very high gravity" + ] +] //dumptruck_ds added from Hipnotic Mission Pack //____TW_EDIT____ @@ -2097,11 +2191,11 @@ spawnflags(Flags) = 0 : "Don't leave key in player's inventory" 1 : "Leave key in player's inventory" ] - delay(float) : "Delay before trigger" : 0 + delay(float) : "Delay before trigger" : "0" : "Delay before trigger" keyname(string) : "Sets the keyname of the item_key_custom which unlocks this entity. If any key spawnflag is selected (either silver or gold), this only changes the display name of the required key." message(string) : "Custom message" - noise1(string) : "Sound file for the 'key required' sound (default is per worldtype)" - noise2(string) : "Sound file for the 'key used' sound (default is per worldtype)" + noise1(sound) : "Sound file for the 'key required' sound (default is per worldtype)" + noise2(sound) : "Sound file for the 'key used' sound (default is per worldtype)" spawnflags(flags) = [ 8 : "Silver Key Required" : 0 @@ -2110,38 +2204,59 @@ spawnflags(Flags) = ] @SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple" +[ + wait(string) : "Wait before reset" : "0.2" + health(integer) : "Health (shootable)" + spawnflags(flags) = [ - wait(string) : "Wait before reset" : "0.2" - health(integer) : "Health (shootable)" - spawnflags(flags) = [ - 1: "Not touchable" : 0 - 2: "Wait for retrigger" : 0 - ] - is_waiting(choices) : "Trigger" : 0 = - [ - 0 : "Default" - 1 : "Wait for Trigger" - ] + 1: "Not touchable" : 0 + 2: "Wait for retrigger" : 0 ] -@SolidClass base(OneTarget, OneTargetname, TriggerWait) = trigger_onlyregistered : "only Triggers only if game is registered (registered == 1)" + is_waiting(choices) : "Trigger" : 0 = [ - spawnflags(flags) = [ 1: "Not touchable" : 0 ] + 0 : "Default" + + + + + + + + + 1 : "Wait for Trigger" + ] -@SolidClass base(Trigger) = trigger_secret : "Trigger: Secret" +] + +@SolidClass base(OneTarget, OneTargetname, TriggerWait) = trigger_onlyregistered : "only Triggers only if game is registered (registered == 1)" [ - spawnflags(flags) = [ 1: "Entity only" : 0 ] - wait(integer) : "Delay before reset" : 10 + spawnflags(flags) = [ 1: "Not touchable" : 0 ] +] + +@SolidClass base(Trigger, OneTargetname, TriggerWait) = trigger_secret : "Trigger: Secret" +[ + sounds(choices) : "Sound" : 1 = + [ + 1 : "Secret sound" + 2 : "Beep beep" + ] + spawnflags(flags) = + [ + 1: "Not touchable" : 0 + ] ] + //____TW_EDIT____ -@SolidClass base(Appearflags, OneTarget, Targetname, TriggerWait) = trigger_teleport : "Trigger Teleporter - Any object touching this will be transported to the corresponding 'info_teleport_destination' entity. Or if RANDOM is chosen, 'info_teleport_random' entities will be used. NOTE - To have a dormant 'trigger_teleport' (will not teleport until unlocked), set 'is_waiting' to 1 and use 'targetname2' on the 'trigger_teleport'. Target this 'targetname2' with another trigger entity to unlock it. If the 'trigger_teleport' has a 'targetname', it will only teleport entities when it has been fired. NOTE - This is not compatible with 'is_waiting'. SILENT'(2) eliminates the teleporter ambient noise (good for hidden monster teleporters. RANDOM(4) causes the teleporter to send the traveller to a random destination among the 'info_teleport_random' markers in the level. You MUST place a count field that is the number of 'info_teleport_random' entities you placed. STEALTH(8) eliminates the particle flash and noise when an entity is teleported. MONSTER_ONLY(16) will only teleport monsters." +@SolidClass base(Appearflags, OneTarget, Targetname, TriggerWait) = trigger_teleport : "Teleporter Trigger.\n\nAny object touching this will be transported to the correspondinginfo_teleport_destination entity. Or if RANDOM is chosen, info_teleport_random entities will be used. (See below.)\n\n NOTE To have a dormant trigger_teleport (will not teleport until unlocked), set is_waiting to 1 and use targetname2 on the trigger_teleport. Target this targetname2 with another trigger entity to unlock it.\n\nIf the trigger_teleport has a targetname, it will only teleport entitieswhen it has been fired. NOTE This is not compatible with is_waiting." [ + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition spawnflags(Flags) = [ 1 : "Player only" : 0 - 2 : "Silent" : 0 - 4 : "Random" : 0 - 8 : "Stealth" : 0 - 16 : "Monster only" : 0 + 2 : "Silent" : 0 : "eliminates the teleporter ambient noise (good for hidden monster teleporters)." + 4 : "Random" : 0 : "causes the teleporter to send the traveller to a random destination among the info_teleport_random markers in the level. You MUST place a count field that is the number of info_teleport_random entities you placed." + 8 : "Stealth" : 0 : "eliminates the particle flash and noise when an entity is teleported." + 16 : "Monster only" : 0 : "will only teleport monsters" ] count(integer) : "Number of info_teleport_random entities" : : "Number of info_teleport_random entities" is_waiting(choices) : "Trigger" : 0 = @@ -2152,7 +2267,7 @@ spawnflags(Flags) = ] // need updates: -@SolidClass = trigger_setskill : "Trigger set skill" +@SolidClass base(Appearflags, TriggerWait) = trigger_setskill : "Trigger: Set skill" [ message(choices) : "Skill to change to" : 1 = [ @@ -2164,22 +2279,30 @@ spawnflags(Flags) = ] //____TW_EDIT____ -@SolidClass base(Appearflags, TriggerWait) = trigger_take_weapon : "Trigger: Remove shotgun on touch. Place at 'info_player_start' for an axe only spawn. Make sure and add a 'weapon_shotgun' to your map!" -[] +@SolidClass base(Appearflags, TriggerWait) = trigger_take_weapon : "Trigger: Remove shotgun on touch. Place at 'info_player_start' for an axe only spawn. Make sure and add a 'weapon_shotgun' to your map!" [] + @PointClass base(Targetname, Trigger) = trigger_relay : "Trigger relay" [] + @SolidClass base(Angle, Appearflags, OneTargetname, TriggerWait) = trigger_monsterjump : "Trigger: Monster jump" [ speed(integer) : "Jump Speed" : 200 height(integer) : "Jump Height" : 200 - spawnflags(flags) = [ 8: "Start Off (toggles)" : 0 ] //dumptruck_ds + spawnflags(flags) = + [ + 8: "Start Off (toggles)" : 0 //dumptruck_ds + ] ] @PointClass base(Appearflags, Target, Targetname) = trigger_counter : "Trigger: Counter" [ - spawnflags(flags) = [ 1: "No Message" : 0 ] + spawnflags(flags) = + [ + 1: "No Message" : 0 + ] count(integer) : "Count before trigger" : 2 delay (integer) : "Delay" message(string) : "Message" ] + @SolidClass base(Angle, Appearflags, Targetname, TriggerWait) = trigger_push : "Trigger: Push" [ spawnflags(flags) = [ 1: "Push once" : 0 ] @@ -2190,92 +2313,79 @@ spawnflags(Flags) = @SolidClass base(Angle, Appearflags, Targetname, TriggerWait) = trigger_push_custom : "Trigger: Push (Custom): Can be toggled on and off, use a custom sound (noise) and be made silent. NOTE: Set BOTH Custom Noise spawnflag and the Noise key/value. Custom sounds should not be looped." [ spawnflags(flags) = - [ - 1: "Push once" : 0 - 8: "Start Off" : 0 - 16: "Silent" : 0 - 32: "Custom Noise" : 0 - ] + [ + 1: "Push once" : 0 + 8: "Start Off" : 0 + 16: "Silent" : 0 + 32: "Custom Noise" : 0 + ] speed(integer) : "Speed" : 1000 - noise(string) : "Custom Sound" + noise(sound) : "Custom Sound" ] -@SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_hurt : "Trigger: Hurt" +@SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_hurt : "Trigger: Hurt" [ dmg(integer) : "Damage per second" : 5 ] -@PointClass size(16 16 16) = misc_noisemaker : "Debug entity: continuously plays enforcer sounds" [] -@PointClass size(16 16 16) = viewthing : "Debug entity: fake player model" [] -@PointClass base(Appearflags, Targetname, TriggerWait) = misc_infight : "Makes 'target' monster angry at 'target2'. +@PointClass size(16 16 16) iconsprite("sprites/speaker.spr") = misc_noisemaker : "Debug entity: continuously plays enforcer sounds" [] -By default, the infighting doesn't start mutually, that is, 'target2' monster will only get mad back at 'target' after it's been attacked. +@PointClass size(16 16 16) studio("progs/player.mdl") = viewthing : "Debug entity: fake player model" [] -If you want to make them angry at each other instantly, you can set the spawnflag 'Mutual hate'." +@PointClass base(Appearflags, Targetname, TriggerWait) = misc_infight : "Makes 'target' monster angry at 'target2'.\n\nBy default, the infighting doesn't start mutually, that is, 'target2' monster will only get mad back at 'target' after it's been attacked.\n\nIf you want to make them angry at each other instantly, you can set the spawnflag 'Mutual hate'." [ - target(target_destination) : "The monster who will get angry." - target2(target_destination) : "Who target will get angry at." - spawnflags(flags) = [ - 1: "Mutual hate" : 0 - 2: "Keep player as activator" : 0 - ] + target(target_destination) : "Is angry" : : "The monster who will get angry." + target2(target_destination) : "Is angry at" : : "Who target will get angry at." + spawnflags(flags) = + [ + 1 : "Mutual hate" : 0 + 2 : "Keep player as activator" : 0 + ] ] -@PointClass base(Appearflags, Targetname) = trigger_changetarget : "Changes the target field on an entity. - -'message' is the value of the new target. -'cnt' picks which 'target' field to modify. (target, target2, etc.)" +@PointClass base(Appearflags, Targetname) = trigger_changetarget : "Changes the target field on an entity." [ target(target_destination) : "The entity to change" message(target_destination) : "The new target value" - cnt(choices) : "Target field to modify. No value defaults to 'target'" : 0 = [ - 1 : "target" - 2 : "target2" - 3 : "target3" - 4 : "target4" - ] + cnt(choices) : "Target field to modify." : 1 : "No value defaults to 'target'" = + [ + 1 : "target" + 2 : "target2" + 3 : "target3" + 4 : "target4" + ] ] -@PointClass base(Appearflags, Targetname) = target_setstate : "Changes an entity's state. -Entities in a disabled state won't execute its main function, depending on context. -Triggers won't fire its targets. Doors won't respond to triggering and touching. Buttons will remain in a pressed position and can't be fired. -The 'style' key defines if target_setstate will toggle entities' current state, force them to active, or to inactive. -You can force the target entities to spawn disabled/locked with spawnflag 1. + +@PointClass base(Appearflags, Targetname) = target_setstate : "Changes an entity's state.\nEntities in a disabled state won't execute its main function, depending on context.\nTriggers won't fire its targets. Doors won't respond to triggering and touching. Buttons will remain in a pressed position and can't be fired.\nThe 'style' key defines if target_setstate will toggle entities' current state, force them to active, or to inactive.\nYou can force the target entities to spawn disabled/locked with spawnflag 1. " [ target(target_destination) : "Target" - target2(target_destination) : "Target" - target3(target_destination) : "Target" - target4(target_destination) : "Target" - spawnflags(flags) = [ + target2(target_destination) : "Target2" + target3(target_destination) : "Target3" + target4(target_destination) : "Target4" + spawnflags(flags) = + [ 1: "Targets start disabled" : 0 2: "Force all doors to close" : 0 4: "Don't reset button state" : 0 ] - style(choices) : "Setstate style" = [ + style(choices) : "Setstate style" = + [ 0 : "Toggle current state" 1 : "Force active" 2 : "Force inactive" ] ] + /////////////////////////////////////////////////////////// // Fog triggers // /////////////////////////////////////////////////////////// -@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fogblend : "Trigger: Fog Blend -Acts as a smoothly blending portal between two zones of different fog. Sets the fog for any client passing through it, blending their global fog settings between start and end values proportional to their position within the trigger. - -- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1. -- will 'stuffcmd' 2 dozen times per frame so try not to make these huge -- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." +@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fogblend : "Fog Blend trigger. Acts as a smoothly blending portal between two zones of different fog. Sets the fog for any client passing through it, blending their global fog settings between start and end values proportional to their position within the trigger.\n\n- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1.\n- will 'stuffcmd' 2 dozen times per frame so try not to make these huge\n- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." [ - distance(integer) : "Length of blend distance (defaults to size of trigger)" - angle(integer) : "Axis of motion of blend (points toward end values)" + distance(integer) : "Blend distance" : : "Length of blend distance (defaults to size of trigger)" + angle(integer) : "Blend axis" : : "Axis of motion of blend (points toward end values)" ] -@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fog : "Trigger: Sets a fog. -Smoothly blends client's currently applied fog to this value over time. - -- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1. -- will 'stuffcmd' 2 dozen times per frame so try not to make these huge -- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." +@SolidClass base(Appearflags, Targetname, FogShift, TriggerWait) = trigger_fog : "Fog set trigger. Smoothly blends client's currently applied fog to this value over time.\n\n- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1.\n- will 'stuffcmd' 2 dozen times per frame so try not to make these huge\n- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." [ fog_density(string) : "Fog Density" fog_color(color1) : "Fog Color" @@ -2283,106 +2393,86 @@ Smoothly blends client's currently applied fog to this value over time. delay(string) : "Pause before starting blend" ] -@PointClass base(Appearflags, Targetname, Target, FogShift) color(128 128 50) = target_fogblend : "Target: Fog Blend -Activator's fog will toggle between fog_color/fog_density and fog_color2/fog_density2 values, smoothly blending it over time. -If you check the 'one-way' spawnflag, it'll only blend over to fog_color2/fog_density2 - unless you check the 'reverse' flag as well, which will make it blend only to fog_color/fog_density. -Checking 'All clients' will affect all connected players. - -- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1. -- will 'stuffcmd' 2 dozen times per frame so try not to make this take too long -- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." +@PointClass base(Appearflags, Targetname, Target, FogShift) color(128 128 50) = target_fogblend : "Fog Blend target. Activator's fog will toggle between fog_color/fog_density and fog_color2/fog_density2 values, smoothly blending it over time.\n\n- both standard fog and skyfog can be changed at the same time. If you want one of them to not be changed, just set its density to 0 (or keep undeclared). To clear them, set density to -1.\n- will 'stuffcmd' 2 dozen times per frame so try not to make this take too long\n- a bug in most quake engine ports will reset the eye position smoothing that happens when climbing stairs or riding a plat on every frame that a 'stuffcmd' is sent, so fog transitions during upwards motion will cause noticeable stuttering." [ + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition spawnflags(flags) = [ - 1 : "One-Way Only" : 0 + 1 : "One-Way Only" : 0 : "only blend over to fog_color2/fog_density2 - unless you check flag 2 as well, which will make it blend only to fog_color/fog_density." 2 : "Reverse Start/End" : 0 - 4 : "All clients" : 0 + 4 : "All clients" : 0 : "affect all connected players." ] - delay(string) : "Pause before starting blend" - speed(string) : "Time to blend (-1 for instant)" - speed2(string) : "Time to blend back, if different (-1 for instant)" + delay(float) : "Pause before starting blend" + speed(float) : "Time to blend" : : "-1 for instant" + speed2(float) : "Time to blend back" : : "If different from time to blend. -1 for instant" ] -@SolidClass base(Appearflags, Targetname, TriggerWait) = trigger_textstory : "Trigger to show long centerprint texts. Message remains on screen while player is inside the trigger volume. Can have custom sounds, or be made silent. - -Horizontal space is limited to 40 characters, so you must place linefeeds (\n) into your text. - -Use 'fade_amt` to set the background fade to a custom value (default is 160). - -You can set it to be show the message only when the player is facing a certain angle within the trigger. Set the central angle with 'mangle', and the maximum angle offset with 'view_ofs' (both in 'pitch yaw 0' format)." - +@SolidClass base(Appearflags, Targetname, TriggerWait) = trigger_textstory : "Trigger to show long centerprint texts. Message remains on screen while player is inside the trigger volume. Can have custom sounds, or be made silent.\n\nHorizontal space is limited to 40 characters, so you must place line break (backslash n) into your text.\n\nYou can set it to be show the message only when the player is facing a certain angle within the trigger. Set the central angle with 'mangle', and the maximum angle offset with 'view_ofs' (both in 'pitch yaw 0' format)." [ mangle(string) : "Central view angle" : : "Central point of the viewcone, in 'pitch yaw 0' format" view_ofs(string) : "Maximum angle offset" : : "Angle offsets from the central viewcone point in each direction, in 'pitch yaw 0' format" message(string) : "Message" : : "Message to show on-screen." - noise1(string) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." - noise2(string) : "Deactivate sound" : : "Played when the message fades away." - fade_amt(float) : "Set a custom black level for background fade" : "160" - spawnflags(flags) = [ + noise1(sound) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." + noise2(sound) : "Deactivate sound" : : "Played when the message fades away." + fade_amt(float) : "Background fade level" : "160" : "Set a custom black level for background fade" + spawnflags(flags) = + [ 1: "Silent" + 2: "No background fade" ] ] -@PointClass base(Appearflags, Targetname, Message) = target_textstory : "Trigger to show long centerprint texts. Message remains on screen for the duration of 'wait'. Can have custom sounds, or be made silent. - -Horizontal space is limited to 40 characters, so you must place linefeeds (\n) into your text. - -Use 'fade_amt` to set the background fade to a custom value (default is 160). -" +@PointClass base(Appearflags, Targetname, Message) = target_textstory : "Trigger to show long centerprint texts. Message remains on screen for the duration of 'wait'. Can have custom sounds, or be made silent.\n\nHorizontal space is limited to 40 characters, so you must place line breaks (backslash n) into your text." [ wait(integer) : "Message duration" : 5 message(string) : "Message" : : "Message to show on-screen." - noise1(string) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." - noise2(string) : "Deactivate sound" : : "Played when the message fades away." - fade_amt(float) : "Set a custom black level for background fade" : "160" - spawnflags(flags) = [ + noise1(sound) : "Activate sound" : "misc/talk.wav" : "Gets played when the message is shown. Use 'misc/talk.wav' for the default centerprint beep." + noise2(sound) : "Deactivate sound" : : "Played when the message fades away." + fade_amt(float) : "Background fade level" : "160" : "Set a custom black level for background fade" + spawnflags(flags) = + [ 1: "Silent" + 2: "No background fade" ] ] /////////////////////////////////////////////////////////// -//dumptruck�s additions via Joshua Skelton�s Quake Tools/// +//dumptruck's additions via Joshua Skelton's Quake Tools/// /////////////////////////////////////////////////////////// //____TW_EDIT____ -@PointClass size(32 32 32) studio() color(255 128 0) = misc_model : "A point entity for displaying models. A frame range can be given to animate the model. 'frame' can also be used to offset the animation. NOTE: set angle value to 0 if using angles key to rotate mdls" -//***commented out for now - -//mdl: The model to display. Can be of type mdl, bsp, or spr. -//frame: Single frame to display. Can also be used to offset the animation. -//First_frame: The starting frame of the animation. -//last_frame: The last frame of the animation. -//speed: The frames per second of animation. Divide 1 by the fps for this value. -//angles: pitch roll yaw (up/down, angle, tilt left/right) -[ - skin(integer) : "Skin index (default 0)" : : "Skin index (default 0) Use this when your custom model has more than one skin to select" - mdl(studio) : "Model Selection (ex progs/model.mdl)" - frame(integer) : "Single Frame to Display" - first_frame(integer) : "Start Animation Frame" - last_frame(integer) : "Last Animation Frame" - speed(integer) : "1 divided by frames per second (default 0.1)" - angles(integer) : "set 'angle' to 0 if this is used" - mdlsz(integer) : "Entity size (x y z)" +@PointClass base(Angles, Appearflags, Target, Targetname) size(32 32 32) color(255 128 0) studio() = misc_model : "A point entity for displaying models. A frame range can be given to animate the model. 'frame' can also be used to offset the animation." +[ + skin(integer) : "Skin" : 0 : "Skin index (default 0) Use this when your custom model has more than one skin to select" + mdl(studio) : "Model" : : "The model to display. Can be of type MDL, BSP, or SPR." + sequence(integer) : "Animation frame (editor)" : : "Frame to display in the editor (no effect in-game)." + frame(integer) : "Single Frame to Display" : : "Single frame to display. Can also be used to offset the animation." + first_frame(integer) : "Start Animation Frame" : : "The starting frame of the animation." + last_frame(integer) : "Last Animation Frame" : : "The last frame of the animation." + speed(float) : "Playback speed (1/FPS)" : "0.1" : "The frames per second of animation. Divide 1 by the fps for this value." + // NRC NOTE - remove _editorscale KV + _editorscale(scale) : "Scale (editor)" : : "(Uniform) Scale to display in the editor (no effect in-game)." + mdlsz(string) : "Scale (X Y Z)" centeroffset(integer) : "Model center offset" spawnflags(flags) = [ - 1: "Gravity" : 0 + 1: "Affected by gravity" : 0 2: "Solid" : 0 4: "Back and forth" : 0 8: "Only once" : 0 16: "Play count times" : 0 - 32: "Start Hidden" : 0 + 32: "Start hidden" : 0 ] ] + /////////////////////////////////////////////////////////////////////// // dumptrucks's additions: Hipnotic Sound Player via TB2 Quoth2.fgd//// /////////////////////////////////////////////////////////////////////// - //____TW_EDIT(s)____ @PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_lavasplash : "When triggered, plays the lavasplash effect and sound from E1M7. You can set the noise key to a custom sound." [ -noise(string) : "Path to custom sound" + noise(sound) : "Path to custom sound" ] @PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_explosion : "When triggered, plays an explosion. Causes damage." @@ -2422,86 +2512,87 @@ noise(string) : "Path to custom sound" // // ] //____TW_EDIT____ -@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_tele : "When triggered, 'play_tele' shows the teleport particle effects and sound. This is the same effect as 'tele_fog' in earlier versions of progs_dump. Use this when 'killtarget'ing an entity if the player can see it happen." -[ -] +@PointClass base(Targetname, Appearflags) size(16 16 24) color(255 128 0) = play_tele : "When triggered, 'play_tele' shows the teleport particle effects and sound. This is the same effect as 'tele_fog' in earlier versions of progs_dump. Use this when 'killtarget'ing an entity if the player can see it happen." [] -// FireAmbient has been replaced with ambient_fire for consistency, they work identically in QC -// @PointClass base(Appearflags) size(16 16 24) color(206 18 18) = FireAmbient : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models. " +// FireAmbient has been deprecated by ambient_fire for consistency, they work identically in QC +// @PointClass base(Appearflags) size(16 16 24) color(206 18 18) = FireAmbient : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models." // [ // // ] -//____TW_EDIT____ -@PointClass base(Appearflags) size(16 16 24) color(206 18 18) = ambient_fire : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models. This is the same effect as 'FireAmbient' in earlier versions of progs_dump." +// SYJ - "sprites/speaker.spr" is an editor sprite included with Jack +// ____TW_EDIT____ + +@PointClass base(Appearflags) size(16 16 24) color(206 18 18) iconsprite("sprites/speaker.spr") = ambient_fire : "This is a simple looping sound from the torches. Use this if you are using custom fire sprites or models. This is the same effect as 'FireAmbient' in the vanilla game." [] + +@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 150 35) iconsprite("sprites/speaker.spr") = play_sound : "Hipnotic sound player\n\nPlays a one off sound on a periodic basis.\nDo NOT use looped sounds with this entity. For looped sounds use ambient_general." [ -] -//____TW_EDIT____ -@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 150 35) = play_sound : "Hipnotic sound player. Plays a one off sound on a periodic basis. Do NOT use 'looped' sounds with this entity. For looped sounds use 'ambient_general'. 'volume' - how loud (range is 0.1 to 1, default is 1 = full volume). 'noise' - path of sound to play. 'wait' - random time between sounds (default 20). 'delay' - minimum delay between sounds (default 2). 'impulse' - sound channel 0-7 (0 automatic is default). 'speed' - attenuation factor. NOTE - Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + noise(sound) : "Sound file to play" : : "Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + speed(choices) : "Attenuation of sound" : 1 = [ - - noise(string) : "Sound file to play" - speed(choices) : "Attenuation of sound" : 1 = - [ - -1 : "No attenuation (heard everywhere)" - 1 : "Normal" - 2 : "Idle" - 3 : "Static" - ] - volume(integer) : "Volume (0 - 1)" : 1 - impulse(integer) : "Channel (0 - 7) Automatic" : 0 - wait(integer) : "Random time between sounds" : 20 - delay(integer) : "Minimum time between sounds" : 2 + -1 : "No attenuation (heard everywhere)" + 1 : "Normal" + 2 : "Idle" + 3 : "Static" ] + volume(integer) : "Volume (0 - 1)" : 1 : "how loud (range is 0.1 to 1 default is 1 = full volume)" + impulse(integer) : "Channel (0 - 7)" : 0 : "0 is automatic" + wait(integer) : "Random time between sounds" : 20 + delay(integer) : "Minimum time between sounds" : 2 +] //____TW_EDIT____ -@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 200 35) = play_sound_triggered : "Custom sound trigger. 'Toggle' (spawnflag) - stops when triggered again. 'Looping' (spawnflag) - check this and the toggle spawnflag to allow triggered, looping sounds to automatically restart after a save / load 'volume' - how loud (range is 0.1 to 1 default is 1 = full volume). 'noise' - path of sound to play. 'impulse' - sound channel 0-7 (0 automatic is default). 'speed' - attenuation factor. NOTE - Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" +@PointClass base(Targetname, Appearflags) size (16 16 24) color(30 200 35) iconsprite("sprites/speaker.spr") = play_sound_triggered : "Custom sound trigger" +[ + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition + spawnflags(flags) = [ - spawnflags(flags) = [ - 1 : "Toggle" : 0 - 2 : "Looped" : 0 - ] - noise(string) : "Sound file to play" - speed(choices) : "Attenuation of sound" : 1 = - [ - -1 : "No attenuation (heard everywhere)" - 1 : "Normal" - 2 : "Idle" - 3 : "Static" - ] - volume(integer) : "Volume (0 - 1)" : 1 - impulse(integer) : "Channel (0 - 7) Automatic" : 0 - //wait(integer) : "Wait before retrigger" : 0 //Quoth2 + 1 : "Toggled" : 0 : "stopped when triggered again" + 2 : "Looped" : 0 : "check this and the toggle spawnflag to allow triggered, looping sounds to automatically restart after a save / load" + ] + noise(sound) : "Sound file to play" : : "Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + speed(choices) : "Attenuation of sound" : 1 = + [ + -1 : "No attenuation (heard everywhere)" + 1 : "Normal" + 2 : "Idle" + 3 : "Static" ] + volume(integer) : "Volume (0 - 1)" : 1 : "how loud (range is 0.1 to 1 default is 1 = full volume)" + impulse(integer) : "Channel (0 - 7)" : 0 : "0 is automatic" + //wait(integer) : "Wait before retrigger" : 0 //Quoth2 +] + //____TW_EDIT____ -@PointClass base (Appearflags) size (16 14 24) color (30 225 35) = ambient_general : "Custom Ambient Sound . Only use 'looped' sounds with this entity. NOTE - Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)." - [ - noise(string) : "Sound file to play" - speed(choices) : "Attenuation of sound" : 1 = - [ - -1 : "No attenuation (heard everywhere)" - 1 : "Normal" - 2 : "Idle" - 3 : "Static" - ] - volume(integer) : "Volume (0 - 1)" : 1 +@PointClass base (Appearflags) size (16 14 24) color (30 225 35) iconsprite("sprites/speaker.spr") = ambient_general : "Custom Ambient Sound . Only use 'looped' sounds with this entity." +[ + noise(sound) : "Sound file to play" : : "Sound files must be in the SOUND folder (or a sub folder under the SOUND folder.)" + speed(choices) : "Attenuation of sound" : 1 = + [ + -1 : "No attenuation (heard everywhere)" + 1 : "Normal" + 2 : "Idle" + 3 : "Static" ] + volume(integer) : "Volume (0 - 1)" : 1 : "how loud (range is 0.1 to 1 default is 1 = full volume)" +] //____TW_EDIT____ - @SolidClass base(Appearflags, OneTargetname) = func_fall : "A brush that drops and fades away when touched. Gibs monsters who touch it. Can be targeted by triggers etc. 'noise' = sound to play when triggered. 'wait' = wait this long before falling." - [ - noise(string) : "Sound to play when fall starts" +@SolidClass base(Appearflags, OneTargetname) = func_fall : "A brush that drops and fades away when touched. Gibs monsters who touch it. Can be targeted by triggers etc." +[ + noise(sound) : "Sound to play when fall starts" wait(integer) : "Wait this long before falling" spawnflags(flags) = - [ - 1 : "Don't Fade" : 0 - 2 : "Silent" : 0 - ] + [ + 1 : "Don't Fade" : 0 + 2 : "Silent" : 0 ] +] + //____TW_EDIT____ - @SolidClass base(Appearflags, OneTargetname, Target) = func_fall2 : "Enhanced version of 'func_fall' with different behaviors. A brush that drops and fades away when touched. Can be targeted by triggers etc and can target other entities. 'wait' = how long until the brush begins falling. 'noise' = the sound to make when touched / activated. 'noise2' = the sound to make before it's removed. 'pain_finished' of -1 disables 'noise2' as the object stays forever. 'cnt' = 0 is default behavior, 1 means collisions are disabled while falling, 2 turns the brush into a bouncing entity. 'pain_finished' = default of 0.01, higher value has the object/brush fade out faster thus in turn affecting how long it stays. -1 stays forever. 'speed' = speed as to how fast something falls per game frame, default is 10, higher values mean faster falling. Only for cnt of 1. Recommended to use lip for max fall speed on cnt 0 and 2 as they follow Quake's default gravity. 'lip' = maximum fall speed that can be achieved, caps 'speed' variable. Default is -800. 'avelocity' = have it spin when activated using X, Y, Z vector coordinates. cnt 2 ignores avelocity. Use an origin brush for proper spin! ***spawnflags Default behavior allows anyone to activate 'func_fall2' on touch ONLY. Able to target other entities, including other 'func_fall2''s. " +@SolidClass base(Appearflags, OneTargetname, Target) = func_fall2 : "Enhanced version of func_fall with different behaviors. A brush that drops and fades away when touched. Can be targeted by triggers etc and can target other entities. Able to target other entities, including other func_fall2s.\nDefault behavior allows anyone to activate func_fall2 on touch ONLY" +[ + style(choices) : "Built-in debris style" : 0 : "Used if spawnflag 8 set. See manual for more info" = [ - style(choices) : "Built-in debris style" : 0 = - [ 0 : "Green Metal (default)" 1 : "Red Metal" 2 : "Concrete" @@ -2534,109 +2625,116 @@ noise(string) : "Path to custom sound" 29 : "Red Bricks -- city2_1" 30 : "Blue Bricks -- city2_5" 31 : "Metal Rivets -- wizmet1_2" - ] - cnt(integer) : "Collision type, 0 is normal, 1 has no collision and 2 will bounce" : 0 - speed(integer) : "use with cnt 1 only, speed as to how fast something falls per game frame, default is 10" - lip(integer) : "use with cnt 0 and 2, maximum fall speed that can be achieved, caps 'speed' variable." : -800 - noise(string) : "the sound to make when touched / activated" : : "the sound to make when touched / activated" - noise2(string) : "the sound to make before it's removed" : : "the sound to make before it's removed" - wait(integer) : "Wait this long before falling" - pain_finished(integer) : "fade out speed, default 0.01 higher numbers fade out faster, -1 stays forever" - avelocity(string) : "spin when activated using X, Y, Z vector coordinates" : : "spin when activated using X, Y, Z vector coordinates. cnt 2 ignores avelocity Use an origin brush for proper spin!" + ] + cnt(choices) : "Collision type" : 0 : "0 is default behavior, 1 means collisions are disabled while falling, 2 turns the brush into a bouncing entity" = + [ + 0 : "Normal" + 1 : "Non-solid" + 2 : "Bouncy" + ] + speed(integer) : "Fall speed" : 10 : "use with cnt 1 only, speed as to how fast something falls per game frame. higher values mean faster falling. Recommended to use lip for max fall speed on cnt 0 and 2 as they follow Quake's default gravity." + lip(integer) : "Max fall speed" : -800 : "use with cnt 0 and 2, maximum fall speed that can be achieved, caps 'speed' variable." + noise(sound) : "sound when touched / activated" : : "the sound to make when touched / activated" + noise2(sound) : "sound when removed" : : "the sound to make before it's removed. pain_finished of -1 disables noise2 as the object stays forever" + wait(integer) : "Delay before falling" : : "how long until the brush begins falling" + pain_finished(float) : "Fade out speed" : "0.01" : "Higher value has the object/brush fade out faster thus in turn affecting how long it stays. -1 stays forever" + avelocity(string) : "spin when activated (X Y Z)" : : "spin when activated using X, Y, Z vector coordinates. cnt 2 ignores avelocity. Use an origin brush for proper spin!" spawnflags(flags) = - [ - 1 : "Player Activated only" : 0 - 2 : "Monster Activated only" : 0 - 8 : "Breakable" : 0 - ] + [ + 1 : "Player-activated only" : 0 + 2 : "Monster-activated only" : 0 + 8 : "Break on impact" : 0 ] +] //____TW_EDIT____ -@SolidClass base(Target, Targetname, Appearflags, Shadow, SwitchShadow, ModelLight) = func_breakable : "Breakable - See manual for full details. Defaults to built-in .mdl file with 3 styles, 'cnt' is number of pieces of debris to spawn (built-in only) Or use spawnflag 4 and break_template1-4)to set path of custom .mdl or .bsp models. brk_object_count1-4 sets the number of pieces of each break_template when using custom .mdl or bsp models. If 'noise1' is not set it will default to various sounds in sound/break folder. Use spawnflag 2 for an explosion, 'dmg' is amount of damage inflicted." -[ - spawnflags(flags) = [ - 1 : "No Monster Damage" : 0 : "Only the player can break" - 2 : "Explosion" : 0 : "Produces explosion effect and sound" - 4 : "Use custom mdls or bsp models" : 0 : "Uses models specified in break_template1, 2, etc" - ] - noise1(string) : "Path to custom break sound" - style(choices) : "Built-in debris style" : 0 = - [ - 0 : "Green Metal (default)" - 1 : "Red Metal" - 2 : "Concrete" - 3 : "Pine wood -- wood1_1" - 4 : "Brown wood -- wizwood1_3" - 5 : "Red wood -- dung01_2" - 6 : "Stained Glass Yellow Flames -- window02_1" - 7 : "Stained Glass Red Rays -- window01_4" - 8 : "Stained Glass Yellow Dragon -- window01_3" - 9 : "Stained Glass Blue Dragon -- window01_2" - 10 : "Stained Glass Red Dragon -- window01_1" - 11 : "Light Copper -- cop2_3" - 12 : "Dark Copper -- cop1_1" - 13 : "Tan Bricks Large -- wiz1_4" - 14 : "Brown Bricks Large -- wbrick1_5" - 15 : "Green Bricks Large -- wswamp2_1" - 16 : "Generic Light Brown -- tlight08" - 17 : "Red Brown Computer -- comp1_5" - 18 : "Grey Black Computer -- comp1_1" - 19 : "Blue Green Metal -- metal4_5" - 20 : "Blue Green Runic Wall -- metal4_4" - 21 : "Brown Metal -- metal2_2" - 22 : "Dark Brown Metal -- metal1_3" - 23 : "Medium Brown Metal -- metal1_2" - 24 : "Blue Metal -- m5_8" - 25 : "Green Stonework -- city8_2" - 26 : "Blue Stonework -- city6_7" - 27 : "Brown Bricks -- city2_8" - 28 : "Tan Blue Bricks -- city2_7" - 29 : "Red Bricks -- city2_1" - 30 : "Blue Bricks -- city2_5" - 31 : "Metal Rivets -- wizmet1_2" - ] - cnt(integer) : "Number of pieces of debris to spawn" : 5 - health(integer) : "Health of breakable" : 20 - dmg(integer) : "Amount of Explosive Damage" : 20 - break_template1(string) : "Template 1 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template2(string) : "Template 2 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template3(string) : "Template 3 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template4(string) : "Template 4 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - break_template5(string) : "Template 5 model path, e.g. maps/break/brk.bsp or progs/brick.mdl" - brk_obj_count1(integer) : "Template 1 spawn count" - brk_obj_count2(integer) : "Template 2 spawn count" - brk_obj_count3(integer) : "Template 3 spawn count" - brk_obj_count4(integer) : "Template 4 spawn count" - brk_obj_count5(integer) : "Template 5 spawn count" - drop_item(Choices) = - [ - 0 : "(Default) Disabled" - 1 : "Drop a Silver Key upon death" - 2 : "Drop a Gold Key upon death" - 3 : "Drop a Health Vial upon death" - 4 : "Drop an Armor Shard upon death" - 5 : "Drop a Health Vial & Armor Shard" - 6 : "Random combination of 3 Vials and/or Shards" - ] +@SolidClass base(Target, Targetname, Appearflags, ModelLight, Shadow, SwitchShadow) = func_breakable : "Breakable - See manual for full details.\n\nDefaults to built-in .mdl file with 32 styles, cnt is number of pieces of debris to spawn (built-in only)\nOr use spawnflag 4 and break_template1-4 to set path of custom .mdl or .bsp models.\n\nbrk_object_count1-4 sets the number of pieces of each break_template when using custom .mdl or bsp models.\n\nUse spawnflag 2 for an explosion, dmg is amount of damage inflicted" +[ + spawnflags(flags) = + [ + 1 : "No Monster Damage" : 0 : "Only the player can break" + 2 : "Explosion" : 0 : "Produces explosion effect and sound" + 4 : "Use custom mdls or bsp models" : 0 : "Uses models specified in break_template1, 2, etc" + ] + noise1(sound) : "Custom break sound" : : "If not set, it will default to various sounds in sound/break folder" + style(choices) : "Built-in debris style" : 0 = + [ + 0 : "Green Metal (default)" + 1 : "Red Metal" + 2 : "Concrete" + 3 : "Pine wood -- wood1_1" + 4 : "Brown wood -- wizwood1_3" + 5 : "Red wood -- dung01_2" + 6 : "Stained Glass Yellow Flames -- window02_1" + 7 : "Stained Glass Red Rays -- window01_4" + 8 : "Stained Glass Yellow Dragon -- window01_3" + 9 : "Stained Glass Blue Dragon -- window01_2" + 10 : "Stained Glass Red Dragon -- window01_1" + 11 : "Light Copper -- cop2_3" + 12 : "Dark Copper -- cop1_1" + 13 : "Tan Bricks Large -- wiz1_4" + 14 : "Brown Bricks Large -- wbrick1_5" + 15 : "Green Bricks Large -- wswamp2_1" + 16 : "Generic Light Brown -- tlight08" + 17 : "Red Brown Computer -- comp1_5" + 18 : "Grey Black Computer -- comp1_1" + 19 : "Blue Green Metal -- metal4_5" + 20 : "Blue Green Runic Wall -- metal4_4" + 21 : "Brown Metal -- metal2_2" + 22 : "Dark Brown Metal -- metal1_3" + 23 : "Medium Brown Metal -- metal1_2" + 24 : "Blue Metal -- m5_8" + 25 : "Green Stonework -- city8_2" + 26 : "Blue Stonework -- city6_7" + 27 : "Brown Bricks -- city2_8" + 28 : "Tan Blue Bricks -- city2_7" + 29 : "Red Bricks -- city2_1" + 30 : "Blue Bricks -- city2_5" + 31 : "Metal Rivets -- wizmet1_2" + ] + cnt(integer) : "Num. debris to spawn" : 5 + health(integer) : "Health of breakable" : 20 + dmg(integer) : "Amount of Explosive Damage" : 20 + break_template1(string) : "Template 1 model" + break_template2(string) : "Template 2 model" + break_template3(string) : "Template 3 model" + break_template4(string) : "Template 4 model" + break_template5(string) : "Template 5 model" + brk_obj_count1(integer) : "Template 1 spawn count" + brk_obj_count2(integer) : "Template 2 spawn count" + brk_obj_count3(integer) : "Template 3 spawn count" + brk_obj_count4(integer) : "Template 4 spawn count" + brk_obj_count5(integer) : "Template 5 spawn count" + drop_item(choices) = + [ + 0 : "(Default) Disabled" + 1 : "Drop a Silver Key upon death" + 2 : "Drop a Gold Key upon death" + 3 : "Drop a Health Vial upon death" + 4 : "Drop an Armor Shard upon death" + 5 : "Drop a Health Vial & Armor Shard" + 6 : "Random combination of 3 Vials and/or Shards" + ] ] //____TW_EDIT____ -@PointClass size(16 14 24) color(255 128 0) base(Targetname, Target, Appearflags) = func_counter : "Activation Counter. TOGGLE causes the counter to switch between an on and off state each time the counter is triggered. LOOP causes the counter to repeat infinitely. The count resets to zero after reaching the value in count. STEP causes the counter to only increment when triggered. Effectively, this turns the counter into a relay with counting abilities. RESET causes the counter to reset to 0 when restarted. RANDOM causes the counter to generate random values in the range 1 to 'count' at the specified interval. FINISHCOUNT causes the counter to continue counting until it reaches 'count' before shutting down, even after being set to an off state. START_ON causes the counter to be on when the level starts. 'count' specifies how many times to repeat the event. If LOOP is set, it specifies how high to count before resetting to zero. Default is 10. 'wait' = the length of time between each trigger event. Default is 1 second. 'delay' = how much time to wait before firing after being switched on." +@PointClass base(Targetname, Target, Appearflags) size(16 14 24) color(255 128 0) = func_counter : "Activation Counter" [ spawnflags(flags) = [ - 1 : "toggleable" : 0 - 2 : "Looping" : 1 - 4 : "Step" : 0 - 8 : "Reset" : 0 - 16 : "Random" : 0 - 32 : "Finishcount" : 0 - 64 : "Start On" : 1 + 1 : "Toggled" : 0 : "Causes the counter to switch between an on and off state each time the counter is triggered." + 2 : "Looping" : 1 : "Causes the counter to repeat infinitely. The count resets to zero after reaching the value in count." + 4 : "Step" : 0 : "Causes the counter to only increment when triggered. Effectively, this turns the counter into a relay with counting abilities." + 8 : "Reset" : 0 : "Causes the counter to reset to 0 when restarted." + 16 : "Random" : 0 : "Causes the counter to generate random values in the range 1 to count at the specified interval." + 32 : "Finish counting" : 0 : "Causes the counter to continue counting until it reaches count before shutting down even after being set to an off state." + 64 : "Start On" : 1 : "Causes the counter to be on when the level starts." ] - count(integer) : "Repeat event #" : 10 - wait(string) : "Sec. between each triggering" : "1" - delay(string) : "Delay before first trigger" + count(integer) : "Number of repeats" : 10 : "Specifies how many times to repeat the event. If LOOP is set, it specifies how high to count before resetting to zero." + wait(float) : "Sec. between each triggering" : "1" : "The length of time between each trigger event." + delay(float) : "Delay before first trigger" : : "How much time to wait before firing after being switched on." ] + @PointClass size(16 14 24) color(255 175 0) base(Targetname, Target, Appearflags) = func_oncount : "Target for func_counter" [ count(integer) : "Repeat event #" : 1 @@ -2648,6 +2746,7 @@ noise(string) : "Path to custom sound" // @PointClass size(-4 -4 -4, 4 4 4) base(Targetname, Appearflags) = info_rotate : "Point of rotation" [] + @PointClass size(-8 -8 -8, 8 8 8) base(Targetname, Target, Appearflags) = func_rotate_entity : "Creates rotating entity" [ spawnflags(flags) = @@ -2657,10 +2756,11 @@ noise(string) : "Path to custom sound" ] deathtype(string) : "Kill Message" rotate(string) : "Rate of rotation (x y z)" - target(string) : "Center of rotation" + target(target_destination) : "Center of rotation" speed(string) : "Speed (0 to full) time" ] -@PointClass base(Targetname, Target) = path_rotate : "path_rotate" + +@PointClass base(Angles, Targetname, Target) = path_rotate : "path_rotate" [ spawnflags(flags) = [ @@ -2673,19 +2773,18 @@ noise(string) : "Path to custom sound" 64 : "Set Damage" : 0 ] rotate(string) : "Rotation (x y z)" - angles(string) : "Angles (x y z)" - noise(string) : "Wait Noise" - noise1(string) : "Move Noise" + noise(sound) : "Wait Noise" + noise1(sound) : "Move Noise" wait(integer) : "Wait Time" event(string) : "Event Target" message(string) : "Event Message" dmg(integer) : "Damage" - speed(integer) : "Move Time(if flaged) or Speed" + speed(integer) : "Move Time(if flagged) or Speed" ] @PointClass size(-8 -8 -8, 8 8 8) base(Targetname, Target, Appearflags) = func_rotate_train : "Moving platform" [ - noise1(string) : "Train move noise" - noise(string) : "Train stop noise" + noise1(sound) : "Train move noise" + noise(sound) : "Train stop noise" path(string) : "First path_rotate" deathtype(string) : "Kill Message" speed(integer) : "Speed" : 100 @@ -2696,8 +2795,10 @@ noise(string) : "Path to custom sound" 1: "Ratchet Metal" ] ] + @SolidClass base(Targetname, Target, Appearflags) = rotate_object : "Object to be rotated"[] -@PointClass size(-8 -8 -8, 8 8 8) base(Targetname, Target, Appearflags) = func_rotate_door : "Create rotating door" + +@PointClass size(-8 -8 -8, 8 8 8) base(Angles, Targetname, Target, Appearflags) = func_rotate_door : "Create rotating door" [ spawnflags(flags) = [ @@ -2705,11 +2806,10 @@ noise(string) : "Path to custom sound" ] dmg(integer) : "Damage" : 2 speed(integer) : "Time to rotate" : 10 - angles(string) : "Angles (x y z)" rotate(string) : "Rotate (x y z)" - noise1(string) : "Custom door start noise" - noise2(string) : "Custom door move noise" - noise3(string) : "Custom door stop noise" + noise1(sound) : "Custom door start noise" + noise2(sound) : "Custom door move noise" + noise3(sound) : "Custom door stop noise" sounds(choices) : "Sound" : 1 = [ 0: "None" @@ -2719,11 +2819,11 @@ noise(string) : "Path to custom sound" 4: "Silent" ] ] -//@PointClass size(0 0 0, 32 32 32) base(Target) = func_clock : "Clock Hand" +//@PointClass size(0 0 0, 16 16 16) base(Target) = func_clock : "Clock Hand" //[ - //event(string) : "Target event (at 12pm)" - //cnt(integer) : "Start time" - //count(integer) : "Seconds per rotation" : 60 +// event(string) : "Target event (at 12pm)" +// cnt(integer) : "Start time" +// count(integer) : "Seconds per rotation" : 60 //] // @@ -2753,21 +2853,21 @@ noise(string) : "Path to custom sound" alpha(float) : "Alpha of Laser Effect" : "0.5" message(string) : "Message Upon Activation" message2(string) : "Message Upon Deactivation" - noise(string) : "Sound Upon Activation" - noise1(string) : "Sound Upon Deactivation" + noise(sound) : "Sound Upon Activation" + noise1(sound) : "Sound Upon Deactivation" ] @SolidClass base(Appearflags, TriggerWait, OneTargetname) = trigger_changemusic : "Trigger that changes the currently playing music track. The number of the track to play goes in sounds just like worldspawn." [ -sounds(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to play from within music folder" + sounds(integer) : "Track Number" : : "CD track or number of audio file to play from within music folder" ] + //_____TRIGGER CD TRACK_____ -@PointClass base(Appearflags, Targetname) size(-8 -8 -8, 8 8 8) color(200 128 0) = trigger_cdtrack : "Trigger that changes the currently playing music track. The number of the track to play goes in the count key." [ - count(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to play from within music folder" +@PointClass base(Appearflags, Targetname) size(-8 -8 -8, 8 8 8) color(200 128 0) = trigger_cdtrack : "Trigger that changes the currently playing music track. The number of the track to play goes in the count key." +[ + sounds(integer) : "Track Number" : : "CD track or number of audio file to play from within music folder" ] -// @SolidClass base(Appearflags,Trigger) = trigger_look : "Trigger: On look at first target" -// [ -// ] + @SolidClass base(Appearflags, Trigger, Target, TriggerWait) = trigger_look : "Trigger: Trigger something when a player enters this volume and looks directly at a targeted brush entity. Use the first target key for the looked at item and subsequent targets to trigger events. Add a wait key to make this a trigger_multiple" [ speed(integer) : "Distance from player to search for trigger, adjust if the target is too far from the trigger" : 500 @@ -2780,7 +2880,28 @@ sounds(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to pla 3 : "Large switch" 4 : "Custom sound, requires a path set in noise1 key" ] - noise1(string) : "Path to custom sound. Use with sounds key set to 4" + noise1(sound) : "Path to custom sound. Use with sounds key set to 4" +] + +//____TW_EDIT____ +@SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_heal : "Trigger: Heal Any object touching this will be healed" +[ + wait(float) : "Time between each healing" : 1 + heal_amount(integer) : "Healing per second" : 5 + health_max(integer) : "Maximum heath given" : 100 : "The upper limit for healing (default 100, max 250)" + noise(sound) : "Custom healing sound." + message(string) : "Message to print on heal" + count(integer) : "Maximum to heal before exhausted" + speed(integer) : "Amount to recharge at a time" + delay(integer) : "Time before / between recharging" + message2(string) : "Message to print when exhausted" + spawnflags(Flags) = + [ + // NRC NOTE - move spawnflag descriptions back to main description; spawnflag descriptions are a Jack addition + // 1 : "Start on (if targeted)" : 0 : "Start on if using targetname. Only needed if triggered by something other than touching." + 2 : "Players only" : 0 : "Will not heal monsters." + 4 : "Monsters only" : 0 : "Will not heal players." + ] ] //////////////////////////////////////////////////////////////////////////////////////////// @@ -2788,51 +2909,47 @@ sounds(integer) : "Track Number (ex 02->xx)" : : "CD track or audio file to pla //////////////////////////////////////////////////////////////////////////////////////////// //____TW_EDIT____ -@SolidClass color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera : "A player touching this will be transported to the corresponding 'info_movie_camera' entity. You must set the 'target' field, and put an 'info_movie_camera' with a 'targetname' field that matches. At least one script is required, however it can have a blank message. The 'script' key gives a starting script number, and the 'script_delay' key is the amount of time(seconds) to stay on the first script page. If the 'trigger_camera' has a 'targetname', it will only enter camera mode after it has been fired." +@SolidClass color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera : "A player touching this will be transported to the corresponding info_movie_camera entity. You must set the target field, and put an info_movie_camera with a targetname field that matches. At least one script is required, however it can have a blank message. The script key gives a starting script number, and the script_delay key is the amount of time(seconds) to stay on the first script page.\n\nIf the trigger_camera has a targetname, it will only enter camera mode after it has been fired." [ -focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." -script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" -script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overidden by the info_script script_delay but is still required. Set this to 1." + focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." + script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" + script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overidden by the info_script script_delay but is still required. Set this to 1." ] + //____TW_EDIT____ -@PointClass size(-8 -8 -8, 8 8 8) color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera_point : "Point entity version of trigger_camera, that when targeted will behave the same as the 'brush-based' version. **info_movie_camera entity, you must set the target field, and put an 'info_movie_camera' with a 'targetname' field that matches. At least one script is required, however it can have a blank message. The script key gives a starting script number, and the 'script_delay' key is the amount of time(seconds) to stay on the first script page. A 'trigger_camera_point' requires a 'targetname' unlike the brush-based version." +@PointClass size(-8 -8 -8, 8 8 8) color(27 45 240) base(Appearflags, OneTarget, OneTargetname) = trigger_camera_point : "Point entity version of trigger_camera, when targeted will behave the same as the brush-based version. info_movie_camera entity. You must set the target field, and put an info_movie_camera with a targetname field that matches. At least one script is required, however it can have a blank message. The script key gives a starting script number, and the script_delay key is the amount of time(seconds) to stay on the first script page.\n\nA trigger_camera_point requires a targetname unlike the brush-based version." [ -focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." -script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" -script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overidden by the info_script script_delay but is still required." + focal_point(string) : "Name of info_focal_point to face (REQUIRED)" : : "This is the point that the info_movie_camera will face." + script(integer) : "Starting script number (REQUIRED)" : 0 : "Should match first script_num key in targeted info_script" + script_delay(integer) : "How long on first page (REQUIRED)" : 0 : "Amount of time(seconds) to stay on the first script page. NOTE: This is overridden by the info_script script_delay but is still required." ] //____TW_EDIT____ -@PointClass size(-8 -8 -8, 8 8 32) color(21 59 194) base(OneTargetname, Appearflags) = info_movie_camera : "This is the destination marker for a camera. It should have a targetname field with the same value as a camera-trigger's target field. The focal_point is the name of info_focal_point to focus on. Set delay to 1 to ignore the focal_point when moving the camera. Setting the speed key on an info_movie_camera controls the rate of travel TO THAT CAMERA from another camera position. The target key names the next info_movie_camera in a sequence." +@PointClass size(-8 -8 -8, 8 8 32) color(21 59 194) base(OneTargetname, Appearflags) = info_movie_camera : "This is the destination marker for a camera. It should have a targetname field with the same value as a camera-trigger's target field. The focal_point is the name of info_focal_point to focus on. Set delay to 1 to ignore the focal_point when moving the camera. Setting the speed key on an info_movie_camera controls the rate of travel TO THAT CAMERA from another camera position. The target key names the next info_movie_camera in a sequence." [ -delay(integer) : "Don't track focal_point when animated" : 0 : "When camera moves, don't track the focal_point, keep existing view angle." -focal_point(string) : "info_focal_point to face (REQUIRED)" : 0 : "Name of info_focal_point to face" -speed(integer) : "Speed of travel to the info_movie_camera if in a sequence" : 0 :"Rate of travel to an info_movie_camera if part of a sequence" -target(string) : "Next info_movie_camera if part of a sequence" -wait(integer) : "Wait at this point (seconds) if animated" : 0 : "Wait in seconds before moving to next info_movie_camera if part of a sequence" + delay(integer) : "Don't track focal_point when animated" : 0 : "When camera moves, don't track the focal_point, keep existing view angle." + focal_point(target_destination) : "info_focal_point to face (REQUIRED)" : : "Name of info_focal_point to face" + speed(integer) : "Speed of travel to the info_movie_camera if in a sequence" : 0 :"Rate of travel to an info_movie_camera if part of a sequence" + target(target_destination) : "Next info_movie_camera if part of a sequence" + wait(integer) : "Wait at this point (seconds) if animated" : 0 : "Wait in seconds before moving to next info_movie_camera if part of a sequence" ] //____TW_EDIT____ -@PointClass size(-8 -8 -8, 8 8 16) color(27 45 247) base(Appearflags, OneTargetname) = info_focal_point : "This is the point that the camera will face. It should have a targetname field with the same value as a camera-trigger's focal_point field." -[] +@PointClass size(-8 -8 -8, 8 8 16) color(27 45 247) base(Appearflags, OneTargetname) = info_focal_point : "This is the point that the camera will face. It should have a targetname field with the same value as a camera-trigger's focal_point field." [] //____TW_EDIT____ -@PointClass size(-8 -8 -8, 8 8 16) color(115 142 240) base(Appearflags) = info_script : "This is the destination marker for a script. It should have a script_num field that signifies the script number, and a next_script to signal the next script (0 if this is the last page of the script), a script_delay to signify how many seconds to display this page, and of course a message field with the text to display. " +@PointClass size(-8 -8 -8, 8 8 16) color(115 142 240) base(Appearflags, Target) = info_script : "This is the destination marker for a script. It should have a script_num field that signifies the script number, and a next_script to signal the next script (0 if this is the last page of the script), a script_delay to signify how many seconds to display this page, and of course a message field with the text to display. " [ -message(string) : "Text of script" -script_num(integer) : "Number of script (REQUIRED)" : 0 : "Number of script matching the script key in trigger_camera" -script_delay(integer) : "Seconds on this page (REQUIRED)" : 0 : "How many seconds on this page " -next_script(integer) : "Next script in sequence (REQUIRED)" : 0 : "The next script (0 if this is the last page)" -target(target_destination) : "Target" -target2(target_destination) : "Target2" -target3(target_destination) : "Target3" -target4(target_destination) : "Target4" + message(string) : "Text of script" + script_num(integer) : "Number of script (REQUIRED)" : 0 : "Number of script matching the script key in trigger_camera" + script_delay(integer) : "Seconds on this page (REQUIRED)" : 0 : "How many seconds on this page " + next_script(integer) : "Next script in sequence (REQUIRED)" : 0 : "The next script (0 if this is the last page)" ] + //____TW_EDIT____ -@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = info_script_sound : "A sound player targeted by info_script. You only need this if you want a sound to play when text isprinted on the screen. You can use one for multiple info scripts. You can also trigger custom dialogue tracks with this entity. " +@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = info_script_sound : "A sound player targeted by info_script. You only need this if you want a sound to play when text is printed on the screen. You can use one for multiple info scripts. You can also trigger custom dialogue tracks with this entity. " [ -noise1(string) : "Path to custom sound file. Requires sounds key set to 4" -sounds(choices) : "Sound style" : 0 = + sounds(choices) : "Sound style" : 0 = [ // 0 : "None (Default)" not needed as scripts are silent by default 1 : "Secret sound" @@ -2840,82 +2957,24 @@ sounds(choices) : "Sound style" : 0 = 3 : "Large switch" 4 : "Custom sound set in noise1 key" ] -] -//item-backpack -//____TW_EDIT____ -@PointClass base(Appearflags, OneTargetname, Effects) size(-16 -16 0, 16 16 56) color(80 0 200) studio("progs/backpack.mdl") = item_backpack :"Placeable backpack - An ammo type spawnflag must be set for this to appear in a map. ALL AMMO gives roughly half the ammo from the 4 standard pickups: 10 Shells | 12 Nails | 2 Rockets | 3 Cells. Or you can use the spawnflags to mix and match types. Override the spawnflags defaults by adding custom amounts to: 'ammo_shells' | 'ammo_nails' | 'ammo_rockets' | 'ammo_cells'. Make sure and select both the spawnflag and matching ammo_ type. Can trigger spawn and suspend in air, but not respawn. You can set a skin index if you are using a custom model with skins. The default pickup message is `You got a backpack`. But you can set a custom message with the 'netname' key. 'You got' will prefix the mapper choice for the rest of the message. e.g. For 'You got a bunch of rockets!' the 'netname' value would be 'a bunch of rockets!'" -[ -skin(integer) : "Skin index" : 0 -ammo_shells(integer) : "Custom amount of shells" : 0 -ammo_nails(integer) : "Custom amount of nails" : 0 -ammo_rockets(integer) : "Custom amount of rockets" : 0 -ammo_cells(integer) : "Custom amount of cells" : 0 -netname(string) : "Custom text for ammo pickups" -snd_misc(string) : "Path to custom pickup sound" -mdl_body(string) : "Path to custom body model" -skin(Choices) : "Backpack Skin" : 0 = - [ - 0 : "Default" - 1 : "Shells" - 2 : "Nails" - 3 : "Rockets" - 4 : "Cells" - 5 : "Red" - 6 : "Rust" - 7 : "Blue" - 8 : "Green" - 9 : "Purple" - 10 : "Cream" - 11 : "Gray" - 12 : "Orignal Vanilla skin" - ] -spawnflags(flags) = - [ - 1 : "All Ammo" : 0 - 2 : "Shells" : 0 - 4: "Nails" : 0 - 8 : "Rockets" : 0 - 16 : "Cells" : 0 - 32 : "Spawn Silently" : 0 - 64 : "Trigger spawned" : 0 - 128 : "Suspended in air" : 0 - ] -] -//____TW_EDIT____ -@SolidClass base(Appearflags, OneTargetname, TriggerWait) = trigger_heal : "Trigger: Heal - Any object touching this will be healed. 'heal_amount ' - the amount to heal each time (default 5). 'wait ' - the time between each healing (default 1). 'health_max' - the upper limit for the healing (default 100, max 250). 'noise' - path to custom sound file. 'message' - message to print on heal. 'count' - maximum heal before exhausted. 'speed' - amount to recharge at a time. 'delay' - time before recharging. 'message2' - message to print when exhausted." -[ - wait(integer) : "Time between each healing (default 1)" : 1 - heal_amount(integer) : "Healing per second" : 5 - health_max(integer) : "Maximum heath given" : 100 : "The upper limit for healing (default 100, max 250)" - noise(string) : "Path to custom healing sound." - - message(string) : "Message to print on heal" - count(integer) : "Maximum to heal before exhausted" - speed(integer) : "Amount to recharge at a time" - delay(integer) : "Time before / between recharging" - message2(string) : "Message to print when exhausted" - spawnflags(Flags) = - [ - // 1 : "Start on (if targeted)" : 0 : "Start on if using targetname. Only needed if triggered by something other than touching." - 2 : "Players only" : 0 : "Will not heal monsters." - 4 : "Monsters only" : 0 : "Will not heal players." - ] + noise1(sound) : "Custom sound" : : "Path to custom sound file. Requires sounds key set to 4" ] ////////////////////// // end dumptruck_ds // // start Kex lights // ////////////////////// -@BaseClass size(-8 -8 -8, 8 8 8) color(255 128 0) base(Target) = KexDynamicLight : "Dynamic KEX light" [ - _shadowlight(integer) : "If set to 1, the engine will spawn a per-pixel light that cast shadows from the entity's origin when the level is loaded" : 0 - _shadowlightintensity(float) : "Intensity scalar for the light." : "1.0" - _shadowlightcull(choices) : "Enable culling when shadow mapping the affected geometry." : "0" = +@BaseClass size(-8 -8 -8, 8 8 8) color(255 128 0) base(Target) = KexDynamicLight +[ + _shadowlight(integer) : "Cast shadows" : 0 : "If set to 1, the engine will spawn a per-pixel light that cast shadows from the entity's origin when the level is loaded" + _shadowlightintensity(float) : "Intensity scale" : "1.0" : "Intensity scalar for the light." + _shadowlightcull(choices) : "Culling" : 0 : "Enable culling when shadow mapping the affected geometry." = [ 0 : "No culling" 1 : "Front culling" 2 : "Back culling" ] - _shadowlightresolution(choices) : "Override a shadow map resolution. Engine will automatically round the value into powers of 2. If value is 0, then the engine will determine the resolution based on the light's radius. Recommended that you keep the resolution below 2048 in order for other shadow maps to fit on the main shadow texture atlas (which is defined as 8192x8192)" : "0" = + _shadowlightresolution(choices) : "Shadow map resolution" : "0" : "Override a shadow map resolution. Engine will automatically round the value into powers of 2. If value is 0, then the engine will determine the resolution based on the light's radius. Recommended that you keep the resolution below 2048 in order for other shadow maps to fit on the main shadow texture atlas (which is defined as 8192x8192)" = [ 64 : "64" 128 : "128" @@ -2924,10 +2983,11 @@ spawnflags(flags) = 1024 : "1024" 2048 : "2048" ] - _shadowlightradius(float) : "Sets the radius." : "300" - _color(color255) : "Light color" : "1.0 1.0 1.0" - _shadowlightconeangle(float) : "Sets the outer cone angle if this light is a spot light." : "45" - _shadowlightstyle(choices) : "Appearance" : "0" = [ + _shadowlightradius(float) : "Radius" : "300" + _color(color1) : "Light color" : "1.0 1.0 1.0" + _shadowlightconeangle(float) : "Light cone angle" : "45" : "Sets the outer cone angle if this light is a spot light." + _shadowlightstyle(choices) : "Lightstyle" : 0 = + [ 0 : "Normal" 10: "Fluorescent flicker" 2 : "Slow, strong pulse" @@ -2942,12 +3002,13 @@ spawnflags(flags) = 9 : "Slow strobe" // New styles below here ] - _shadowlightstartfadedistance(float) : "The distance in world units (from player's view position) in which fading begins" : "0" - _shadowlightendfadedistance(float) : "The distance in world units (from player's view position) in which the light is fully faded out and not rendered" : "0" + _shadowlightstartfadedistance(float) : "Shadow start fade distance" : : "The distance in world units (from player's view position) in which fading begins" + _shadowlightendfadedistance(float) "Shadow end fade distance" : : "The distance in world units (from player's view position) in which the light is fully faded out and not rendered" ] -@PointClass base(KexDynamicLight) = dynamiclight : "Dynamic KEX light" +// SYJ: "sprites/light.spr" is an editor sprite included with Jack +@PointClass base(KexDynamicLight) iconsprite("sprites/light.spr") = dynamiclight : "Dynamic KEX light" [ spawnflags(Flags) = [ @@ -2955,8 +3016,41 @@ spawnflags(flags) = ] ] +@PointClass base(Appearflags, Targetname) = trigger_remove : "Any object touching this will be removed from the game. Use with caution." [] -@PointClass base(Appearflags, Targetname) = trigger_remove : "Any object touching this will be removed from the game. Use with caution." +@SolidClass base(Angle, Appearflags, Targetname) = func_slider : "Brush that slides along an axis.\nRequires an origin brush to be part of the entity. Create an info_notnull and align it where you want the origin brush to end up." [ + speed(integer) : "Speed" : 40 + dmg(float) : "Base damage to apply" + style(choices) : "Damage type" : 0 = [ + 0 : "Grow (increases exponentially)" + 1 : "Constant (applies with pauses between)" + 2 : "Crush (continually applies)" + ] + target(target_destination) : "Movement target" : "" : "Reference point for movement" + sounds(choices) : "Sound set" = + [ + 1: "Stone door" + 2: "Machine door" + 3: "Chain door" + 4: "Metal door" + 5: "Medieval secret door" + 6: "Metal secret door" + 7: "Base secret door" + 8: "Base plat" + 9: "Chain plat" + 10: "Train ratchet" + ] + noise2(sound) : "Sound when moving" : : "Sound file for the 'move' sound (if set, overrides 'sounds')" + noise1(sound) : "Sound when stopping" : : "Sound file for the 'stop moving' sound (if set, overrides 'sounds')" + spawnflags(flags) = + [ + 1 : "Solid" : 0 + ] +] +@PointClass size(-8 -8 -8, 8 8 8) color(115 100 240) base(Appearflags, OneTargetname) = trigger_slider : "Activates a slider to move a certain distance." +[ + target(target_destination) : "Slider to target" + distance(float) : "Distance from target" : : "Distance from the slider's target. 0 is initial position, 1 is directly on the target." ]