x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Delay's keep working in inactive tasks. Surely this is a bug?

So if you have a delay in a behavior tree task, and then the task is aborted, or finishes, the delay will actually still fire and trigger things.

Surely this is a bug? Shouldn't inactive tasks be, well, inactive?

Product Version: UE 4.8
Tags:
more ▼

asked Jul 28 '15 at 10:17 AM in Blueprint Scripting

avatar image

Asher S Einhorn
645 93 79 180

(comments are locked)
10|2000 characters needed characters left

1 answer: sort voted first

This is actually an engine bug that I came across a couple weeks ago. Epic is aware of it, and they say it will be coming in a coming 4.8 update.

Are you building C++ for your project? If so, Mieszko from Epic gave me the following fix for the function FLatentActionManager::ProcessLatentActions (in LatentActionManager.cpp). Replace the piece of code that looks very similar to the chunk below:

 for (FActionsForObject::TIterator It(ActionsToRemoveMap); It; ++It)
     {
         auto ActionList = GetActionListForObject(It.Key());     // Here was the bug! Passing in It.Key() fixes it.
         auto ActionToRemoveListPtr = It.Value();
         if (ActionToRemoveListPtr.IsValid() && ActionList)
         {
             for (auto PendingActionToKill : *ActionToRemoveListPtr)
             {
                 const int32 RemovedNum = ActionList->RemoveSingle(PendingActionToKill.Key, PendingActionToKill.Value);
                 auto Action = PendingActionToKill.Value;
                 if (RemovedNum && Action)
                 {
                     Action->NotifyActionAborted();
                     delete Action;
                 }
             }
         }
     }
     ActionsToRemoveMap.Empty();


Or just hold tight for that update!

By the way, a side effect of this same bug was that some random delay somewhere else in the running game was likely being silently canceled.

more ▼

answered Jul 28 '15 at 02:05 PM

avatar image

disla
92 5 9 13

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question