• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Gamebreaking] Caching "channel"-based abilities

Status
Not open for further replies.
Level 19
Joined
Dec 12, 2010
Messages
2,069
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.
 
Status
Not open for further replies.
Top