Jump to content
The Dark Mod Forums

Dragofer

Development Role
  • Posts

    2631
  • Joined

  • Last visited

  • Days Won

    157

Everything posted by Dragofer

  1. I'm not able to reproduce this on 2.11beta1, the map loads fine for me. Do you maybe have some leftover script addons or files that could be conflicting with tdm_secrets.script or tdm_main.script? One possible culprit would be my old stealth statistic message addon for TDM 2.07, which overwrites tdm_main.script.
  2. 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.
  3. 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
  4. 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
  5. 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.
  6. Beta testing for 2.11 has now been officially opened!
  7. Sure, I've added the modified AI script to the previous message. It needs to go into the folder "script".
  8. 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?
  9. 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.
  10. 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.
  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).
  16. Thanks as always! Just jotting some down feedback on the skin editor as I go: I like how easy it is to add all materials used by the model to the skin editor with a single button, and that it only adds them to the skinDef if they're changed by the mapper. Some models have a lot of materials though and I suppose mappers usually only want to change one or a handful of them, so maybe it should ask you which materials you want to add? In the material replacements tab there's an asterisk icon, presumably to make it easy to replace all materials at once. Maybe it should be renamed "All materials" in the "Material Replacements" tab to make it more obvious what it does? It'd be nice to have a way of quickly toggling all material replacements so you can see the unskinned model, maybe via a right-click on the material checkboxes or a button next to "Remove Remapping". Selecting a replacement material (instruction: "Click to edit") seems to work the same way as when editing a filter, via a double-click (one to select, another when it's selected), which then makes the button to select a new material from the media browser show up. This would probably be a bit easier to use if the media browser button were always visible for each material.
  17. Just need to make sure you have the audiograph "FM" installed so that it loads the custom assets from the .pk4.
  18. I've in any case found some test maps I used to develop the respective features, they should work if you also have the .pk4: presence.mapcamgoyle.mapaudiograph.map If you're looking for a kind of demonstration map to showcase all the features, though, that'd be a fair amount of hassle to make, on top of the time I already put into documenting the spawnargs, commenting the scripts, writing the wiki articles and creating prefabs.
  19. Kingsal has set a custom light colour on the security cameras in his map, and I suppose he chose a value that looks good to him on his PC & settings. I doubt changing the default spotlight settings would be the way to go here.
  20. The illusion works best if the 2 rooms are completely identical. The player and moveable entities have their origins modified by the vector between the 2 rooms so they'll end up in the same location over there. Regarding the triggers, you need a reliable way of triggering the teleportation before the player reaches the far side of the room and notices the dead end. If it's just a trigger_facing the player might walk sideways/backwards and not activate the trigger. Also, the trigger zones should not overlap, otherwise the player will get endlessly teleported back and forth. The trigger_touch is just needed to register all entities inside the room so they can be teleported.
  21. I do usually make test FM archives for each asset, as it helps make sure that all custom assets are in place. When I release an asset it's basically that archive minus the maps folder. I could try to dig the maps up again. The assets are usually made for missions, so you can also find the assets in there (presence lamp in Painter's Wife, camgoyles in Written in Stone, automaton station in The Anomaly, the audiograph and teledoors feature in WIPs).
  22. Youll need to adjust the fade in and fade out fractions.
  23. Updated the download link with an update for the audiograph: Added custom sounds for switching on/off, loading/unloading and generic background noise for when a recording is playing, provided by Goldwell. More control over when playing a recording will trigger targets. The trigger_max spawnarg allows to limit how often targets can be triggered, while the trigger_from spawnarg(s) allows to restrict triggering to only when the spindle is played from a specific audiograph(s). More flexible support for scripting. Scripts can load any spindle regardless of whether the player has it in his inventory. Spindles can be returned either to the player's inventory or to the place they were loaded or picked up from. This allows the audiograph to be fully operated from scripts. Thanks! I actually needed an audiograph for my map, but figured I'd do it "properly" so that we have an easily reusable audiograph entity for the core mod. If you need help with implementing a crematory I can advise. S/R is fine for making stuff happen by bringing 2 entities close to each other (i.e. furnace and body), but it gets messy if you want a sequence of events to happen and more detailed stuff like placing particle emitters at specific joints. That can be done as a custom addon, just need to add a frob response to the audiograph that calls up a script which makes a video patch and a light appear until the sound is no longer playing (is_playing is 0).
  24. Assuming you're using the location system to play ambients, it should be possible to change the "ambient" spawnarg on that location's info_location entity. The next time you enter the location it should play the new ambient. There should be a setkeyval entity that you can trigger to change the spawnargs of its targets. If the new sound has to start playing while the player is still in the location then datiswous' override may be the way to go. If you're playing your ambient music from plain old speakers then a different approach will be needed.
×
×
  • Create New...