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

Multiple levels for blood lust - size issue

Status
Not open for further replies.
Level 14
Joined
Aug 30, 2004
Messages
909
I want to make a stackable version of bloodlust. I've made it an aoe spell, so whenever a unit casts "giant strength" i summon a bunch of invisible casters and have them case bloodlust on all melee units within range.

Everything works fine, except for the visual scaling of the units. No matter what values I place in the Data - Scaling Factor slot, the results seem to be the same. I put the scaling value as high as 6.0 (the original bloodlust is .3) but they always grow to the same size. The size is slightly higher with each level of bloodlust, but it's very hard to notice. You have to zoom in and look at where his head is, for example, to see the difference.

I've pasted the trigger below, but it's not the problem. Like I said, everything is working fine:
- the unit gets the appropriate level of bloodlust (the attack speed modifier is working, the buff is correctly labeled by level)
- the unit does grow slightly larger based on the level of bloodlust

  • Giant Strength
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Giant Strength (Neutral Hostile)
    • Actions
      • Set tempPoint = (Position of (Triggering unit))
      • Set tempUnitGroup = (Units within 600.00 of tempPoint matching ((((Matching unit) belongs to an ally of (Owner of (Triggering unit))) Equal to True) and (((Matching unit) is A melee attacker) Equal to True)))
      • -------- (grab all allies, minus ranged) --------
      • Unit Group - Pick every unit in tempUnitGroup and do (Actions)
        • Loop - Actions
          • Unit - Create 1 Arcane Armaments Provider for (Owner of (Triggering unit)) at tempPoint facing Default building facing degrees
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff Giant Strength - Level 1 ) Equal to True
            • Then - Actions
              • Unit - Remove Giant Strength - Level 1 buff from (Picked unit)
              • Unit - Set level of Bloodlust (Giant Strength) for (Last created unit) to 2
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • ((Picked unit) has buff 2 ) Equal to True
            • Then - Actions
              • Unit - Remove 2 buff from (Picked unit)
              • Unit - Set level of Bloodlust (Giant Strength) for (Last created unit) to 3
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • ((Picked unit) has buff 3 ) Equal to True
                  • ((Picked unit) has buff 4 ) Equal to True
            • Then - Actions
              • Unit - Remove 3 buff from (Picked unit)
              • Unit - Remove 4 buff from (Picked unit)
              • Unit - Set level of Bloodlust (Giant Strength) for (Last created unit) to 4
            • Else - Actions
          • Unit - Order (Last created unit) to Orc Shaman - Bloodlust (Picked unit)
      • Custom script: call RemoveLocation (udg_tempPoint)
      • Custom script: call DestroyGroup(udg_tempUnitGroup)
 
Level 14
Joined
Aug 30, 2004
Messages
909
It works for me. Just that you have to remove the Bloodlust buff before applying a new one. I guess the buff you remove here is from the dummy triggering ability.

If it has not to do with triggers, do not post it in Triggers/Scripts.

If you turn bloodlust level 2's Scaling Factor up to 2.0 does the unit literally double in size? Mine are just incrementally getting a tiny bit bigger. The buffs are from the dummy unit's bloodlust ability. Those work fine; each is labeled differently and I can see them.

I don't know how to fix this, but i suspect it'll take changing the trigger somehow.

*************************

UPDATE: I made a test map with multiple levels of Bloodlust and they worked just fine. So there's something in my campaign that is causing bloodlust to significantly decrease the size increase. I can't imagine what it is. Does anyone have any ideas?
 
Last edited:
Level 33
Joined
Mar 27, 2008
Messages
8,035
You were saying that their size did changed, but in a slightly manner, right ?
Let me get this straight;
- When a unit got a Bloodlust buff on it, and when it is re-casted on a same unit, that had Bloodlust buff before, the unit will increase in size, right (by replacing the Bloodlust Buff Level 1 to Level 2) ?

Well, Bloodlust size-increase in Object Editor starts to evaluate from its initial size, not its current size.

Example:
Unit A's size is 100% and receive a Bloodlust buff that will become 600% of its default size.
When that Unit is replaced with a new buff (new Bloodlust level), let's say it will increase the size of that unit to 800%.

Well, this 800% will start from 100% of the unit's actual size, not the 600%, which the unit will increase in size by 1.33 from its previous size (+0.33 size percentage), not 800% times bigger than the 600%.

I hope you get what I mean.

1 question though, you remove the buff and you replace it, does that really works ?
I mean you are removing the buff, and replacing it ?
It means that you're replacing... nothing, since the buff already been removed in the first place.

I'm just curious, does the trigger really works ?

EDIT:
I tested with Units and it works, strange indeed.
You remove the unit and replace it.
But this method won't work with a further delay (timers , waits, etc)
Must be done immediately.
 
Level 14
Joined
Aug 30, 2004
Messages
909
Defskull, I'm interested in what you've found. Did you find a way to increase the size from the current one? What I have looks like this:

cast 1: makes you grow 30%
cast 2: the buff is removed so you revert instantly to original size, then grow 40%
cast 3: revert to original size, then grow 50%

I would LOVE to have a way to make it work like this:

cast 1: makes you grow to 30%
cast 2: makes you grow from 30% to 40%
cast 3: makes you grow from 40% to 50%

Is that what you've found? If so, could you please elaborate on how you did that? Did you replace the units, you said?

RE: the limited size increase. Complete NOOB mistake... I had left the small values in the Object Editor and was changing the Campaign Editor and wondering why it wasn't working! I can now get the sizes that I want, but each time the units reset to regular size before growing larger.

EDIT: I forgot to answer your question. Yes, the trigger does work. The only problem is that you can't cast bloodlust on a unit that has that buff already (or at least it doesn't increase the size at all), so I have to remove the buff before the dummy unit casts the new bloodlust.
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
...but each time the units reset to regular size before growing larger.
If you want to prevent this, you can use this function;
  • Animation - Change (Picked unit)'s size to (100.00%, 100.00%, 100.00%) of its original size
It's under Animation - Change Unit Size
You can play with the 3 values which are Length, Width, Height respectively.
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
Bloodlust cannot change selection size only. I wanted to suggest to make the cross-fade via trigger and at the end replace it with an immediate Bloodlust but then remembered that you cannot set the transition duration of Bloodlust.

edit: Maybe you can fade it reversely via trigger and simultaneously forward via Bloodlust at the end, so these effects cancel out and it seems like the unit did not grow anymore, although the selection circle is not immediately updated.

edit2: Animation - Change Unit Size interrupts the transition of Bloodlust and only the final value will be applied in the end. So I would say interrupt it and you can freely scale the unit via trigger. Only remember to revert it shortly before completion or you can even overwrite the final value after Bloodlust has finished.
 
Level 14
Joined
Aug 30, 2004
Messages
909
I think the triggered animation is the way to go. I actually compromised in using bloodlust; what I really wanted was to increase damage not increase attack speed. Perhaps I should ditch bloodlust all together, and just trigger the growth manually. Here's my idea:

Get a dummy to cast inner fire. When they cast the spell, I put the target unit into a unit array which matches a real array that sets the target size (how big the unit should get).

Then I set up a periodic trigger that fires every .03 seconds. It counts through the unit array and increases every player until they reach their target size. It also checks for the inner fire buff, and if it's gone it kicks them out of the array.

There's a lot of trigger work to be done, but if it works correctly it should get exactly what I want, and the size increases should stack smoothly.

I'll let you know how it goes. Thanks to both of you, plus rep of course.
 
Level 14
Joined
Aug 30, 2004
Messages
909
Here's the working version of the spell - see attached video. I made some green models out of the battle roar .mdx. It's hard to tell in the video, but the buff gets more intense and greener as multiple stacks of giant strength are applied.

They shrink back to normal as intended, but I still want to change it a bit so that when they are in their largest form they shrink back to size 3, then 2, then 1, each lasting the normal duration of the spells. So, for example, if you cast giant strength 4 times (each has a duration of 20) for the first 20 seconds you have +80% damage, then 20 seconds at +60%, then 20 seconds at 40%, and so on. It should be pretty easy to do given the current set up.
 

Attachments

  • My Movie.wmv
    3.5 MB · Views: 75
Status
Not open for further replies.
Top