Jump to content
The Dark Mod Forums


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by OGDA

  1. 29 minutes ago, STiFU said:

    That being said, there is a cvar to disable the outline. I believe it is r_newFrob or something like that.

    That's good to hear. After reading the thread I had the impression the highlighting method was going to be removed completely because of the needed material stages.

  2. I'm sorry I have to say that I don't find the outline method appealing at all and would stick to the highlighting method, if given the option.
    An artificial outline is far more immersion breaking and visually irritating in a dark environment for me instead of an evenly distributed highlight.

  3. What exactly is
    Patch > Matrix > Redisperse > Rows/Columns

    My guess was that it should distribute vertices evenly if you add additional rows in the patch, but I made several patches, moved vertices, added rows and columns in between/at the end but the Redisperse never seems to change anything on the patch/vertices.


    Ok, now I found that it somehow seems to remove the additional bezier curves, if some vertices are on different Z-levels, so the patch goes from round edges to hard edges.

  4. Often, you have to aim more at the AI's back instead of the head in a weird downwards angle, especially when guards are wearing helmets.

    On one side I can understand this little extra difficulty, but it's frustrating when you think about it beforehand, aim at the back and nevertheless hit the helmet.
    Like, duh, why would I want to hit his iron helmet. ^^

    On some guards, especially when it's not all flat ground, it can take 6 reloads until the exact pixel spot to hit is found and that is indeed annoying.


  5. When I use several emitters for the particle tdm_ceiling_dust.prt, they all start with a big dust cloud in the first stage, then few particles in the second stage and then it repeats.

    As they all start at the same time, it looks very unnatural.

    Is there a way to do a time offset or a length variation for func_smoke and func_emitter over the entity spawnarg, without defining a prt-entry for every entity?

    I only found shaderparm5, time and speed in the wiki and forum, but none of those seem to have any effect.
    If there is a spawnarg, would it affect both parts of the definition (see below: dust2 and dust2bits) or do I somehow have to specify it in an array style way?

    particle tdm_ceiling_dust { 
    		count 				63
    		material 			textures/particles/dust2
    		time 				3.200
    		cycles 				2.000
    		timeOffset 			0.000
    		bunching 			1.000
    		distribution 		sphere 32.000 32.000 32.000 0.000
    		direction 			outward 15.000
    		orientation 		view
    		speed 				"0.000"
    		size 				"8.000" to "16.000"
    		aspect 				"1.000"
    		rotation 			"0.000"
    		randomDistribution 	1
    		boundsExpansion 	0.000
    		fadeIn 				0.750
    		fadeOut 			0.600
    		fadeIndex 			0.000
    		color 				1.000 1.000 1.000 1.000
    		fadeColor 			0.000 0.000 0.000 0.000
    		offset 				0.000 0.000 0.000
    		gravity 			world 6.000
    		count 				8
    		material 			textures/particles/dust2bits
    		time 				6.000
    		cycles 				0.500
    		timeOffset 			0.000
    		bunching 			0.950
    		distribution 		sphere 32.000 32.000 0.000 0.000
    		direction 			outward 0.000
    		orientation 		view
    		speed 				"0.000"
    		size 				"8.000" to "10.000"
    		aspect 				"1.000"
    		rotation 			"0.000"
    		randomDistribution 	1
    		boundsExpansion 	0.000
    		fadeIn 				0.000
    		fadeOut 			0.150
    		fadeIndex 			0.000
    		color 				0.690 0.690 0.690 1.000
    		fadeColor 			0.000 0.000 0.000 0.000
    		offset 				0.000 0.000 0.000
    		gravity 			world 6.000


  6. You maybe changed some brushes, so pathfinding is out of date.

    You need to rerun
    dmap yourmapname
    in the TDM console to recompile the map.

    Here is a wiki page with a few hints, see the point "Q. I'm getting an error message "warning: aas is out of date" once my map has loaded. What does it mean and what do I do?":

  7. Hello,

    the "Render in lighting preview mode" in Dark Radiant doesn't seem to take the ambient light into account correctly.
    But maybe I've set up something wrong as I don't think this wouldn't have been noticed.

    Ingame everything is correct, the problem only occurs in DR render preview mode.


    Let's say I set the _color value of the ambient_world light really high to make the ambient_world light definitely visible:

    classname: light
    name: ambient_world
    _color: 0.07 0.07 0.07 (which equates to a brightness level of about 18)
    light_center: 0 0 0
    light_radius: 13115 13367 13570
    nodiffuse: 0
    noshadows: 0
    nospecular: 0
    origin: -8160 5872 56 (the actual map is far from the ambient_light but within the ambient light range)
    parallel: 0
    texture: lights/ambientlightnfo


    When I now activate the "Render in lighting preview mode" in DR, only the brush faces pointing towards the ambient_world light are getting brighter, brush faces not pointing to ambient_world remain (incorrectly) dark, as if ambient_world was a regular light.



    The house front you see in the background also points towards ambient_world and is lit. House fronts "behind the camera" as well as the floor are dark.


    Can I do something to make ambient_world work correctly in render preview mode?


    Additionally: Is it possible to setup lights, so that they only render in the editor, not ingame?
    That way I could make two fake ambient_lights, one at 15000 15000 15000 and one at -15000 -15000 -15000 to light all surfaces in the editor and light them a little bit brighter than ingame for better visibility in render preview mode.


  8. @Frost_Salamander

    I had a problem like that in "A Night Of Loot" where the candles at the stairs to the second floor where shining up into the attic, despite several brushes and visportals being in the way. In that case it turned out, that a specific default candle holder with lit candles seemed to cause the problem. When I switched it with other light sources at the same position, the light bleeding went away (at least a big portion of it iirc). Try switching that candle holder, I think it might have strange properties.

    Out of curiosity: can you please post the entity class of the candle/candle holder which causes your problem? I just checked an old map version before switching it, I think the entity causing my problem was: atdm:sconce_2candles_rigid

  9. I've only started getting into TDM scripting, so I'm not completely sure where to find that. Wouldn't that mean I would have to ship a script that overrides a default TDM function with the map? If that's the case, I would prefer the current way with a custom script and only one additional call (for future update security). If you mean something different, do you perhaps have an example in one of your maps where you've done something like that, I can look at?

  10. Ambient light setup

    It took me a while to figure this out, so I'm documenting it here.
    If there is a faster way to set the worldspawn lightgem_adjust arg per location than this or a technical mistake, please let me know.

    What this does:
    The location system allows to setup locations (areas), which enables each location to have unique settings like ambient sound, ambient light, etc. This setup here ensures that the ambient light for each location is adjustable and that the lightgem_adjust modifier of the global worldspawn gets adjusted for each area, instead of only setting this just once on map load. This solves a problem where guards in dark indoor areas don't recognize the player at normal distance and recognize the player far too soon when stepping outside in a moonlit street while the player is still in a "not active lit" place.

    It looks like a long act, but it doesn't take long and as soon as it is set up, the mapping for a new location is fast, as it is only setting up a few new entities and spawnargs/targets.


    Definitions/needed objects, location system of TDM, this consists of:

    • one atdm:location_settings entity (containing some definitions)
    • several info_location entites (one in each location)
    • several info_locationseparator entities (each sitting in the middle of a Visportal, so that all visportals which split off a location from another have one. Visportals within a location not leading to another location don't need this entity.)



    I'm listing every property here, so some have just descriptive values.

    Add the spawnarg

    • lightgem_adjust: 0

    to one brush (as usual, any worldbrush will then have it).


    Create the ambient light by making a light entity (one per map).
    The _color (=intensity) gets set to zero. My ambient_light and ambient_light_dynamic definitions in the info_location entities otherwise would make the light far too bright (seems to get multiplied) and I define the light values solely with the info_location entities.
    Additionally this gives a nice effect at map startup, where the ambient is black first and then rises to the level of the current location, like as if the eyes are slowly adapting to the darkness.

    Entity Light:

    • classname: light
    • name: ambient_world
    • _color: 0 0 0
    • light_center: 0 0 0
    • light_radius: scale, to cover your whole map
    • nodiffuse: 0
    • noshadows: 0
    • nospecular: 0
    • origin: place, where you like
    • parallel: 0
    • texture: lights/ambientlightnfo


    Create the atdm:location_settings entity (one per map).
    You can define the sound definitions (property and value) as you like.

    Entity location_settings:

    • classname: atdm:location_settings
    • name: atdm:location_settings
    • ambient_light_dist_scale: 1.0
    • ambient_light_dynamic_cap: 0.1 0.1 0.1
    • ambient_light_fade_time: 7
      this is the it takes the ambient light to adjust when traversing to a new location and at map startup
    • ambient_light_falloff: 1
    • origin:
      where you want to place it
    • s_shader: silence
    • snd_cellar: phantoms
    • snd_inside: mansion_tense01a
    • snd_outside: city_sleeps01
    • snd_placeholder1: desolation_loop
    • snd_upstairs: derelict01

    ... and so on with the sound definitions


    In the middle of all Visportals, sealing one location from another, put a info_locationseparator entity.

    Entity info_locationseparator:

    • classname: info_locationseparator
    • name: info_locationseparator
      ..._1, ..._2, iterate, doesn't matter
    • origin:
      middle of the according Visportal


    Inside each location, put one info_location entity.

    Entity info_location:

    • classname: info_location
    • name: info_location
      ..._1, ..._2, iterate, doesn't matter
    • ambient: snd_inside
      use a sound property-field defined in the adtm:location_settings entity
    • ambient_light: 0.027 0.027 0.027
      this is an example, use whatever light level you want to define for this location. 0.027 equals a light level of 7. Note, that if you use the color picker - red/green/blue of this field, the value might be automatically reduced each time you deselect/reselect, don't know if this is bug, so recheck the values.
    • ambient_light_dynamic: 0 0 0
      with an ambient_light of 7 = 0.027 this ambient_light_dynamic value of 0 gives a good shop indoor brightneess, if you set ambient_light_dynamic to 0.002 0.002 0.002 with ambient_light 7, this gives a much brighter moonlit street look, but you can also leave ambient_light_dynamic at 0 and just increase ambient_light.
    • origin:
      in your location area
    • volume: 0
      loudest ambient sound
    • call_on_entry: adjustlightgem
      the function name in yourmapname.script
    • lightgemmodifier: -1
      a custom spawnarg, read by the function adjustlightgem in yourmissionname.script

    For valid values for lightgemmodifier see this wiki page:

    For example an ambient_light value of 7 (with ambient_light_dynamic value 0) should have a lightgemmodifier of -1.





    Create a textfile (replace yourmissionname everywhere):
    with the content:

    #include "script/yourmissionname.script"



    Create the folder:

    And create the file (this looks a bit redundant here, but you can include several script files in the first file and reference them):
    and insert the content (extend as you like):

    void adjustlightgem(entity location)
      string location_name = location.getName();
      float lightgemmodifier = location.getFloatKey("lightgemmodifier");
      // console debugging
      // sys.print ("Entering location: " + location_name + "\n");
      // sys.print ("lightgemmodifier: " + lightgemmodifier + "\n");
      $player1.setLightgemModifier("worldspawn", lightgemmodifier);



    The ambient light transitions from location to location and the worldspawn lightgem_adjust arg gets set accordingly, and you have a nice effect at map startup.




    • Like 3
  11. This is not an entity present in the editor, but the default carryable prop for an AI which is only attributed by spawnarg, so I cannot directly edit it in dark radiant. I see no way to ungroup/reference that like an inserted entity. If I misunderstood that, can you please further describe what you mean?

    Here is another full spawn arg set of the args I have on the city watch AI carrying the torch prop, where the light radius does not take effect:

    classname: atdm:ai_guard_generic_01b
    name: Citywatch Officer
    shouldered_name: Brannis
    def_head: atdm:ai_head_citywatch
    def_vocal_set: atdm_vocal_set_cynic_citywatch
    def_attach5: atdm:prop_torch_gothic_on
    pos_attach5: hand_l
    name_attach5: btorch
    set name on btorch: btorch
    set light_radius on btorch: 10 10 10

    Any more ideas how to change the light radius of the torch?

    All information I have is from:



    When I attach a defunct torch (not held in hand) to the AI found in a thread with spawnarg
    def_attach5: atdm:moveable_torch1
    I can set the light_radius with
    set light_radius on flame: 70 70 70

    def_attach5: atdm:prop_torch_on
    def_attach5: atdm:prop_torch_gothic_on
    don't seem to be affected by the light_radius property, so the problem still persists.



  12. I need help setting the light_radius and _color of a torch held by a guard.

    With a lantern this works just fine:
    def_attach5: atdm:prop_lantern_on
    pos_attach5: hand_l
    set _color on light: 0.9 0.7 0.25
    set light_radius on light: 100 100 100

    I know a torch is flame instead of light, but I tried many combinations and none of them worked.
    The torch is there, but the light radius and color don't change:
    def_attach5: atdm:prop_torch_on
    pos_attach5: hand_l

    set _color on light: 0 1 0
    set light_radius on light: 10 10 10
    > no result (expected)

    set _color on flame: 0 1 0
    set light_radius on flame: 10 10 10
    > no result

    name_attach5: district_a_watch_torchlight
    set _color on district_a_watch_torchlight: 0 1 0
    set light_radius on district_a_watch_torchlight: 10 10 10
    > no result

    test4 (just messing around by now):
    set flame_radius on light: 10 10 10
    > no result

    Any ideas?

  • Create New...