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

Need help with a morphing-ability

Status
Not open for further replies.
Level 7
Joined
Dec 14, 2012
Messages
192
Hey there~

I need some help with the ultimate ability of a hero of mine: The Bringer of Ruin.
The ability description goes as follows:

The Bringer of Ruin enrages, replacing all his abilities with powerful passive abilities that give him tremendous fighting prowess, but making him unable to cast his normal abilities.

I used a morphing skill as a base, morphing him into another unit(which looks the same), that has some increased base stats and has a few passives added.
The problem is, the normal hero skills still appear - except if I completely fill the abilities up, so that there is no space for them anymore~ That's just so not beautiful.
So either, one removes his abilities for the time being or one makes him unable to use them for the time being - of course, his new passives should not be disabled and the disable shouldn't be removable.

So I ask, is there a way to temporary remove the Hero abilities from a Hero? I tried it out with triggers, but got to no desirable result~ So I ask the community now ^..^ Hope someone can help me with this, rather simple, question.
Just to note, I am not that experienced with triggers - especially not with variables or variable arrays. So please, explain it like you would explain it to a little, naive and utterly stupid girl, yes? Me thankies you ^^"


Edit: I found a solution, thanks to (name) for that.
Another Edit: Fixed the cd problem through using the Channel ability as a base ability and setting the fields "Disable other abilities" to true ^.^

Here is the trigger:

  • Ruin Setup
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set Ruin_Passive_Abilities[1] = Impenetrable Skin (Ruin/Necassaryrrr)
      • Set Ruin_Passive_Abilities[4] = Demonic Resilience (Bringer of Ruin/Necassary)
      • Set Ruin_Passive_Abilities[3] = Cleaving Slice (Ruin/Necassary)
      • Set Ruin_Passive_Abilities[2] = Unyielding Rage (Ruin/necassary)
      • Set Ruin_Passive_Abilities[5] = Terrifying Presence (Enrage)
      • Set Ruin_Active_Abilities[1] = Bleeding Spikes
      • Set Ruin_Active_Abilities[4] = Ruintest
      • Set Ruin_Active_Abilities[3] = Tremor
      • Set Ruin_Active_Abilities[2] = Terrifying Presence
  • Ruin Disable and Enable
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ruintest
    • Actions
      • For each (Integer RuinLoopInt) from 1 to 5, do (Actions)
        • Loop - Actions
          • Unit - Add Ruin_Passive_Abilities[RuinLoopInt] to (Triggering unit)
          • Player - Disable Ruin_Active_Abilities[RuinLoopInt] for (Triggering player)
      • Wait 25.00 seconds
      • For each (Integer RuinLoopInt) from 1 to 5, do (Actions)
        • Loop - Actions
          • Player - Enable Ruin_Active_Abilities[RuinLoopInt] for (Triggering player)
          • Unit - Remove Ruin_Passive_Abilities[RuinLoopInt] from (Triggering unit)
 
Last edited:
Level 3
Joined
May 12, 2012
Messages
59
bear morph?

i used bear morph on a unit i made for a campaign that had sorta what your doing, turned a peasant from a.... peasant, into a knight or a rifleman depending with its own abilities
 
Level 7
Joined
Dec 14, 2012
Messages
192
You could try:
  • Player - Disable Acid Bomb for (Owner of (Triggering unit))
And then re-enable when it transforms back.
It disables the ability in general for the player, doesn't it? Shouldn't be a problem, as you only have one hero... I think I'll try it, will post back once I tested it.
I think the other morph skill won't work, I suspect~ The problem is, that a Hero always retains it's abilities after being morphed.

You could try:
  • Player - Disable Acid Bomb for (Owner of (Triggering unit))
And then re-enable when it transforms back.
Did the test~ At first it seemed like it worked. But when the ability ended, the skills did not re-appear.
To make it work, I'd need to re-add the abilities~ And that of course according to the level the abilities have had. I do not know how to do this exactly.

Is there any other way you could think of?
 
Last edited by a moderator:
Level 7
Joined
Dec 14, 2012
Messages
192
Use a timer to detect when the morph ends.
I used a simple "wait", actually(As No variables are used, it should not be a problem). I'll post the current trigger:

  • Ruin Disable
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Ruin
    • Actions
      • Player - Disable Bleeding Spikes for (Owner of (Triggering unit))
      • Player - Disable Ruin for (Owner of (Triggering unit))
      • Player - Disable Terrifying Presence for (Owner of (Triggering unit))
      • Player - Disable Tremor for (Owner of (Triggering unit))
      • Wait 26.00 seconds
      • Player - Enable Bleeding Spikes for (Owner of (Triggering unit))
      • Player - Enable Ruin for (Owner of (Triggering unit))
      • Player - Enable Terrifying Presence for (Owner of (Triggering unit))
      • Player - Enable Tremor for (Owner of (Triggering unit))
 
Do not use waits, since it's not MUI(Multiple Unit Instances) or MPI(Multiple Player Instances). Example a player casts that ability. Then another player does. the ability will only be enabled after 26 seconds for the last player that casted it. Follow Mortar's suggestion as my mind burns out with timers.
 
Level 7
Joined
Dec 14, 2012
Messages
192
Do not use waits, since it's not MUI(Multiple Unit Instances) or MPI(Multiple Player Instances). Example a player casts that ability. Then another player does. the ability will only be enabled after 26 seconds for the last player that casted it. Follow Mortar's suggestion as my mind burns out with timers.
Okay~ I'll try it out. Hopefully, it will work like that.
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
This can be the setup:
  • Actions
    • Set RuinActiveAbility[1] = Miasma
    • Set RuinPassiveAbility[1] = Evasion
    • Set RuinActiveAbility[2] = Bringer Of Ruin
    • Set RuinPassiveAbility[2] = Warrior Strength
And this the spell:
  • Bringer of Ruin
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bringer Of Ruin
    • Actions
      • For each (Integer LoopInt) from 1 to 4, do (Actions)
        • Loop - Actions
          • Unit - Add RuinPassiveAbility[LoopInt] to (Triggering unit)
          • Unit - Set level of RuinPassiveAbility[LoopInt] for (Triggering unit) to (Level of RuinActiveAbility[LoopInt] for (Triggering unit))
          • Player - Disable RuinActiveAbility[LoopInt] for (Triggering player)
      • Wait 10.00 seconds
      • For each (Integer LoopInt) from 1 to 4, do (Actions)
        • Loop - Actions
          • Player - Enable RuinActiveAbility[LoopInt] for (Triggering player)
          • Unit - Remove RuinPassiveAbility[LoopInt] from (Triggering unit)
This is completely MPI, so don't worry about the wait :D.

Edit: at least, it should be :O. I'll go do some more tests now >__>.
Edit 2: yeah, seems safe to use.
 
Level 7
Joined
Dec 14, 2012
Messages
192
This can be the setup:
  • Actions
    • Set RuinActiveAbility[1] = Miasma
    • Set RuinPassiveAbility[1] = Evasion
    • Set RuinActiveAbility[2] = Bringer Of Ruin
    • Set RuinPassiveAbility[2] = Warrior Strength
And this the spell:
  • Bringer of Ruin
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Bringer Of Ruin
    • Actions
      • For each (Integer LoopInt) from 1 to 4, do (Actions)
        • Loop - Actions
          • Unit - Add RuinPassiveAbility[LoopInt] to (Triggering unit)
          • Unit - Set level of RuinPassiveAbility[LoopInt] for (Triggering unit) to (Level of RuinActiveAbility[LoopInt] for (Triggering unit))
          • Player - Disable RuinActiveAbility[LoopInt] for (Triggering player)
      • Wait 10.00 seconds
      • For each (Integer LoopInt) from 1 to 4, do (Actions)
        • Loop - Actions
          • Player - Enable RuinActiveAbility[LoopInt] for (Triggering player)
          • Unit - Remove RuinPassiveAbility[LoopInt] from (Triggering unit)
This is completely MPI, so don't worry about the wait :D.

Edit: at least, it should be :O. I'll go do some more tests now >__>.
Edit 2: yeah, seems safe to use.
Hmm... Interesting. How complicated such an aesthetic fix can be xD

Just need to edit it a bit with my abilities~ then I can test it.
The Bringer of Ruins ultimate ability is ruin, so no need to worry about levels~ The idea is: The bringer practically enrages, making him unable to cast his abilities, but giving him powerful passive abilities for the time.

Anyway, gonna test this trigger out now, thanks in advance ^^ Ill post back once I can confirm it working or not.

Edit: Though, a map may be useful~ Im always pwetty unsure about variables^^"

Edit: It works ^..^ Only problem there is(And that is one that has to be taken care of) is, that the ability "Ruin" won't have a cooldown like this. Anyidea how to solve that problem?
 
Last edited:
Level 28
Joined
Jan 26, 2007
Messages
4,789
Hmm... Interesting. How complicated such an aesthetic fix can be xD

Just need to edit it a bit with my abilities~ then I can test it.
The Bringer of Ruins ultimate ability is ruin, so no need to worry about levels~ The idea is: The bringer practically enrages, making him unable to cast his abilities, but giving him powerful passive abilities for the time.

Anyway, gonna test this trigger out now, thanks in advance ^^ Ill post back once I can confirm it working or not.

Edit: Though, a map may be useful~ Im always pwetty unsure about variables^^"

Edit: It works ^..^ Only problem there is(And that is one that has to be taken care of) is, that the ability "Ruin" won't have a cooldown like this. Anyidea how to solve that problem?
Yeah, I know how to fix that (I did so in the test-map I created, completely forgot to address that issue).
I based the ability on "Channel" (best base-ability in the editor). If "Disable other abilities" is set to true, it will first go on cooldown, then start the effects of the ability.

Test-map attached (also includes Miasma, but it's very much possible that I went completely berserk on that spell and overkilled it >__>).
Also, I've done a little hotfix on the Bringer of Ruin-ability (fixed a bug where it would add the passive ability even though it didn't have the active one).
 

Attachments

  • Spell Map Lucy.w3x
    21.6 KB · Views: 54
Last edited:
Level 7
Joined
Dec 14, 2012
Messages
192
Yeah, I know how to fix that (I did so in the test-map I created, completely forgot to address that issue).
I based the ability on "Channel" (best base-ability in the editor). If "Disable other abilities" is set to true, it will first go on cooldown, then start the effects of the ability.

Test-map attached (also includes Miasma, but it's very much possible that I went completely berserk on that spell and overkilled it >__>).
Also, I've done a little hotfix on the Bringer of Ruin-ability (fixed a bug where it would add the passive ability even though it didn't have the active one).
I see, so I just need to base the ability on channel to get the correct cd for the ability, correct? Well, that will is easy then^^

And for some reason, I cannot open the test map o_O I get a number of errors like "Function doesn't exist in databse" and then a critical error, telling me that there is not enough disk space~ And then the editor closes itself. Any idea why that happens? Do I need another editor or something...?

But you also worked out the miasma ability? Interesting~ Look at my "Spreading Disease"-Thread, I found myself a solution, which is nowhere near perfect but works at least for testing reasons xD Maybe you could fix the trigger for me on that one^^"

In any case, going to test that trick with the channel ability now :3
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
If you don't know about "Channel" yet: make sure that in "Stats - Options" (or whatever), you enable "Visible". Otherwise the ability will be invisible, and that won't help you :D.

Err... I use JNGP, but that doesn't actually add anything new. I tried opening it with the regular editor, and that works just fine.
Do you have the latest WC3 patch? They've added some stuff to the world editor that breaks it for all older versions :/.
Go login to battle.net and see if it starts downloading a new version.

Yeah, but my Miasma-version is way more complicated (because it uses custom damage, clouds and all that).
I can see a few things wrong with your triggers, mainly memory leaks :D. I also misunderstood you (I thought it was a unit-target active ability D:). Well, that can be changed.
Anyway: the way you triggered it doesn't allow for all those bugs to be fixed I'm afraid :(. It's because of your variables that are global, so they can be overwritten at any point in time.
 
Level 7
Joined
Dec 14, 2012
Messages
192
If you don't know about "Channel" yet: make sure that in "Stats - Options" (or whatever), you enable "Visible". Otherwise the ability will be invisible, and that won't help you :D.

Err... I use JNGP, but that doesn't actually add anything new. I tried opening it with the regular editor, and that works just fine.
Do you have the latest WC3 patch? They've added some stuff to the world editor that breaks it for all older versions :/.
Go login to battle.net and see if it starts downloading a new version.

Yeah, but my Miasma-version is way more complicated (because it uses custom damage, clouds and all that).
I can see a few things wrong with your triggers, mainly memory leaks :D. I also misunderstood you (I thought it was a unit-target active ability D:). Well, that can be changed.
Anyway: the way you triggered it doesn't allow for all those bugs to be fixed I'm afraid :(. It's because of your variables that are global, so they can be overwritten at any point in time.
Hmm... Could be that~ Just to make sure, should I download a new version or not? Youve been pwetty unclear xD
And also: I use jass new gen - a friend of mine has recommended it to me some time ago~

I know how channel works, however, didnt guess the CD would work like that xD But it works just fine, so thanks for help~

For Miasma: Yeah, I know where the main problems are(Which is also why I pointed them out). For now, I am just happy I can at least test the ability - it works only correctly for one unit on the map, but I wont have the hero twice anyway xD
But yeah, I do not know how to fix these bugs anyway~ Which is why I wonder how to fix them. Especially that stupid disease cloud is annoying me, it just does not accept custom buff(Searched around on the internet, and it really seems to be like that~ Sooo annoying). If you could fix it, I'd be gratefully grateful... Because I simply like the ability like I imagine it, it's sooo nice and fitting to my Plaguebearer - I mean, the ability is already a plagueing enough =P He even has another "contangious" ability - though, that one didnt even need any triggers.
 
Level 28
Joined
Jan 26, 2007
Messages
4,789
Yeah, definitely download the newest version (if you don't have it already).
Which version of JNGP do you use? :O (even the latest throws in an error when loading maps made with the regular editor, but you can just ignore that: the maps work perfectly on that one).

Yeah, another reason why I said the Miasma I created was overkill, was because it's way too evil. I tuned down the stats though (it used to kill the footmen with just 1 poison-thing, starting a massive plague across the map).
Well, if the map works for you, you can look at it and tell me how much I was off with the idea.
 
Level 7
Joined
Dec 14, 2012
Messages
192
Yeah, definitely download the newest version (if you don't have it already).
Which version of JNGP do you use? :O (even the latest throws in an error when loading maps made with the regular editor, but you can just ignore that: the maps work perfectly on that one).

Yeah, another reason why I said the Miasma I created was overkill, was because it's way too evil. I tuned down the stats though (it used to kill the footmen with just 1 poison-thing, starting a massive plague across the map).
Well, if the map works for you, you can look at it and tell me how much I was off with the idea.
Okay, I'll do so. Furthermore~ My jass version is: 0.9.1.2~ Looked under "jasshelper" at about... Hope that was correct. In any case, can you send me a link of the newest version?


That is definetely overkill xD Anyway, Miasma is a very hard to balance skill anyway, especially with that spreading part added~
Hopefully I can look at that map soon ^^"
 
Level 7
Joined
Dec 14, 2012
Messages
192
Yeah, definitely download the newest version (if you don't have it already).
Which version of JNGP do you use? :O (even the latest throws in an error when loading maps made with the regular editor, but you can just ignore that: the maps work perfectly on that one).

Yeah, another reason why I said the Miasma I created was overkill, was because it's way too evil. I tuned down the stats though (it used to kill the footmen with just 1 poison-thing, starting a massive plague across the map).
Well, if the map works for you, you can look at it and tell me how much I was off with the idea.
Me~eh... I cannot patch it, because the patcher does not find a certain registry data. I'd need to re-install the game~ But the problem is, that I do not have the game anymore(I lost it sometime ago~ A few years ago, actually^^").

This is annoying now o_O Maybe Ill try to simply download the game+crack somewhere...
 
Status
Not open for further replies.
Top