• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Archmage - Aethas - Cursed seal

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
community hiveworkshop 2 Today I bring a new spell a bit simple for users experienced.
-All The data within the spell.
  • Cursed seal
    • Acontecimientos
      • Unidad - A unit Inicia el efecto de una habilidad
    • Condiciones
      • (Ability being cast) Igual a Cursed seal
    • Acciones
      • -------- ------------------------------------------------ --------
      • -------- Unit variables --------
      • -------- ------------------------------------------------ --------
      • Set Cs_Caster = (Triggering unit)
      • Set Cs_Target = (Target unit of ability being cast)
      • -------- ------------------------------------------------ --------
      • -------- variables constant Spell --------
      • -------- ------------------------------------------------ --------
      • Set Cs_AbilityLevel = (Level of Cursed seal for Cs_Caster)
      • Set Cs_Dummy_Ability1 = Cursed seal (dummy)1
      • Set Cs_Dummy_Ability2 = Cursed seal (dummy)2
      • Set Cs_Point1 = (Position of Cs_Caster)
      • Set Cs_Point2 = (Target point of ability being cast)
      • -------- ------------------------------------------------ --------
      • -------- Basic configuration of the spell --------
      • -------- ------------------------------------------------ --------
      • Set Cs_Random_Damage_Minimum = 50
      • Set Cs_Random_Damage_Base = 150
      • Set Cs_Random_Damage_Level = 50
      • Set Cs_Random_Damage_Total = (Random integer number between Cs_Random_Damage_Minimum and (Cs_Random_Damage_Base + (Cs_Random_Damage_Level x Cs_AbilityLevel)))
      • Set Cs_AoE_Base = 200.00
      • Set Cs_AoE_Level = 0.00
      • Set Cs_AoE_Total = (Cs_AoE_Base + (Cs_AoE_Level x (Real(Cs_AbilityLevel))))
      • -------- ------------------------------------------------ --------
      • -------- a nice effect calculation --------
      • -------- ------------------------------------------------ --------
      • Set Cs_Loop_Number = 25
      • Set Cs_Calculation = ((Distance between Cs_Point1 and Cs_Point2) / (Real(Cs_Loop_Number)))
      • Unidad - Create 1 (dummy) for (Owner of Cs_Caster) at (Position of Cs_Target) facing Vista edificio predeterminada degrees
      • Unidad - Add a 1.00 second Genérico expiration timer to (Last created unit)
      • Unidad - Add Cs_Dummy_Ability1 to (Last created unit)
      • Unidad - Set level of Cursed seal (dummy)1 for (Last created unit) to Cs_AbilityLevel
      • Unidad - Order (Last created unit) to Humano Rey de la Montaña: Rayo de tormenta Cs_Target
      • For each (Integer A) from 1 to Cs_Loop_Number, do (Actions)
        • Bucle: Acciones
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- location setting effect --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Set Cs_Point_Distance = (Cs_Point1 offset by (Cs_Calculation x (Real((Integer A)))) towards (Facing of Cs_Caster) degrees)
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- Create the effect --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Unidad - Create 1 Seal (dummy) for (Owner of Cs_Caster) at Cs_Point_Distance facing Vista edificio predeterminada degrees
          • Unidad - Add a 0.10 second Genérico expiration timer to (Last created unit)
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- Eliminate leak --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Custom script: call RemoveLocation (udg_Cs_Point_Distance)
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Create special effect1 --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Unidad - Create 1 Seal (dummy)2 for (Owner of Cs_Caster) at Cs_Point2 facing Vista edificio predeterminada degrees
      • Unidad - Add a 3.00 second Genérico expiration timer to (Last created unit)
      • Animación - Change (Last created unit)'s size to (((Real(Cs_Random_Damage_Total)) / 2.00)%, 100.00%, 100.00%) of its original size
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Create special effect2 --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Unidad - Create 1 Seal (dummy)3 for (Owner of Cs_Caster) at Cs_Point2 facing Vista edificio predeterminada degrees
      • Unidad - Add a 1.00 second Genérico expiration timer to (Last created unit)
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Group Conditions --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Set Cs_Group = (Units within Cs_AoE_Total of Cs_Point2 matching ((((Matching unit) is Una estructura) Igual a False) and ((((Matching unit) is alive) Igual a True) and ((((Matching unit) belongs to an enemy of (Owner of Cs_Caster)) Igual a True) and ((((Matching unit) is In
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Group living conditions --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • Si: Condiciones
          • (Vida of Cs_Target) Menor que o igual a (Real(Cs_Random_Damage_Total))
        • Entonces: Acciones
          • Unidad - Move (Target unit of ability being cast) instantly to Cs_Point2
          • Grupo de unidad - Pick every unit in Cs_Group and do (Actions)
            • Bucle: Acciones
              • -------- ------------------------------------------------------------------------------------------------- --------
              • -------- a good effect --------
              • -------- ------------------------------------------------------------------------------------------------- --------
              • Efecto especial - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Undead\OrbOfDeath\AnnihilationMissile.mdl
              • Efecto especial - Destroy (Last created special effect)
              • -------- ------------------------------------------------------------------------------------------------- --------
              • -------- Floating text that appears if the condition is true --------
              • -------- ------------------------------------------------------------------------------------------------- --------
              • Texto flotante - Create floating text that reads (- + (String((Integer((Vida máx. of Cs_Target)))))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (20.00%, 0.00%, 20.00%), and 0.00% transparency
              • Texto flotante - Change (Last created floating text): Desactivar permanence
              • Texto flotante - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
              • Texto flotante - Change the fading age of (Last created floating text) to 3.00 seconds
              • Texto flotante - Change the lifespan of (Last created floating text) to 5.00 seconds
              • -------- ------------------------------------------------------------------------------------------------- --------
              • -------- a condition that appears if the above condition is true --------
              • -------- ------------------------------------------------------------------------------------------------- --------
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Si: Condiciones
                  • (Vida of (Picked unit)) Menor que o igual a (Vida máx. of Cs_Target)
                • Entonces: Acciones
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • -------- Remove unit if the condition is true group --------
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • Unidad - Add a 0.10 second Genérico expiration timer to (Picked unit)
                  • Unidad - Remove (Picked unit) from the game
                • Otros: Acciones
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • -------- Put spell and damage if the condition is false group --------
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • Unidad - Create 1 (dummy) for (Owner of Cs_Caster) at (Position of (Picked unit)) facing Vista edificio predeterminada degrees
                  • Unidad - Add a 1.00 second Genérico expiration timer to (Last created unit)
                  • Unidad - Add Cursed seal (dummy)2 to (Last created unit)
                  • Unidad - Set level of Cursed seal (dummy)2 for (Last created unit) to Cs_AbilityLevel
                  • Unidad - Order (Last created unit) to Alquimista neutral: Bomba ácida (Picked unit)
                  • Unidad - Cause Cs_Caster to damage (Picked unit), dealing (Vida máx. of Cs_Target) damage of attack type Conjuros and damage type Normal
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- Conjurer life that is increased if the condition is true --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Unidad - Set life of Cs_Caster to ((Vida of Cs_Caster) + (Vida máx. of Cs_Target))
          • Unidad - Add a 0.10 second Genérico expiration timer to Cs_Target
          • Unidad - Remove Cs_Target from the game
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- floating text collection conjurer life --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Texto flotante - Create floating text that reads (+ + (String((Integer((Vida máx. of Cs_Target)))))) above Cs_Caster with Z offset 0.00, using font size 10.00, color (100.00%, 35.00%, 100.00%), and 0.00% transparency
          • Texto flotante - Change (Last created floating text): Desactivar permanence
          • Texto flotante - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
          • Texto flotante - Change the fading age of (Last created floating text) to 3.00 seconds
          • Texto flotante - Change the lifespan of (Last created floating text) to 5.00 seconds
        • Otros: Acciones
          • Unidad - Move (Target unit of ability being cast) instantly to Cs_Point2
          • Grupo de unidad - Pick every unit in Cs_Group and do (Actions)
            • Bucle: Acciones
              • -------- ------------------------------------------------------------------------------------------------- --------
              • -------- a good effect --------
              • -------- ------------------------------------------------------------------------------------------------- --------
              • Efecto especial - Create a special effect attached to the overhead of (Picked unit) using Abilities\Spells\Undead\OrbOfDeath\AnnihilationMissile.mdl
              • Efecto especial - Destroy (Last created special effect)
              • -------- ------------------------------------------------------------------------------------------------- --------
              • -------- Floating text that appears if the condition is false --------
              • -------- ------------------------------------------------------------------------------------------------- --------
              • Texto flotante - Create floating text that reads (- + (String(Cs_Random_Damage_Total))) above (Picked unit) with Z offset 0.00, using font size 10.00, color (20.00%, 0.00%, 20.00%), and 0.00% transparency
              • Texto flotante - Change (Last created floating text): Desactivar permanence
              • Texto flotante - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
              • Texto flotante - Change the fading age of (Last created floating text) to 3.00 seconds
              • Texto flotante - Change the lifespan of (Last created floating text) to 5.00 seconds
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • Si: Condiciones
                  • (Vida of (Picked unit)) Menor que o igual a (Real(Cs_Random_Damage_Total))
                • Entonces: Acciones
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • -------- Remove unit if the condition is true group --------
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • Unidad - Add a 0.10 second Genérico expiration timer to (Picked unit)
                  • Unidad - Remove (Picked unit) from the game
                • Otros: Acciones
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • -------- Put spell and damage if the condition is false group --------
                  • -------- ------------------------------------------------------------------------------------------------- --------
                  • Unidad - Create 1 (dummy) for (Owner of Cs_Caster) at (Position of (Picked unit)) facing Vista edificio predeterminada degrees
                  • Unidad - Add a 1.00 second Genérico expiration timer to (Last created unit)
                  • Unidad - Add Cursed seal (dummy)2 to (Last created unit)
                  • Unidad - Set level of Cursed seal (dummy)2 for (Last created unit) to Cs_AbilityLevel
                  • Unidad - Order (Last created unit) to Alquimista neutral: Bomba ácida (Picked unit)
                  • Unidad - Cause Cs_Caster to damage (Picked unit), dealing (Real(Cs_Random_Damage_Total)) damage of attack type Conjuros and damage type Normal
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- Conjurer life that is increased if the condition is false --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Unidad - Set life of Cs_Caster to ((Vida of Cs_Caster) + (Real(Cs_Random_Damage_Total)))
          • -------- ------------------------------------------------------------------------------------------------- --------
          • -------- floating text collection conjurer life --------
          • -------- ------------------------------------------------------------------------------------------------- --------
          • Texto flotante - Create floating text that reads (+ + (String(Cs_Random_Damage_Total))) above Cs_Caster with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 100.00%), and 50.00% transparency
          • Texto flotante - Change (Last created floating text): Desactivar permanence
          • Texto flotante - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
          • Texto flotante - Change the fading age of (Last created floating text) to 3.00 seconds
          • Texto flotante - Change the lifespan of (Last created floating text) to 5.00 seconds
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Delete group --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Custom script: call DestroyGroup (udg_Cs_Group)
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Eliminate leak --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation (udg_Cs_Point1)
      • -------- ------------------------------------------------------------------------------------------------- --------
      • -------- Eliminate leak --------
      • -------- ------------------------------------------------------------------------------------------------- --------
      • Custom script: call RemoveLocation (udg_Cs_Point2)
Previews
Contents

Archmage - Aethas - Cursed seal (Map)

Thanks for the submission, there are a few notable issues I'd like to address in the spell:
- Configurable values that do not change on a cast-by-cast basis should be in their own trigger (this avoids pointless operations to reassign values to the same value)
- Dummies should be owned by a neutral player as to not mess up the scorescreen
- Dummy unit type should be configurable as should effect models and other similar things
- You leak a point (position of Cs_Target)
- Use temporary variables to store references used more than twice (e.g. triggering unit, last created unit, etc.)
- floating text should be optional as there is a texttag limit imposed on every player of 100 (meaning this could interfere with other texttags used by a map)
- Your documentation doesn't make a lot of sense (I gather that English is not your first language so that is understandable, though it's extremely confusing to read)
- Why remove the units if their health is lower than the damage dealt? surely they should take the damage anyway (for example if a hero is removed from the game this way it can not be revived)
- Lacks a version number
- Needs a proper description

Because of these above issues I'm setting this submission to needs fix, I'll be happy to re-review your work once you've updated it. If you have any questions do not hesitate to post or send me a PM (Private Message)
 
Top