how to make a mepo based hero

Thunder_Lord

New Member
Reaction score
0
Alright ive spent the past couple hours working on a "Mepo" hero. if you have played dota you know that mepo is a hero that creates clones of itself and when one of the clones die, the original and the other clones die...My hero (Currently named mepo) summons a "clone" a different unit currently named "Mepo Dark Side" via an ability named "Summon Dark Side". also i want the unit once it has summoned the dark side not to be able to cast the ability again untill it has died. In my map up to 8 players could potentially summon several of these hero's so... i made these 4 triggers to mainpulate the variables Mepoarray (unit array), mepodarkside (unit array), and playermeponumber (Integer array)...

Dark Side Cast
Events
Unit - A unit Spawns a summoned unit
Conditions
(Unit-type of (Summoned unit)) Equal to Mepo Dark Side
Actions
Unit - Remove Summon Dark Side from (Summoning unit)
Hero - Set (Summoned unit) experience to (Hero experience of (Summoning unit)), Show level-up graphics
Hero - Disable experience gain for (Summoned unit)



UnitABspacing
Events
Unit - A unit Finishes training a unit
Conditions
(Unit-type of (Trained unit)) Equal to Mepo
Actions
Set Playermeponumber[(Player number of (Owner of (Trained unit)))] = (Playermeponumber[(Player number of (Owner of (Trained unit)))] + 1)
Set mepoarray[(((Player number of (Owner of (Trained unit))) x 100) + Playermeponumber[(Player number of (Owner of (Trained unit)))])] = (Trained unit)



UnitABspacing Copy
Events
Unit - A unit Spawns a summoned unit
Conditions
(Unit-type of (Triggering unit)) Equal to Mepo
(Unit-type of (Summoned unit)) Equal to Mepo Dark Side
Actions
Set mepodarkside[(((Player number of (Owner of (Triggering unit))) x 100) + Playermeponumber[(Player number of (Owner of (Triggering unit)))])] = (Summoned unit)



UnitABspacing Copy Copy
Events
Unit - A unit Dies
Conditions
Or - Any (Conditions) are true
Conditions
mepodarkside[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])] Equal to (Dying unit)
(Dying unit) Equal to mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])]
Actions
Unit - Add Summon Dark Side to mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + (Player number of (Owner of (Dying unit))))]
Unit - Kill mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])]
Unit - Remove mepodarkside[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])] from the game



any help would be greatly appreciated
 

bLu3_eYeS

New Member
Reaction score
31
Trigger:
  • Dark Side Cast
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned unit)) Equal to Mepo Dark Side
    • Actions
      • Unit - Remove Summon Dark Side from (Summoning unit)
      • Hero - Set (Summoned unit) experience to (Hero experience of (Summoning unit)), Show level-up graphics
      • Hero - Disable experience gain for (Summoned unit)




Trigger:
  • UnitABspacing
    • Events
      • Unit - A unit Finishes training a unit
    • Conditions
      • (Unit-type of (Trained unit)) Equal to Mepo
    • Actions
      • Set Playermeponumber[(Player number of (Owner of (Trained unit)))] = (Playermeponumber[(Player number of (Owner of (Trained unit)))] + 1)
      • Set mepoarray[(((Player number of (Owner of (Trained unit))) x 100) + Playermeponumber[(Player number of (Owner of (Trained unit)))])] = (Trained unit)




Trigger:
  • UnitABspacing Copy
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Mepo
      • (Unit-type of (Summoned unit)) Equal to Mepo Dark Side
    • Actions
      • Set mepodarkside[(((Player number of (Owner of (Triggering unit))) x 100) + Playermeponumber[(Player number of (Owner of (Triggering unit)))])] = (Summoned unit)




Trigger:
  • UnitABspacing Copy Copy
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • mepodarkside[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])] Equal to (Dying unit)
          • (Dying unit) Equal to mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])]
    • Actions
      • Unit - Add Summon Dark Side to mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + (Player number of (Owner of (Dying unit))))]
      • Unit - Kill mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])]
      • Unit - Remove mepodarkside[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])] from the game


@@ Quote from first post...it was hurting my eyes...
 

Chaos_Knight

New Member
Reaction score
39
Trigger:
  • Dark Side Cast
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Summoned unit)) Equal to Mepo Dark Side
    • Actions
      • Unit - Remove Summon Dark Side from (Summoning unit)
      • Hero - Set (Summoned unit) experience to (Hero experience of (Summoning unit)), Show level-up graphics
      • Hero - Disable experience gain for (Summoned unit)




Trigger:
  • UnitABspacing
    • Events
      • Unit - A unit Finishes training a unit
    • Conditions
      • (Unit-type of (Trained unit)) Equal to Mepo
    • Actions
      • Set Playermeponumber[(Player number of (Owner of (Trained unit)))] = (Playermeponumber[(Player number of (Owner of (Trained unit)))] + 1)
      • Set mepoarray[(((Player number of (Owner of (Trained unit))) x 100) + Playermeponumber[(Player number of (Owner of (Trained unit)))])] = (Trained unit)




Trigger:
  • UnitABspacing Copy
    • Events
      • Unit - A unit Spawns a summoned unit
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Mepo
      • (Unit-type of (Summoned unit)) Equal to Mepo Dark Side
    • Actions
      • Set mepodarkside[(((Player number of (Owner of (Triggering unit))) x 100) + Playermeponumber[(Player number of (Owner of (Triggering unit)))])] = (Summoned unit)




Trigger:
  • UnitABspacing Copy Copy
    • Events
      • Unit - A unit Dies
    • Conditions
      • Or - Any (Conditions) are true
        • Conditions
          • mepodarkside[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])] Equal to (Dying unit)
          • (Dying unit) Equal to mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])]
    • Actions
      • Unit - Add Summon Dark Side to mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + (Player number of (Owner of (Dying unit))))]
      • Unit - Kill mepoarray[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])]
      • Unit - Remove mepodarkside[(((Player number of (Owner of (Dying unit))) x 100) + Playermeponumber[(Player number of (Owner of (Dying unit)))])] from the game


@@ Quote from first post...it was hurting my eyes...

Cool code... Summoning Unit... :D. Dying Unit.
 

Thunder_Lord

New Member
Reaction score
0
What is mui?

What I side was use my "mepoarray" and assign each mepo a differant "number" and I could always refer to the one doing an even or recieving an action. I assigned a mepo when it is trained a number based off of their player numberx100 + the number mepo built by that player. So if player 2 built 7 mepos then the 7th mepo would get the index 206. And I did the same thing for th dark sides each time mepo summons a dark side it is assigned a differant varibol with the same index as the casting mepo.
 

Thunder_Lord

New Member
Reaction score
0
got it

MepoDarksideI
Events
Unit - A unit Finishes training a unit
Conditions
(Unit-type of (Trained unit)) Equal to Mepo
Actions
Set meponumber = (meponumber + 1)
Set mepoarray[meponumber] = (Trained unit)
Unit - Set the custom value of (Trained unit) to meponumber


MepoDarksideII
Events
Unit - A unit Spawns a summoned unit
Conditions
And - All (Conditions) are true
Conditions
(Unit-type of (Summoning unit)) Equal to Mepo
(Unit-type of (Summoned unit)) Equal to Mepo Dark Side
Actions
Hero - Set (Summoned unit) experience to (Hero experience of (Summoning unit)), Hide level-up graphics
Hero - Disable experience gain for (Summoned unit)
Unit - Remove Summon Dark Side from (Summoning unit)
Unit - Set the custom value of (Summoned unit) to (Custom value of (Summoning unit))
Set mepodarsidesummonvalue = (Custom value of (Summoning unit))
Set mepodarkside[mepodarsidesummonvalue] = (Summoned unit)


MepoDarksideIII
Events
Unit - A unit Dies
Conditions
Or - Any (Conditions) are true
Conditions
(Unit-type of (Dying unit)) Equal to Mepo
(Unit-type of (Dying unit)) Equal to Mepo Dark Side
Actions
Unit - Add Summon Dark Side to mepoarray[(Custom value of (Dying unit))]
Unit - Kill mepoarray[(Custom value of (Dying unit))]
Unit - Kill mepodarkside[(Custom value of (Dying unit))]
Unit - Remove mepodarkside[(Custom value of (Dying unit))] from the game


MepoDarksideVI
Events
Time - Every 0.01 seconds of game time
Conditions
Actions
Set meposoulnumber = (meposoulnumber + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
meposoulnumber Greater than meponumber
Then - Actions
Set meposoulnumber = 0
Else - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(mepodarkside[meposoulnumber] is alive) Equal to True
Then - Actions
Set mepodarksidepoint[meposoulnumber] = (Position of mepodarkside[meposoulnumber])
Else - Actions
Set mepodarksidepoint[meposoulnumber] = (Position of mepoarray[meposoulnumber])
Set meposoulpoint[meposoulnumber] = (Position of mepoarray[meposoulnumber])
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Distance between meposoulpoint[meposoulnumber] and mepodarksidepoint[meposoulnumber]) Greater than or equal to 300.00
Then - Actions
Set mepodarksidepoint[meposoulnumber] = (Position of mepodarkside[meposoulnumber])
Unit - Move mepodarkside[meposoulnumber] instantly to meposoulpoint[meposoulnumber]
Else - Actions


With a few new varibols and such i was able to accomplish what i wanted in the first 3 triggers above.

I also made trigger 4 witch caused the clone to center back on to the hero whenever it moved out of a certain distance range.

Thanks for the help
 
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