Jump to content
The Dark Mod Forums


Development Role
  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by Dragofer

  1. 7 hours ago, HMart said:

    Thou the first thing that came to my mind when I read the question was using a func_mover, it exists exactly for that, I'm surprised if there's nothing in TDM wiki about it, if there's not here are something about it, and a more powerful and complex tutorial here thou a slide door is just a special binary func_mover.

    I believe there's no way to control a func_mover without using a script. Doors have the advantage of having an inbuilt response to frobs and triggers. If you can script, then func_movers are the more elegant option. In this case their advantage would be that you can more easily make it a single-use thing.

    • Like 1
  2. 3 hours ago, datiswous said:

    Well I think there's just one guy doing that and you can just put him on ignore. Or apply moderation. But ok, I understand.

    Ignoring is somewhat inadequate as you still see other members engaging in a discussion with the problematic user, and as Wellingtoncrab says such discussions displace all other content within that channel.

    Moderation is also imperfect as being unpleasant to engage with is not in itself banworthy, so there is nothing more to do if such people return to their old behaviour after a moderator had a talk with them, except live with it or move away.

    I'd be more willing to deal with it if it felt like there were more on-topic discussion, i.e. thoughts about recently played fan missions or mappers showcasing their progress, rather than a stream of consciousness about a meta topic that may or not have to do with TDM. I guess the forums already serve the desired purpose, or they just compartmentalise discussions better.

    • Like 4
  3. 3 hours ago, MirceaKitsune said:

    Thanks for clarifying. Unfortunately there's still a bug as the barrier never goes away: When I first enter the apartment the husband says "is she hurt, please put her on the bed"... I do so and the objective is completed, but after that the husband says nothing else and the barrier never goes away. I looked around the room and tried frobbing him, but nothing ever happens for some odd reason. Wonder if some triggers or signals got broken in latest dev?

    Hm, he's meant to continue talking after the placement is complete and the objective ticks off.

  4. 12 hours ago, MirceaKitsune said:

    Ran into a few bugs. Most noteworthy is a breaking glitch that makes it impossible to continue without noclip:

    Thanks for giving it a playthrough and leaving the detailed feedback. Regarding your supposed glitch, it's actually an intended feature to ensure the player stays inside the room while the NPC is talking to him to avoid missing cues and not seeing why the objectives were updated. The barrier should be gone afterwards.

  5. 1 hour ago, JackFarmer said:

    If you don't want to try the script solution as described in the post above, you can try the following

    1. Create a blue room far away from the map and put the fog light in it

    2. Place an atdm:teleport entity at the fog light position in your map

    3. Let the atdm:teleport target the fog light in the blue room

    4. Trigger the atdm:teleport entity with a trigger_once entity or whatever you have in mind.

    This would also have the advantage that the foglight wont be contributing to an extra rendering pass of everything it touches in the map, even if its transparency were ultra high. IIRC a foglight added 1000+ drawcalls to the Perilous Refuge harbour scene.

    • Thanks 1
  6. Your approach is basically how I did it with the custom AI alert behaviour in Iris. You can only steer AIs while they're unalerted, so my script would tell them to approach the source of the commotion. Once they come close enough to see the problem, TDM's stock AI routines would take care of the rest.

    • Like 1
    • Thanks 1
  7. 14 hours ago, Skaruts said:

    @Dragofer does your version work in 2.12? I'm confused about what to download. I tried one z_addon_stealth_statistic_2_07.pk4 that I found somewhere in this thread, but it didn't work. 

    I tried out @kcghost's version (it works on 2.12), but I found that it interferes too much with my usage of inventory items, so I'd like to try out yours to see if it's more comfortable to use. I think I've seen a youtuber use it before.


    As the file name implies it's for v2.07, which was the last TDM version before a hook for custom user addons was added. It therefore overwrites the main TDM script file with a version from 2.07, which means several newer missions won't work anymore.

    It looks like I made an updated version that should be compatible with all 2.08+ TDM versions, as per datiswous' post. Practically it's an inventory item that triggers a GUI message popup whenever you activate it in your inventory.

  8. On 6/5/2023 at 10:17 AM, datiswous said:

    Is it possible to teleport the player to different areas depending on a condition? For example a gui selection.

    It would be nice to have a gui-selection menu opened up when you click on the door. You only get teleported after making a selection in the gui.

    Yes. You would modify the function that gets called when the player frobs a teledoor to offer the player a GUI selection, wait for his input and then update the entity variable for which teledoor it's paired to, before the teleportation begins.

  9. 26 minutes ago, joebarnin said:

    In a TDM script (in real time) I want to calculate the angle between two points ('vectors' in the scripting language). It's basically arctan - but there is no 'arctan' function in the TDM script language. Is there any way to call an external script or function? Like, jython?

    Worst case, I can hard-code a table of values, but that is kludge-a-rific.

    The way Id do it is sys.VecToAngles( point2 - point1 );

    That gets you a set of angles from 0 to 360 - if you need their overall magnitude you could use sys.vecLength( angles ); Alternatively you can convert them with sys.angToForward( angles ); if you only need the angle on the horizontal plane.

    You can also use anglemod180( angles ); to convert angles to the range -180 to +180. I believe that function only lets you do 1 angle at a time.

    @thebighwere you able to get persistantargs to work?

    @MirceaKitsuneI think you'd be better off respawning an AI with the desired properties. I highly doubt TDM allows you to alter an AI to that extent.

    • Thanks 1
  10. 15 hours ago, snatcher said:

    In the above screenshot secrets are missing. Not sure if secrets get displayed in the next screen or since there weren't secrets in this mission secrets just don't show up.

    Secrets only get shown in the stats screen if the FM uses the official system. Before that was introduced a lot of FMs used a selfmade system.

  11. 1 hour ago, Frost_Salamander said:

    Sorry I wasn't being clear.  I'm looking at having a version of this that could be packaged with a fan mission.  So the .pk4 would be placed in the FM folder, not TDM root.  In that case would the game pick up those other entities from the core TDM files?

    Yes, overwriting individual core entities with custom .def files in an FM archive is now uncomplicated after the overwrite rules were changed in a recent TDM version. The FM will be isolated from any future changes to the player entity, however - even if they may be rare.

    • Like 1
  12. 1 hour ago, Frost_Salamander said:

    ok thanks - so are you saying that def_weapon spawnarg could be added via a script, or not?  I was going to try that anyways and see.

    You can always add it via script, but itll be too late because the spawn frame code events have already happened. i.e. the lantern won't be part of the weapon index.

    1 hour ago, Frost_Salamander said:

    Also anyone have any idea why there are other entities present in that file?  like this and this...

    This is a generic def file for player-related entities. If you overwrite a core def file you have to include everything, otherwise those entities will be missing from the game.

  13. 3 hours ago, Frost_Salamander said:

    And in def/tdm_player_thief.def an extra weapon attachment is created for the lamp If this could be done dynamically in a script we could remove that file as well. Has anything else in this file been changed (or do we need to get the diff viewer out...)?

    Adding that def_weapon spawnarg is indeed the only change made for this lantern. In fact the file is outdated because it doesnt have the bobbing spawnargs that were added in a recent TDM version.

    It doesnt look like there's a way to replace this via script, currently. Player.cpp does various stuff with the def_weapon spawnargs in the spawn frame, including setting up a weapon index. There's also stuff that seems to be called after map start like idPlayer::UpdateWeapon which reads out def_weapon spawnargs, so any dynamic approach should include appending a def_weapon spawnarg for the lantern to the player entity.

    All in all, adding custom weapons is quite limited. Besides the requirement of the above core file overwrite, we only have 2 extra hotkey slots for custom weapons with no way to set them via the menu. In a previous dev discussion it was decided that we already have too many hotkeys so some alternative approach should be tried i.e. a weapon wheel like in Dishonored.

  14. 15 hours ago, HMart said:

    Is the lamp a weapon? Unless TDM weapon system is different from Doom 3, weapon models should have the "depth hack" thing enabled, that "hack" (that is how idSoftware calls it :D ) makes sure the weapon never intersects with geometry. 

    in the code:

    bool weaponDepthHack;	// squash depth range so view weapons don't poke into walls

    Don't know if there's a way to enable that without messing with c++, stgatilov or others may know. 

    This is true, but the fact is that the viewmodel only consists of a bare arm (animated model), with something bound to it (static model). The depth hack only applies to the arm model itself.

    If you want to stop the lantern clipping through walls you have to make a new version of the animated arm model that has the lantern integrated into it.

  15. 13 hours ago, datiswous said:

    Have you figured this out? Do you mean the 3d-view (so how it shows in the game world) or when you click on it and opens fulscreen? I ask this because I remember I stumbled onto something when doing fixes to StLucia (making the church book visible in color in the game-view).

    Thanks for asking, Ive figured it out in SLL for making those self-fading readable items. I think it was a matter of setting the colours in the GUI stages in a certain way.

  • Create New...