-
Are you planning to upload your awesome spell or system to Hive? Please review the rules here.Dismiss Notice
-
The poll for our 11th Music Contest is up! Help us choose the most awesome cinematic tracks by casting a vote!Dismiss Notice
-
Melee Mapping contest #3 - Poll is up! Vote for the best 4v4 melee maps!Dismiss Notice
-
The 30th edition of the Modeling Contest is finally up! The Portable Buildings need your attention, so come along and have a blast!Dismiss Notice
-
The Aftermath has been revealed for the 19th Terraining Contest! Be sure to check out the Results and see what came out of it.Dismiss Notice
Bloodstone (DotA) GUI v1.4
Submitted by
Wietlol
- Tags:
- Passive / Aura, GUI / Triggers
- Filesize:
- 42.81 KB
- Rating:
-
(1 vote)
- Downloads:
- 327
- Uploaded:
- Jan 21, 2015
- Updated:
- Mar 3, 2015
- Resources:
- 1
- Author(s):
- Wietlol
- State:
- Approved

This bundle is marked as approved. It works and satisfies the submission rules.
Description:
I made this spell on request of yrogerg.
This is based on the item Bloodstone from DotA.
Item Description:
- Kills the owner on activation.
- Gains a charge each time an enemy hero dies within 1675 range. Each charge grants 1 mana regeneration per second. If the bearer dies, 500 + 30 health per charge is restored to all allies within a 1675 radius, while the Bloodstone loses a third of its charges. A bloodmark is then placed where the bearer died, granting vision over a 1800 radius and allowing the bearer to gain nearby experience while dead.
How to install:
Copy or create a bloodstone item.
Copy or create all custom abilities from the test map.
Copy or create all global variables used in the test map.
Copy all triggers from the Bloodstone category into your map.
Copy all triggers from the Game Time System (GTS) into your map.
Copy the functions from the header file into your map.
Set the bloodstone variable to the item boodstone.
Triggers:
![[IMG]](proxy.php?image=http%3A%2F%2Fi.imgur.com%2FfpPDEMs.png&hash=a57a06cb535b70aa66d5abad46cecbcf)
![[IMG]](proxy.php?image=http%3A%2F%2Fi.imgur.com%2Fj1imFuw.jpg&hash=fcf0f97ea817c59fbd1b6ceefd736350)
![[IMG]](proxy.php?image=http%3A%2F%2Fi.imgur.com%2FD0VsUSd.png&hash=3183338beb262dde99c8695bb560bfef)
Changelog:
- 1.4 - 03/03/2015 - Fixed the drop item bug and minor performance improvements.
- 1.3 - 01/03/2015 - Added parameters and reset normal Wait timer.
- 1.2 - 04/02/2015 - Update on review of IcemanBo.
Merged the two "A unit dies" triggers to one.
Fixed a bug where units would not be removed from the mana regeneration group.
Made a variable for the ex-hardcoded dummy hero.
Replaced Wait gametime with a custom wait timer which is more accurate and uses a global timer.
A little code optimization.
- 1.1 - Now sets the dummy unit's experience to the experience of the owner of bloodstone.
This is required for level-dependant experience reduction.
- 1.0 - Uploaded this spell on the Hive.
Keywords:
DotA, Bloodstone.
I made this spell on request of yrogerg.
This is based on the item Bloodstone from DotA.
Item Description:
- Kills the owner on activation.
- Gains a charge each time an enemy hero dies within 1675 range. Each charge grants 1 mana regeneration per second. If the bearer dies, 500 + 30 health per charge is restored to all allies within a 1675 radius, while the Bloodstone loses a third of its charges. A bloodmark is then placed where the bearer died, granting vision over a 1800 radius and allowing the bearer to gain nearby experience while dead.
How to install:
Copy or create a bloodstone item.
Copy or create all custom abilities from the test map.
Copy or create all global variables used in the test map.
Copy all triggers from the Bloodstone category into your map.
Copy all triggers from the Game Time System (GTS) into your map.
Copy the functions from the header file into your map.
Set the bloodstone variable to the item boodstone.
Triggers:
triggers
-
Bloodstone Initialization
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
Set Bloodstone = Bloodstone
-
Set Bloodstone_Dummy_Hero = Dummy Hero
-
Set Bloodstone_Param_Heal_Base = 500.00
-
Set Bloodstone_Param_Heal_Increase = 30.00
-
Set Bloodstone_Param_Heal_Radius = 1675.00
-
Set Bloodstone_Param_Stack_Radius = 1675.00
-
Set Bloodstone_Param_Stack_Lose = 0.67
-
Set Bloodstone_Param_Visual_Radius = 1800.00
-
Set Bloodstone_Param_Mana_Gain = 1.00
-
-
-
Bloodstone Death Effect
-
Events
-
Unit - A unit Dies
-
-
Conditions
-
Actions
-
-------- ------------------------------------ --------
-
-------- Local Variables --------
-
-------- ------------------------------------ --------
-
Custom script: local unit udg_TempUnit
-
Custom script: local unit udg_TempUnit2
-
Custom script: local fogmodifier udg_TempVisibilityModifier
-
Custom script: local effect udg_TempSpecialEffect
-
Custom script: local integer udg_TempInteger2
-
-------- ------------------------------------ --------
-
-------- A hero dies in range of an enemy hero with bloodstone --------
-
-------- ------------------------------------ --------
-
Set TempUnit = (Triggering unit)
-
Set TempPlayer = (Owner of TempUnit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(TempUnit is A Hero) Equal to True
-
-
Then - Actions
-
Set TempLocation = (Position of TempUnit)
-
Set TempUnitGroup = (Units within Bloodstone_Param_Stack_Radius of TempLocation)
-
Custom script: call RemoveLocation(udg_TempLocation)
-
Unit Group - Pick every unit in TempUnitGroup and do (Actions)
-
Loop - Actions
-
Set TempUnit2 = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(TempUnit2 is alive) Equal to True
-
(TempUnit2 belongs to an enemy of TempPlayer) Equal to True
-
(TempUnit2 has an item of type Bloodstone) Equal to True
-
-
Then - Actions
-
For each (Integer TempInteger) from 1 to 6, do (Actions)
-
Loop - Actions
-
Set TempItem = (Item carried by TempUnit2 in slot TempInteger)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Item-type of TempItem) Equal to Bloodstone
-
-
Then - Actions
-
Item - Set charges remaining in TempItem to ((Charges remaining in TempItem) + 1)
-
-
Else - Actions
-
-
-
-
-
Else - Actions
-
-
-
-
Custom script: call DestroyGroup(udg_TempUnitGroup)
-
Custom script: set udg_TempUnit2 = null
-
-
Else - Actions
-
-
-------- ------------------------------------ --------
-
-------- Condition for bloodstone effect --------
-
-------- ------------------------------------ --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(TempUnit has an item of type Bloodstone) Equal to False
-
-
Then - Actions
-
Custom script: set udg_TempUnit = null
-
Skip remaining actions
-
-
Else - Actions
-
-
-------- ------------------------------------ --------
-
-------- Heal Allies --------
-
-------- ------------------------------------ --------
-
Set TempItem = (Item carried by TempUnit of type Bloodstone)
-
Set TempInteger = (Charges remaining in TempItem)
-
Set TempReal = (Bloodstone_Param_Heal_Base + (Bloodstone_Param_Heal_Increase x (Real(TempInteger))))
-
Set TempLocation = (Position of TempUnit)
-
Special Effect - Create a special effect at TempLocation using Abilities\Spells\NightElf\Tranquility\Tranquility.mdl
-
Set TempSpecialEffect = (Last created special effect)
-
Set TempUnitGroup = (Units within Bloodstone_Param_Heal_Radius of TempLocation)
-
Unit Group - Pick every unit in TempUnitGroup and do (Actions)
-
Loop - Actions
-
Set TempUnit2 = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(TempUnit2 is alive) Equal to True
-
(TempUnit2 is A structure) Equal to False
-
(TempUnit2 belongs to an ally of TempPlayer) Equal to True
-
-
Then - Actions
-
Unit - Set life of TempUnit2 to ((Life of TempUnit2) + TempReal)
-
-
Else - Actions
-
-
-
-
Custom script: call DestroyGroup(udg_TempUnitGroup)
-
-------- ------------------------------------ --------
-
-------- Remove Charges --------
-
-------- ------------------------------------ --------
-
For each (Integer TempInteger) from 1 to 6, do (Actions)
-
Loop - Actions
-
Set TempItem = (Item carried by TempUnit in slot TempInteger)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Item-type of TempItem) Equal to Bloodstone
-
-
Then - Actions
-
Set TempReal = ((Real((Charges remaining in TempItem))) x Bloodstone_Param_Stack_Lose)
-
Item - Set charges remaining in TempItem to (Integer(TempReal))
-
-
Else - Actions
-
-
-
-
-------- ------------------------------------ --------
-
-------- Add Vision --------
-
-------- ------------------------------------ --------
-
Set TempLocation = (Position of TempUnit)
-
Visibility - Create an initially Enabled visibility modifier for TempPlayer emitting Visibility from TempLocation to a radius of Bloodstone_Param_Visual_Radius
-
Set TempVisibilityModifier = (Last created visibility modifier)
-
-------- ------------------------------------ --------
-
-------- Keep Track Of Experience --------
-
-------- ------------------------------------ --------
-
Unit - Create 1 Bloodstone_Dummy_Hero for TempPlayer at TempLocation facing (Facing of TempUnit) degrees
-
Set TempUnit2 = (Last created unit)
-
Hero - Set TempUnit2 experience to (Hero experience of TempUnit), Hide level-up graphics
-
Unit - Make TempUnit2 Invulnerable
-
Custom script: call RemoveLocation(udg_TempLocation)
-
-------- ------------------------------------ --------
-
-------- Remove Heal Special Effect --------
-
-------- ------------------------------------ --------
-
Wait 3.67 game-time seconds
-
Special Effect - Destroy TempSpecialEffect
-
-------- ------------------------------------ --------
-
-------- Wait until hero revives --------
-
-------- ------------------------------------ --------
-
Custom script: loop
-
Custom script: exitwhen GetWidgetLife(udg_TempUnit) > 0
-
Custom script: call TriggerSleepAction(1)
-
Custom script: endloop
-
-------- ------------------------------------ --------
-
-------- Remove Vision --------
-
-------- ------------------------------------ --------
-
Visibility - Disable TempVisibilityModifier
-
Visibility - Destroy TempVisibilityModifier
-
-------- ------------------------------------ --------
-
-------- Add Experience --------
-
-------- ------------------------------------ --------
-
Set TempInteger = (Hero experience of TempUnit2)
-
Hero - Add TempInteger experience to TempUnit, Show level-up graphics
-
Unit - Remove TempUnit2 from the game
-
Custom script: set udg_TempUnit = null
-
Custom script: set udg_TempUnit2 = null
-
Custom script: set udg_TempVisibilityModifier = null
-
Custom script: set udg_TempSpecialEffect = null
-
-
-
Bloodstone Activation
-
Events
-
Unit - A unit Uses an item
-
-
Conditions
-
(Item-type of (Item being manipulated)) Equal to Bloodstone
-
-
Actions
-
Set TempItem = (Item being manipulated)
-
Item - Set charges remaining in TempItem to ((Charges remaining in TempItem) + 1)
-
Unit - Kill (Triggering unit)
-
-
-
Bloodstone Acquire Item
-
Events
-
Unit - A unit Acquires an item
-
-
Conditions
-
(Item-type of (Item being manipulated)) Equal to Bloodstone
-
-
Actions
-
Set TempUnit = (Triggering unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(TempUnit is in BloodstoneUnitGroup) Equal to False
-
-
Then - Actions
-
Unit Group - Add TempUnit to BloodstoneUnitGroup
-
Trigger - Turn on Bloodstone Mana Regeneration <gen>
-
-
Else - Actions
-
-
For each (Integer TempInteger) from 1 to 6, do (Actions)
-
Loop - Actions
-
Set TempItem = (Item carried by TempUnit in slot TempInteger)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TempItem Not equal to (Item being manipulated)
-
(Item-type of TempItem) Equal to Bloodstone
-
-
Then - Actions
-
Item - Set charges remaining in (Item being manipulated) to (Charges remaining in TempItem)
-
Skip remaining actions
-
-
Else - Actions
-
-
-
-
-
-
Bloodstone Lose Item
-
Events
-
Unit - A unit Loses an item
-
-
Conditions
-
(Item-type of (Item being manipulated)) Equal to Bloodstone
-
-
Actions
-
Set TempUnit = (Triggering unit)
-
Set TempItem = (Item being manipulated)
-
For each (Integer TempInteger) from 1 to 6, do (Actions)
-
Loop - Actions
-
Set TempItem2 = (Item carried by TempUnit in slot TempInteger)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
TempItem2 Not equal to TempItem
-
(Item-type of TempItem2) Equal to Bloodstone
-
-
Then - Actions
-
Skip remaining actions
-
-
Else - Actions
-
-
-
-
Unit Group - Remove TempUnit from BloodstoneUnitGroup
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Number of units in BloodstoneUnitGroup) Equal to 0
-
-
Then - Actions
-
Trigger - Turn off Bloodstone Mana Regeneration <gen>
-
-
Else - Actions
-
-
-
-
Bloodstone Mana Regeneration
-
Events
-
Time - Every 1.00 seconds of game time
-
-
Conditions
-
Actions
-
Unit Group - Pick every unit in BloodstoneUnitGroup and do (Actions)
-
Loop - Actions
-
Set TempUnit = (Picked unit)
-
Set TempInteger = (Charges remaining in (Item carried by TempUnit of type Bloodstone))
-
Set TempReal = ((Real(TempInteger)) x Bloodstone_Param_Mana_Gain)
-
Unit - Set mana of TempUnit to ((Mana of TempUnit) + TempReal)
-
-
-
-
Images
Tooltip:
![[IMG]](proxy.php?image=http%3A%2F%2Fi.imgur.com%2FfpPDEMs.png&hash=a57a06cb535b70aa66d5abad46cecbcf)
Healing:
![[IMG]](proxy.php?image=http%3A%2F%2Fi.imgur.com%2Fj1imFuw.jpg&hash=fcf0f97ea817c59fbd1b6ceefd736350)
While the unit is dead:
![[IMG]](proxy.php?image=http%3A%2F%2Fi.imgur.com%2FD0VsUSd.png&hash=3183338beb262dde99c8695bb560bfef)
Changelog:
- 1.4 - 03/03/2015 - Fixed the drop item bug and minor performance improvements.
- 1.3 - 01/03/2015 - Added parameters and reset normal Wait timer.
- 1.2 - 04/02/2015 - Update on review of IcemanBo.
Merged the two "A unit dies" triggers to one.
Fixed a bug where units would not be removed from the mana regeneration group.
Made a variable for the ex-hardcoded dummy hero.
Replaced Wait gametime with a custom wait timer which is more accurate and uses a global timer.
A little code optimization.
- 1.1 - Now sets the dummy unit's experience to the experience of the owner of bloodstone.
This is required for level-dependant experience reduction.
- 1.0 - Uploaded this spell on the Hive.
Keywords:
DotA, Bloodstone.
Contents
Page 1 of 2