Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
Hello Guys
I came today to present you guys my new system, it is a simple selection heroes system done in GUI, very easy to copy and use, and is also very practical. so without further ado, lets start.
As I already said, this is a system made entirely in GUI, it is very easy to import, and can be configured and used by anyone, even users with little or even no experience with triggers.
map contains a folder called "How To Install" it is all you need to know to configure the system.
Setup
Events
Map initialization
Conditions
Actions
-------- Base Configurations --------
Set SHS_Conf_Region_Start = Inicio <gen>
Set SHS_Sys_Point_Interface = ((Center of Showcase <gen>) offset by 90.00 towards 180.00 degrees)
Set SHS_Conf_Total_Heroes = 3
Set SHS_Conf_Angle_Init = 270.00
Set SHS_Conf_SpecialEffect = Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
-------- Color Configurations --------
Set SHS_Sys_IndexValue = 1
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cffff0000
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff0000ff
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff01c59d
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff370037
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cffffff00
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cffff8000
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff00ff00
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cffff80ff
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff808080
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff66a3d5
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff004020
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_PlayerColor[SHS_Sys_IndexValue] = |cff492121
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Set SHS_Sys_IndexValue = 1
-------- Hero Configurations --------
-------- Paladin --------
Set SHS_Hero[SHS_Sys_IndexValue] = Paladin
Set SHS_Description_Name[SHS_Sys_IndexValue] = Paladin
Set SHS_Description_Type[SHS_Sys_IndexValue] = Tank,Support
Set SHS_Description_STR[SHS_Sys_IndexValue] = 22 + 2.7 Per Level.
Set SHS_Description_AGI[SHS_Sys_IndexValue] = 13 + 1.5 Per Level.
Set SHS_Description_INT[SHS_Sys_IndexValue] = 17 + 1.8 Per Level.
Set SHS_Description_AttributePrima[SHS_Sys_IndexValue] = Strength.
Set SHS_Description_Abilities[SHS_Sys_IndexValue] = Holy Light, Divine Shield, Devotion Aura.
Set SHS_Description_Ultimate[SHS_Sys_IndexValue] = Ressurection.
Set SHS_Description_Damage[SHS_Sys_IndexValue] = 24 - 34
Set SHS_Description_Defense[SHS_Sys_IndexValue] = 2
Set SHS_Description_AttackRange[SHS_Sys_IndexValue] = 100
Set SHS_Description_AttackType[SHS_Sys_IndexValue] = Melee
Set SHS_Description_MovementSpeed[SHS_Sys_IndexValue] = 270
Set SHS_Description_Description[SHS_Sys_IndexValue] = A powerful warrior with powers based on light element.
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
-------- Warden --------
Set SHS_Hero[SHS_Sys_IndexValue] = Warden
Set SHS_Description_Name[SHS_Sys_IndexValue] = Warden
Set SHS_Description_Type[SHS_Sys_IndexValue] = DPS
Set SHS_Description_STR[SHS_Sys_IndexValue] = 18 + 2.4 Per Level.
Set SHS_Description_AGI[SHS_Sys_IndexValue] = 20 + 1.6 Per Level.
Set SHS_Description_INT[SHS_Sys_IndexValue] = 15 + 2 Per Level.
Set SHS_Description_AttributePrima[SHS_Sys_IndexValue] = Agility.
Set SHS_Description_Abilities[SHS_Sys_IndexValue] = Blink, Fan of Knives, Shadow Strike.
Set SHS_Description_Ultimate[SHS_Sys_IndexValue] = Vegeance.
Set SHS_Description_Damage[SHS_Sys_IndexValue] = 22 - 42
Set SHS_Description_Defense[SHS_Sys_IndexValue] = 0
Set SHS_Description_AttackRange[SHS_Sys_IndexValue] = 100
Set SHS_Description_AttackType[SHS_Sys_IndexValue] = Melee
Set SHS_Description_MovementSpeed[SHS_Sys_IndexValue] = 320
Set SHS_Description_Description[SHS_Sys_IndexValue] = An elven assassin, high dexterity and agility.
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
-------- Blood Mage --------
Set SHS_Hero[SHS_Sys_IndexValue] = Blood Mage
Set SHS_Description_Name[SHS_Sys_IndexValue] = Blood Mage
Set SHS_Description_Type[SHS_Sys_IndexValue] = DPS,Support
Set SHS_Description_STR[SHS_Sys_IndexValue] = 18 + 2 Per Level.
Set SHS_Description_AGI[SHS_Sys_IndexValue] = 14 + 1 Per Level.
Set SHS_Description_INT[SHS_Sys_IndexValue] = 19 + 3 Per Level.
Set SHS_Description_AttributePrima[SHS_Sys_IndexValue] = Intelligence.
Set SHS_Description_Abilities[SHS_Sys_IndexValue] = Flame Strike, Banish, Siphon Mana.
Set SHS_Description_Ultimate[SHS_Sys_IndexValue] = Phoenix.
Set SHS_Description_Damage[SHS_Sys_IndexValue] = 21 - 27
Set SHS_Description_Defense[SHS_Sys_IndexValue] = 0
Set SHS_Description_AttackRange[SHS_Sys_IndexValue] = 600
Set SHS_Description_AttackType[SHS_Sys_IndexValue] = Distance
Set SHS_Description_MovementSpeed[SHS_Sys_IndexValue] = 300
Set SHS_Description_Description[SHS_Sys_IndexValue] = a mage elf with incredible powers of destruction.
Set SHS_Sys_IndexValue = (SHS_Sys_IndexValue + 1)
Startup
Events
Time - Elapsed game time is 0.10 seconds
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
((Player((Integer A))) slot status) Equal to Is playing
((Player((Integer A))) controller) Equal to User
Then - Actions
Set SHS_Sys_PlayerIntegerA = (Player((Integer A)))
Set SHS_Sys_NumberPlayerIntegerA = (Player number of SHS_Sys_PlayerIntegerA)
Set SHS_Sys_Angle_Rotate[SHS_Sys_NumberPlayerIntegerA] = SHS_Conf_Angle_Init
Set SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA] = 1
Unit - Create 1 |cff000000.|r [Dummy] for SHS_Sys_PlayerIntegerA at SHS_Sys_Point_Interface facing Default building facing degrees
Set SHS_Sys_SelectDummy[SHS_Sys_NumberPlayerIntegerA] = (Last created unit)
Unit - Create 1 SHS_Hero[1] for Neutral Passive at SHS_Sys_Point_Interface facing SHS_Sys_Angle_Rotate[SHS_Sys_NumberPlayerIntegerA] degrees
Set SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA] = (Last created unit)
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
Custom script: if GetLocalPlayer() == udg_SHS_Sys_PlayerIntegerA then
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Custom script: endif
Multiboard - Create a multiboard with 2 columns and 22 rows, titled Informations
Set SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] = (Last created multiboard)
For each (Integer B) from 1 to 22, do (Actions)
Loop - Actions
Multiboard - Set the display style for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row (Integer B) to Show text and Hide icons
Multiboard - Set the display style for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 2, row (Integer B) to Show text and Hide icons
Multiboard - Set the width for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row (Integer B) to 30.00% of the total screen width
Multiboard - Set the width for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 2, row (Integer B) to 0.00% of the total screen width
Multiboard - Set the display style for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 5 to Show text and Show icons
Multiboard - Set the display style for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 6 to Show text and Show icons
Multiboard - Set the display style for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 7 to Show text and Show icons
Multiboard - Set the icon for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 5 to UI\Widgets\Console\Human\infocard-heroattributes-str.blp
Multiboard - Set the icon for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 6 to UI\Widgets\Console\Human\infocard-heroattributes-agi.blp
Multiboard - Set the icon for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 7 to UI\Widgets\Console\Human\infocard-heroattributes-int.blp
Set SHS_Sys_SelectTime[SHS_Sys_NumberPlayerIntegerA] = True
Set SHS_Sys_TotalPlayerUse = (SHS_Sys_TotalPlayerUse + 1)
Trigger - Run Multiboard Update <gen> (checking conditions)
Else - Actions
Trigger - Turn on Camera Fix <gen>
Camera Fix
Events
Time - Every 0.01 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
SHS_Sys_SelectTime[(Integer A)] Equal to True
Then - Actions
Set SHS_Sys_PlayerIntegerA = (Player((Integer A)))
Set SHS_Sys_NumberPlayerIntegerA = (Player number of SHS_Sys_PlayerIntegerA)
Camera - Apply Selection Hero Cam <gen> for SHS_Sys_PlayerIntegerA over 0.00 seconds
Camera - Lock camera target for SHS_Sys_PlayerIntegerA to SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA], offset by (0.00, 0.00) using Default rotation
Selection - Select SHS_Sys_SelectDummy[SHS_Sys_NumberPlayerIntegerA] for SHS_Sys_PlayerIntegerA
Else - Actions
Multiboard Update
Events
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
SHS_Sys_SelectTime[(Integer A)] Equal to True
Then - Actions
Set SHS_Sys_PlayerIntegerA = (Player((Integer A)))
Set SHS_Sys_NumberPlayerIntegerA = (Player number of SHS_Sys_PlayerIntegerA)
Multiboard - Show SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA]
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 1 to (|cff80ff00Name:|r + SHS_Description_Name[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 3 to (|cff80ff00Type:|r + SHS_Description_Type[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 5 to (|cffff2f2fStrengtht:|r + SHS_Description_STR[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 6 to (|cff00ff00Agility:|r + SHS_Description_AGI[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 7 to (|cff1a1affIntelligence:|r + SHS_Description_INT[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 8 to (|cffffff04Primary Attribute:|r + SHS_Description_AttributePrima[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 10 to (|cff80ff00Abilities:|r + SHS_Description_Abilities[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 11 to (|cff80ff00Ultimate:|r + SHS_Description_Ultimate[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 13 to (|cff80ff00Attack Damage:|r + SHS_Description_Damage[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 14 to (|cff80ff00Defense:|r + SHS_Description_Defense[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 16 to (|cff80ff00Attack Range:|r + SHS_Description_AttackRange[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 17 to (|cff80ff00Attack Type:|r + SHS_Description_AttackType[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 19 to (|cff80ff00Movement Speed:|r + SHS_Description_MovementSpeed[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]])
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 21 to |cffff0000 ...
Multiboard - Set the text for SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA] item in column 1, row 22 to SHS_Description_Description[SHS_HeroActualValue[SHS_Sys_NumberPlayerIntegerA]]
Else - Actions
Next Button
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Next
Actions
Set SHS_Sys_PlayerOwnerUnit = (Owner of (Triggering unit))
Set SHS_Sys_NumberTriggeringUnit = (Player number of SHS_Sys_PlayerOwnerUnit)
Set SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] = (SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] + 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] Greater than SHS_Conf_Total_Heroes
Then - Actions
Set SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] = 1
Unit - Remove SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] from the game
Unit - Create 1 SHS_Hero[SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit]] for Neutral Passive at SHS_Sys_Point_Interface facing SHS_Conf_Angle_Init degrees
Set SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] = (Last created unit)
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
Custom script: if GetLocalPlayer() == udg_SHS_Sys_PlayerOwnerUnit then
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Custom script: endif
Trigger - Run Multiboard Update <gen> (checking conditions)
Set SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] = SHS_Conf_Angle_Init
Else - Actions
Unit - Remove SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] from the game
Unit - Create 1 SHS_Hero[SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit]] for Neutral Passive at SHS_Sys_Point_Interface facing SHS_Conf_Angle_Init degrees
Set SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] = (Last created unit)
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
Custom script: if GetLocalPlayer() == udg_SHS_Sys_PlayerOwnerUnit then
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Custom script: endif
Trigger - Run Multiboard Update <gen> (checking conditions)
Set SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] = SHS_Conf_Angle_Init
Previous Button
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Previous
Actions
Set SHS_Sys_PlayerOwnerUnit = (Owner of (Triggering unit))
Set SHS_Sys_NumberTriggeringUnit = (Player number of SHS_Sys_PlayerOwnerUnit)
Set SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] = (SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] - 1)
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] Less than 1
Then - Actions
Set SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit] = SHS_Conf_Total_Heroes
Unit - Remove SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] from the game
Unit - Create 1 SHS_Hero[SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit]] for Neutral Passive at SHS_Sys_Point_Interface facing SHS_Conf_Angle_Init degrees
Set SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] = (Last created unit)
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
Custom script: if GetLocalPlayer() == udg_SHS_Sys_PlayerOwnerUnit then
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Custom script: endif
Trigger - Run Multiboard Update <gen> (checking conditions)
Set SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] = SHS_Conf_Angle_Init
Else - Actions
Unit - Remove SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] from the game
Unit - Create 1 SHS_Hero[SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit]] for Neutral Passive at SHS_Sys_Point_Interface facing SHS_Conf_Angle_Init degrees
Set SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] = (Last created unit)
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 100.00% transparency
Custom script: if GetLocalPlayer() == udg_SHS_Sys_PlayerOwnerUnit then
Animation - Change SHS_HeroActualGraphics[SHS_Sys_NumberPlayerIntegerA]'s vertex coloring to (100.00%, 100.00%, 100.00%) with 0.00% transparency
Custom script: endif
Trigger - Run Multiboard Update <gen> (checking conditions)
Set SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] = SHS_Conf_Angle_Init
Rotate Button
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Rotate
Actions
Set SHS_Sys_PlayerOwnerUnit = (Owner of (Triggering unit))
Set SHS_Sys_NumberTriggeringUnit = (Player number of SHS_Sys_PlayerOwnerUnit)
Set SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] = (SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] + 20.00)
Unit - Move SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] instantly to SHS_Sys_Point_Interface, facing SHS_Sys_Angle_Rotate[SHS_Sys_NumberTriggeringUnit] degrees
Select Button
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Select
Actions
Set SHS_Sys_PlayerOwnerUnit = (Owner of (Triggering unit))
Set SHS_Sys_NumberTriggeringUnit = (Player number of SHS_Sys_PlayerOwnerUnit)
Set SHS_Sys_SelectTime[SHS_Sys_NumberTriggeringUnit] = False
Set SHS_Sys_TotalPlayerUse = (SHS_Sys_TotalPlayerUse - 1)
Camera - Reset camera for SHS_Sys_PlayerOwnerUnit to standard game-view over 0.00 seconds
Unit - Remove SHS_HeroActualGraphics[SHS_Sys_NumberTriggeringUnit] from the game
Unit - Remove SHS_Sys_SelectDummy[SHS_Sys_NumberTriggeringUnit] from the game
Unit - Create 1 SHS_Hero[SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit]] for SHS_Sys_PlayerOwnerUnit at (Center of SHS_Conf_Region_Start) facing Default building facing degrees
Selection - Select (Last created unit) for SHS_Sys_PlayerOwnerUnit
Camera - Pan camera for SHS_Sys_PlayerOwnerUnit to (Center of SHS_Conf_Region_Start) over 0.00 seconds
Special Effect - Create a special effect attached to the origin of (Last created unit) using SHS_Conf_SpecialEffect
Special Effect - Destroy (Last created special effect)
Game - Display to (All players) the text: (SHS_Sys_PlayerColor[SHS_Sys_NumberTriggeringUnit] + ((Name of SHS_Sys_PlayerOwnerUnit) + (|r + (Chose + (|cff80ffff + (SHS_Description_Name[SHS_HeroActualValue[SHS_Sys_NumberTriggeringUnit]] + .|r))))))
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Version 1.1
-Camera, I traded pan cam by lock cam
-fix the events of "Buttons Triggers"
-fixed the file map
-add little cooldown for "next" and "previous" buttons
-fixed the function of "Rotate" button
Version 1.2
-Fixed Previous button
-added the option of set initial angle
-added the option of set Special Effect used when choose the hero
-added one variable for arrays of Setup
-removed some unnecessary actions
-added variables for (Player(Integer A)), (Player Number of (Player (Integer A))), (Player Number of (Owner of Trigerring unit)), (Owner of triggering unit)
-added the function to stop the "Cam fixed and Mult Update" trigger when unnecessary
-update the intalations info
-removed the "Heroes Dummies" units and variable.
-The system now, create real heroes adding locust ability.
-replaced the spells base of Next and Previous Button
Version 1.3
-Multiboard updates only when necessary
-only one variable to point
-all players can share the same region
-removes the interface point when it becomes unnecessary
-repaired the icons of buttons "Select", "Random"
-updated information about installation and configuration
Felipe Gormadoc (Creation and Development)
Maker (For some suggestions and help)
ap0calypse and shadowvzs ( By help with GetLocalPlayer function)
Selection Hero System (v1.3) | Reviewed by Maker | 15th Mar 2013
APPROVED
There are no bugs (that I could find)
LeakSet SHS_Sys_Point_Interface = ((Center of Showcase <gen>) offset by 90.00 towards 180.00 degrees)...
Selection Hero System (v1.1) | Reviewed by Maker | 3rd Mar 2013
NEEDS FIX
Leaks
Set Point_Interface[(Integer A)] = ((Center of Regions_Interface[(Integer A)]) offset by...)
Unit - Create 1 |cff000000.|r [Dummy] for (Player((Integer A))) at (Center of...
You have location leaks when you create the selected real hero
Cam Fixed and Mult Update trigger should not set the multiboard texts
every 0.01 seconds, neither should it min/max the board that often
A useful trick when setting up the heroes is to use a variable for the index.
Set integer = 0
Set HeroDummy[variable] = x, set Hero[variable] = y and so on.
Use a variable for Player number of (Player(Integer A))) in Startup trigger
You don't need the dummy unit types, create units based on the hero types
with triggers. Give the units Locust ability to make them unselectable
Abilities with no cooldown would be better for Next and Previous buttons
- Chaosy
if you discover a leak or bug let me know please.
i updated the system, i fix:
-Camera, I traded pan cam by lock cam
-fix the events of "Buttons Triggers"
-fixed the file map
-add little cooldown for "next" and "previous" buttons
-fixed the function of "Rotate" button
- Cache the following values to increase speed:
(Player number of (Owner of (Triggering unit)))
(Owner of (Triggering unit))
(Player(Integer A))
[(Player number of (Player((Integer A))))
-Your system uses Integer A. We in this site guarantee to not support this because there is a possibility that using this for every trigger can crash the map(based on my experience). Just create a new integer variable to replace integer A. Also,Integer A is slow
-There are so many constant values inside the system.Please create a new trigger to have the main system configurable,like these values:
Abilities\Spells\Human\ReviveHuman\ReviveHuman.mdl
Set Angle_Rotate[(Integer A)] = 270.00
Etc.
-Your system lacks in prefixes.You should add it so that it wont collide in the maps of the users if they accidentally have the same name of variables.
- Colors inside the description of multiboard(|cff80ff00Name,(|cff80ff00Type:|r ,etc) should be configurable
After spending about an hour looking for a hero selection system for my map, I chose yours, here is why:
-Easy to configure, only edit the hero types and texts
-Absolute no need to know JASS or advanced triggering to implement
-Can be used by multiple people
-Doesnt use large ingame images(will not need a large portion of the map to place)
-Simple and describes hero well
Suggestion: add a -repick command to take the player back to the multiboard and allow to chance the hero.
Realy liked this system, way more than others out there, is much more simple, easy to configure and put to work, the only problem is whenever you put it on Lan, or multiplayer becomes very very laged.. i dont know the reason tought..
Cause it has some flaws in its code. i used it in one of my, not on hive uploaded, projects and had to overwork it first :|.
How to fix:
A Easy fix would be to lower frequenzy in the Trigger Camera Fix from 0.01 -> 0.03, this saves alot of performance.
Trigger Startup: Move The Action: Trigger - Run Multiboard Update <gen> (checking conditions) out of the Loop, Cause it just just doesn't make much sense to update all tables every time a Playing player was found.
Well it doesn't felt MPI for me at my Lan Plays, you need to make "show Multiboard" only for local player -> each player sees only its own table.
I did that this way:
Custom script: if GetLocalPlayer() == udg_SHS_Sys_PlayerIntegerA then
Multiboard - Show SHS_Sys_Multiboard[SHS_Sys_NumberPlayerIntegerA]
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.