- Joined
- Dec 12, 2010
- Messages
- 2,074
Full story here:
http://blog.d1stats.ru/blog/198.html
Shorter version:
Whenever the spell, based on 'ANcl', being loaded first time (with a unit, for instance), it's order being stored as a key in some kind of cache. This cache being used for all "Issue*Order" natives, effectively remembering the order to get faster responce with following casts.
Issue is - whenever targetability (not "allowed targets", but "targeting type") of the real order doesn't fit the new 'ANcl' ability, it's become buggy. Example:
'A000' - my new ability based on 'ANcl', DataB1 = 'no target' (0), Order = "carrionswarm".
'A001' - default carrion swam ability, copied just for new ID and nothing more.
Any human can freely cast both abilities regardless the order they appeared in the map. And, if you want a dummy to throw 'A001' for you:
If 'A000' has came to the map first, dummy with 'A001' won't success with "carrionswarm" order, no matter what.
If 'A001' appeared first, everything works just fine, no matter which ability dummy trying to use.
There are even worse cases, when ordering returns "true" while nothing actually has been casted. They are described in the blog.
Overall: Caching algorithm must ignore ANcl's order and do not pre-cache such abilities at all. It leads to malfunction of all Issue*Order abilities, which are uses same order but have different targetability.
http://blog.d1stats.ru/blog/198.html
Shorter version:
Whenever the spell, based on 'ANcl', being loaded first time (with a unit, for instance), it's order being stored as a key in some kind of cache. This cache being used for all "Issue*Order" natives, effectively remembering the order to get faster responce with following casts.
Issue is - whenever targetability (not "allowed targets", but "targeting type") of the real order doesn't fit the new 'ANcl' ability, it's become buggy. Example:
'A000' - my new ability based on 'ANcl', DataB1 = 'no target' (0), Order = "carrionswarm".
'A001' - default carrion swam ability, copied just for new ID and nothing more.
Any human can freely cast both abilities regardless the order they appeared in the map. And, if you want a dummy to throw 'A001' for you:
If 'A000' has came to the map first, dummy with 'A001' won't success with "carrionswarm" order, no matter what.
If 'A001' appeared first, everything works just fine, no matter which ability dummy trying to use.
There are even worse cases, when ordering returns "true" while nothing actually has been casted. They are described in the blog.
Overall: Caching algorithm must ignore ANcl's order and do not pre-cache such abilities at all. It leads to malfunction of all Issue*Order abilities, which are uses same order but have different targetability.