Jump to content

Any way to gracefully handle overlapping messages?


Recommended Posts

I'm setting up a heavily scripted, dialogue-driven co-op scenario, where two pilots will initially be working independently on separate objectives, but will both be receiving the same text messages from 'Command' based on their progress. Aside from plot purposes, this is also because there doesn't seem to be a way to restrict the text messages to only be sent to a specific player / vehicle owner (just everyone, or everyone on a specific faction).

 

The problem I'm running into with this is that if player A completes his objective at the same time player B does, they'll both have separate, unique lines of dialogue triggered, but the latter one will go over top of and completely interrupt the former one, potentially before he'd have a chance to finish reading it. Is there a way to have the game just display multiple text dialogue boxes at once, or just queue the messages? Or is there some other, better way I can work around this?

Link to comment
Share on other sites

Maybe if you would set a flag active in the message triggers that you turn off after some seconds with a continuous trigger, then make one of the conditions of the message triggers that the flag must be false.

 

So say

 

Once > Unit dead "x" AND flag false (1) > Message to all "blabla" AND flag on (1)

Continuous > Time since flag (1,20) > flag off (1)

 

That way only one message can be triggered at once and the next one will only be displayed once the control flag is turned off again.

I7920/12GBDDR3/ASUS P6T DELUXE V2/MSI GTX 960 GAMING 4G /WIN 10 Ultimate/TM HOTAS WARTHOG

Link to comment
Share on other sites

actually address the aircraft, when giving the message (i.e. Hawg 2-1)?

 

if you were using voice, i would use a different voice to simulate a different JTAC operator or whatever who is handling that specific aircraft/ mission...i.e. make it easier for other pilot to tune out/ignore irrelevant messages

 

(ah its the delay you want...nevermind...)

[sIGPIC][/sIGPIC]

Link to comment
Share on other sites

Group MSG and Group SND trigger actions send a message and a sound to a single group.

 

Also Geskes method works quite well.

  • Like 1

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Group MSG and Group SND trigger actions send a message and a sound to a single group.

 

Aha! I can't believe I missed that, it even says in the manual that it's useful for multiplayer... if it performs as advertised, it should work perfectly.

 

Maybe if you would set a flag active in the message triggers that you turn off after some seconds with a continuous trigger, then make one of the conditions of the message triggers that the flag must be false.

 

So say

 

Once > Unit dead "x" AND flag false (1) > Message to all "blabla" AND flag on (1)

Continuous > Time since flag (1,20) > flag off (1)

 

That way only one message can be triggered at once and the next one will only be displayed once the control flag is turned off again.

 

This is good advice as well and will be useful for cases where I do want both players to receive the same dialogue; I was wondering about using time-since-flag to manage this, but didn't know how to implement it without making one message dependent on the other. I hadn't thought about using a continuous check though, that makes sense.

 

Thanks! Now I can get back to work.

Link to comment
Share on other sites

I've used the flag method but the only problem is that if during the delay you trigger 3 messages then once the delay is over (and flag cleared) they will be displayed in order as they appear in the ME trigger list. There might be occasions when you need a high priority message to take precedance over any others that are queued to display. You can do this also using flags but it does get a bit messy.

 

Tbh it would be nice if messages were automatically queued by DCS and there was a priority option allowed e.g. LOW, MED, HIGH. Might suggest it in the wish list. In the meantime I might take a look at doing it in lua.

i7-7700K : 16Gb DDR4 2800 Mhz : Asus Mobo : 2TB HDD : Intel 520 SSD 240gb : RTX 2080ti: Win10 64pro : Dx10 : TrackiR4 : TM Warthog : ASUS ROG SWIFT PG348Q

Link to comment
Share on other sites

Well you can change the triggers around a little bit, and if the priority is a predefined setting for the message, you can implement priority pretty easily...

 

 

Once > Unit dead "x" > flag on (1), flag 99 increase 1

Once > Unit dead "y" > flag on (2), flag 99 increase 1

 

Switched Condition> Flag 99 is greater than 0 AND Flag 100 is False> Flag 99 decrease 1,Flag 100 ON, flag 101 On

 

 

Once> Time since flag 101 is 1 second AND flag 1 is true > Play Message 1, Flag 1 off, flag 102 on, flag 101 off

Once> Time since flag 101 is 2 second AND flag 2 is true > Play Message 2, Flag 2 off, flag 102 on, flag 101 off

 

Switched Condition > Time since flag 102 is 20 seconds (or however long it needs to be)> Flag 100 Off, flag 101 off, flag 102 off

 

 

The message 2 condition can't be true before the message 1 condition is true. Therefor you have a pre-defined priority assigned to the messages.


Edited by Grimes

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

^ if unit y is killed then 5 secs later unit x is killed then surely message 1 will display over message 2 and vice versa?

 

i.e. At time 6 secs: flag 99 will be 1 but flag 100 is still true (as its within 20 secs).

 

Also it only allows for 19 messages and message delays will get longer. What we need is the ability to push messages to a stack, prioirity messages are placed at the top. The stack is then played with messages being removed as they are played.

i7-7700K : 16Gb DDR4 2800 Mhz : Asus Mobo : 2TB HDD : Intel 520 SSD 240gb : RTX 2080ti: Win10 64pro : Dx10 : TrackiR4 : TM Warthog : ASUS ROG SWIFT PG348Q

Link to comment
Share on other sites

You are right. I Fixed it, I had forgot something.

 

Also it only allows for 19 messages and message delays will get longer. What we need is the ability to push messages to a stack, prioirity messages are placed at the top. The stack is then played with messages being removed as they are played.

 

I guess if you have 20 different levels of priority, then yah, that would happen. But this assumes that you won't have that many messages that could possibly overlap at a given time and thus only need 2 or 3 levels of priority. Generally 3 levels would work best as you can use level 2 most of the time to play messages first if needed, but you can still use level 1 for those dire messages.

The right man in the wrong place makes all the difference in the world.

Current Projects:  Grayflag ServerScripting Wiki

Useful Links: Mission Scripting Tools MIST-(GitHub) MIST-(Thread)

 SLMOD, Wiki wishlist, Mission Editing Wiki!, Mission Building Forum

Link to comment
Share on other sites

Yep that works but I'll think I'll stick with a lua solution with all of my messages placed in a table. To me its just tidier and easier to change.

 

I guess if you have 20 different levels of priority, then yah, that would happen. But this assumes that you won't have that many messages that could possibly overlap at a given time and thus only need 2 or 3 levels of priority. Generally 3 levels would work best as you can use level 2 most of the time to play messages first if needed, but you can still use level 1 for those dire messages.

 

Yeh, the edit makes it all apparent now. cheers.

i7-7700K : 16Gb DDR4 2800 Mhz : Asus Mobo : 2TB HDD : Intel 520 SSD 240gb : RTX 2080ti: Win10 64pro : Dx10 : TrackiR4 : TM Warthog : ASUS ROG SWIFT PG348Q

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...