Jump to content


Development Role
  • Posts

  • Joined

  • Last visited

  • Days Won


Dragofer last won the day on November 11

Dragofer had the most liked content!


2104 Deity

About Dragofer

Recent Profile Visitors

8419 profile views
  1. The elevator is implemented in the source code as a multi_state_mover spawnclass, allowing AIs to interact with it. In any case, in one of my previous posts I detailed how to setup button-specific orientations & colour fades via scripts alone.
  2. 1) Cycle through all entities that use the AI scriptobject. Wiki 2) For each entity, access the AI scriptobject variables to check alert state. Wiki 3) Use the override system to temporarily override the ambient. Wiki
  3. You can find a test map here. Note that I remember not being too happy with it. https://forums.thedarkmod.com/index.php?/topic/19825-negative-spectrum/&do=findComment&comment=432949
  4. There are various ways of calling scripts that are able to pass one or more variables. Most commonly they can pass the entity that called the script. This is handy because you can set various custom spawnargs on that entity and let the script look them up. The best way is to let each button target a callscriptfunction entity with the spawnargs “foreach” “1”, “call” “move_target” and targetting the desired mover, which can pass up to 3 different entities. Each button should have a custom spawnarg storing the desired new color and angles. Need the 1st entity (target) and 2nd entity (button that triggers the callscriptfunction entity) in this case: void move_target(entity ent_target, entity ent_button, entity ent_callscriptfunction) { //fade the color float colorFadeTime = 1; vector newColor = ent_button.getVectorKey(“_color_new”); thread crossFadeEnt( ent_target, ent_target.getColor(), newColor, colorFadeTime ); //move the target, if needed float moveSpeed = 30; vector newAngles = button.getVectorKey(“angles_new”); vector delta = newAngles – ent_target.getAngles(); float moveTime = sys.vecLength( delta ) / moveSpeed; if( moveTime > 0 ) { ent_target.time( moveTime ); ent_target.rotateOnce( delta ); } } tdm_util.script contains various pre-made utility scripts including crossFadeEnt, which I used above to perform the colour fade.
  5. Beta testing for 2.11 has now been officially opened!
  6. Sure, I've added the modified AI script to the previous message. It needs to go into the folder "script".
  7. I've applied some fixes for the 2 stealth statistics issues that I'm aware of: 1) fleeing civilians don't add to stealth score or total sighting time if they were suddenly fully alerted at a close distance. 5286 2) combatant AIs fighting you in darkness, using their sense of touch to detect your position, don't add to stealth score or total sighting time. 6186 I think these changes missed the window for inclusion in 2.11 beta build 1, so it'll probably be in 2.11b2. I've tweaked kcghost's inventory item stealth counter to show "total time seen" instead of "bodies found", which should be useful for anyone interested in betatesting.z_tdm_loot_stealth_stats.pk4 For people who can already build the latest code from source, you'll also need a modified AI scriptobject, which goes into the script folder: tdm_ai.script @Araneidae The 1st issue you described in CoS sounds like another matter than those issues I addressed. You say you never seemed to alert anyone, but the objectives considered you spotted?
  8. Yes, that's most likely it. I've always just created a large light, named it ambient_world and gave it the ambientlightnfo texture but you could also create the ambient_world light entity.
  9. Yes, just create it as a func_animate entity. I believe you can make them play a specified animation when triggered, otherwise take a look at animation script events in the TDM script reference.
  10. Dragofer


    What about it?
  11. The issue is probably that the "angle" spawnarg of the path_wait/path_anim doesn't match the "sit_down_angle" spawnarg of the path_sit. In that case the AI will spin towards the new angle.
  12. I think the problem is more that if the AI gets alerted and woken by a loud noise they won't know how to get back to the bed if there are no paths. For a writing AI: you can find a working path setup in the starting area of WS1: In the North.
  13. @MirceaKitsunethe glasses are also the solution to your first problem in the sewers
  14. The roadblock with using spectrum lights to reveal stuff is that unlit spectrum materials will be opaque black, so still very much visible. It seems to have been designed more as a performance optimisation, by reducing the number of interactions between lights and surfaces. I don't think there's currently any way to make a material that goes between invisible and fully opaque depending on lighting.
  15. You can give them a skin with nonsolid materials, which makes arrows go through them but I think they'll still be solid to the player himself. I recall experimenting to try to achieve a completely nonsolid AI but without success. There are also dedicated script functions for solidity of AIs and moveables (becomeNonSolid() and becomeSolid()), not sure if I tried them myself. For 2.10 I also added a new script function setSolid(float solidity).
  • Create New...