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

Is this skill trigger possible in either GUI or JASS?

Status
Not open for further replies.
Level 5
Joined
Jan 27, 2007
Messages
154
I am working on a passive skill that enables a unit to attack regardless of cooldown (I.e. Double Attack etc.....). I have tried everything I know in GUI so far but none happened so I'm asking for the possibility of this skill.

Here's the tooltip

Flash Strike (Passive):
Gives chance to make a consecutive attack.
Level 1 - 5% chance.
Level 2 - 10% chance.
Level 3 - 15% chance.
Level 4 - 20% chance.
 
Last edited:
Level 5
Joined
Jan 27, 2007
Messages
154
U got it wrong, I meant this skill to be a real attack since I will be synergyzing it with bash and so with critical strike, critical strike never stack with bash or critical strike itself.
 
Level 8
Joined
Oct 20, 2004
Messages
66
Oh... the hero has bash. It would have been nice to have known that earlier.

In any case, there are lots of ways to approach this. You could create a dummy unit and have it cast a modified version of bloodlust that lasts .5 seconds on the hero. You could create a dummy unit with the bash ability and have it attack the enemy. You could edit storm bolt and have a dummy unit cast it on the enemy. In all cases, you'll need triggers that run based on a percent chance when the hero attacks an enemy.
 
Level 5
Joined
Jan 27, 2007
Messages
154
Oh... the hero has bash. It would have been nice to have known that earlier.

In any case, there are lots of ways to approach this. You could create a dummy unit and have it cast a modified version of bloodlust that lasts .5 seconds on the hero. You could create a dummy unit with the bash ability and have it attack the enemy. You could edit storm bolt and have a dummy unit cast it on the enemy. In all cases, you'll need triggers that run based on a percent chance when the hero attacks an enemy.

I have tried 2 of your suggestions before I have posted this, the bloodlust and the bash dummy.

Well I find Bloodlust better but I cant make it work, I have triggered it this way (please eliminate all the possible leaks within if possible)

  • FlashStrike
  • Events:
  • A unit starts the effect of an ability
  • Conditions:
  • (Ability being cast) Equal to Flash Strike
  • Actions:
  • Set HeroMauler = (Attacking Unit)
  • Trigger Turn on (FlashStrike2<gen>)
--------------------------------------------------------------------------

  • FlashStrike2
  • Events:
  • A unit is issued an order targeting an object
  • Condition:
  • (Unit type of (Attacking Unit)) = HeroMauler
  • Actions:
  • Unit - Create 1 FlashBloodLust for (Owner of (HeroMauler)) at (Position of (Attacking unit))
  • Unit - Order (Last created unit) to Orc Shaman - Bloodlust (Attacking Unit)
  • Unit - Turn collision for (Last Created unit) off
  • Unit - Add a 1 second generic timer for (Last created unit)
  • Trigger Turn off (FlashStrike2<gen>)
 
Level 11
Joined
Jul 12, 2005
Messages
764
Nono... You're using the wrong events, and you need one trigger only...
  • Events
  • Unit is attacked
  • Conditions
  • (Level of Flash Strike for Attacking unit) is greater than 0
  • Actions
  • Set TempLoc = Position of Attacking Unit
  • Unit - Create Dummy for Owner of (Attacking unit) at TempLoc facing 0 degrees
  • Custom script - call RemoveLocation(udg_TempLoc)
  • Set DummyUnit = (Last created unit)
  • Unit - Add <Bloodlust> to DummyUnit
  • Unit - Order DummyUnit to Orc Shaman - Bloodlust (Attacking Unit)
  • Wait 1 seconds
  • Unit - Remove DummyUnit
 
Level 8
Joined
Sep 13, 2006
Messages
431
Nono... You're using the wrong events, and you need one trigger only...
  • Events
  • Unit is attacked
  • Conditions
  • (Level of Flash Strike for Attacking unit) is greater than 0
  • Actions
  • Set TempLoc = Position of Attacking Unit
  • Unit - Create Dummy for Owner of (Attacking unit) at TempLoc facing 0 degrees
  • Custom script - call RemoveLocation(udg_TempLoc)
  • Set DummyUnit = (Last created unit)
  • Unit - Add <Bloodlust> to DummyUnit
  • Unit - Order DummyUnit to Orc Shaman - Bloodlust (Attacking Unit)
  • Wait 1 seconds
  • Unit - Remove DummyUnit

You don't necessarily need to use a variable for the dummy unit, do you? I'm pretty sure that the trigger would run quickly enough that you could just give last created unit an expiration timer, and that would help to make this more MUI.

Oh, ya, also keep in mind that as of right now, the tirgger fires right when the unit begins to attack. So if you target and then change your mind and switch targets, the first occurence will still run the trigger.
 
Level 4
Joined
Apr 29, 2007
Messages
88
You don't necessarily need to use a variable for the dummy unit, do you?

Yes he must, or it will caused a little leak... But when you cast and cast and cast again this will give a terrible lag
 
Level 4
Joined
Apr 29, 2007
Messages
88
Let's have some chit-chat Dr.Super Good

Lets try this:

Trigger for remove dummy:
Version 1 (Variables needed)
Set dummy=last created unit
wait 1 seconds < this is the reason
Remove dummy

Version 2 (Hell with variables)
Give 1 seconds expiration time to last created unit

I use version 2 but these people discuss about version 1 so Varables needed, right??
 
Level 40
Joined
Dec 14, 2005
Messages
10,532
Gloves of Haste works too, guys, and better than bloodlust, since it takes 0 seconds to take effect.

And no, L, he's right.

Expiration Timer works fine... Better, in fact, as waits are innaccurate and such. Also, it's actually MUI using version 2, yet not with version 1.

Also, how would it leak from not using a variable? He has a higher chance to leak from using one (well, JASS only, but still, not using one is far safer)
 
Level 5
Joined
Jan 27, 2007
Messages
154
Gloves of Haste works too, guys, and better than bloodlust, since it takes 0 seconds to take effect.

And no, L, he's right.

Expiration Timer works fine... Better, in fact, as waits are innaccurate and such. Also, it's actually MUI using version 2, yet not with version 1.

Also, how would it leak from not using a variable? He has a higher chance to leak from using one (well, JASS only, but still, not using one is far safer)

how will gloves trigger out ryt??????
 
Level 11
Joined
Jul 12, 2005
Messages
764
Well, i always used an expiration timer when working with dummies. If Doc is right, and dead units are removed after a while, then its ok. But if not, they will remain there as some invisible models.
But i'm really not sure about this issue...

Anyway, Gloves of Haste seems to be the best idea ;)
 
Level 5
Joined
Jan 27, 2007
Messages
154
Nono... You're using the wrong events, and you need one trigger only...
  • Events
  • [B]Unit is attacked[/B]
  • Conditions
  • (Level of Flash Strike for Attacking unit) is greater than 0
  • Actions
  • Set TempLoc = Position of Attacking Unit
  • Unit - Create Dummy for Owner of (Attacking unit) at TempLoc facing 0 degrees
  • Custom script - call RemoveLocation(udg_TempLoc)
  • Set DummyUnit = (Last created unit)
  • Unit - Add <Bloodlust> to DummyUnit
  • Unit - Order DummyUnit to Orc Shaman - Bloodlust (Attacking Unit)
  • Wait 1 seconds
  • Unit - Remove DummyUnit

The skilll is meant to trigger when you attack, so this is not effective IMO.
 
Level 4
Joined
Apr 29, 2007
Messages
88
You need to try your trigger many times, give your heroes the 'gloves of haste skill', the question is how fast is it. 100%? 150%? who know it?
 
Level 15
Joined
Jan 31, 2007
Messages
502
Back to the doubleattack , if you create an Orb with Cold Arrows a ranged unit has this chance of the orb to attack twice when attacking ( only if you order it )
I dont know if it works for meele units but u could make a ranged one with a 128 range which would be a bit like meele ( without an missle )
The only thing u would have to add is such a simple trigger (because it only works if the unit got the order , dont ask me why... )
  • doubel attack
    • Unit - A unit is attacked
    • Conditions
      • (Unit-type of (Attacking unit)) Equal to YourUnit
    • Actions
      • Unit - Order (Attacking unit) to Attack (Attacked unit)
 
Level 5
Joined
Jan 27, 2007
Messages
154
There's no event like 'A unit attacks', so you must use 'A unit is attacked'. Read through the trigger please. There are unit references:
Attacking unit
Triggering unit (aka Attacked unit)

Trust me, i know triggering better than you.


ok if u say so. But how about the chances? Could I let some skill with chances work with it or will I trigger it too?
 
Level 7
Joined
Jun 4, 2006
Messages
127
You could also use this..

  • Ohh
    • Events
      • Unit - A unit Is attacked
    • Conditions
      • (Level of [ability] for (Attacking Unit)) Greater than 0
    • Actions
      • If (All conditions are true) then do (Actions) else do (Else Actions)
        • If - Conditions
          • (Random integer from 1 to 100) Less than or Equal to (5 x (Level of [skill] for (Attacking Unit))
        • Then - Actions
          • Set Point = (Position of (Attacking unit))
          • Unit - Create 1 DummyAttacker for (Owner of (Attacking Unit)) at (Point) facing Default facing degrees
          • If (Level of [Bash] for (Attacking Unit)) Greater than 0) then do (Unit - Add Bash(Dummy) for Last Created Unit)
          • Unit - Set level of Bash(Dummy) for (Last Created Unit) (Level of Bash for (Attacking Unit))
          • Hero - Set level of (Last Created Unit) (Hero - Level of (Attacking Unit))
          • Unit - Add a 1 second Generic Expiration Timer for (Last Created Unit)
          • Custom script: call RemoveLocation(udg_Point)
Of course, you have to create a Dummy Unit based on your Hero to make this work, also you can give it with the items the Original hero has. You can also put a Floating Text when it does the Dual Attack.

Items Actions
  • Hero - Create (Item of type (Slot 1 of (Attacking Unit) and Give it to (Last Created Unit) [something like that]
Floating Text
  • Floating Text - Create Floating Text that reads Dual Strike! at Point with Z offset 0.00, using Font Size 8-10, color (100.00%, 100.00%, 100.00%) and 0.00% transparency
  • Floating Text - Change (Last Created Floating Text): Disable Permanence
  • Floating Text - Change the lifespan for (Last Created Floating Text) to 3.50 seconds
  • Floating Text - Change the Fading Age of (Last Created Floating Text) to 0.00 seconds
  • Floating Text - Set the Velocity of (Last Created Floating Text) to 21.00 towards 90.00 degrees
In this Floating Text, it's appearance of fading will be the same as of how Critical Strike, Evasion, Etc. would do.
 
Last edited by a moderator:
Status
Not open for further replies.
Top