I'm afraid you won't be able to do this without while loop, since TRIGGER will be triggered each time you move (if you call ACTIVATE_TRIGGER in your c_move), so you'll have to disable ENABLE_TRIGGER as soon as you are going to display your first dialog. My example actually works, I tested it before posting here, it show DsPanelE panel as soon as you entered the trigger range. When you press E key, it will make DsPanelE invisible, will wait for 1 second and make DsPanel visible. After thatn if you keept on holding E key (or simply press it once again, since we are in main loop) it will make DsPanel invisible after once second and will exit the main loop (since pressed will equal to 0). Isn't that what you wanted to archive in your code example in your first post?

For dialogs I wouldn't use TRIGGER, cause imagine you'll have about 5 NPCs near each other, as soon as you'll get close to them, you'll trigger all their events, you could check for the distance, but still, it's not what I would like to archive. Instead, try something with interaction trace, so you will need to get close to each NPC, look at it and press E key (when you press E key, trace once to the offset position infront of the player/camera, with ACTIVATE_SHOOT f.e. so you could run ENABLE_SHOOT event for each NPC).

EDIT: or you can take a look at this example, I converted it from older Mirrowind tutorial from AUMs. Do exactly the same thing in TRIGGER event (if you need this trigger stuff so much), but don't forget to disable/enable TRIGGER events.
Dialogs

Greets!


Looking for free stuff?? Take a look here: http://badcom.at.ua
Support me on: https://boosty.to/3rung