View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006005 | The Dark Mod | AI | public | 12.07.2022 09:47 | 15.07.2022 09:44 |
Reporter | Frost_Salamander | Assigned To | Obsttorte | ||
Priority | normal | Severity | normal | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | PC | OS | Windows | OS Version | 10 |
Product Version | TDM 2.10 | ||||
Summary | 0006005: AI can operate non-frobable doors | ||||
Description | If a door is marked as non-frobable, AI can still operate them if they can't reach the intended mechanism used to open it, such as a lever or trigger. Ideally, if a door is marked as non-frobable, AI shouldn't be able to operate them directly but rather use the intended controllers/trigger (or don't use them at all if they can't reach/operate the controller mechanism). I have 2 scenarios where this causes a problem: Lever doors: I have a gate marked as non-frobable that separates 2 areas and is controlled by levers. It is intended for guards to use and the levers are kept in areas away from the gate. The map also contains 'commoner' AI near the gate who cannot reach the levers. If you alert the commoner AI, they will flee towards the gate and open it without using the lever, making the whole lever/controller setup pointless. In addition, guards will also open the door without using the levers if they can't reach them. If the AI can reach the levers, they will use those to open the door. Secret door: I have a non-frobable secret door that exits a building. It is opened by a trigger inside the building. If you are outside the building and alert a commoner AI nearby, it will flee and open the secret door and run into the building. This will obviously ruin the secret as it wasn't supposed to be revealed until the player goes inside the building and finds the exit trigger. Actually, in this case setting 'ai_should_not_handle' to '1' should be ideal because I don't want the AI to ever operate the door, but unfortunately if this is set, the AI will then not walk through the door when it's open. This wiki entry might be wrong (the part about the AI walking through when it's open): From https://wiki.thedarkmod.com/index.php?title=Doors#AI_Door_management "ai_should_not_handle" If set to 1, AI will not attempt to handle it and add it to the forbidden areas when closed (so that it doesn't try to path through). They might still walk through the door when it is open though. Useful if you have some special use door that you don't want the AI to operate. | ||||
Steps To Reproduce | Lever door: - set up a door separating 2 areas and set 'frobable' to '0' - set up a controller lever to operate the door on one side only - place a commoner AI on the other side of the door (the side where the controller isn't) - alert the AI. It will open the non-frobable door and flee through it, despite it only being intended to be openable using the lever Secret door: - set up a door separating 2 areas and set 'frobable' to '0' - on one side, create a trigger that opens the door - on the other side, place a commoner AI - alert the commoner AI and it will flee through the secret door. | ||||
Tags | No tags attached. | ||||
update description confirming that all AI (not just fleeing AI) can operate non-frobable doors | |
I've inspected the code and tested a bit more and made the following observations: frobability is player-related only, and therefore is not intented to affect the ai if there is no controller on the side of the door the ai is at, it will handle the door directly if ai_should_not_handle is set to true, the ai will not use the door, neither directly nor via controller if the door is open however, it will walk through it it will not walk through it, if it got opened after it attempted to flee So in general the setup already works, but there are two flaws: You might want to have a setup with lever-controlled door that can only be operated from one side the flee routine should take the fact, that not_handleable doors got open during fleeing into account. |
|
Re: "You might want to have a setup with lever-controlled door that can only be operated from one side" This can be achieved using door_handle_position entities. Re: "the flee routine should take the fact, that not_handleable doors got open during fleeing into account. " It actually does, but not if ai_should_not_handle isn't set to true. Considering this and that the desired setups are achieveable via door_handle_position entities, it is best to not use "ai_should_not_handle" at all. |
|
Date Modified | Username | Field | Change |
---|---|---|---|
12.07.2022 09:47 | Frost_Salamander | New Issue | |
12.07.2022 10:19 | Frost_Salamander | Description Updated | |
12.07.2022 10:52 | Frost_Salamander | Description Updated | |
12.07.2022 21:00 | Frost_Salamander | Summary | Fleeing AI can operate non-frobable doors => AI can operate non-frobable doors |
12.07.2022 21:00 | Frost_Salamander | Description Updated | |
12.07.2022 21:00 | Frost_Salamander | Steps to Reproduce Updated | |
12.07.2022 21:00 | Frost_Salamander | Note Added: 0015009 | |
12.07.2022 21:02 | Frost_Salamander | Description Updated | |
15.07.2022 06:50 | Obsttorte | Note Added: 0015022 | |
15.07.2022 06:50 | Obsttorte | Assigned To | => Obsttorte |
15.07.2022 06:50 | Obsttorte | Status | new => assigned |
15.07.2022 09:39 | Obsttorte | Note Added: 0015023 | |
15.07.2022 09:42 | Obsttorte | Note Edited: 0015023 | |
15.07.2022 09:44 | Obsttorte | Status | assigned => closed |
15.07.2022 09:44 | Obsttorte | Resolution | open => fixed |