Drunken_God
Hopes to get back into Mapmaking with SC2 :)
- Reaction score
- 106
Charge of Blood
Another Spell FrozenShadow requested from me, so i made it(idea)you could have clicked on the link but:
GUI/JASS?:GUICharge of Blood
The Tauren Berserker charges towards the targeted unit at speeds fast enough to push off units near Degnaul. Degnaul sacrifices health as long as he is charging.
Before I get to the levels, let me explain. It has 9999999 Cast Range, when Degnaul charges forth, he gets a blood effect on his back, where it continues only while he is charging. So as long as Degnaul is charging, he gets damaged. He pushes away any other units he runs into, 250 Range Push, dealing damage of course. Now when he gets to the target enemy, he deals damage total of 25%/50%/75% health he lost while charging. He gets max movespeed while charging, immune to spells while charging.
Extra Details...(If allowed)
Model - Tauren Chieftain
Icon - War Stomp
Framework - WarStomp Animation + Blood Explosion animation on targeted unit once hit by charge of blood. While charging Degnaul gets a blood(death) animation which lasts while he is charging to notice that he is getting damaged too. And if possible add Phoenix Missle to the hooves of Degnaul
I do hope this is not much mr-death
Level 1 - Deals 40 damage to self per second, 40 damage per push. 25% of health lost damaged to target unit. 250 range push.
Level 2 - Deals 80 damage to self per second, 60 damage per push. 50% of health lost damaged to target unit. 250 range push.
Level 3 - Deals 120 damage to self per second, 80 damage per push. 75% of health lost damaged to target unit. 250 range push.
MUI/MPI?:MPI i think, i could not test it so...
Leaks: I think its leak clean
Lag: NO
Import Difficulty: Low (2 spells)
Some Screenshots first, then go on with the boring triggertext




Now the "boring part":
I made 5 triggers first the Cast trigger
Code:
Casting
Events
Unit - A unit Starts the effect of an ability
Conditions
(Ability being cast) Equal to Charge of Blood
Actions
Unit - Turn collision for (Triggering unit) Off
Set CoB_Times[(Integer A)] = 0
Unit - Order (Triggering unit) to Attack (Target unit of ability being cast)
Unit - Add Phoenix Hooves to (Triggering unit)
Unit - Add classification of Magic Immune to (Triggering unit)
Set CoB_DamageDealt[(Player number of (Owner of (Triggering unit)))] = 0.00
Set CoB_Caster[(Player number of (Owner of (Triggering unit)))] = (Triggering unit)
Unit Group - Remove all units from CoB_AlreadySlide[(Player number of (Owner of (Triggering unit)))]
Trigger - Add to Command <gen> the event (Unit - (Triggering unit) Is issued an order targeting an object)
Trigger - Add to Command <gen> the event (Unit - (Triggering unit) Is issued an order targeting a point)
Trigger - Add to Command <gen> the event (Unit - (Triggering unit) Is issued an order with no target)
Code:
Periodic
Events
Time - Every 0.25 seconds of game time
Conditions
Actions
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
(Level of Phoenix Hooves for CoB_Caster[(Integer A)]) Greater than 0
Then - Actions
Set CoB_Times[(Integer A)] = (CoB_Times[(Integer A)] + 1)
Set temppoint = (Position of CoB_Caster[(Integer A)])
Set tempgroup = (Units within 200.00 of temppoint matching (((((((Matching unit) is A structure) Equal to False) and (((Matching unit) belongs to an ally of (Player((Integer A)))) Equal to False)) and (((Matching unit) is alive) Equal to True)) and (((Matching unit) is in Co
Unit Group - Pick every unit in tempgroup and do (Actions)
Loop - Actions
Unit - Cause CoB_Caster[(Integer A)] to damage (Picked unit), dealing (20.00 + (20.00 x (Real((Level of Charge of Blood for CoB_Caster[(Integer A)]))))) damage of attack type Spells and damage type Normal
Unit Group - Add (Picked unit) to CoB_SlideGroup
Unit Group - Add (Picked unit) to CoB_AlreadySlide[(Integer A)]
Custom script: call DestroyGroup (udg_tempgroup)
Custom script: call RemoveLocation (udg_temppoint)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
CoB_Times[(Integer A)] Equal to 4
Then - Actions
Set CoB_Times[(Integer A)] = 0
Unit - Cause CoB_Caster[(Integer A)] to damage CoB_Caster[(Integer A)], dealing (40.00 x (Real((Level of Charge of Blood for CoB_Caster[(Integer A)])))) damage of attack type Chaos and damage type Normal
Set CoB_DamageDealt[(Integer A)] = (CoB_DamageDealt[(Integer A)] + (40.00 x (Real((Level of Charge of Blood for CoB_Caster[(Integer A)])))))
Special Effect - Create a special effect attached to the chest of CoB_Caster[(Integer A)] using Objects\Spawnmodels\Orc\Orcblood\OrcBloodPeon.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect attached to the chest of CoB_Caster[(Integer A)] using Objects\Spawnmodels\Orc\Orcblood\OrcBloodPeon.mdl
Special Effect - Destroy (Last created special effect)
Else - Actions
Else - Actions
Code:
Command
Events
Conditions
(Level of Phoenix Hooves for (Triggering unit)) Greater than 0
Actions
Unit - Turn collision for (Triggering unit) On
Unit - Remove classification of Magic Immune from (Triggering unit)
Unit - Remove Phoenix Hooves from (Triggering unit)
Set CoB_Caster[(Integer A)] = No unit
Unit Group - Remove all units from CoB_AlreadySlide[(Player number of (Owner of (Triggering unit)))]
Code:
Target Attack
Events
Unit - A unit Is attacked
Conditions
(Level of Phoenix Hooves for (Attacking unit)) Greater than 0
Actions
Unit - Turn collision for (Attacking unit) On
Unit - Remove classification of Magic Immune from (Attacking unit)
Unit - Remove Phoenix Hooves from (Attacking unit)
Set temppoint = (Position of (Attacked unit))
Special Effect - Create a special effect at temppoint using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
Special Effect - Destroy (Last created special effect)
Special Effect - Create a special effect at temppoint using Objects\Spawnmodels\Orc\OrcLargeDeathExplode\OrcLargeDeathExplode.mdl
Special Effect - Destroy (Last created special effect)
Custom script: call RemoveLocation (udg_temppoint)
Set CoB_DamageDealt[(Player number of (Owner of (Attacking unit)))] = (CoB_DamageDealt[(Player number of (Owner of (Attacking unit)))] x (0.25 x (Real((Level of Charge of Blood for (Attacking unit))))))
Unit - Cause (Attacking unit) to damage (Attacked unit), dealing CoB_DamageDealt[(Player number of (Owner of (Attacking unit)))] damage of attack type Spells and damage type Normal
Set CoB_Caster[(Player number of (Owner of (Attacking unit)))] = No unit
Unit Group - Remove all units from CoB_AlreadySlide[(Player number of (Owner of (Triggering unit)))]
Code:
Slide
Events
Time - Every 0.04 seconds of game time
Conditions
Actions
For each (Integer A) from 1 to 12, do (Actions)
Loop - Actions
Unit Group - Pick every unit in CoB_SlideGroup and do (Actions)
Loop - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
((Picked unit) is in CoB_AlreadySlide[(Integer A)]) Equal to True
Then - Actions
Set temppoint = (Position of (Picked unit))
Set temppoint2 = (Position of CoB_Caster[(Integer A)])
Set temppoint3 = (temppoint offset by 10.00 towards ((Angle from temppoint to temppoint2) - 180.00) degrees)
Unit - Move (Picked unit) instantly to temppoint3
Unit - Set the custom value of (Picked unit) to ((Custom value of (Picked unit)) + 10)
Special Effect - Create a special effect at temppoint3 using Abilities\Spells\Human\FlakCannons\FlakTarget.mdl
Special Effect - Destroy (Last created special effect)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
(Custom value of (Picked unit)) Equal to 250
Then - Actions
Unit Group - Remove (Picked unit) from CoB_SlideGroup
Unit - Set the custom value of (Picked unit) to 0
Else - Actions
Custom script: call RemoveLocation (udg_temppoint)
Custom script: call RemoveLocation (udg_temppoint2)
Custom script: call RemoveLocation (udg_temppoint3)
Else - Actions
Map attached.
EDIT removed collsion and made more accurate
How to make it MUI:
I dont made it MUI because it could lag maybe
only make a integer variable and set this when casting +1 the replace player number of owner of triggering unit with your variable, if the variable = 2000 set it 0 and set the for each integer A from 1 to 12 to for each integer a from 1 to 2000 (will give 2000 instaces)
and make sure to increase the array of all variables
I dont made it MUI because it could lag maybe
only make a integer variable and set this when casting +1 the replace player number of owner of triggering unit with your variable, if the variable = 2000 set it 0 and set the for each integer A from 1 to 12 to for each integer a from 1 to 2000 (will give 2000 instaces)
and make sure to increase the array of all variables
Attachments
-
65.3 KB Views: 510