• 🏆 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!

Naix v1.0 GUI DotA

This bundle is marked as awaiting update. A staff member has requested changes to it before it can be approved.
Lifestealer of DotA
The hero does not originally belong to me, but I tried to make it as close to the DotA map as possible.
I am using the resources of "Weep": GUI Friendly Damage Detection
Any question, suggestion or criticism is accepted.

"Rage Cast"
  • Rage Cast
    • Acontecimientos
      • Unidad - A unit Inicia el efecto de una habilidad
    • Condiciones
      • (Ability being cast) Igual a Lifestealer (Rage)
    • Acciones
      • Set RageCast = (Triggering unit)
      • Unidad - Add Rage (Container) to RageCast
      • Unidad - Set level of Rage (Container) for RageCast to (Level of (Ability being cast) for RageCast)
      • Jugador - Desactivar Rage (Container) for (Owner of RageCast)
      • Animación - Change RageCast's vertex coloring to (0.00%, 0.00%, 0.00%) with 0.00% transparency
      • Cuenta atrás del reloj - Start RageTime as a Un tiro timer that will expire in (2.25 + (0.75 x (Real((Level of (Ability being cast) for RageCast))))) seconds
"Rage End"
  • Rage End
    • Acontecimientos
      • Tiempo - RageTime expires
    • Condiciones
    • Acciones
      • For each (Integer A) from 1 to 16, do (Actions)
        • Bucle: Acciones
          • Animación - Change RageCast's vertex coloring to (60.00%, 60.00%, 60.00%) with 0.00% transparency
          • Unidad - Remove Rage (Container) from RageCast
"Feast"
  • Feast Effect
    • Acontecimientos
      • Partida - GDD_Event becomes Igual a 1.00
    • Condiciones
      • ((Level of Lifestealer (Feast) for GDD_DamageSource) Mayor que 0) and ((GDD_DamagedUnit is Una estructura) Igual a False)
    • Acciones
      • Set FeastAttack = GDD_DamageSource
      • Set FeastAttacked = GDD_DamagedUnit
      • Set FeastDamage = ((0.03 + (0.01 x (Real((Level of Lifestealer (Feast) for FeastAttack))))) x (Vida of FeastAttacked))
      • Efecto especial - Create a special effect attached to the origin of FeastAttack using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
      • Unidad - Cause FeastAttack to damage FeastAttacked, dealing FeastDamage damage of attack type Conjuros and damage type Normal
      • Unidad - Set life of FeastAttack to ((Vida of FeastAttack) + FeastDamage)
      • Efecto especial - Destroy (Last created special effect)
      • Set FeastAttack = Ninguna unidad
      • Set FeastAttacked = Ninguna unidad
      • Set FeastDamage = 0.00
"Open Wounds"
  • Open Wounds Cast
    • Acontecimientos
      • Unidad - A unit Inicia el efecto de una habilidad
    • Condiciones
      • (Ability being cast) Igual a Lifestealer (Open Wounds)
    • Acciones
      • Detonador - Add to Open Wounds Effect <gen> the event (Unidad - (Target unit of ability being cast) Recibe daño)
"Open Wounds Effect"
  • Open Wounds Effect
    • Acontecimientos
    • Condiciones
    • Acciones
      • Detonador - Turn off (This trigger)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • Si: Condiciones
          • ((Triggering unit) has buff Open Wounds ) Igual a True
          • (Damage taken) Mayor que 0.00
        • Entonces: Acciones
          • Efecto especial - Create a special effect attached to the origin of (Damage source) using Abilities\Spells\Undead\VampiricAura\VampiricAuraTarget.mdl
          • Unidad - Set life of (Damage source) to ((Vida of (Damage source)) + ((Damage taken) + (0.10 + (0.05 x (Real((Level of Lifestealer (Open Wounds) for (Damage source))))))))
          • Efecto especial - Destroy (Last created special effect)
        • Otros: Acciones
          • Do nothing
      • Detonador - Turn on (This trigger)
"Infest Cast"
  • Infest Cast
    • Acontecimientos
      • Unidad - A unit Inicia el efecto de una habilidad
    • Condiciones
      • (Ability being cast) Igual a Lifestealer (Infest)
    • Acciones
      • Set InfestID = (Ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • Si: Condiciones
          • ((Target unit of ability being cast) is Un héroe) Igual a True
          • ((Target unit of ability being cast) belongs to an enemy of (Owner of (Triggering unit))) Igual a True
        • Entonces: Acciones
          • Unidad - Order (Triggering unit) to Detener
          • Secuencia cinematográfica - Clear the screen of text messages for (Player group((Triggering player)))
          • Custom script: call DisplayTimedTextToPlayer(GetOwningPlayer(GetTriggerUnit()), 0.52, -1., 2., "|cffffcc00Cannot target enemy heroes.|r")
        • Otros: Acciones
          • Set InfestCast = (Triggering unit)
          • Unidad - Hide InfestCast
          • Set InfestTarget = (Target unit of ability being cast)
          • Set InfestLife = (Vida of InfestTarget)
          • Unidad - Unhide InfestTarget
"Infest Effect"
  • Infest Effect
    • Acontecimientos
      • Unidad - A unit Inicia el efecto de una habilidad
    • Condiciones
      • (Ability being cast) Igual a Lifestealer (Infest)
    • Acciones
      • Set InfestID = (Ability being cast)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • Si: Condiciones
          • ((Target unit of ability being cast) is Un héroe) Igual a True
          • ((Target unit of ability being cast) belongs to an enemy of (Owner of (Triggering unit))) Igual a True
        • Entonces: Acciones
          • Unidad - Order (Triggering unit) to Detener
          • Secuencia cinematográfica - Clear the screen of text messages for (Player group((Triggering player)))
          • Custom script: call DisplayTimedTextToPlayer(GetOwningPlayer(GetTriggerUnit()), 0.52, -1., 2., "|cffffcc00Cannot target enemy heroes.|r")
        • Otros: Acciones
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • Si: Condiciones
              • InfestInteger Menor que 100
            • Entonces: Acciones
              • Set InfestInteger = (InfestInteger + 1)
            • Otros: Acciones
              • Set InfestInteger = 1
          • Set InfestUnit[InfestInteger] = (Target unit of ability being cast)
          • Set InfestPoint1 = (Position of (Triggering unit))
          • Unidad - Create 1 Infest for (Owner of (Triggering unit)) at InfestPoint1 facing Vista edificio predeterminada degrees
          • Set InfestUnit2[InfestInteger] = (Last created unit)
          • Selección - Select InfestUnit2[InfestInteger]
          • Unidad - Add Consume to InfestUnit2[InfestInteger]
          • Unidad - Create 1 Dummy for (Owner of (Triggering unit)) at InfestPoint1 facing Vista edificio predeterminada degrees
          • Unidad - Set the custom value of (Last created unit) to InfestInteger
          • Grupo de unidad - Add (Last created unit) to InfestGroupUnit
          • Custom script: call RemoveLocation(udg_InfestPoint1)
"Infest Consume"
  • Infest Consume
    • Acontecimientos
      • Unidad - A unit Comienza a lanzar una habilidad
    • Condiciones
      • (Ability being cast) Igual a Consume
    • Acciones
      • Set ConsumeID = (Ability being cast)
      • Set ConsumePoint1 = (Position of InfestTarget)
      • Efecto especial - Create a special effect at ConsumePoint1 using Objects\Spawnmodels\Human\HumanLargeDeathExplode\HumanLargeDeathExplode.mdl
      • Unidad - Unhide InfestCast
      • Unidad - Move InfestCast instantly to ConsumePoint1
      • Unidad - Remove All buffs from InfestTarget
      • Unidad - Kill (Triggering unit)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • Si: Condiciones
          • (InfestTarget is Un héroe) Igual a True
          • (InfestTarget belongs to an ally of (Owner of InfestCast)) Igual a True
        • Entonces: Acciones
          • Selección - Select InfestCast
        • Otros: Acciones
          • Unidad - Set life of InfestCast to ((Vida of InfestCast) + (Vida of InfestTarget))
          • Unidad - Kill InfestTarget
          • Selección - Select InfestCast
"Infest Select"
  • Infest Select
    • Acontecimientos
      • Jugador - Jugador 1 (rojo) Seleccionar a unit
      • Jugador - Jugador 2 (azul) Seleccionar a unit
      • Jugador - Jugador 3 (teja) Seleccionar a unit
      • Jugador - Jugador 4 (morado) Seleccionar a unit
      • Jugador - Jugador 5 (amarillo) Seleccionar a unit
      • Jugador - Jugador 6 (naranja) Seleccionar a unit
      • Jugador - Jugador 7 (verde) Seleccionar a unit
      • Jugador - Jugador 8 (rosa) Seleccionar a unit
      • Jugador - Jugador 9 (Gris) Seleccionar a unit
      • Jugador - Jugador 10 (azul claro) Seleccionar a unit
      • Jugador - Jugador 11 (verde oscuro) Seleccionar a unit
      • Jugador - Jugador 12 (marrón) Seleccionar a unit
    • Condiciones
      • (Triggering unit) Igual a InfestTarget
    • Acciones
      • Selección - Select InfestUnit2[InfestInteger]
"Infest Dies"
  • Infest Dies
    • Acontecimientos
      • Unidad - A unit Muere
    • Condiciones
      • (Triggering unit) Igual a InfestTarget
    • Acciones
      • Set ConsumePoint2 = (Position of (Triggering unit))
      • Set ConsumeGroupUnit = (Units within 700.00 of ConsumePoint2 matching ((((Matching unit) is Una estructura) Igual a False) and ((((Matching unit) belongs to an enemy of (Owner of InfestCast)) Igual a True) and (((Matching unit) is alive) Igual a True))))
      • Unidad - Unhide InfestCast
      • Unidad - Kill InfestUnit2[InfestInteger]
      • Unidad - Move InfestCast instantly to ConsumePoint2
      • Selección - Select InfestCast
      • Grupo de unidad - Pick every unit in ConsumeGroupUnit and do (Actions)
        • Bucle: Acciones
          • Unidad - Cause InfestCast to damage (Picked unit), dealing (75.00 + (75.00 x (Real((Level of InfestID for InfestCast))))) damage of attack type Conjuros and damage type Magia
      • Custom script: call DestroyGroup(udg_ConsumeGroupUnit)
      • Custom script: call RemoveLocation(udg_ConsumePoint2)
"Infest Move"
  • Infest Dies
    • Acontecimientos
      • Unidad - A unit Muere
    • Condiciones
      • (Triggering unit) Igual a InfestTarget
    • Acciones
      • Set ConsumePoint2 = (Position of (Triggering unit))
      • Set ConsumeGroupUnit = (Units within 700.00 of ConsumePoint2 matching ((((Matching unit) is Una estructura) Igual a False) and ((((Matching unit) belongs to an enemy of (Owner of InfestCast)) Igual a True) and (((Matching unit) is alive) Igual a True))))
      • Unidad - Unhide InfestCast
      • Unidad - Kill InfestUnit2[InfestInteger]
      • Unidad - Move InfestCast instantly to ConsumePoint2
      • Selección - Select InfestCast
      • Grupo de unidad - Pick every unit in ConsumeGroupUnit and do (Actions)
        • Bucle: Acciones
          • Unidad - Cause InfestCast to damage (Picked unit), dealing (75.00 + (75.00 x (Real((Level of InfestID for InfestCast))))) damage of attack type Conjuros and damage type Magia
      • Custom script: call DestroyGroup(udg_ConsumeGroupUnit)
      • Custom script: call RemoveLocation(udg_ConsumePoint2)
Contents

Naix v1.0 GUI DotA (Map)

Reviews
MyPad
A lot of work must be done before this can be deemed useful.
A lot of work must be done before this can be deemed useful.

  • General
    • Have a configuration section (usually a separate trigger) for each spell. Most of the spell values appear to be hardcoded.
  • Rage
    • Rage (container) appears to be the custom Spell Immune ability that's .. meant to be hidden? You can hide it using the Command Button Position trick (0, -11), which is now intended behavior since 1.28+.
    • The spell itself is not MUI, since there appears to be no data attachment to the running timer.
  • Feast
    • Refer to the General section for more details.
  • Open Wounds
    • Open Wounds Cast should attempt to assign the level of the ability being cast as the reference level for the debuff being placed or update the value as the maximum between the previous value and the new level of the ability being cast.
    • Open Wounds Cast should not attach a new unit event every time it's cast, since a damage detection system is already being used by the spellpack.
    • Open Wounds Effect should use the reference level for the debuff instead of the level of the attacker's own ability.
  • Infest
    • Infest Cast and Infest Effect should not share the same event.
      • Infest Cast should be used with the event "A unit begins casting an ability" only to determine whether the target is eligible or not.
      • Infest Effect does not need the stop order interruption block, since Infest Cast should ideally handle that already.
    • Infest Consume leaks a location handle. (ConsumePoint1)
    • Infest Select is neither MUI, nor does it handle additional events for players 13 to 24 in later patches. Just use the generic event instead.
    • There's no need to use Do Nothing as an action in Infest Move Loop, aside from padding the conditional blocks.
 
Top