• 🏆 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!

Obscure and weird bug with Channel order string

Status
Not open for further replies.
Level 5
Joined
Jul 31, 2020
Messages
103
Hi.

Apologies if there was a thread about this somewhere, I tried searching, but nothing similar came up which isn't all that surprising considering the nature of this bug. It's extremely specific, and is also beyond my expertise with the editor to explain, which is why I'm posting here although I already fixed the bug. I'm looking for a potential explanation, basically, if anyone has one.

So, working on a map, probably obvious by now. I stumbled upon a very curious bug as I was doing my usual test strolls. I have a Channel-based ability on a hero which had a different issue I fixed, therefore I was testing if my solution worked, and yay it did, but by pure dumb chance I encountered something else.

Basically, a creep has a quite basic Shockwave ability, and this somehow refused to work as I was testing. It never happened before, so it caught my interest. I started target testing it to see if I could isolate the bug, and squash it. I spent probably around 4-4.5 unfruitful hours. The problem sometimes showed itself, sometimes didn't. The only thing I could definitely pinpoint is that this one particular hero was the only one I could use to produce the bug.

Eventually, I finally found what exactly was causing it. The aforementioned Channel-based ability, but wait... wait right there. This is not a trigger/script issue. I know, it sounds like that. And at first I thought the same, which is why I turned off every relating trigger one by one, and kept testing again and again, just to see that the bug was still there. Even when there was no functionality left for that hero ability, the creep still failed to use its Shockwave.

Here's the fun part though; only if I learnt the ability on the hero before the Shockwave was used by a creep on the map at least once. If I first fought the creep, the Shockwave came out as it should. I could then learn the hero's ability, and the Shockwave continued to work properly.

These abilites have absolutely nothing to do with each other. They do not interact. Their triggers do not interact. They are simply two completely different abilities used by completely different units.

So I went to the object editor, and started checking every related ability in there. I saw that the Channel-based trigger ability I learn on the hero has the order string "shockwave", and I thought to myself "That can't be it, can it, no way", but I decided to change the order string anyway.

It fixed it. I cannot think of a single reason this bug would surface. None at all. A trigger ability on my hero having the same order string as a regular Shockwave ability on a creep's dummy unit preventing it from using that, but only if I learn mine before any of those creeps uses it at least once beforehand. Sounds about as unrelated as it can get.

So anyway, does anyone have an explanation? And more importantly, does anyone have a list of order strings I could burn myself with the same way, and I should avoid using on Channel? Something tells me if this caused me this obscure, yet oddly specific issue, there might be others.
 
Level 5
Joined
Jul 31, 2020
Messages
103

I read your replies in there, and a bit more. They don't seem to overlap with what I outlined in this thread. You're talking about setting the order string to something that points to an ability which is of the same type (for example point target, or instant), however in my case the ability that wouldn't trigger on the creep was, in fact, a regular Shockwave-based ability. Nothing fancy there, it wasn't Channel.

But to address not using any string, if it should matter; I always use one that's the same type as the ability I'm making. Point target for point target, instant for instant, unit target for unit target.
 
Status
Not open for further replies.
Top