• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

[Spell] Carrion Beetles doesn't work

Status
Not open for further replies.
Level 7
Joined
May 28, 2011
Messages
101
I have an upgrade for a Crypt Fiend, that upgrades it into another unit (Using the Chaos ability) which has the Carrion Beetles ability. The ability works just fine if i put the upgraded unit in the map and use the ability, but because i use the Chaos ability to turn the crypt fiend into another unit, it can't detect any of the corpses nearby and won't cast the ability. I tried swapping the Chaos ability with a morph ability but it changes nothing.
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
The problem here is the inability of the unit to cast the mentioned
ability (Carrion Beetles) properly when its unit type gets replaced?

I've just tested this on my end and it just works properly without bugs.

Have you tried Raise Dead ability? (It has the same mechanics)
Same result.

What version of the editor are you using? I might test this bug.

I'm suspecting the problem you're having is when the unit gets replaced,
the autocasting abilities it have that's defaulted to turn on wouldn't work.
To solve that just catch the chaos transformation and manual activate it;
  • Chaos Test
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Ability) for (Triggering unit)) Greater than 0
    • Actions
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Custom script: endif
You may disable this script afterwards or include more conditions for extra protection.
You shouldn't worry about 'wait' here unless you're doing something that will break it.
 
Last edited:
Level 7
Joined
May 28, 2011
Messages
101
The problem here is the inability of the unit to cast the mentioned
ability (Carrion Beetles) properly when its unit type gets replaced?

I've just tested this on my end and it just works properly without bugs.

Have you tried Raise Dead ability? (It has the same mechanics)
Same result.

What version of the editor are you using? I might test this bug.

I'm suspecting the problem you're having is when the unit gets replaced,
the autocasting abilities it have that's defaulted to turn on wouldn't work.
To solve that just catch the chaos transformation and manual activate it;
  • Chaos Test
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Ability) for (Triggering unit)) Greater than 0
    • Actions
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Custom script: endif
You may disable this script afterwards or include more conditions for extra protection.
You shouldn't worry about 'wait' here unless you're doing something that will break it.

I may not entirely understand what your trigger does, but i wrote the same thing myself (I think) with no luck. I am using the newest Reforged version.
This is what my code looks like:
  • Test
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Brood Fiend (Arthas) for (Triggering unit)) Greater than 0
    • Actions
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles.
      • Custom script: endif
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Is Brood Fiend (Arthas) a chaos transformation ability?

Once a unit with chaos ability transforms to a new unit-type, it's issued 851973 order id. (no string equivalent)
After it transforms, the new unit-type wouldn't be referenced at the same time that's why there should be a delay.
In this case wait is used to delay this, or just a timer but that would be unnecessary to maintain GetTriggerUnit(). (even the imprecision it gives)

My script works and just tested on 1.30.4-1.31.1 editors. You may put debug messages inside the script to ensure
it executes properly on your end. Other than that, I don't think why it shouldn't work on your reforged editor ;_;
 
Level 7
Joined
May 28, 2011
Messages
101
Is Brood Fiend (Arthas) a chaos transformation ability?

Once a unit with chaos ability transforms to a new unit-type, it's issued 851973 order id. (no string equivalent)
After it transforms, the new unit-type wouldn't be referenced at the same time that's why there should be a delay.
In this case wait is used to delay this, or just a timer but that would be unnecessary to maintain GetTriggerUnit(). (even the imprecision it gives)

My script works and just tested on 1.30.4-1.31.1 editors. You may put debug messages inside the script to ensure
it executes properly on your end. Other than that, I don't think why it shouldn't work on your reforged editor ;_;
Yes, Brood Fiend (Arthas) is a renamed chaos ability. I have a lot of units that transform into other units, but this is the only ability that can't be activated for some reason.
I believe it is already debugged, since it does set the Carrion Beetles ability on autocast.
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
I believe it is already debugged, since it does set the Carrion Beetles ability on autocast.
It's solved then?

EDIT:

Please clarify your case, it should work like this;
chaos-detect-transform-gif.359375
  • Give Chaos
    • Events
      • Time - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • Unit - Add Chaos (Acolyte) to Acolyte 0200 <gen>
      • Game - Display to (All players) the text: chaos
  • Detect Chaos
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Acolyte) for (Triggering unit)) Greater than 0
    • Actions
      • Game - Display to (All players) the text: detect
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Game - Display to (All players) the text: transform
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Game - Display to (All players) the text: activate
      • Custom script: endif
 
Last edited:
Level 7
Joined
May 28, 2011
Messages
101
It's solved then?

EDIT:

Please clarify your case, it should work like this;
chaos-detect-transform-gif.359375
  • Give Chaos
    • Events
      • Time - Elapsed game time is 5.00 seconds
    • Conditions
    • Actions
      • Unit - Add Chaos (Acolyte) to Acolyte 0200 <gen>
      • Game - Display to (All players) the text: chaos
  • Detect Chaos
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Acolyte) for (Triggering unit)) Greater than 0
    • Actions
      • Game - Display to (All players) the text: detect
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Game - Display to (All players) the text: transform
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Game - Display to (All players) the text: activate
      • Custom script: endif
What i mean is, that the trigger works, but it doesn't solve the issue:
 
Level 20
Joined
Aug 13, 2013
Messages
1,696
Oh... so this is definitely the problem:
The problem here is the inability of the unit to cast the mentioned
ability (Carrion Beetles) properly when its unit type gets replaced?

I've just tested this on my end and it just works properly without bugs.
Except it's working on my part and not yours. In that case, this is just a bug you have to report in the patch forum instead.
You could try experimenting more set of abilities to mention if they're also losing their functions after the unit transformed.
(As maybe it's not just Carrion Beetles ability having this kind of bug)

I just hope they consider fixing these kind of problems that weren't existed on legacy in the first place.
For now, you'll be forced to use a workarounds to dodge this bug and there are ways I could think of...

First is to manual implement the ability to the new unit-type in TE instead. (remove Carrion Beetles to the list of abilities the unit have in OE);
  • Detect Chaos
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Acolyte) for (Triggering unit)) Greater than 0
    • Actions
      • Game - Display to (All players) the text: detect
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Game - Display to (All players) the text: transform
      • Wait 0.00 seconds
      • Unit - Add Carrion Beetles (Ghoul) to (Triggering unit)
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Game - Display to (All players) the text: activate
      • Custom script: endif
Second is to manual implement the ability to the default unit-type and retain that ability to the new unit-type;
  • Detect Chaos
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Acolyte) for (Triggering unit)) Greater than 0
    • Actions
      • Unit - Add Carrion Beetles (Ghoul) to (Triggering unit)
      • Custom script: call UnitMakeAbilityPermanent(GetTriggerUnit(),true,'A00A')
      • Game - Display to (All players) the text: detect
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Game - Display to (All players) the text: transform
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Game - Display to (All players) the text: activate
      • Custom script: endif

Third is to replace the unit via ReplaceUnit() function (or Unit - Replace in GUI) instead of chaos ability.
Just to ensure that replacing a unit by any means causes this kind of bug. If the ability bugs this too then,

Fourth is to mimicked the whole mechanics of this ability by scripting it. (This maybe your last resort)

Just wondering, why Animate Dead ability refuses to work also in your video even there are corpses nearby?
Are you sure it's the abilities that were screwed and not the actual corpses? I'm kinda confused with it now.
 
Level 7
Joined
May 28, 2011
Messages
101
Oh... so this is definitely the problem:

Except it's working on my part and not yours. In that case, this is just a bug you have to report in the patch forum instead.
You could try experimenting more set of abilities to mention if they're also losing their functions after the unit transformed.
(As maybe it's not just Carrion Beetles ability having this kind of bug)

I just hope they consider fixing these kind of problems that weren't existed on legacy in the first place.
For now, you'll be forced to use a workarounds to dodge this bug and there are ways I could think of...

First is to manual implement the ability to the new unit-type in TE instead. (remove Carrion Beetles to the list of abilities the unit have in OE);
  • Detect Chaos
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Acolyte) for (Triggering unit)) Greater than 0
    • Actions
      • Game - Display to (All players) the text: detect
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Game - Display to (All players) the text: transform
      • Wait 0.00 seconds
      • Unit - Add Carrion Beetles (Ghoul) to (Triggering unit)
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Game - Display to (All players) the text: activate
      • Custom script: endif
Second is to manual implement the ability to the default unit-type and retain that ability to the new unit-type;
  • Detect Chaos
    • Events
      • Unit - A unit Is issued an order targeting a point
    • Conditions
      • (Level of Chaos (Acolyte) for (Triggering unit)) Greater than 0
    • Actions
      • Unit - Add Carrion Beetles (Ghoul) to (Triggering unit)
      • Custom script: call UnitMakeAbilityPermanent(GetTriggerUnit(),true,'A00A')
      • Game - Display to (All players) the text: detect
      • Custom script: if (GetIssuedOrderId() == 851973) then
      • Game - Display to (All players) the text: transform
      • Wait 0.00 seconds
      • Unit - Order (Triggering unit) to Undead Crypt Lord - Activate Carrion Beetles
      • Game - Display to (All players) the text: activate
      • Custom script: endif

Third is to replace the unit via ReplaceUnit() function (or Unit - Replace in GUI) instead of chaos ability.
Just to ensure that replacing a unit by any means causes this kind of bug. If the ability bugs this too then,

Fourth is to mimicked the whole mechanics of this ability by scripting it. (This maybe your last resort)

Just wondering, why Animate Dead ability refuses to work also in your video even there are corpses nearby?
Are you sure it's the abilities that were screwed and not the actual corpses? I'm kinda confused with it now.
The animate dead you saw in the video has a very small range, which is why it didn't register it. Animate Dead works i have tested it. I also tried going around the problem by using the Bear Form morph but with no luck. I don't think it is just the Carrion Beetles, i tried replacing Carrion Beetles with Raise Dead in hopes of fixing the problem, but Raise Dead doesn't work either.
I will try your work arounds later when i have time :) Alternatively i will give the unit a diffrent ability, since i am soon running short on time.
 
Status
Not open for further replies.
Top