Jump to content
The Dark Mod Forums

Newbie DarkRadiant Questions


demagogue
 Share

Recommended Posts

Don't forget that AI's don't see anything but brushes. No entities, no patches, no models etc.

If you want to see what an AI "sees", go into DarkRadiant and hide All Entities.

This is what you see: mzxC3K9.jpg

 

This is what that AI "sees": F6etQrE.jpg

 

So when you say, why does he not follow me onto those bridges, or down to the cave floor? It's because it's not there for him.

  • Thanks 1

I always assumed I'd taste like boot leather.

 

Link to comment
Share on other sites

On 6/22/2021 at 9:13 AM, thebigh said:

Nice idea. If you need a VA for the crazy prisoner, let me know!

Do you also do "regular" voice acting? Are you a native English speaker? If you can answer both question with "yes", then I would be delighted if you could provide your skills for my next project based on an almost complete mission created by the one and only grayman.

Link to comment
Share on other sites

On 6/22/2021 at 9:36 PM, AluminumHaste said:

So when you say, why does he not follow me onto those bridges, or down to the cave floor? It's because it's not there for him.
 

I know this was already solved, but for the record the standard solution to this, the standard practice period, is that you need to always put down invisible clip brush (with the right material to get the step-sounds correct) for all non-brush walkable surfaces, bridges, uneven patch-made floors in caves and natural terrain, even uneven brush work if it's disjointed enough, etc.

Just get into the habit of laying down clip brushes for anything like that every time, then AI will always be able to traverse it.

  • Like 1

What do you see when you turn out the light? I can't tell you but I know that it's mine.

Link to comment
Share on other sites

12 hours ago, JackFarmer said:

Do you also do "regular" voice acting? Are you a native English speaker? If you can answer both question with "yes", then I would be delighted if you could provide your skills for my next project based on an almost complete mission created by the one and only grayman.

I'm nowhere near professional but I'm a native speaker (Australian accent) and I'd be happy to help out with speaking roles. Until the middle of Jul I'm travelling and I don't have my good microphone with me but if it's, say, something broadcast over a PA and won't matter if I record potato quality on a mobile phone I can easily get started before then.

{ 0 | 🞵 } = funk_tastic

My missions:          the Factory Heist

Link to comment
Share on other sites

8 hours ago, thebigh said:

I'm nowhere near professional but I'm a native speaker (Australian accent) and I'd be happy to help out with speaking roles. Until the middle of Jul I'm travelling and I don't have my good microphone with me but if it's, say, something broadcast over a PA and won't matter if I record potato quality on a mobile phone I can easily get started before then.

Wicked. You'll get PM.

  • Like 1
Link to comment
Share on other sites

Running into an issue with objectives: I want an optional objective to not kill any human characters or knock out more than a given number based on difficulty. The Objectives Wiki page says I should be able to use "AI of specified type" with the value "human". I did this but no matter how many humans I kill the objective refuses to fail. Any idea what I might be doing wrong? Here's a screenshot from the configuration of one of those objectives.

Screenshot_20210626_011633.thumb.png.44c6f4bc93baf60b418bf623a480e574.png

 

Link to comment
Share on other sites

ai_type of "human" wont work. I think it's looking for a number, and it looks like humans are 0 (zero). So try "0" instead of "human" for both of those.

Hmm, I just noticed that later in that wiki entry, it says "ai_type  Type of AI: human, beast, undead, steambot, etc. (reads m_AIType in the SDK, which is set by the "type" spawnarg on idActors. Not sure if this is implemented yet)."

Hopefully, 0 will work for humans.

Link to comment
Share on other sites

Using 0 didn't work. I also added "1 OR 2" in the Failure Logic field just to be sure the two conditions aren't being both required, also does nothing just like leaving it empty.

I don't mind using team instead of type, the objective only needs to be applied to AI on certain teams. Problem there is I need multiple teams, and IIRC the team filter only lets me use one number not a list. I was going to add multiple team conditions, but then the counter would only tick for each AI in that team killed... for instance if the objective says "don't knockout more than 5 people" and I use conditions for two teams, I can still knockout 4 people from one and 4 from another thus 8 people in total.

Link to comment
Share on other sites

You could also try to set the "type" spawnarg manually. If it is already usable, but the type spawnarg is missing, then this might work. However, as joebarnin noticed, with the "Specifier Argument Type Expected: int" it seems to require an integer, which contradicts the use of different AI types. You could also try to set the "type" spawnarg to "1" and see if this lets you mark AI that count towards this objective.

Link to comment
Share on other sites

I had the same experience. What ultimately worked for me is to give any AI I didn't want killed (such as non-guards) the spawnarg "innocent 1", then:

Objective: Don't kill anyone except guards
Flags: Mandatory, Ongoing

Component
Type: AI is killed
Flags: Satisfied at start, Boolean NOT, Player responsible
Kill target: Any AI with specified combat status   1
Amount: 0

Link to comment
Share on other sites

47 minutes ago, Geep said:

I had the same experience. What ultimately worked for me is to give any AI I didn't want killed (such as non-guards) the spawnarg "innocent 1", then:

Objective: Don't kill anyone except guards
Flags: Mandatory, Ongoing

Component
Type: AI is killed
Flags: Satisfied at start, Boolean NOT, Player responsible
Kill target: Any AI with specified combat status   1
Amount: 0

In my case I need guards and even thugs to be included, so I'm afraid this wouldn't work here. The AI type option must have some sort of working value, it wouldn't be there if that wasn't the case... if neither "human" nor "0" work though what would it be?

Link to comment
Share on other sites

2 hours ago, Destined said:

What I meant before: have you given the AI, you don't want killed the spawnarg "type human"? This spawnarg ist not defined by default, but if you add it manually, it could work.

Tried that as well in various combinations, no luck. Looking at another possibility: There is "any entity of specified class" as well as well as "any entity with SDK-level spawnclass". I wonder if either of them can be used to detect inheritance from atdm:ai_humanoid or another common property? I'll need to try it but figured I'd ask first if I should even bother attempting that.

In the meantime I have another question, also related to objectives. How do you make an objective become visible after the player reads the last page of a note? The problem here is that to make an objective visible you must trigger an atdm:target_setobjective_visibility entity... how do you make a readable trigger a target once the player finished reading it?

Link to comment
Share on other sites

I don't know about ensuring that the last page was read, but you can trigger when a readable is opened then closed. Create a hidden objective, select the type "readable is closed", set the "name of single entity" to your readable, and go from there. In my case, this objective on completion calls a script function. If you did likewise, you could have that function then make the real objective visible.

Link to comment
Share on other sites

52 minutes ago, Geep said:

I don't know about ensuring that the last page was read, but you can trigger when a readable is opened then closed. Create a hidden objective, select the type "readable is closed", set the "name of single entity" to your readable, and go from there. In my case, this objective on completion calls a script function. If you did likewise, you could have that function then make the real objective visible.

Doesn't seem to work. "Readable is closed" is offered as condition to complete the objective, there don't appear to be any customizable conditions to show it without having to use an atdm:target_setobjective_visibility for that. I created one and targeted the readable to it, however neither opening nor closing the note will make my objective show up so far. And yeah it doesn't need to be a specific page of the note, it can enable the objective either on open or close.

Screenshot_20210626_224700.thumb.jpg.b0eebe9126ddee4be2bf5e2ebbf73572.jpg

Edited by MirceaKitsune
Link to comment
Share on other sites

Regarding the "don't kill more than X people" objective, I managed to figure out the embarrassing reason why that wasn't working: I forgot had to enable the ongoing flag! Upon turning that on, AI type 0 registers and the objective is failed whenever I kill a human.

So the only one I'm still stuck on is making the an optional objective appear when using note. Please let me know how I can make it so that accessing a readable turns an objective visible.

Link to comment
Share on other sites

I got so curious about that objective not working that I jumped in to DR to try it myself. I used two AI, a human and a spider. "Do NOT kill 1 AI of type 0" does indeed work on humans, but it apparently also triggers on spiders.

That said, I tried setting the "type" spawnarg on both AI, as @joebarnin (and @Destined) suggested above (for example, type 1 for human, type 2 for spider) and adjusted the objective to only fail if type 1 was killed. This worked perfectly. 

I can recall at least one mission that would fail the "no kill" objective even when killing spiders, so I guess the author forgot to make this distinction. :awesome:

 

Edited by roygato
Link to comment
Share on other sites

4 hours ago, MirceaKitsune said:

In the meantime I have another question, also related to objectives. How do you make an objective become visible after the player reads the last page of a note? The problem here is that to make an objective visible you must trigger an atdm:target_setobjective_visibility entity... how do you make a readable trigger a target once the player finished reading it?

According to the objectives wiki, there is the option that the player has to reach a certain page in a readable for the obective to be fulfilled (see "readable_page_reached"). If you use the "Completion Target" line in a hidden objective to target a "atdm:target_setobjective_visibility"-entitiy you should be able to activeate the entity as soon as the page in question is reached.

Link to comment
Share on other sites

Just to be clear about what I earlier and Destined now are saying...

You have to have TWO objectives. The first one is hidden and stays hidden. It uses either "readable is closed" or "readable page reached", which then triggers the target_setobjective_visibility on the second objective, changing it from hidden to visible.

Link to comment
Share on other sites

3 hours ago, Destined said:

According to the objectives wiki, there is the option that the player has to reach a certain page in a readable for the obective to be fulfilled (see "readable_page_reached"). If you use the "Completion Target" line in a hidden objective to target a "atdm:target_setobjective_visibility"-entitiy you should be able to activeate the entity as soon as the page in question is reached.

Indeed, I already used that ability in the past. I know how to make an objective become completed when you reach a page in a readable, but not how to have it become visible then complete by other means. I can't use another objective to make this objective visible either, as finding the note which triggers the objective isn't itself part of an objective but something random the player can come across.

And thanks for mentioning that @roygato so I can be aware. I didn't try spiders or other creatures, only verified that type 0 works on humans. What you're describing sounds like a bug in TDM: Spiders shouldn't be triggering a type reserved for humans, nor should werebeasts and even undead I'd imagine.

Edited by MirceaKitsune
Link to comment
Share on other sites

@MirceaKitsune

Quote

I can't use another objective to make this objective visible either, as finding the note which triggers the objective isn't itself part of an objective but something random the player can come across.

Sure you can. This first always-hidden objective should be thought of as just an implementation mechanism. It just lurks in the background waiting for its triggering event (i.e., the player finding a particular readable, opening it, then closing it) to happen. If the player never finds the note, no problem (other than electrons wasted).

Link to comment
Share on other sites

35 minutes ago, MirceaKitsune said:

Spiders shouldn't be triggering a type reserved for humans, nor should werebeasts and even undead I'd imagine.

Yeah, I wouldn't know how this type business is supposed to work. Many articles refer to "AI type", but I couldn't find a specific one just for that topic. This one https://wiki.thedarkmod.com/index.php?title=AI_Relations_(Editing) uses type and team interchangeably, which is odd since those are distinct spawnargs. So a human guard might be of team 2, but also type 0 I guess? Would like to see a list of all the AI and their types, if such a thing even exists.

Edited by roygato
Link to comment
Share on other sites

9 hours ago, Geep said:

@MirceaKitsune

Sure you can. This first always-hidden objective should be thought of as just an implementation mechanism. It just lurks in the background waiting for its triggering event (i.e., the player finding a particular readable, opening it, then closing it) to happen. If the player never finds the note, no problem (other than electrons wasted).

Hmmm, I see what you mean. I could do that but it feels kinda wrong: Objectives are meant to appear to the player, using a hidden objective just for a trigger feels like an ugly hack to compensate for a missing implementation. If nothing else works I can do that I guess, I will consider if I can make that work in some form.

Can it be confirmed however that there's currently no other way? More specifically, that notes cannot trigger targets upon being read, and objectives are the only thing that can scan whether a readable was accessed and target something based on that? If yes I at least know my options for sure. Also I'll probably make a report regarding this limitation, the next TDM release could use a proper trigger for readables from what I'm seeing.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share


  • Recent Status Updates

    • STiFU

      I started skateboarding again after a 20 year hiatus. Whish me luck I don't break anything. 😄
      · 2 replies
    • freyk

      Some years earlier i created some launchers for TDM. uploaded today some new sourcecode and executables on my github repo.
       
      · 0 replies
    • Epifire

      Say, I know it's been a while since the site got overhauled from the crash. But did we ever figure out if/how to get the recent topics & replies list back? It's not a total deal breaker but it was nice for becoming a thread creeper again...


      · 2 replies
    • Epifire

      Some of you who've been on the TDM discord know I was out of work last Winter, just putting in hrs for the developer portfolio. Currently I've been working a seasonal job to pay the bills and now I'm finally in my last week before I get bumped off. Things will be tight but I'm planning a long off period to make as much content as I can. Big plans in Unreal Engine as well as my most ambitious TDM collab yet! Never been so excited to be a stuck at home to pursue my life's work. With a lotta time and maybe some luck, I'm hoping to get enough art work done that I may start applying around to studios.
      · 4 replies
    • STiFU

      I finally got around to play Prey and I truly loved it. It is an incredible homage to System Shock and Deus Ex. While the gameplay is not en par with those two titles, the game makes up for that with its well written lore and story. The whole "world" just feells so authentic and it features a ton of really god environmental story-telling. Recommended for every immersive sim fan, i.e., everyone on this forum.
      · 5 replies
×
×
  • Create New...