• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!

Skilldiagram

Status
Not open for further replies.
Level 6
Joined
Aug 28, 2015
Messages
213
Since triggerd skills is a must have, I thought triggerd skilling could be also a good way to go, so i decidet to create a skilling system were you can modify your hero's skill as you want.
The idea is every skill has his own values you can skill in.
Think about a stormbold, the first player say "my hero should stun a long time", so he skilled in stunduration, an other says "DAMAGE!" so he will skill in damage, another one maybe want to skill in low manacost, so every player got stormbold but every hero has another use of it.
This system creates a circular diagram with x points(endpoints) you can skill in an y points(skillpoints) you can skill with.
so say your stormbold has 5 endpoints:
1.Damage
2.Cooldown duration
3.Stun duration
4.Range
5.Manacost
but you want that your hero only can choose 3 of then to go in, so you creates 3 skillpoints, your hero can skill in Damage+Stun+Range or Cooldown+Manacost+Range and the other will get a bonus of the intersection point from the line between the skillpoints and the line of the endpoint crossing the center.
The value will be translate in perzent and save in a hashtable with the index of the unit and the spell as keys.
when the hero casting the spell you can get all values and trigger your spell with these.

This system is not complete but it works.
You have to use a Unit indexer but I think if you use triggerd skills, you have always one.
The trigger:
  • SD Initialisation
    • Ereignisse
      • Zeit - Elapsed game time is 0.50 seconds
    • Bedingungen
    • Aktionen
      • Set SD_Switch_Ability = Endpoint switch
      • Set SD_Interactive_Ability = Rechtsklick
      • -------- The Colour of the endpoints --------
      • Set Colour[1] = Rosa
      • Set Colour[2] = Grün
      • Set Colour[3] = Orange
      • Set Colour[4] = Blau
      • Set Colour[5] = Braun
      • Set SD_LightningSFX_End = Mana-Leuchtfeuer
      • Set SD_LightningSFX_Skill = Kettenblitz - Sekundär
      • -------- The radianz of the circle of each diagram --------
      • Set Radius = 450.00
      • -------- add some degrees to the angle, cause a every angle have to be diagional if not, the endpoint will never get a intersection point. --------
      • Set Angle_add = 3.00
      • -------- The distanz per skill spend in the direction. --------
      • Set Move_Distanz = (Radius / 5.00)
      • Hashtabelle - Create a hashtable
      • Set SD_Hashtable = (Last created hashtable)
      • -------- Seting the Amount to the Skills --------
      • Set SD_Index_Ability[1] = Flammenschlag e
      • Set SD_Skillpoint_Amount[1] = 3
      • Set SD_Endpoint_Amount[1] = 5
      • Set SD_Xtra_Bonus_Percentage[1] = 0.50
      • Set SD_Index_Ability[2] = Windlauf e
      • Set SD_Skillpoint_Amount[2] = 3
      • Set SD_Endpoint_Amount[2] = 5
      • Set SD_Xtra_Bonus_Percentage[2] = 0.50
      • Set SD_Index_Ability[3] = Wildgeist e
      • Set SD_Skillpoint_Amount[3] = 4
      • Set SD_Endpoint_Amount[3] = 4
      • Set SD_Xtra_Bonus_Percentage[3] = 0.30
      • Set SD_Index_Ability_Max = 3
      • Set Player_Amount = 1
      • Spiel - Display to (All players) the text: Initialized
  • SD Create Diagram
    • Ereignisse
      • Spiel - SD_Effect_Create_Value becomes Ungleich 0.00
    • Bedingungen
    • Aktionen
      • Custom script: local integer udg_SD_Temp_Player_Int = R2I(udg_SD_Effect_Create_Value)
      • Set SD_Mid_Point[SD_Temp_Player_Int] = (Center of (Playable map area))
      • For each (Integer DL) from 1 to SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • Set Point_End[((DL x Player_Amount) + SD_Temp_Player_Int)] = (SD_Mid_Point[SD_Temp_Player_Int] offset by Radius towards (((360.00 / (Real(SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]]))) x (Real(DL))) + Angle_add) degrees)
          • Set Angle[((DL x Player_Amount) + SD_Temp_Player_Int)] = (((360.00 / (Real(SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]]))) x (Real(DL))) + (180.00 + Angle_add))
          • Set Value[((DL x Player_Amount) + SD_Temp_Player_Int)] = (Radius x 2.00)
          • Einheit - Create 1 Endpunkt Dummy for (Player(SD_Temp_Player_Int)) at Point_End[((DL x Player_Amount) + SD_Temp_Player_Int)] facing Vorgabe für Gebäude-Ausrichtung degrees
          • Set Temp_Unit = (Last created unit)
          • Custom script: call UnitAddAbilityBJ( 'Aloc', udg_Temp_Unit )
          • Custom script: call UnitRemoveAbilityBJ( 'Aloc', udg_Temp_Unit )
          • Einheit - Add SD_Switch_Ability to Temp_Unit
          • Set Endpoint_Unit[((DL x Player_Amount) + SD_Temp_Player_Int)] = Temp_Unit
          • Einheit - Change color of Endpoint_Unit[((DL x Player_Amount) + SD_Temp_Player_Int)] to Colour[DL]
          • Schwebender Text - Zeigen Floating_Value[((DL x Player_Amount) + SD_Temp_Player_Int)] for (All players)
          • Schwebender Text - Zeigen Float_Pro[((DL x Player_Amount) + SD_Temp_Player_Int)] for (All players)
      • -------- ----------------------------- --------
      • -------- The range, how close a skillpoint to an endpoint should be, to get extrabonus to the endpoint --------
      • -------- ----------------------------- --------
      • Set SD_Xtra_Bonus_Range[SD_Temp_Player_Int] = (((Distance between Point_End[((1 x Player_Amount) + SD_Temp_Player_Int)] and Point_End[((2 x Player_Amount) + SD_Temp_Player_Int)]) x 0.50) - Move_Distanz)
      • -------- ----------------------------- --------
      • -------- ----------------------------- --------
      • For each (Integer DL) from 1 to SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • Set SD_Skillpoint_X = (Load ((SD_Players_Unit_Int[SD_Temp_Player_Int] x (SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] + (SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] x 2))) + ((DL x 2) - 1)) of (Key (Name of SD_Index_Ability[SD_Players_Ability
          • Set SD_Skillpoint_Y = (Load ((SD_Players_Unit_Int[SD_Temp_Player_Int] x (SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] + (SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] x 2))) + (DL x 2)) of (Key (Name of SD_Index_Ability[SD_Players_Ability_Int[S
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • SD_Skillpoint_X Gleich 0.00
              • SD_Skillpoint_Y Gleich 0.00
            • 'THEN'-Aktionen
              • Set Temp_Point = SD_Mid_Point[SD_Temp_Player_Int]
            • 'ELSE'-Aktionen
              • Set Temp_Point = (Point(SD_Skillpoint_X, SD_Skillpoint_Y))
          • Einheit - Create 1 Skillpunkt for (Player(SD_Temp_Player_Int)) at Temp_Point facing Vorgabe für Gebäude-Ausrichtung degrees
          • Set Skillpoint_Unit[((DL x Player_Amount) + SD_Temp_Player_Int)] = (Last created unit)
          • Schwebender Text - Zeigen Floating_Text[(((DL + SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]]) x Player_Amount) + SD_Temp_Player_Int)] for (All players)
          • -------- Remove Location will crash the Unitcreation --------
      • Auslöser - Run SD Move Skillpoint <gen> (ignoring conditions)
  • SD Move Skillpoint
    • Ereignisse
      • Einheit - A unit Startet den Effekt einer Fähigkeit
    • Bedingungen
      • (Ability being cast) Gleich SD_Interactive_Ability
    • Aktionen
      • Set SD_Temp_Player_Int = (Player number of (Triggering player))
      • For each (Integer Move_DL) from 1 to SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • (Target unit of ability being cast) Gleich Endpoint_Unit[((Move_DL x Player_Amount) + SD_Temp_Player_Int)]
            • 'THEN'-Aktionen
              • Set Temp_Unit_Pos = (Position of (Triggering unit))
              • Set Temp_Real = (Distance between Temp_Unit_Pos and Point_End[((Move_DL x Player_Amount) + SD_Temp_Player_Int)])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • Temp_Real Größer als 1.00
                • 'THEN'-Aktionen
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Bedingungen
                      • Temp_Real Größer als Move_Distanz
                    • 'THEN'-Aktionen
                      • Set Temp_Point = (Temp_Unit_Pos offset by Move_Distanz towards (Angle from Temp_Unit_Pos to Point_End[((Move_DL x Player_Amount) + SD_Temp_Player_Int)]) degrees)
                    • 'ELSE'-Aktionen
                      • Set Temp_Point = (Point_End[((Move_DL x Player_Amount) + SD_Temp_Player_Int)] offset by 1.00 towards Angle[((Move_DL x Player_Amount) + SD_Temp_Player_Int)] degrees)
                  • Einheit - Move (Triggering unit) instantly to Temp_Point
                  • Custom script: call RemoveLocation(udg_Temp_Point)
                • 'ELSE'-Aktionen
              • Custom script: call RemoveLocation(udg_Temp_Unit_Pos)
            • 'ELSE'-Aktionen
      • For each (Integer Move_DL) from 1 to SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • Custom script: set udg_Pos_X =GetUnitX(udg_Skillpoint_Unit[( ( udg_Move_DL * udg_Player_Amount ) + udg_SD_Temp_Player_Int )])
          • Custom script: set udg_Pos_Y =GetUnitY(udg_Skillpoint_Unit[( ( udg_Move_DL * udg_Player_Amount ) + udg_SD_Temp_Player_Int )])
          • Set Point_Skillpoint[((Move_DL x Player_Amount) + SD_Temp_Player_Int)] = (Point(Pos_X, Pos_Y))
      • For each (Integer Move_DL) from 1 to SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • Blitz - Destroy SD_Skill_Lightnings[((Move_DL x Player_Amount) + SD_Temp_Player_Int)]
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • Move_DL Gleich SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]]
            • 'THEN'-Aktionen
              • Blitz - Create a SD_LightningSFX_Skill lightning effect from source Point_Skillpoint[((Move_DL x Player_Amount) + SD_Temp_Player_Int)] to target Point_Skillpoint[((1 x Player_Amount) + SD_Temp_Player_Int)]
            • 'ELSE'-Aktionen
              • Blitz - Create a SD_LightningSFX_Skill lightning effect from source Point_Skillpoint[((Move_DL x Player_Amount) + SD_Temp_Player_Int)] to target Point_Skillpoint[(((Move_DL x Player_Amount) + SD_Temp_Player_Int) + 1)]
          • Set SD_Skill_Lightnings[((Move_DL x Player_Amount) + SD_Temp_Player_Int)] = (Last created lightning effect)
      • For each (Integer DL) from 1 to SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • Set Temp_Int = DL
          • Set X1_End = (X of Point_End[((DL x Player_Amount) + SD_Temp_Player_Int)])
          • Set Y1_End = (Y of Point_End[((DL x Player_Amount) + SD_Temp_Player_Int)])
          • Set Temp_Point = (Point_End[((DL x Player_Amount) + SD_Temp_Player_Int)] offset by (Radius x 2.00) towards Angle[((DL x Player_Amount) + SD_Temp_Player_Int)] degrees)
          • Set X2_End = (X of Temp_Point)
          • Set Y2_End = (Y of Temp_Point)
          • Set SD_Have_Xtra_Bonus[SD_Temp_Player_Int] = False
          • Custom script: call RemoveLocation(udg_Temp_Point)
          • Set Value[((DL x Player_Amount) + SD_Temp_Player_Int)] = (Radius x 2.00)
          • For each (Integer DL) from 1 to SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
            • Schleifen - Aktionen
              • Set X1_Skill = (X of Point_Skillpoint[((DL x Player_Amount) + SD_Temp_Player_Int)])
              • Set Y1_Skill = (Y of Point_Skillpoint[((DL x Player_Amount) + SD_Temp_Player_Int)])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • DL Gleich SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]]
                • 'THEN'-Aktionen
                  • Set X2_Skill = (X of Point_Skillpoint[((1 x Player_Amount) + SD_Temp_Player_Int)])
                  • Set Y2_Skill = (Y of Point_Skillpoint[((1 x Player_Amount) + SD_Temp_Player_Int)])
                • 'ELSE'-Aktionen
                  • Set X2_Skill = (X of Point_Skillpoint[(((DL x Player_Amount) + SD_Temp_Player_Int) + 1)])
                  • Set Y2_Skill = (Y of Point_Skillpoint[(((DL x Player_Amount) + SD_Temp_Player_Int) + 1)])
              • Custom script: set udg_ZX = (udg_X1_End * udg_Y2_End - udg_Y1_End * udg_X2_End) * (udg_X1_Skill - udg_X2_Skill) - (udg_X1_End - udg_X2_End) * ( udg_X1_Skill * udg_Y2_Skill - udg_Y1_Skill * udg_X2_Skill)
              • Custom script: set udg_ZY = (udg_X1_End * udg_Y2_End - udg_Y1_End * udg_X2_End) * (udg_Y1_Skill - udg_Y2_Skill) - (udg_Y1_End - udg_Y2_End) * ( udg_X1_Skill * udg_Y2_Skill - udg_Y1_Skill * udg_X2_Skill)
              • Custom script: set udg_n = ( udg_X1_End - udg_X2_End ) * ( udg_Y1_Skill - udg_Y2_Skill ) - ( udg_Y1_End - udg_Y2_End ) * ( udg_X1_Skill - udg_X2_Skill)
              • Set X = (ZX / n)
              • Set Y = (ZY / n)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • (X2_End - X1_End) Ungleich 0.00
                  • (X2_Skill - X1_Skill) Ungleich 0.00
                  • (Y2_End - Y1_End) Ungleich 0.00
                  • (Y2_Skill - Y1_Skill) Ungleich 0.00
                • 'THEN'-Aktionen
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Bedingungen
                      • ((X - X1_End) / (X2_End - X1_End)) Kleiner als 1.00
                      • ((X - X1_End) / (X2_End - X1_End)) Größer als 0.00
                      • ((X - X1_Skill) / (X2_Skill - X1_Skill)) Kleiner als 1.00
                      • ((Y - Y1_End) / (Y2_End - Y1_End)) Größer als 0.00
                      • ((Y - Y1_End) / (Y2_End - Y1_End)) Kleiner als 1.00
                      • ((Y - Y1_Skill) / (Y2_Skill - Y1_Skill)) Größer als 0.00
                      • ((Y - Y1_Skill) / (Y2_Skill - Y1_Skill)) Kleiner als 1.00
                    • 'THEN'-Aktionen
                      • Set Temp_Point = (Point(X, Y))
                      • Set Temp_Real = (Distance between Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] and Temp_Point)
                      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        • 'IF'-Bedingungen
                          • Temp_Real Kleiner als Value[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)]
                        • 'THEN'-Aktionen
                          • Set Value[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] = Temp_Real
                          • Blitz - Destroy SD_Endpoint_Lightnings[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)]
                          • Blitz - Create a SD_LightningSFX_End lightning effect from source Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] to target Temp_Point
                          • Set SD_Endpoint_Lightnings[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] = (Last created lightning effect)
                        • 'ELSE'-Aktionen
                      • Custom script: call RemoveLocation(udg_Temp_Point)
                    • 'ELSE'-Aktionen
                • 'ELSE'-Aktionen
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • 'IF'-Bedingungen
                  • (Distance between Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] and Point_Skillpoint[((DL x Player_Amount) + SD_Temp_Player_Int)]) Kleiner gleich SD_Xtra_Bonus_Range[SD_Temp_Player_Int]
                • 'THEN'-Aktionen
                  • Set SD_Have_Xtra_Bonus[SD_Temp_Player_Int] = True
                • 'ELSE'-Aktionen
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • Value[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] Größer gleich (Radius x 2.00)
            • 'THEN'-Aktionen
              • Set Temp_Point = (Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] offset by (Radius x 2.00) towards Angle[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] degrees)
              • Blitz - Destroy SD_Endpoint_Lightnings[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)]
              • Blitz - Create a SD_LightningSFX_End lightning effect from source Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] to target Temp_Point
              • Set SD_Endpoint_Lightnings[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] = (Last created lightning effect)
              • Custom script: call RemoveLocation(udg_Temp_Point)
            • 'ELSE'-Aktionen
          • Schwebender Text - Destroy Float_Pro[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)]
          • Set Prozent[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] = (100.00 - ((Value[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] x 100.00) / (Radius x 2.00)))
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • SD_Have_Xtra_Bonus[SD_Temp_Player_Int] Gleich True
            • 'THEN'-Aktionen
              • Set Prozent[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] = (Prozent[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] x (1.00 + SD_Xtra_Bonus_Percentage[SD_Players_Ability_Int[SD_Temp_Player_Int]]))
              • Schwebender Text - Create floating text that reads (String(Prozent[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)])) at Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] with Z offset 100.00, using font size 10.00, color (50.00%, 100.00%, 50.00%), and 0.00% transparency
            • 'ELSE'-Aktionen
              • Schwebender Text - Create floating text that reads (String(Prozent[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)])) at Point_End[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] with Z offset 100.00, using font size 10.00, color (100.00%, 100.00%, 50.00%), and 0.00% transparency
          • Set Float_Pro[((Temp_Int x Player_Amount) + SD_Temp_Player_Int)] = (Last created floating text)
          • Set DL = Temp_Int
      • For each (Integer DL) from 1 to SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]], do (Actions)
        • Schleifen - Aktionen
          • Hashtabelle - Save Prozent[((DL x Player_Amount) + SD_Temp_Player_Int)] as ((SD_Players_Unit_Int[SD_Temp_Player_Int] x (SD_Endpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] + (SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] x 2))) + (DL + (SD_Skillpoint_Amount[SD_Players_Ability_Int[SD_Temp_Player_Int]] x of (Key (Name of SD_Index_Ability[SD_Players_Ability_Int[SD_Temp_Player_Int]])) in SD_Hashtable
  • Test Open
    • Ereignisse
      • Einheit - A unit Startet den Effekt einer Fähigkeit
    • Bedingungen
      • Or - Any (Conditions) are true
        • Bedingungen
          • (Ability being cast) Gleich Flammenschlag Upgread
          • (Ability being cast) Gleich Wildgeist Upgread
          • (Ability being cast) Gleich Windlauf Upgread
    • Aktionen
      • For each (Integer Test_DL2) from 1 to SD_Index_Unit_Max, do (Actions)
        • Schleifen - Aktionen
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • 'IF'-Bedingungen
              • (Triggering unit) Gleich SD_Index_Unit[Test_DL2]
            • 'THEN'-Aktionen
              • For each (Integer Test_DL) from 1 to SD_Index_Ability_Max, do (Actions)
                • Schleifen - Aktionen
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • 'IF'-Bedingungen
                      • (Ability being cast) Gleich Test_Upgreade_Spell[Test_DL]
                    • 'THEN'-Aktionen
                      • Set Temp_Int = (Player number of (Triggering player))
                      • Set SD_Players_Ability_Int[Temp_Int] = Test_DL
                      • Set SD_Players_Unit_Int[Temp_Int] = Test_DL2
                      • Set SD_Effect_Create_Value = (Real((Player number of (Triggering player))))
                      • Set SD_Effect_Create_Value = 0.00
                    • 'ELSE'-Aktionen
            • 'ELSE'-Aktionen
  • Test Close
    • Ereignisse
      • Einheit - A unit Startet den Effekt einer Fähigkeit
    • Bedingungen
      • (Ability being cast) Gleich Close Upgread
    • Aktionen
      • Set Temp_Int = (Player number of (Triggering player))
      • Set SD_Effect_Destroy_Value = (Real(Temp_Int))
      • Set SD_Effect_Destroy_Value = 0.00
At the moment the skills in this map are just placeholder, so they don't use the values, but you can see how you get the values by casting the skills.
Constructive criticism and ideas are welcome!
 

Attachments

  • Diagrammskill0.02.w3x
    29.8 KB · Views: 64
Last edited:
Status
Not open for further replies.
Top