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

Spell Request: Berserk

Status
Not open for further replies.
Level 20
Joined
Nov 20, 2005
Messages
1,178
I've been searching through search engine, then on this website as well but it seems i can't find what i'm looking for: I need a Berserk ability/spell which makes a unit go hostile and attack anything it comes in sight with, friends or foe. When it kills, it goes to the next first unit it acquires, and so on, until it dies or duration expires(even though i'm not planning that).
Can anybody help me, please?
 
Level 20
Joined
Nov 20, 2005
Messages
1,178
I think switching the unit's player to Neutral Hostile would work.
But it will not attack other Neutral Hostile units
Yep.

The best option in my opinion is to change the owner of the unit to a non-playable player that is hostile to all players including computer players.
....and itself as well? It's not meant to be a spell which sends a unit into berserk, but more of a "situation" that occours under special circumstances that sends an indefinite number of units(radius based or such) into berserk. Sort of rebellion or anarchy status, so that every unit under this status will attack each other until the aura-based ability will come around and "restore order" once again.
 
Level 28
Joined
Feb 18, 2014
Messages
3,574
Yep.


....and itself as well? It's not meant to be a spell which sends a unit into berserk, but more of a "situation" that occours under special circumstances that sends an indefinite number of units(radius based or such) into berserk. Sort of rebellion or anarchy status, so that every unit under this status will attack each other until the aura-based ability will come around and "restore order" once again.
So the unit that is under the effect of "berzerk" will ONLY attack the units that are under the same effect? I don't know if this is what you want but if it's the case then you can add all units that are afflicted with "Berzerk" into a unit group and order them to attack each others. Or you can create a trigger that periodically checks if a unit has the "Berzerk" buff and order it to attack another unit that has that buff aswell.
 
Level 20
Joined
Nov 20, 2005
Messages
1,178
So the unit that is under the effect of "berzerk" will ONLY attack the units that are under the same effect? I don't know if this is what you want but if it's the case then you can add all units that are afflicted with "Berzerk" into a unit group and order them to attack each others. Or you can create a trigger that periodically checks if a unit has the "Berzerk" buff and order it to attack another unit that has that buff aswell.
Nope. "berzerk" afflicted units attack anything they see, friend or foe.
Basically there has to be nearby a unit with an aura-type ability that prevents this specific type of unit to go berzerk. If these units leave the radius of the aura, they will go berzerk, returning normal when around the aura radius again.
 
Level 20
Joined
Nov 20, 2005
Messages
1,178
This reminds me of the Ultimate spell from the Hero Contest, what was it... *searches Hive*... Ah yes, here we go. Named "Turmoil".
Riiiiiiiiiight, well, i shall contact the author and see if he can give me some cookies. :D
I've seen the sample video. I can only guess all of his team units didn't die for killing themselves due to the temporary Evasion buff.
 
Level 20
Joined
Nov 20, 2005
Messages
1,178
"Cookies"? I mean it's up for public upload; you can download it & modify it for your use freely, AFAIK.
heh, wish i knew how to do that.

That is, if it's close to what you want. If not, no big deal, just a suggestion.
It is if the units are fighting each other. There is a whole different mechanic around, rather than how i intend to use it. Anyway, still no response from the guy. :/
 
Level 24
Joined
Feb 9, 2009
Messages
1,783
I recall a necromancer spell pack that used this model :
26212-6a204d6ca23c175e1d254f66cf7a6e00.jpg

It had an ability called "Confusion" and the units would attack themselves... I know i saved it somewhere I just can't recall the name...


Ah found it!
Necro Walker v1.2 by Dinowc | HIVE
 
Last edited:
Level 20
Joined
Nov 20, 2005
Messages
1,178

I can't test it right now. Does the map itself have the ability in?

I was thinking about another way: creating a dummy buff that triggers a function which causes the afflicted unit(with the buff on) to attack "random unit within range" if its current order is "stop", so that it keeps doing. Could that work out fine?
 
Level 24
Joined
Feb 9, 2009
Messages
1,783
Yes it does have the ability, I'll give your suggestion a shot.

Edit:
Hey it works pretty well, someone mind giving it at look over to ensure it's not leaking?

Blood Boil for LordPerenoldeII | HIVE

Config
  • BlBo Config
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set BlBo_Periodic = 0.03
      • Trigger - Add to BlBo Periodic <gen> the event (Time - Every BlBo_Periodic seconds of game time)
      • -------- --------
      • -------- Ability ID --------
      • Set BlBo_Config_Ability = Blood Boil
      • -------- Buff ID --------
      • Set BlBo_Config_Buff = Blood Boil
      • -------- --------
      • -------- Duration of the Ability --------
      • Set BlBo_Config_Duration = 6.00
      • -------- --------
Cast
  • BlBo Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to BlBo_Config_Ability
    • Actions
      • -------- --------
      • Unit - Remove BlBo_Config_Buff buff from (Target unit of ability being cast)
      • -------- --------
      • Set BlBo_Index = (BlBo_Index + 1)
      • Set BlBo_Target[BlBo_Index] = (Target unit of ability being cast)
      • Set BlBo_Duration[BlBo_Index] = BlBo_Config_Duration
      • -------- --------
      • Ability - Set Ability: (Unit: (Triggering unit)'s Ability with Ability Code: BlBo_Config_Ability)'s Real Level Field: Duration - Normal ('adur') of Level: 0 to BlBo_Config_Duration
      • Ability - Set Ability: (Unit: (Triggering unit)'s Ability with Ability Code: BlBo_Config_Ability)'s Real Level Field: Duration - Hero ('ahdu') of Level: 0 to BlBo_Config_Duration
      • -------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • BlBo_Index Equal to 1
        • Then - Actions
          • Trigger - Turn on BlBo Periodic <gen>
        • Else - Actions
Periodic
  • BlBo Periodic
    • Events
    • Conditions
    • Actions
      • For each (Integer BlBo_Loop) from 1 to BlBo_Index, do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • Or - Any (Conditions) are true
                • Conditions
                  • (BlBo_Target[BlBo_Loop] is dead) Equal to True
                  • (BlBo_Target[BlBo_Loop] has buff BlBo_Config_Buff) Equal to False
                  • BlBo_Duration[BlBo_Loop] Less than or equal to 0.00
            • Then - Actions
              • Unit - Order BlBo_Target[BlBo_Loop] to Stop
              • Set BlBo_Target[BlBo_Loop] = BlBo_Target[BlBo_Index]
              • Set BlBo_Target_Secondary[BlBo_Loop] = BlBo_Target_Secondary[BlBo_Index]
              • Set BlBo_Duration[BlBo_Loop] = BlBo_Duration[BlBo_Index]
              • Set BlBo_Loop = (BlBo_Loop - 1)
              • Set BlBo_Index = (BlBo_Index - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • BlBo_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn on (This trigger)
                • Else - Actions
            • Else - Actions
              • Set BlBo_Duration[BlBo_Loop] = (BlBo_Duration[BlBo_Loop] - BlBo_Periodic)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (BlBo_Target[BlBo_Loop] is selected by (Owner of BlBo_Target[BlBo_Loop])) Equal to True
                • Then - Actions
                  • Selection - Remove BlBo_Target[BlBo_Loop] from selection
                • Else - Actions
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • Or - Any (Conditions) are true
                    • Conditions
                      • (Current order of BlBo_Target[BlBo_Loop]) Not equal to (Order(attack))
                      • (BlBo_Duration[BlBo_Loop] mod 1.50) Less than or equal to BlBo_Periodic
                • Then - Actions
                  • Set BlBo_Point[0] = (Position of BlBo_Target[BlBo_Loop])
                  • Set BlBo_Range[0] = 750.00
                  • Custom script: set bj_wantDestroyGroup = true
                  • Unit Group - Pick every unit in (Units within 750.00 of BlBo_Point[0]) and do (Actions)
                    • Loop - Actions
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • If - Conditions
                          • ((Picked unit) is A structure) Equal to False
                          • ((Picked unit) is alive) Equal to True
                          • (Picked unit) Not equal to BlBo_Target[BlBo_Loop]
                        • Then - Actions
                          • Set BlBo_Point[1] = (Position of (Picked unit))
                          • Set BlBo_Range[1] = (Distance between BlBo_Point[0] and BlBo_Point[1])
                          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                            • If - Conditions
                              • BlBo_Range[1] Less than BlBo_Range[0]
                            • Then - Actions
                              • Set BlBo_Range[0] = BlBo_Range[1]
                              • Set BlBo_Target_Secondary[BlBo_Loop] = (Picked unit)
                            • Else - Actions
                          • Custom script: call RemoveLocation(udg_BlBo_Point[1])
                        • Else - Actions
                  • Unit - Order BlBo_Target[BlBo_Loop] to Attack BlBo_Target_Secondary[BlBo_Loop]
                  • Custom script: call RemoveLocation(udg_BlBo_Point[0])
                • Else - Actions
 
Last edited:
Status
Not open for further replies.
Top