Forum rules - please read before posting.

Awaiting Action List that contains a Start Conversation action fails

Hi there!

I have an list that contains an "ActionList:Run" action set to start another list (with "Wait until finish" checked). The problem is that only the first couple of actions of the new list is actually awaited, then a "Dialogue:Start conversation" action is executed and the original list continues it's execution...

How do I await the whole list before the original list continues?

AC: 1.66.8
Unity: 2018.3.5f1

Thanks!

Comments

  • Initiating a Conversation ends the ActionList it's run from. If you override its options within that ActionList, then the ActionList actually gets re-run from that point.

    You'll have to instead stop the ActionList at that point, and then use another ActionList: Run Action at the end of your Conversation to resume the original ActionList from the next Action in the sequence by unchecking Run from start?.

  • I see...
    But the whole point of awaiting the second ActionList was that however that conversation ended I wanted the previous ActionList to continue. It's a complex conversation that can end in multiple ways and having to drag connectors between every possible ending to the closing Action is quite tedious and error prone.

    It would be really useful if this could be implemented. However, here's a suggestion for a workaround: Would it be possible to add a "Post Action List" to the Cutscene properties, where we could specify an action list that should be executed at the end of this cutscene (no matter how it ended)?

  • Again, technically the Cutscene is ending once the Conversation begins. Any "After running" Cutscene property would still kick in once the Conversation shows up, because the Cutscene it's called from has then ended.

    You don't have to drag multiple connectors - you can just create a new Cutscene with a single ActionList: Run Action that all the end-points then run.

    This restriction is not applied, however, if you don't override the Conversation's options. If you rely on a DialogOption ActionList for each response, you can have the Conversation Action wait until those responses are complete.

  • You don't have to drag multiple connectors - you can just create a new Cutscene with a single ActionList: Run Action that all the end-points then run.

    Having to manually make all end-points in the second ActionList connect to a single Action is exactly what I was trying to avoid by awaiting the whole ActionList.

    What you are suggesting also makes the two ActionLists tightly coupled in that they now both need to be hard coded to each other (whereas before only the first one needed to know about the second one).

    It doesn't seem intuitive to me that a Start Conversation action causes the current ActionList to end, but perhaps I'm missing something.

    Anyway, here's what I'm actually trying to accomplish:

    I need to repeat some logic anytime the game goes in and out of conversations (these are logical conversations so they might contain several StartConversation actions). So my idea was to have one generic ActionList asset that would...

    1. Run the actions needed each time a logical conversation starts
    2. Run and await the ActionList containing all the conversation logic (sent in as a parameter)
    3. Run the actions needed each time a logical conversation ends

    Do you see any reusable way of doing this?

    Thanks for listening :)

  • edited February 2019

    That the ActionList ends while the Conversation is active is necessary for technical reasons.

    You could, however, modify the ActionList: Run Action to also wait until dialogue options are not showing. This can be done by inserting the following into line 172 in ActionRunActionList.cs:

    if (KickStarter.stateHandler.gameState == GameState.DialogOptions) return defaultPauseTime;
    

    To make such a change permanent, copy the script and make it a custom Action.

    Bear in mind that the ActionList that contains this ActionList: Run Action will have to run in the background.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.