Button Using Ability

stavious

New Member
Reaction score
24
Is it possible to make it so that a player can use the keyboard buttons to send orders to his units? Like say when you press 'A' the unit casts some ability. Maybe some sort of hotkey will work?
Second, is it how would I go about doing it that when the button is pressed the unit casts the spell in the direction which it is facing? Assuming this is a spell with an area of effect.
Thanx for the help :) .
 
T

ThePixelator

Guest
stavious said:
Is it possible to make it so that a player can use the keyboard buttons to send orders to his units? Like say when you press 'A' the unit casts some ability. Maybe some sort of hotkey will work?
Second, is it how would I go about doing it that when the button is pressed the unit casts the spell in the direction which it is facing? Assuming this is a spell with an area of effect.
Thanx for the help :) .

hhmmmmm...you could just use the "text - hotkey" field on abilities...
 

Ozzdog

Hopeless Toby Driver fan boy
Reaction score
65
umm sure you could make a sytem like that, but it would be much easier to make one with the keyboard buttons already there. Or are they already used?
 

Darox

New Member
Reaction score
8
For the second thing, easiest way is with triggers, using angle - facing of (unit)
 

stavious

New Member
Reaction score
24
Ozzdog said:
umm sure you could make a sytem like that, but it would be much easier to make one with the keyboard buttons already there. Or are they already used?
I don't get what you mean. The arrow keys are already used. I'm wondering if there is an Event though that says that something happens when I (for example) press the A button on the keyboard. Is that possible?
 
Reaction score
149
Well...

You could create a custom spell based of channel.
Then make its hotkey, for example, A.
Then make a trigger

" Unit - Unit begins an effect of ability"....

Get the point? ;)
 

seph ir oth

Mod'n Dat News Jon
Reaction score
262
Most efficient way is to use what ozzdog suggested. Make dummy abilities with the hotkeys you want set to them, make the casting time for the unit 0 seconds, and do triggering that does whenever a unit casts an ability, and the ability is equivelant to left punch (the J button), do whatever action wise. ;)
 

Chocobo

White-Flower
Reaction score
409
:p .. :D

You would have to use a dummy unit to cast the ability, the dummy should be hidden (no model) and must follow exactly to the point of the unit caster, or to ever create dummies.

Example, we will try to use A for Mana Burn, which has a range of 400, and takes no target (Based on normal Channel)

Code:
Mana Burn Detect
Events
Unit - Generic unit begins casting an ability //BEGINS, NOT CASTING

Conditions
(Ability being cast) Equal to Mana Burn Hotkey (A)

Actions
Custom Script : set bj_wantDestroyGroup = true
Set MaxMana = 0.00 (Later you will see what it does)
Unit Group - Pick Every Units In (Units within 600 range of (Triggering unit))
       Loop - Actions
               If And (All Conditions are true)
                         ((Current mana of (Picked unit)) Greater Than 1.00)
                         ((Picked unit belongs to an allie of (Owner of (Triggering unit) Equal to False)
                         ((Picked unit) is A structure) Equal to False
                         ((Picked unit) is Mechanical) Equal to False
                         ((Picked unit) is Magic Immune) Equal to False
                         ((Picked unit) is dead) Equal to False
//Than 1.00, to check if it has the highest mana amount, and if it is friendly, non-structured..
               Then Unit Group - Add (Picked unit) to (ManaGroup)
               Else
If (All Conditions are true) Then (Then Actions) Else (Else Actions)
       If (All Conditions are true)
               (Number of units in ManaGroup) Equal to 0
       Then (Then Actions)
               Unit - Order (Triggering unit) to Stop
               Custom Script : call DestroyGroup( udg_ManaGroup)
               Skip Remaining Actions
       Else (Else Actions)
Unit Group - Pick Every Units In ManaGroup //This won't get destroyed by wantDestroy = true
       Loop - Actions
               If (Current mana of (Picked unit) Greater than MaxMana
               Then Set ManaBurnTarget = (Picked unit) // Sets the target to the picked unit if its mana greater than MaxMana
                       Set MaxMana = (Current mana of (Picked unit)) // Sets the MaxMana value to the mana of picked unit
               Else
Custom Script : call DestroyGroup( udg_ManaGroup)

What it does : It create a group of units who have mana, then take the unit with the most mana. It returns the unit in the variable ManaBurnTarget. For Player Insteaceability, you should use Arrays.

Code:
Mana Burn Strike
Events
Unit - Generic unit starts the effect of an ability //STARTS! and not BEGINS!

Conditions
(Ability being cast) Equal to Mana Burn Hotkey (A)

Actions
Set Position = (Position of (Triggering unit))
Unit - Create 1 DummyCaster (ManaBurn) for (Owner of (Triggering unit)) at Position facing (Facing of (Triggering unit))
Set Dummy = (Last created unit)
Unit - Order Dummy to Night Elves - Demon Hunter - Mana Burn (ManaBurnTarget)
Unit - Add 2.00 seconds generic expiration to Dummy

I hope this help you! There is a delay between 0.02~0.03 seconds for begins and starts the effect of an ability. Took 30 min to write, need working on my map!

Have a good day!
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top