1. Updated Resource Submission Rules: All model & skin resource submissions must now include an in-game screenshot. This is to help speed up the moderation process and to show how the model and/or texture looks like from the in-game camera.
    Dismiss Notice
  2. DID YOU KNOW - That you can unlock new rank icons by posting on the forums or winning contests? Click here to customize your rank or read our User Rank Policy to see a list of ranks that you can unlock. Have you won a contest and still haven't received your rank award? Then please contact the administration.
    Dismiss Notice
  3. Let your favorite entries duke it out in the 15th Techtree Contest Poll.
    Dismiss Notice
  4. Weave light to take you to your highest hopes - the 6th Special Effect Contest is here!
    Dismiss Notice
  5. Check out the Staff job openings thread.
    Dismiss Notice
Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

Obscure and weird bug with Channel order string

Discussion in 'World Editor Help Zone' started by J2Krauser, Jul 31, 2020.

  1. J2Krauser

    J2Krauser

    Joined:
    Jul 31, 2020
    Messages:
    7
    Resources:
    0
    Resources:
    0
    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.
     
  2. ZiBitheWand3r3r

    ZiBitheWand3r3r

    Joined:
    Nov 21, 2012
    Messages:
    913
    Resources:
    15
    Maps:
    7
    Spells:
    8
    Resources:
    15
  3. J2Krauser

    J2Krauser

    Joined:
    Jul 31, 2020
    Messages:
    7
    Resources:
    0
    Resources:
    0
    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.
     
  4. Zwiebelchen

    Zwiebelchen

    Joined:
    Sep 17, 2009
    Messages:
    6,984
    Resources:
    12
    Models:
    5
    Maps:
    1
    Spells:
    1
    Tutorials:
    1
    JASS:
    4
    Resources:
    12