Leazy
You can change this now in User CP.
- Reaction score
- 50
DotA Spree & Assistance System
Hello!
I have always felt like the most maps that I have started on would look better with the DotA Spree and Assistance system, so I made them. The systems are GUI, leakless (I think) and bugfree (I think).
Code:
(Spree System)
(Assistance System)
Thanks to TheWarcraft & Sevion for helping me solve some buggs.
Enjoy!
Hello!
I have always felt like the most maps that I have started on would look better with the DotA Spree and Assistance system, so I made them. The systems are GUI, leakless (I think) and bugfree (I think).
Code:
(Spree System)
Trigger:
- Killing System setup
- Events
- Map initialization
- Conditions
- Actions
- -------- 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 |CffDAA520beyond 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] = |CffDAA520beyond GODLIKE|r
- Custom script: call DestroyTrigger( GetTriggeringTrigger() )
- Events
Trigger:
- Killing System
- Events
- Unit - A unit Dies
- Conditions
- ((Triggering unit) is A Hero) Equal to True
- 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] = 5
- Player - Add General_Integer[1] to (Owner of (Killing unit)) Current gold
- Game - Display to (All players) the text: (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + ((|r just pawned + PlayerColors[(Player number of (Owner of (Dying unit)))]) + ((Name of (Owner of (Dying unit))) + (|r's head for |CFFFFFF01 + ((String(Gene
- Else - Actions
- -------- You did end a spree. --------
- Set General_Integer[1] = (5 + Spree_Count[(Player number of (Owner of (Triggering unit)))])
- Game - Display to (All players) the text: (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + ((|r has just ended + PlayerColors[(Player number of (Owner of (Dying unit)))]) + ((Name of (Owner of (Dying unit))) + ((|r's + SpreeEnd_Texts[Spree_Count[(
- If - Conditions
- Set Spree_Count[(Player number of (Owner of (Triggering unit)))] = 0
- -------- 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
- Set General_String[1] = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + just drew |CFFFF0303first blood!|r (+10 gold))))
- Game - Display to (All players) the text: General_String[1]
- Else - Actions
- If - Conditions
- -------- Spree --------
- Set General_String[2] = (PlayerColors[(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]
- Custom script: set Sound2 = udg_Spree_Sounds[udg_Spree_Count[GetConvertedPlayerId(GetOwningPlayer(GetKillingUnit()))]]
- 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
- If - Conditions
- -------- Double/Triple Kill --------
- Set General_Point[1] = (Center of (Playable map area))
- Unit - Create 1 Dummy Unit (Double / Triple Kill Counter) for (Owner of (Killing unit)) at General_Point[1] facing Default building facing degrees
- Set General_Unitgroup[1] = (Units owned by (Owner of (Killing unit)) of type Dummy Unit (Double / Triple Kill Counter))
- Unit Group - Pick every unit in General_Unitgroup[1] and do (Unit - Set life of (Picked unit) to 100.00%)
- Custom script: call DestroyGroup (udg_General_Unitgroup[1])
- -------- 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 Dummy Unit (Double / Triple Kill Counter))) Equal to 2
- Then - Actions
- Set General_String[3] = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + |rjust got a |cff00008BDouble Kill|r!)))
- Custom script: set Message3 = udg_General_String[3]
- Custom script: set Sound3 = gg_snd_Double_Kill
- Else - Actions
- If - Conditions
- -------- Triple 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 Dummy Unit (Double / Triple Kill Counter))) Greater than or equal to 3
- Then - Actions
- Set General_String[3] = (PlayerColors[(Player number of (Owner of (Killing unit)))] + ((Name of (Owner of (Killing unit))) + (|r + |rjust got a |cff00FF00Triple Kill|r!!!)))
- Custom script: set Message3 = udg_General_String[3]
- Custom script: set Sound3 = gg_snd_triple_kill
- Else - Actions
- If - Conditions
- -------- Display Messages & Play Sounds --------
- Wait 0.50 seconds
- Custom script: call PlaySoundBJ( Sound2 )
- Custom script: if Message2 != "" then
- Custom script: call DisplayTextToForce( GetPlayersAll(), Message2 )
- Custom script: endif
- Wait 1.50 seconds
- Custom script: call PlaySoundBJ( Sound3 )
- Custom script: if Message3 != "" then
- Custom script: call DisplayTextToForce( GetPlayersAll(), Message3 )
- Custom script: endif
- Events
(Assistance System)
Trigger:
- Assistance System Setup 1
- Events
- Map initialization
- Conditions
- Actions
- Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
- Loop - Actions
- Trigger - Add to Get Assist <gen> the event (Unit - (Picked unit) Takes damage)
- Loop - Actions
- Unit Group - Pick every unit in (Units in (Playable map area)) and do (Actions)
- Events
Trigger:
- Assistance System Setup 2
- Events
- Unit - A unit enters (Playable map area)
- Conditions
- Actions
- Trigger - Add to Get Assist <gen> the event (Unit - (Triggering unit) Takes damage)
- Events
Trigger:
- Get Assist
- Events
- Conditions
- Actions
- Set General_Unitgroup[1] = (Units owned by (Owner of (Triggering unit)) matching (((Unit-type of (Matching unit)) Equal to ) and ((Custom value of (Matching unit)) Equal to (Player number of (Owner of (Damage source))))))
- Set General_Point[1] = (Position of (Triggering unit))
- Set General_Point[2] = (General_Point[1] offset by 1000000000.00 towards 180.00 degrees)
- Unit Group - Pick every unit in General_Unitgroup[1] and do (Actions)
- Loop - Actions
- Unit - Remove (Picked unit) from the game
- Loop - Actions
- Unit - Create 1 for (Owner of (Triggering unit)) at General_Point[2] facing Default building facing degrees
- Unit - Set the custom value of (Last created unit) to (Player number of (Owner of (Damage source)))
- Custom script: call RemoveLocation (udg_General_Point[1])
- Custom script: call RemoveLocation (udg_General_Point[2])
- Custom script: call DestroyGroup(udg_General_Unitgroup[1])
Trigger:
- Assist Message
- Events
- Unit - A unit Dies
- Conditions
- ((Triggering unit) is A Hero) Equal to True
- (Number of units in (Units owned by (Owner of (Triggering unit)) matching (((Unit-type of (Matching unit)) Equal to ) and ((Custom value of (Matching unit)) Not equal to (Player number of (Owner of (Killing unit))))))) Greater than 0
- Actions
- Custom script: local string Message
- For each (Integer A) from 1 to 12, do (Actions)
- Loop - Actions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- And - All (Conditions) are true
- Conditions
- ((Player((Integer A))) controller) Equal to User
- (Player((Integer A))) Not equal to (Owner of (Killing unit))
- ((Player((Integer A))) is an enemy of (Owner of (Triggering unit))) Equal to True
- (Number of units in (Units owned by (Owner of (Triggering unit)) matching (((Unit-type of (Matching unit)) Equal to ) and ((Custom value of (Matching unit)) Equal to (Integer A))))) Greater than 0
- Conditions
- And - All (Conditions) are true
- Then - Actions
- Set General_String[(Integer A)] = (( + PlayerColors[(Integer A)]) + ((Name of (Player((Integer A)))) + |cff828282,))
- Else - Actions
- Set General_String[(Integer A)] = <Empty String>
- If - Conditions
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Loop - Actions
- Set General_String[13] = (|cff828282Assists: + (General_String[1] + (General_String[2] + (General_String[3] + (General_String[4] + (General_String[5] + (General_String[6] + (General_String[7] + (General_String[8] + (General_String[9] + (General_String[10] + (General_String[11] + Gene
- If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- If - Conditions
- General_String[13] Equal to |cff828282Assists:
- Then - Actions
- Skip remaining actions
- Else - Actions
- If - Conditions
- Custom script: set Message = udg_General_String[13]
- Wait 0.10 seconds
- Custom script: call DisplayTimedTextToForce( GetPlayersAll(), 10.00, Message)
- Events
Thanks to TheWarcraft & Sevion for helping me solve some buggs.
Enjoy!