Passive Monsoon?

BlackNerubia

New Member
Reaction score
12
Just wondering if its possible to make a monsoon ability thats passive, i know it can be done with triggers, but I'm trying to get it to be just a ability because of the issue of when a unit is killed by it, it wont award full experience and bounty to the unit
 

Ryuu

I am back with Chocolate (:
Reaction score
64
Passive monsoon... hopefully setting the damage to 0 will work.

But what do you really want? All passive abilities has an effect (i.e Vampiric Aura allows you to suck hit points). So what effect do you really want this passive monsoon to have?
 

WindexGlow

New Member
Reaction score
54
How many units will have this monsoon ability, and how many units might be around the unit(that unit has monsoon)?
I can make a quick trigger if it's dealing with small emount of units.
 
D

D0MinIc

Guest
Use permanent immolation? though it has to be leveled through triggers cause you can't level it through object editor without it fucking up.
 

mr-death

Acolyte
Reaction score
51
Actually, you can use Permanent Immolation for this Passive Monsoon.

Create a Custom Buff from Buff: Permanent Immolation (Neutral Hostile 2)

Change the:
Text - Name to Passive Monsoon
Art - Special to Monsoon <Target>
Art - Target to Monsoon (Effect) <Effect>
_________________________________________________________________
Create a Custom Ability from Unit Ability: Permanent Immolation (Neutral Hostile 2)

Change the:
Text - Name to Passive Monsoon
Stats - Buff to Passive Monsoon (The one we made before)
Stats - Area of Effect to whatever you want (Area of the Monsoon)
Data - Damage per Interval to whatever you want (Damage of the Monsoon every Duration second(s))
Stats - Duration to whatever you want (Damage Interval)
_________________________________________________________________
Add the Passive Monsoon Ability (we created before) to unit

Done!
 

Tinki3

Special Member
Reaction score
418
> it wont award full experience and bounty to the unit

"Unit - Damage Target" takes care of that.

I would suggest you do this spell via triggers, as I don't think there's a suitable ability that is passive AND acts as monsoon does.

All you'd need to do, is use a passive skill as a sort of "dummy" (making sure you give it a buff), and then use
a trigger for the monsoon effects like so:
Code:
Events
    Time - Every 1.00 seconds of game-time
Conditions
Actions
    Custom Script:    set bj_wantDestroyGroup = true
    Unit Group - Pick every unit in units in (Playable map area) matching (matching unit) has buff <some buff> equal to true
        Loop - Actions    
            Set Temp_Unit = (Picked unit)
            Set Temp_Point = Position of Temp_Unit
            Custom Script:    set bj_wantDestroyGroup = true
            Unit Group - Pick every unit in units within 500.00 of Temp_Point matching (matching unit) belongs to an enemy of owner of (Temp_Unit) equal to true and (matching unit) is alive equal to true and (matching unit) is a ground unit equal to true
            Loop - Actions
                Unit - Cause Temp_Unit to damage (Picked unit) dealing 100.00 damage of attack type spells and damage type normal
                Special Effect - ...
            Custom Script:    call RemoveLocation(udg_Temp_Point)
If you don't want to damage the whole group of units within range, you just need to set the second Unit Group
into a variable, create a new unit variable called Temp_Unit_2 (or change the orig Temp_Unit to an arrayed var),
set that new unit variable to a random unit from the newly set group, then damage that Temp_Unit, and create
any special effects on them like shown:
Code:
Set Temp_Group = Units within 500.00 of Temp_Point matching (matching unit) belongs to an enemy of owner of (Temp_Unit) equal to true and (matching unit) is alive equal to true and (matching unit) is a ground unit equal to true
Set Temp_Unit_2 = Random unit from Temp_Group
Unit - Cause Temp_Unit to damage Temp_Unit_2 dealing 100.00 damage of attack type spells and damage type normal
Special Effect - ...
 

mr-death

Acolyte
Reaction score
51
Tinki3, must we use triggers for that? You could use permanent immolation as D0MinIc said.
 

Tinki3

Special Member
Reaction score
418
> must we use triggers for that?

No.

Triggers are obviously far more flexible than just the plain old Permanent Immolation.
For example, damage could be done using the hero's Intelligence, and(or) random targets can be damaged,
instead of a whole group at once.
 

mr-death

Acolyte
Reaction score
51
> must we use triggers for that?

No.

Triggers are obviously far more flexible than just the plain old Permanent Immolation.
For example, damage could be done using the hero's Intelligence, and(or) random targets can be damaged,
instead of a whole group at once.

About this one, I agree :)
 

BlackNerubia

New Member
Reaction score
12
Well thank you very much for your help +rep, but i have one last question on this im not so sure about, is this MUI?
 

Pyrogasm

There are some who would use any excuse to ban me.
Reaction score
134
If you used Tinki3's method, yes; if you used mr-death's method, yes; if you used your own method/combined them, you'd better post the triggers so that we may be able to tell.
 

lh2705

Just another Helper
Reaction score
111
Tinki3's code is.

Because it doesnt have waits and doesnt involve 2 or more triggers.
 

BlackNerubia

New Member
Reaction score
12
I used Tink's method to do so, so i belive it will work

Code:
Storm Caller
    Events
        Time - Every (Random real number between 8.00 and 60.00) seconds of game time
    Conditions
    Actions
        Custom script:   set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) has buff Storm Caller (Shaman)) Equal to True)) and do (Actions)
            Loop - Actions
                Set TempUnit = (Picked unit)
                Set TempPoint = (Position of TempUnit)
                Set TempGroup = (Units within 500.00 of TempPoint matching ((((Owner of (Matching unit)) is an enemy of (Owner of TempUnit)) Equal to True) and (((Matching unit) is alive) Equal to True)))
                Set TempUnit2 = (Random unit from TempGroup)
                Unit - Cause TempUnit to damage TempUnit2, dealing (Real(StormCaller[(Level of Storm Caller (Shaman) for TempUnit)])) damage of attack type Spells and damage type Normal
                Set TempPoint = (Position of TempUnit2)
                Special Effect - Create a special effect at TempPoint using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
                Set TempEffect = (Last created special effect)
                Wait 1.00 seconds
                Special Effect - Destroy TempEffect
        Custom script:   call RemoveLocation(udg_TempPoint)

My only concern is this
Code:
                Set TempEffect = (Last created special effect)
                Wait 1.00 seconds
                Special Effect - Destroy TempEffect
because if i dont put the wait in the effect wont show up, but if i leave the wait out, the effect wont show up
 

lh2705

Just another Helper
Reaction score
111
Are you sure? Have you tried it?
I think it will work without the wait.
 

Pyrogasm

There are some who would use any excuse to ban me.
Reaction score
134
When you set up a "random real number between X and Y game-time seconds" event, that number is determined randomly before the game starts and is constant throughout the game.

You'd be better of doing something of this sort:
Code:
Storm Caller
    Events
        Time - Every 1.00 seconds of game time
    Conditions
    Actions
        If ((TempEffect) not equal to (No effect)) then do (Special Effect - Destroy TempEffect) else do (Do nothing)
        Trigger - Disable (This trigger)
        Set SomeReal = (Random real number between 8.00 and 60.00)
        Wait (SomeReal) game-time seconds
        Custom script:   set bj_wantDestroyGroup = true
        Unit Group - Pick every unit in (Units in (Playable map area) matching (((Matching unit) has buff Storm Caller (Shaman)) Equal to True)) and do (Actions)
            Loop - Actions
                Set TempUnit = (Picked unit)
                Set TempPoint = (Position of TempUnit)
                Set TempGroup = (Units within 500.00 of TempPoint matching ((((Owner of (Matching unit)) is an enemy of (Owner of TempUnit)) Equal to True) and (((Matching unit) is alive) Equal to True)))
                Set TempUnit2 = (Random unit from TempGroup)
                Unit - Cause TempUnit to damage TempUnit2, dealing (Real(StormCaller[(Level of Storm Caller (Shaman) for TempUnit)])) damage of attack type Spells and damage type Normal
                Set TempPoint = (Position of TempUnit2)
                Special Effect - Create a special effect at TempPoint using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
                Set TempEffect = (Last created special effect)
        Custom script:   call RemoveLocation(udg_TempPoint)
        Trigger - Turn on (This Trigger)
I moved the SFX destroy to the top to speed up the code, since the trigger is going to run every 1.00 seconds anyway.

EDIT: I just realized that my way of doing the SFX destroying doesn't work. Neither does yours, by-the-way. I think in this situation you'd just have to settle with the leak unless you want to use an array and some integer counter to increment the index.
 

BlackNerubia

New Member
Reaction score
12
Well i decided ill just create a cleaning trigger that removes the effects like every10 seconds, other wise, thank you all very much for your help
 
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