How to multicast?

RueK

New Member
Reaction score
11
My hero has a storm bolt skill, and his ulti is minded to be a pasive ability that lets his first skill (storm bolt) to be casted 2/4/7 more times like the multicast on dota but without a casting chance.

how the trigger would look like ?
 

Cheddar

This is the way it was meant to be.
Reaction score
126
Does this mean you essentially want it to have a 100% chance to multicast?

Code:
Events: Unit starts the effect of an ability
Conditions: Ability being cast equal to (Storm Bolt)
Actions: If: Level of (Multicast) for (Casting unit) equal to 1
            Then: [B]Set GeneralPoint equal to (Position of (Casting unit))
                     Create 1 Dummy Caster at (GeneralPoint) for (Owner of (Casting unit)) facing default building facing degrees
                     Add a 3.00 second expiration timer to (Last created unit)
                     Add (Dummy Storm Bolt) to (Last created unit)
                     Set level of (Dummy Storm Bolt) for (Last created unit) equal to (Level of (Multicast) for (Casting unit))
                     Order (Last created unit) to (Human Mountain King -- Storm Bolt) (Target unit of ability being cast)
                     call RemoveLocation(udg_GeneralPoint)[/B]

Include a wait after the bolded stuff, and copy the bolded stuff for every time you want an extra Storm Bolt to fire. This trigger causes a dummy to shoot 1 Storm Bolt at the target when you have level 1 Multicast.
 

Cheddar

This is the way it was meant to be.
Reaction score
126
Every time you copy the bolded set of actions, it will create another Storm Bolt. Change the condition in the "If" portion of the If-Then-Else so it detects levels 2 and 3.
 

Anti-krazy

New Member
Reaction score
5
just copy the if/then/else function and copy it BELLOW if/then/else

then change the level number from 1 to 2 then so on and so on
 

RueK

New Member
Reaction score
11
Code:
Multicast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Fireblast 
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Multicast  for (Casting unit)) Equal to 1
            Then - Actions
                Set MulticastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of MulticastCaster) at (Position of MulticastCaster) facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for MulticastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)
                Custom script:   call RemoveLocation(udg_MulticastCaster)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Multicast  for (Casting unit)) Equal to 3
            Then - Actions
                Set MulticastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of MulticastCaster) at (Position of MulticastCaster) facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for MulticastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)
                Custom script:   call RemoveLocation(udg_MulticastCaster)
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                (Level of Multicast  for (Casting unit)) Equal to 3
            Then - Actions
                Set MulticastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of MulticastCaster) at (Position of MulticastCaster) facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for MulticastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)
                Custom script:   call RemoveLocation(udg_MulticastCaster)
            Else - Actions

it gives script errors are ELSE location =s and where i am supsoe to add the extra shot fired to happen? yes i am making something like fireblst of dota but withotu chance,
 

Anti-krazy

New Member
Reaction score
5
no dont put the if/then/else action on else. ignore the else action put it under the level 1 if/then/else condition like this

If (All Conditions are True) then do (Then Actions) else do (Else Actions)
put the if/then/else here >>> (underneath this action and you will end up like this

Code:
Test
    Events
    Conditions
    Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is A structure) Equal to True
            Then - Actions
                Do nothing
                Do nothing
                Do nothing
            Else - Actions
        If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            If - Conditions
                ((Triggering unit) is A structure) Equal to True
            Then - Actions
                Do nothing
                Do nothing
                Do nothing
            Else - Actions

And umm u didnt change much of level 2 and 3 trigger

(the level 2 trigger has the number 3
 

RueK

New Member
Reaction score
11
i did do that. =s they if then else is not in the else.

and also i dont know where to add extra shots to happen. damn i suck at this =( ..
 

Igor_Z

You can change this now in User CP.
Reaction score
61
I think a much easier way is to make several dummy units for example lvl 1 as u said u want to be casted 2 times, level2 to be casted 4 times and level3 to be casted 7 times... I think u could make 1 dummy unit for the first lvl, 3 dummy units for the second lvl and 6 dummy units for the third lvl. Ofcourse add ur ability to them and order them to cast it... Don't think that it won't lag but try u haven't got anything to lose... GOOD LUCK
 

RueK

New Member
Reaction score
11
I think a much easier way is to make several dummy units for example lvl 1 as u said u want to be casted 2 times, level2 to be casted 4 times and level3 to be casted 7 times... I think u could make 1 dummy unit for the first lvl, 3 dummy units for the second lvl and 6 dummy units for the third lvl. Ofcourse add ur ability to them and order them to cast it... Don't think that it won't lag but try u haven't got anything to lose... GOOD LUCK


but how to order all the units? and how to add the ability to all the units.

(lst created unit) just triggers the LAST unit.
 

dragonhord

Knowledge is true opinion. - Plato
Reaction score
82
Event -
Unit Starts effect of Ability
Condition -
Ability being cast = Firebolt
Actions -
Set Caster=Casting Unit
Set Target=Target Unit of Ability Being Cast
For Loop Integer A from 1 to 2+Level of Multicast for *Triggering Unit* do actions
Actions -
Unit - Create 1 dummy unit for blah blah blah at position of caster blah
Unit - Set a 2 second generic expiration timer for last created unit
Unit - Add Firebolt Dummy to last created unit
Unit - Set level of Firebolt Dummy to level of Firebolt for Caster
Unit - Order Last Created Unit to Neutral Firebolt Target
Wait .25 seconds.

Then of course you want to remove leaks and perhaps you have noticed I freehanded that, so if you need any clarifying I could be of assistance :p. I will actually make a real one that's neat if you need it..
 

Flare

Stops copies me!
Reaction score
662
You need to do a loop like so
(just change the 10 to the number of repeat casts you want)
Code:
For each (Integer A) from 1 to 10, do (Actions)
    Loop - Actions
                Set MulticastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of MulticastCaster) at (Position of MulticastCaster) facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for MulticastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)
---And you fix the leak (Position of MulticastCaster)---

You can add a wait at the end of the loop if you want a delay between each recast, otherwise it'll just be one big, instant effect

And you are getting script errors because
JASS:
call RemoveLocation(udg_MulticastCaster)

MulticastCaster is a unit, but RemoveLocation needs to take a point and units =/= points
 

ManyTimes

I'm so lonesome I could cry...
Reaction score
293
You can add a wait + Target unit of ability being cast = awesomeness, as in, it will fail.

Casting unit does not need a variable (use triggering/casting unit throughout the trigger without problem), you should add "target unit of ability being cast" into the variable instead. Then order last created unit to target "UnitVariable".

Only one unit may activate this spell at a time, if you want more, you need locals, jass or do some various things with a unit group...
 

RueK

New Member
Reaction score
11
You need to do a loop like so
(just change the 10 to the number of repeat casts you want)
Code:
For each (Integer A) from 1 to 10, do (Actions)
    Loop - Actions
                Set MulticastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of MulticastCaster) at (Position of MulticastCaster) facing Default building facing degrees
                Unit - Add a 3.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for MulticastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)
---And you fix the leak (Position of MulticastCaster)---

You can add a wait at the end of the loop if you want a delay between each recast, otherwise it'll just be one big, instant effect

And you are getting script errors because
JASS:
call RemoveLocation(udg_MulticastCaster)

MulticastCaster is a unit, but RemoveLocation needs to take a point and units =/= points



Code:
Multicast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Fireblast 
        (Level of Multicast  for (Casting unit)) Equal to 1
    Actions
        For each (Integer A) from 1 to 2, do (Actions)
            Loop - Actions
                Set FireblastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of FireblastCaster) at (Position of FireblastCaster) facing Default building facing degrees
                Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for FireblastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)

it is ok? i tried and i still dont got any extra damage
 

dragonhord

Knowledge is true opinion. - Plato
Reaction score
82
You may also want to consider adding like a .10 second wait and setting the target unit to a variable as well, just so all the bonus damage isn't done in an instant.
 

RueK

New Member
Reaction score
11
Does the dummy have enough mana/spell have 0 mana cost?

Casting range of the dummy spell?

Is Fireblast based on the Firebolt ability? If not, that order won't work


i forgot to set the range of the fireblast for unit to 99999 ^^ thx for reminder XD! it works fine now

Code:
Multicast
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to Fireblast 
        (Level of Multicast  for (Casting unit)) Equal to 1
    Actions
        For each (Integer A) from 1 to 2, do (Actions)
            Loop - Actions
                Set FireblastCaster = (Casting unit)
                Unit - Create 1 Dummy Caster for (Owner of FireblastCaster) at (Position of FireblastCaster) facing Default building facing degrees
                Unit - Add a 4.00 second Generic expiration timer to (Last created unit)
                Unit - Add Fireblast  to (Last created unit)
                Unit - Set level of Fireblast  for (Last created unit) to (Level of Fireblast  for FireblastCaster)
                Unit - Order (Last created unit) to Neutral - Firebolt (Target unit of ability being cast)

Now i need to check for every level (3) of multicast, i added a casting time for the fireblast (unit) so it can do the effect ! btw i need to destroy the location of fireblast caster , what script was it?
 

dragonhord

Knowledge is true opinion. - Plato
Reaction score
82
call RemoveLocation(udg_FireblastCaster)

And to check for the levels, assuming you want to make it do more casts w/ higher levels, you could just do For Loop Integer A from 1 to 2*Level of Multicast for Triggering Unit
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top