Jump to content
The Dark Mod Forums


Active Developer
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Dragofer

  1. Seems I had that problem in 2010: Thread: DefTokeniser: no more tokens
  2. Other venues towards making ragdolls invisible would be: - set the "AIuse" spawnarg to something like "-" - use actual ragdoll entities instead of killing AIs - or show the ragdolls to the undead in a blue room so they can freak out there without being seen, give them time to relax before teleporting them to the playable area For making the lute music stop, only thing that comes to mind now is to make an invisible objective that checks whether the AI is dead or alerted to level 3+, and triggers the speaker once.
  3. You could disable the visual stims emitted by those AIs, in the same script that kills / knocks them out. $name_of_ai.StimEnable(14, 0); 14 is the ID# of visual stims (found in script/tdm_stim_response.script), 0 is to disable. (If they start ragdolled at map start you can just disable the visual stim in the S/R Editor). One method is to encase him in a brush of nodrawsolid and apply health 1000. If you want to go further you could make a looping script that refreshes his health every few seconds. For never becoming alert, you can set all his acuities to 0.
  4. That sounds like your Windows user-specific configuration for DR might be glitched, would be worth going to /name of your user/AppData/Roaming/DarkRadiant/ and deleting or submitting your user.xml as part of a bug report.
  5. When attaching entities to AIs, the entities sometimes need to be rotated by putting spawnargs into their entity defs which specify their rotation and offset compared to a specific joint (in this case: something attached to the joint "velvetcap_1"). "angles_velvetcap_1" "90 90 0" "origin_velvetcap_1" "3 1.2 .2" I think if you specify a name_attach5 in addition to the def_attach5, for example "lute", then you can skip modifying the entity def and instead apply a spawnarg like "set angles_velvetcap_1 on lute" "90 90 0". This is why you sometimes have
  6. You need to copy from a brush's surface onto a patch, and the brush surface has to be on the same plane as the patch. This is a 2D projection, so it'll work best for flat patches.
  7. If the statue should just be in the default position you could export it as an .ase model. No need for the extra complexity of a ragdoll underneath the hood. The entity's name is atdm_env_ragdoll_werebeast_steele_1, but it doesn't look rotation-hacked and doesn't have special settings otherwise.
  8. Obsttorte wrote a script based on the player's view angles (statues that only move when the player's not looking at them): object statue_look { void init(); void loopLook(); vector viewDir; vector direction; float cosine; float tolerance; }; void statue_look::init() { thread loopLook(); } void statue_look::loopLook() { while(1) { if (distanceTo($player1)<1024) { viewDir=sys.angToForward($player1.getViewAngles()); direction=getOrigin()-$player1.getOrigin(); cosine=viewDir*direction/sys.vecLength(direction); direction_z=0; if (cosine<sys.cos($player1.getFov(
  9. I've checked beforehand, quake 4 seems to use idtech4 so it should be comparable?
  10. There is this From this thread in 2014. Looks like the creator doesn't respond to messages though, at least back in 2014.
  11. Expanding on this, you can: 1) Create a patch with a generous number of rows and columns 2) Open the Patch Inspector (shift s), enable fixed subdivisions and set to i.e. horizontal 5 and vertical 5. 2) At the top, Patch > Bulge Patch. This randomly deforms the patch. May need to manually drag down some of the vertices again to avoid knife edges. If you keep posting into this thread Id suggest renaming it to i.e. mattmkb's Mapping Thread.
  12. I'm not aware of a tutorial, but the mission Exhumed has a more open skybox that gives the illusion of extending the landscape into the horizon beyond the map's boundaries.
  13. For punctual information, I find wiki.thedarkmod.com to be most helpful, for example when wanting to find everything about how to setup various doors and behaviours related to them. The DR userguide is more for learning about using the program's interface. For broader intros to mapping, it's definitely recommended to look at the video mapping workshops by veteran mappers (I know that those by Springheel or Sotha are detailed and up to date), which walk the viewer through the creation of a small mission. There's also a text-based tutorial on the wiki by Fidcal, but it's very old by now and
  14. There are a few options: type in testmap mapname into the console, which combines dmap and then map. This is risky when you're only beginning to make maps because the map will load even if there's a leak without any warning. create a custom shortcut that starts TDM and automatically loads or compiles a map bind the console commands to dmap/map/testmap your map to hotkeys by typing for example this into the console: bind "p" "map mapname". This works only if you're already loaded into the map. as of 2.09, which is slated for entering beta at the end of 2020, there'll b
  15. You need to have a darkmod.txt and startingmap.txt in your fm so that it shows up in your mission list in TDM, then you need to install your FM in TDM. This is the same as what you do everytime you switch to playing a new mission.
  16. Maybe you've already tried to load the slimmed down version of the mission (in the sense of a large secret area), which can be manually downloaded from here?
  17. You can spawn entities, and you'd probably need to set a model too, like this: entity spawned_entity = sys.spawn("func_static"); spawned_entity.setModel("models/darkmod/..."); spawned_entity.setOrigin('0 0 0');
  18. It's very probable the 0.0160 is just a rounding down of 0.01666666. The most precise expression of a frame is 1/60 of a second. sys.wait is less precise than sys.waitFrame because the engine checks every frame how much time has passed. So it checks after 0.0167s, 0.0333s, 0.0500s etc. If you tell it to wait 0.02s it actually waits 0.0333s because that's the first frame where time elapsed is greater than 0.02. I really don't think there can be less than 1/60 of a second between scripted events, so you'd have to adjust the distance moved.
  19. I think the game clock runs independently of how fast your PC is producing frames. If you run the game at 20fps, the game clock advances by 3 frames even though you've only seen one frame in that time. The shortest possible waiting duration is 1/60 of a frame, so 0.0167s. As Obsttorte pointed out once, if you use wait commands the engine checks every frame whether a greater or equal amount of time has passed. So if you specify 0.0200s, the engine will wait 2 frames, 0.0333s.
  20. Regarding The Painter's Wife not loading, it's possible you might've been running the 32-bit version of TDM, thedarkmod.exe, which in most cases isn't capable of loading a mission of that size. It's highly recommended to run the 64-bit version, thedarkmodx64.exe, which is located in the same place as thedarkmod.exe. (From 2.09 onwards TDM will hopefully only ship the 64-bit version.) That said, a new version of The Painter's Wife is soon going to be released, so I'd suggest waiting for that one to benefit from all the improvements and fixes.
  21. Glad to hear that - for using the Mysterious Stone, look around and for the "cathedral" and any other things you might have missed, you might want to look at Lzocast's walkthrough/compilation of points of interest.
  22. Here's a .pk4 containing @Sotha's great automaton guards from Ulysses: Genesis as well as an alternative design for the charging station that I had already made on another occasion, as requested by @JackFarmer. The reason I'm posting this in my scripting thread is that I've made a straightforward scriptobject for the charging station, allowing an automaton to switch it on and off as part of its patrol, thereby saving a lot of money on the lord's electricity bill and preventing the station from getting out of sync. It also switches off after a specified time (time_max), in case the automaton is
  23. Stgatilov has added diagnostics for this kind of crash in 2.09, showing the 5 last events and 5 randomly chosen events out of the maximum of 10,000 per frame (IIRC). Personally I've seen this happen in a custom elevator script that sometimes repeated itself an infinite number of times without any waits inbetween. This was in a script that started if IsOpen() is true, but would only continue if getFractionalPosition() was also true, otherwise it'd restart itself by checking IsOpen(). Sometimes those 2 tests don't agree with each other, so IsOpen would be true while getFractionalPosition is
  24. @GeepCome to think of it, the easiest way to see if theres a leak between the 2 rooms would be to stand in one and enable r_showportals 1. If you can see the other room's portal, there's a leak.
  25. It's good practice to build maps leaving only the big sealing brushes as worldspawn and everything else func_static, so that you can enable the filter for "All entities" and more easily find gaps in the clean, blocky brushwork. Apart from that, there's still the old method of intentionally creating a leak to the void -> running pointfile to see which entity is used as the starting point for the red line -> move that entity into either room & turn the rooms' visportals into i.e. wood. Or export the 2 rooms into a separate map and see what the pointfile does.
  • Create New...