Fear ability problem

TzalDadok

New Member
Reaction score
2
Can anyone tell me what is wrong about this ability. It's supposed to be a Fear ability, like WoW. But when I use it, the target just does nothing.

2cr7mll.jpg
 

Dirac

22710180
Reaction score
147
The rally point is something the buildings use to move trained units to a location.
Order the units from the group to "move" towards the location.
You don't have to take a screenshot, you can right-click where it says the name of the trigger above the events and have it "copy as text". Then paste it here using [noparse]
Trigger:
[/noparse] tags.
There's also an action for having multiple actions done for units inside groups, instead of picking the entire group to do 1 action at a time
 

SouLEDGE

Damn you advanced calculus
Reaction score
75
I would also add a buff thats slows their movement speed by 50% because I
assume you'll want to attack these units while they're running away and if the units
move speed is very high it may reach the rally point before the fear is over and they'll
just stand still

As a side note, the spell will effect allies and enemies, so you may want to change that
unless you wanted it that way
 

TzalDadok

New Member
Reaction score
2
I would also add a buff thats slows their movement speed by 50% because I
assume you'll want to attack these units while they're running away and if the units
move speed is very high it may reach the rally point before the fear is over and they'll
just stand still

As a side note, the spell will effect allies and enemies, so you may want to change that
unless you wanted it that way

In the second trigger there's a condition that says that units picked should be anemies of caster.
 

TzalDadok

New Member
Reaction score
2
Thanks a lot you really help me. How the rep system works? Im kind of a noob in all these things.
 

TzalDadok

New Member
Reaction score
2
Ok, this is how it is right now.

Trigger:
  • Intimidating Shout
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Intimidating Shout
    • Actions
      • Set IntimidatingShout_Caster = (Triggering unit)
      • Set IntimidatingShout_UnitGroup = (Units within 300.00 of (Position of IntimidatingShout_Caster) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Mechanical) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of IntimidatingShout_Caster))
      • Unit Group - Pick every unit in IntimidatingShout_UnitGroup and do (Unit - Change ownership of (Picked unit) to Neutral Passive and Retain color)
      • Unit Group - Pick every unit in IntimidatingShout_UnitGroup and do (Unit - Order (Picked unit) to Move To ((Position of (Picked unit)) offset by 500.00 towards (Angle from (Position of IntimidatingShout_Caster) to (Position of (Picked unit))) degrees))
      • Wait 4.00 seconds
      • Unit Group - Pick every unit in IntimidatingShout_UnitGroup and do (Unit - Change ownership of (Picked unit) to (Previous owner) and Retain color)


The problem is the i can't change the owner of picked unit to the previous owner. I don't know why the last line is not working.
 

merlinds

Member
Reaction score
15
Tzal,
I recomend you to not change the owner of the units, instead you can order the units to move to certain point. And during the 4 seconds the effect lasts, make a timer that expires in 0.2 sec, that removes the selection of the owner over the unit.
Whit this the unit will be moved and the user will not be able to control it, so you have the same effect.
After the effect ends, if you want, you can select the unit for his owner.
The select and deselct can be don with a loop of "Pick every unit in XX and do actions". and you will need a timer, and another trigger that runs when the timer expires.
 

TzalDadok

New Member
Reaction score
2
I took some of merlinds advice and this is what I have now.

Trigger:
  • Intimidating Shout 1
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to Intimidating Shout
    • Actions
      • Set IntimidatingShout_Activate = True
      • Set IntimidatingShout_Caster = (Triggering unit)
      • Set IntimidatingShout_UnitGroup = (Units within 300.00 of (Position of IntimidatingShout_Caster) matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Mechanical) Equal to False) and (((Matching unit) belongs to an enemy of (Owner of IntimidatingShout_Caster))
      • Unit Group - Pick every unit in IntimidatingShout_UnitGroup and do (Unit - Order (Picked unit) to Move To ((Position of (Picked unit)) offset by 500.00 towards (Angle from (Position of IntimidatingShout_Caster) to (Position of (Picked unit))) degrees))
      • Wait 4.00 seconds
      • Set IntimidatingShout_Activate = False


Trigger:
  • Intimidating Shout 2
    • Events
      • Time - Every 0.01 seconds of game time
    • Conditions
      • ChallengingShout_Activate Equal to True
    • Actions
      • Unit Group - Pick every unit in IntimidatingShout_UnitGroup and do (Selection - Clear selection for (Owner of (Picked unit)))


For Players works perfectly, but for creeps doesn't.
 

merlinds

Member
Reaction score
15
Good point, a quick question. The creeps, they all belong to the same player (computer)?
Because, if this is the case, you can change the ownership only for creeps, and is easy to return them the control since is only one player.
Other thing, you can try to give the "move to point order" repeatdly to the unit and see what happens.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
i second the beginning of merlinds post, this is how i would do it though...

This determins what units are feared

Trigger:
  • Fear
    • Events
      • A unit casts an ability
    • Conditions
      • Ability Being cast equal to (Intimidating Shout) is true
    • Actions
      • Set Temp_Loc[1] (point variable) = Position of casting unit
      • Set Temp_GRP[1] = Units within 300 range of Temp_Loc[1] matching condition (Owner of Matching unit) is an enemy of (Owner of casting unit)
      • Unit Group - Pick every unit in Temp_GRP[1] and do actions
        • Loop Actions
          • Unit Group - Add unit to Fear_GRP
          • Hashtable - Save (5x fear duration in seconds) as (key picked unit) of 1 in Generic_Hashtable
          • For Integer A from 1 to 12 do actions
            • Loop Actions
              • Player - Make player (integer A) deselect Picked unit
          • Trigger - Turn on Fear <gen>
          • Trigger - Turn on Deselect Fear <gen>
      • Custom Script: Callremoveloc(UDG_Temp_Loc[1])
      • Custom Script: Calldestroyunitgroup(UDG_Temp_GRP[1])


This forces the units to move to a location based on their speed and the duration of each direction they walk in, this effect will look like they are wandering around like in wow, which i assume is the type of fear you wanted seeing as you referenced it

Trigger:
  • Fear
    • Events
      • Periodic Event - Every 0.2 seconds
    • Conditions
    • Actions
      • Set Interval_Integer = Interval_Integer + 1
      • Set Temp_GRP[2] = Units in Fear_GRP
      • Unit Group - Pick every unit in Temp_GRP[2] and do actions
        • Loop Actions
          • Hashtable - Save Integer ((Load Integer (key Picked unit) of 1 in Generic_Hashtable (create a hashtable and save it as this at map initialization)) - 1) as (key Picked unit) of 1 in Generic_Hashtable
          • If then else
            • If
              • Integer Comparison - (hashtable - load integer (key picked unit) of 1 in Generic_Hashtable) is equal to 0
            • Then
              • Unit Group - Remove picked unit from Fear_GRP
              • Unit Group - Remove picked unit from Temp_GRP[2]
              • Unit - Order Picked unit to stop
              • If then else
                • If
                  • Integer Comparison - Number of units in Fear_GRP = 0
                • Then
                  • Custom Script: Calldestroyunitgroup(UDG_Fear_GRP)
                  • Trigger - Turn off this trigger
                  • Trigger - Turn off Deselect Fear <gen>
                • Else
            • Else
      • If then else
        • If
          • Interval_Integer = 15
        • Then
          • Set Interval_Integer = 0
          • Unit Group - Pick every unit in Temp_GRP[2] and do actions
            • Loop Actions
              • Set Temp_Loc[2] = Position of picked unit offset by ((random number between (movespeed of picked unit x3) and (movespeed of picked unit x 4)), (random number between (movespeed of picked unit x 3) and (movespeed of picked unit x 4)))
              • Unit - Order picked unit to move to Temp_Loc[2]
              • Custom Script: Callremovelocation(UDG_Temp_Loc[2])
          • Else
      • Custom Script: Calldestroyunitgroup(UDG_Temp_GRP[2])


This makes people deselect the unit, making sure that the owner of the unit cant change the order of the unit, this way you dont need to change it to another player etc... you may be able to add a condition saying that its only if the triggering player has control of the unit

Trigger:
  • Deselect Fear
    • Events
      • A player selects a unit
    • Condition
      • Boolean Comparison - Selected unit is in Fear_GRP is eqaul to true
    • Actions
      • Player - Deselect selected unit for triggering player
 

Dirac

22710180
Reaction score
147
The deselect action is very slow, players can still give orders to units if they're fast enough, plus you're forcing the player to reselect the unit again.

The best approach to do this is to order the feared unit to move to a location and save this loc in a var, then in another trigger that registers unit orders; stop this unit from being ordered to do anything else by reordering it to move to the saved location.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
you could just save it in the hashtable with (key picked unit) of 2 instead of 1, (the position that is) then change the event a unit is selected to 3 events a unit is issued an order targeting a point/with no point/targeting a unit and add the actions set Temp_Loc = load point from hashtable, order the unit to move to the temp point, and then destroy the temp point
 

keychup

Active Member
Reaction score
34
Instead, cast Silence on the targets. Silence can be used to disable all Spells, melee attacks and ranged attacks. If the unit cannot do any of them, then in response, either the unit will auto-run away or if its a user player who doest want to run away...he'll certainly be taking a beating. Silence also has fields for slowing movement speed.
 

merlinds

Member
Reaction score
15
Instead, cast Silence on the targets. Silence can be used to disable all Spells, melee attacks and ranged attacks. If the unit cannot do any of them, then in response, either the unit will auto-run away or if its a user player who doest want to run away...he'll certainly be taking a beating. Silence also has fields for slowing movement speed.

Thats an awsome idea. For the player controlled units, you can use the deslection trigger.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
if you look a little under that there was a flaw but i provided a different solution
 
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