Jump to content
The Dark Mod Forums


Development Role
  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Dragofer

  1. I actually posted on Discord recently about where numerous voice actors for Thief & TDM missions can be found. Since you didn't name a reason I assume it's because you didn't know where/how to find them: As for what you're trying to achieve without conversations - I'd suppose you could carry out the whole scene via the conversation system, i.e. tell actors to walk to x, then wait/look at something for x seconds etc. Maybe Goldwell/Kingsal/JackFarmer have more hands on experience with the vagaries of the conversation system... but yeah, the best way to get AIs not to say random stuff is to give them something to say.
  2. @Jedi_Wannabe Easiest would be to let all the trigger brushes target a func_remove entity, which in turn targets all the trigger brushes. When the func_remove is triggered it deletes all targets. Regarding your screenshot: - The left side should reference the type of stim you want to respond to. Right now you have "Frob", but you'd want "Trigger". - The bottom right box contains all the effects that should happen. To add something new, right-click in it. (Btw, instead of directly naming an entity, you can type in _SELF) - You don't need the "Stims" tab at all in most cases, only if you want to create a new stim emitter (i.e. water arrow) to which other entities (i.e. torch flames) can respond. You should delete anything you added under that tab.
  3. I know of at least one other mapper who intends to participate. As for myself, I'd like to participate - I quite like the idea of connections - but my participation is uncertain given what other projects I might take on in real life up until Christmas. Also need to do some more work on some of the new 2.10 features, specifically finishing (security camera overhaul) and documenting (xrays) them. Furthermore, we should have a list of what was added in recent versions. If it works out, I do have an idea for what I could build, just need to find something to connect to.
  4. This sounds like the hatch is made from brushes. If it were exported as a model, then it would automatically rotate in the correct direction relative to its orientation. IIRC you could also bind it to i.e. an invisible, nonsolid and rotated spoon, but it wouldn't be preferred. @Geep Regarding trial and error: DR now shows the axes of rotation when using the 'R'otate function, so it should be possible to briefly rotate the object in the desired direction by hand to see how much and on which axes it needs to rotate.
  5. How about simply calling remove() directly on the blackjack entity that you placed in DR? getWeapon() might get something else than what you're expecting, like a weapon attachment or something. Maybe call $player1.selectWeapon("unarmed") in advance (maybe even with a sys.waitFrame() ) if that still crashes. There must be a way to get and interrupt the animation of the player's arms viewmodel entity. Still the sound to take care of...
  6. How about simply calling remove() directly on the blackjack entity that you placed in DR? getWeapon() might get something else than what you're expecting, like a weapon attachment or something. Maybe call $player1.selectWeapon("unarmed") in advance (maybe even with a sys.waitFrame() ) if that still crashes.
  7. Entities can be changed with no need to recompile the map. DR is quite a good entity editor.
  8. @demagogue Quite a few of the methods for calling a script in fact pass the name of the calling entity. For example, any entity that has a "frob_action_script" passes its own name. This makes it quite straightforward to getKey custom spawnargs that were set on that entity in DR. The callscriptfunction entity is the most versatile method because it's uniquely able to pass 3 different entities: itself, the entity that triggered it and one of its targets. In the wiki example, the buttons target such entities. @Geep Yeah, I suppose at least some of those examples could use visualisation
  9. Yep, that seems like the way to go. The "advanced example" uses spawnargs like this on various entities to make a teleportation buttons setup. Once you have an entity you can also get all its spawnargs.
  10. This sounds like something you could do by removing or adding weapon entities to the player's inventory - Geep's method with disableWeapons() was only intended to stop the player from using his weapons ("too slippery") without taking them anyway. The script method to remove a weapon would be: $player1.replaceInvItem($blackjack1, $null_entity); The script method to add a weapon should be: $blackjack2.frob($player1); or $player1.addInvItem($blackjack2); As you can see, you'd need 2 different blackjacks in the map - I doubt you can add an item to the player's inventory that was already removed, though it's worth a try. [This might all fail if the engine doesn't treat weapons as inventory items at all]
  11. https://wiki.thedarkmod.com/index.php?title=A_to_Z_Scripting:_Ways_of_calling_a_script#target_callscriptfunction
  12. I'm about 85% sure there's a hotkey combination that does exactly this, but would have to look into the Keybinds settings or DR user documentation to confirm.
  13. Can't say I'm eager to put a button in there that could potentially wipe a WIP mission. There'd have to be some solid safeguards (warning messages can be skimmed and misunderstood by a busy mapper) to make sure that this is a mission that's been downloaded from the server, i.e. by checking whether the folder contains exactly a .pk4, darkmod.txt, savegames folder, and no other files like an extracted maps folder.
  14. If the map has never been successfully compiled, or you deleted the compilation files, the map won't load. Otherwise, if there are still compilation files from an earlier successful compilation, the map will still load, but with many problems as described above.
  15. That sounds very much like you've got a leak (a gap somewhere in your worldspawn brushwork that leads out into the void). You can show a red line showing the path to the leak by going to File > Show Pointfile. In any case, it'd be worth looking at your tutorial's section on sealing/leaks again.
  16. You can always use Ctrl+MMB in orthoview to move the camera to that position, using the height of your most recent selection. It helps to use Ctrl+Tab beforehand so that orthoview is centered on your selection.
  17. I quite liked the status system - it allowed to share things without doing it formally with a forum post. Hopefully it will see more use again now that it's properly visible.
  18. That's simple enough with the original sound script. m is the base (frob_master) and e is the lid (which is already frobable anyway), so:
  19. 1) e.setFrobable(0) is the correct way to change frobability. What you could still try is use getKey and setKey to transfer the lock spawnargs from the body to the lid. Otherwise the ultima ratio would be to respawn the lid with the body's lock spawnargs and set the body to unfrobable. I believe "respawning" via scripts means getting and temporarily storing all the spawnargs of the original lid + the body's lock and key related spawnargs, and using them to spawn a new one, as per the wiki. 2) 99%+ of the time, entities, scripts and code require soundshaders. Soundshaders reference .ogg's and include information on radius, volume, looping etc. They're defined in .sndshd files.
  20. 1) Froblock entities are frobable, lockable entities - so like a door that doesn't move. The most common chest setup in TDM is to create the chest body as a froblock and the lid as a door. Both entities can be locked, but usually it's the body. They're linked as follows: - they mutually have each other as frob_peers. This means they highlight together. - the lid has the body as its frob_master. This means when you frob the lid, it gets passed to the chest. - the body has the lid as its target. This means when you frob the body when it's unlocked, it sends a trigger to the lid so that it opens. An alternative setup is just to create the body as a func_static and the lid as a locked door. The froblock entity is imo superfluous here - I think it's meant for making standalone locks that open something somewhere else. For my missions, and in a prefabs update some years ago, to make it easier to get things out of chests the froblock body was set to unfrobable and the lock settings (locked, lockpick type and pins) applied to the lid instead. I doubt that you can change lock settings after the mission has started. 2) Additionally you can identify lids based on their model, spelling out the file path of every lid model in core TDM (something like if ( e.getKey("model") == "models/darkmod/containers/..." ) ). This won't catch lids that were created using DR, so you'll probably still want the froblock check at the end. Another clue is that the lid usually targets an atdm:target_setfrobable entity, which toggles frobability of items inside the chest. Re: sfx sounds: are you sure you're using the soundshaders, and not the .ogg files directly? Re: training mission: sounds like a bug. Do you see a similar behaviour in older missions, i.e. from 2012? Btw, kingsal said he's interested in reimagining the training mission at some point, and some might join him in that.
  21. This is very good. At this point I think TDM's assets have accumulated quite a few things that should be deprecated, but unfortunately this is limited to models and materials at the moment. I've confirmed this to still be the case in DR 2.13. I definitely have some "deprecated" or outdated entities and duplicated soundshaders on my hit list, so I opened a ticket to extend this feature's coverage.
  22. Alright - this script rolls a random int between 0 and 4, then assigns one of 5 pairs of open and close sounds to doors that have been identified as chest lids on the basis of the frob_master being an atdm:froblock. It needs to be called once at map start, and you could change the names of the soundshaders ("door_open_02" etc.) to ones that you think go well together. Btw, scripting in TDM is now more thoroughly documented on the Wiki, so it'd be worth familiarising with for doing tasks like this. In this particular case, this page would've been useful for identifying all entities of a certain type in the map. It'd also identify all horizontal doors as chest lids. My approach with looking for frob_masters might not cover 100% of cases, but I don't think it'll yield false positives.
  23. Doors and lids both use that class, and I'm not entirely sure there's a property that will 100% accurately distinguish between them. Maybe it's possible to use a script to check if a mover_door is a frob_peer of an atdm:froblock entity? Changing the sound spawnarg via script should work fine. Most of the time when a sound is played in TDM, it reads the sound spawnarg.
  24. From my perspective it should only remove savegames - at the moment I can't think of any more files with significant weight that can be safely removed. Maybe previous devs had a reason to delete more files, but tbh it doesn't really seem thought through. The purpose of this button seems to be to reset the FM folder to the state as if a player had just downloaded the .pk4, ignoring the possibility that it could be a WIP FM. Tbh if it only removes savegames the feature could just as well be removed, since I don't think their file size matters anymore - the GUI would be a little bit cleaner. I don't think we've had problems with bloated savegames for a long time.
  25. I'd say so, but speaking against this are: cabalistic's concerns that this cvar setting causes a performance loss. Aluminumhaste says he hasn't seen such a loss so far. some vague reports of graphical glitches with this cvar setting
  • Create New...