Question about casting syncrhonization using a_CastFromUplink/a_CastFromUplinkOnPlayer

mistahmikey

Active Member
Just wondering how Ogre works these calls into its cast mix. Do they execute asynchronously in an atom? Or are they queued for later execution? Are they a one shot, or are any retries attempted if they fail? Lately, I have noticed when I cast spells using this interface, they are not getting cast as reliably as they used to. Even if I set the "cancel current cast" flag to TRUE, the spell is not always cast. I realize there my be legitimate reasons for this to happen, but it seems to be quite a bit more prevalent of late. Perhaps a bit more knowledge about the internal casting synchronization mechanisms Ogre uses can set me free.
 

Kannkor

Ogre
Just wondering how Ogre works these calls into its cast mix. Do they execute asynchronously in an atom? Or are they queued for later execution? Are they a one shot, or are any retries attempted if they fail? Lately, I have noticed when I cast spells using this interface, they are not getting cast as reliably as they used to. Even if I set the "cancel current cast" flag to TRUE, the spell is not always cast. I realize there my be legitimate reasons for this to happen, but it seems to be quite a bit more prevalent of late. Perhaps a bit more knowledge about the internal casting synchronization mechanisms Ogre uses can set me free.
It queues them.

Personally I don't recommend using the cancel flag. IMO, it is causing more problems than solving them.

There are no retries, once the bot is done it's current action, the first thing it does is goes through queuedcommands until it is empty. So it should happen immediately after it's current action (pending how many queuedcommands you gave it during that action, but realistically it'll happen right after).
 

mistahmikey

Active Member
Thanks for that info. When they are put on the queue, do they just go on top of the Cast Stack for their one cast? Just wondering how they "fit in" to the cast order provided by the Cast Stack.
 

Kannkor

Ogre
Thanks for that info. When they are put on the queue, do they just go on top of the Cast Stack for their one cast? Just wondering how they "fit in" to the cast order provided by the Cast Stack.
They aren't part of the caststack at all.

When you queue an ability, as soon as the bot is done it's current action, it handles the queuedcommand, in this cast casting of an ability. Said casting is not tied to the Caststack at all.

So it happens prior to any cast stack activity at all.
 

mistahmikey

Active Member
Ah, ok. So I assume you chose one ability from the cast stack at a time to cast as a "current action"? And further, that no more than one ability from the cast stack would ever be cast before the ability I queue up via the interface?
 

Kannkor

Ogre
Ah, ok. So I assume you chose one ability from the cast stack at a time to cast as a "current action"? And further, that no more than one ability from the cast stack would ever be cast before the ability I queue up via the interface?
Mostly correct.

Generally speaking, only 1 action is ever done before it 'starts over'. There are times where more than 1 action is taken.
Common examples:
Stealth abilities (cast to-stealth ability then cast the stealth ability).
Some various raid code (I can't actually think of any examples, but I know there are some).
 
Top Bottom