- Joined
- Sep 29, 2007
- Messages
- 455
I need a bit of help in implementing an effective combo kill system such as the one in DotA. Can anybody help?
Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
Setup

Events


Map initialization

Conditions

Actions


Set TempFirstBlood = True


-------- Setup Spree Sounds --------


Set Spree_Sounds[1] = No sound


Set Spree_Sounds[2] = No sound


Set Spree_Sounds[3] = Killing_Spree <gen>


Set Spree_Sounds[4] = Dominating <gen>


Set Spree_Sounds[5] = MegaKill <gen>


Set Spree_Sounds[6] = Unstoppable <gen>


Set Spree_Sounds[7] = WhickedSick <gen>


Set Spree_Sounds[8] = MonsterKill <gen>


Set Spree_Sounds[9] = GodLike <gen>


Set Spree_Sounds[10] = HolyShit <gen>


-------- Setup Get Spree Text --------


Set Spree_Texts[1] = <Empty String>


Set Spree_Texts[2] = <Empty String>


Set Spree_Texts[3] = |ris on a |cff00FF00killing spree|r!


Set Spree_Texts[4] = |ris |cff551A8Bdominating|r!


Set Spree_Texts[5] = |rhas a |cffCD1076mega kill|r!


Set Spree_Texts[6] = |ris |cffFF8C00unstoppable|r!!


Set Spree_Texts[7] = |ris |cff006400wicked sick|r!!


Set Spree_Texts[8] = |rhas a |cffFF6EB4monster kill|r!!


Set Spree_Texts[9] = |ris |CFFFF0303GODLIKE|r!!!


Set Spree_Texts[10] = |ris |c00ff9900beyond GODLIKE|r!!!! Someone KILL HIM!!!


-------- Setup End Spree Text --------


Set SpreeEnd_Texts[1] = <Empty String>


Set SpreeEnd_Texts[2] = <Empty String>


Set SpreeEnd_Texts[3] = |cff00FF00killing spree|r


Set SpreeEnd_Texts[4] = |cff551A8Bdominating|r


Set SpreeEnd_Texts[5] = |cffCD1076mega kill|r


Set SpreeEnd_Texts[6] = |cffFF8C00unstoppable|r


Set SpreeEnd_Texts[7] = |cff006400wicked sick|r


Set SpreeEnd_Texts[8] = |cffFF6EB4monster kill|r


Set SpreeEnd_Texts[9] = |CFFFF0303GODLIKE|r


Set SpreeEnd_Texts[10] = |c00ff9900beyond GODLIKE|r


Custom script: call DestroyTrigger( GetTriggeringTrigger() )
Killing System

Events


Unit - A unit Dies

Conditions


(Owner of (Killing unit)) Not equal to Neutral Hostile


(Owner of (Triggering unit)) Not equal to Neutral Hostile


((Triggering unit) is A Hero) Equal to True


((Triggering unit) is Mechanical) Equal to False


((Triggering unit) is an illusion) Equal to False

Actions


Custom script: local string Message1


Custom script: local string Message2


Custom script: local string Message3


Custom script: local sound Sound1


Custom script: local sound Sound2


Custom script: local sound Sound3


If (Spree_Count[(Player number of (Owner of (Killing unit)))] Less than 10) then do (Set Spree_Count[(Player number of (Owner of (Killing unit)))] = (Spree_Count[(Player number of (Owner of (Killing unit)))] + 1)) else do (Do nothing)


-------- Kill Message --------


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




Spree_Count[(Player number of (Owner of (Triggering unit)))] Less than or equal to 2



Then - Actions




-------- You didn't end a spree. --------




Set General_Integer[1] = 200




Player - Add General_Integer[1] to (Owner of (Killing unit)) Current gold




Game - Display to (All players) the text: (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + ((|r just pwned + TextColor[(Player number of (Owner of (Triggering unit)))]) + ((Name of (Owner of (Dying unit))) + (|r's head for |CFFFFFF01 + ((String(Genera



Else - Actions




-------- You did end a spree. --------




Set General_Integer[1] = (300 + Spree_Count[(Player number of (Owner of (Triggering unit)))])




Game - Display to (All players) the text: (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + ((|r has just ended + TextColor[(Player number of (Owner of (Triggering unit)))]) + ((Name of (Owner of (Dying unit))) + ((|r's + SpreeEnd_Texts[Spree_Count[(P


Set Spree_Count[(Player number of (Owner of (Triggering unit)))] = 0


-------- Power --------


Player - Add 1 to (Owner of (Killing unit)) Current lumber


-------- First Blood --------


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




FirstBlood Equal to False



Then - Actions




Set FirstBlood = True




Player - Add 200 to (Owner of (Killing unit)) Current gold




Set General_String[1] = (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + just drew |CFFFF0303first blood!|r (+200 gold))))




Custom script: set Message1 = udg_General_String[1]




Custom script: set Sound1 = gg_snd_firstblood



Else - Actions


-------- Spree --------


Set General_String[2] = (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + Spree_Texts[Spree_Count[(Player number of (Owner of (Killing unit)))]]))


Custom script: set Message2 = udg_General_String[2]


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




Spree_Count[(Player number of (Owner of (Killing unit)))] Less than or equal to 2



Then - Actions




Custom script: set Message2 = ""



Else - Actions


Custom script: set Sound2 = udg_Spree_Sounds[udg_Spree_Count[GetConvertedPlayerId(GetOwningPlayer(GetKillingUnit()))]]


-------- Double/Triple Kill --------


Set General_Point[1] = (Center of (Playable map area))


Unit - Create 1 0 Dummy Unit for (Owner of (Killing unit)) at General_Point[1] facing Default building facing degrees


Unit - Add a 10.00 second Generic expiration timer to (Last created unit)


-------- Double Kill... --------


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




(Number of units in (Units owned by (Owner of (Killing unit)) of type 0 Dummy Unit)) Equal to 2



Then - Actions




Set General_String[3] = (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + |rjust got a |c00FFFF00Double Kill|r!)))




Custom script: set Message3 = udg_General_String[3]




Custom script: set Sound2 = gg_snd_Double_Kill



Else - Actions




If (All Conditions are True) then do (Then Actions) else do (Else Actions)





If - Conditions






(Number of units in (Units owned by (Owner of (Killing unit)) of type 0 Dummy Unit)) Equal to 3





Then - Actions






Set General_String[3] = (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + |rjust got a |c00FEBA0ETriple Kill|r!!!)))






Custom script: set Message3 = udg_General_String[3]






Custom script: set Sound3 = gg_snd_triple_kill





Else - Actions






If (All Conditions are True) then do (Then Actions) else do (Else Actions)







If - Conditions








(Number of units in (Units owned by (Owner of (Killing unit)) of type 0 Dummy Unit)) Equal to 4







Then - Actions








Set General_String[3] = (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + |rjust got a |c00FF8000Ultra Kill|r!!!)))








Custom script: set Message3 = udg_General_String[3]








Custom script: set Sound3 = gg_snd_UltraKill







Else - Actions








If (All Conditions are True) then do (Then Actions) else do (Else Actions)









If - Conditions










(Number of units in (Units owned by (Owner of (Killing unit)) of type 0 Dummy Unit)) Greater than or equal to 5









Then - Actions










Set General_String[3] = (TextColor[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + |ris FU |c00FF0000Rampage|r!!!)))










Custom script: set Message3 = udg_General_String[3]










Custom script: set Sound3 = gg_snd_Rampage









Else - Actions


-------- Display Messages & Play Sounds --------


If (All Conditions are True) then do (Then Actions) else do (Else Actions)



If - Conditions




TempFirstBlood Equal to True



Then - Actions




Set TempFirstBlood = False




Custom script: call PlaySoundBJ( Sound1 )




Custom script: if Message1 != "" then




Custom script: call DisplayTextToForce( GetPlayersAll(), Message1 )




Custom script: endif



Else - Actions


Custom script: call PlaySoundBJ( Sound2 )


Custom script: if Message2 != "" then


Custom script: call DisplayTextToForce( GetPlayersAll(), Message2 )


Custom script: endif


Custom script: call PlaySoundBJ( Sound3 )


Custom script: if Message3 != "" then


Custom script: call DisplayTextToForce( GetPlayersAll(), Message3 )


Custom script: endif
