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

[Trigger] Lightning HELP

Status
Not open for further replies.

BUP

BUP

Level 9
Joined
Sep 9, 2012
Messages
172
My Lightning Spell is not working properly.
The First Attempt is going wrong.
Please check it out for me
Spell is in the attachment


  • VoC Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to VoC_Spell
    • Actions
      • Set VoC_DurationSet = 20.00
      • Set VoC_LightningNameSet = AFOD
      • Set VoC_UnitSourceSet = (Triggering unit)
      • Set VoC_UnitTargetSet = (Target unit of ability being cast)
      • Set VoC_LevelSet = (Level of VoC_Spell for (Triggering unit))
      • Trigger - Run VoC Run <gen> (ignoring conditions)


  • VoC Run
    • Events
    • Conditions
    • Actions
      • Custom script: local real x1
      • Custom script: local real y1
      • Custom script: local real z1
      • Custom script: local real x2
      • Custom script: local real y2
      • Custom script: local real z2
      • Set VoC_MaxIndex = (VoC_MaxIndex + 1)
      • Set VoC_Duration[VoC_MaxIndex] = VoC_DurationSet
      • Set VoC_LightningName[VoC_MaxIndex] = VoC_LightningNameSet
      • Set VoC_UnitSource[VoC_MaxIndex] = VoC_UnitSourceSet
      • Set VoC_UnitTarget[VoC_MaxIndex] = VoC_UnitTargetSet
      • Set VoC_Level[VoC_CurrentIndex] = VoC_LevelSet
      • Set VoC_LightningFadeInterval[VoC_MaxIndex] = ((1.00 / VoC_DurationSet) x VoC_Interval)
      • Set VoC_LightningAlpha[VoC_MaxIndex] = 1.00
      • Custom script: set x1 = GetUnitX(udg_VoC_UnitSource[udg_VoC_MaxIndex])
      • Custom script: set y1 = GetUnitY(udg_VoC_UnitSource[udg_VoC_MaxIndex])
      • Custom script: call MoveLocation(udg_VoC_Location, x1, y1)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (VoC_UnitSource[VoC_MaxIndex] is A ground unit) Equal to True
        • Then - Actions
          • Custom script: set z1 = GetLocationZ(udg_VoC_Location) + udg_VoC_UnitZ
        • Else - Actions
          • Custom script: set z1 = GetLocationZ(udg_VoC_Location) + GetUnitFlyHeight(udg_VoC_UnitSource[udg_VoC_MaxIndex])
      • Custom script: set x2 = GetUnitX(udg_VoC_UnitTarget[udg_VoC_MaxIndex])
      • Custom script: set y2 = GetUnitY(udg_VoC_UnitTarget[udg_VoC_MaxIndex])
      • Custom script: call MoveLocation(udg_VoC_Location, x2, y2)
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (VoC_UnitTarget[VoC_MaxIndex] is A ground unit) Equal to True
        • Then - Actions
          • Custom script: set z2 = GetLocationZ(udg_VoC_Location) + udg_VoC_UnitZ
        • Else - Actions
          • Custom script: set z2 = GetLocationZ(udg_VoC_Location) + GetUnitFlyHeight(udg_VoC_UnitTarget[udg_VoC_MaxIndex])
      • Custom script: set udg_VoC_Lightning[udg_VoC_MaxIndex] = AddLightningEx(udg_VoC_LightningName[udg_VoC_MaxIndex], true, x1, y1, z1, x2, y2, z2)
      • Trigger - Turn on VoC Loop <gen>


  • VoC Loop
    • Events
    • Conditions
    • Actions
      • Custom script: local real x1
      • Custom script: local real y1
      • Custom script: local real z1
      • Custom script: local real x2
      • Custom script: local real y2
      • Custom script: local real z2
      • For each (Integer VoC_CurrentIndex) from 1 to VoC_MaxIndex, do (Actions)
        • Loop - Actions
          • Set VoC_PointSource[VoC_CurrentIndex] = (Position of VoC_UnitSource[VoC_CurrentIndex])
          • Set VoC_PointTarget[VoC_CurrentIndex] = (Position of VoC_UnitTarget[VoC_CurrentIndex])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VoC_UnitSource[VoC_CurrentIndex] Not equal to No unit
            • Then - Actions
              • Custom script: set x1 = GetUnitX(udg_VoC_UnitSource[udg_VoC_CurrentIndex])
              • Custom script: set y1 = GetUnitY(udg_VoC_UnitSource[udg_VoC_CurrentIndex])
              • Custom script: call MoveLocation(udg_VoC_Location, x1, y1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (VoC_UnitSource[VoC_CurrentIndex] is A ground unit) Equal to True
                • Then - Actions
                  • Custom script: set z1 = GetLocationZ(udg_VoC_Location) + udg_VoC_UnitZ
                • Else - Actions
                  • Custom script: set z1 = GetLocationZ(udg_VoC_Location) + GetUnitFlyHeight(udg_VoC_UnitSource[udg_VoC_CurrentIndex])
            • Else - Actions
              • Custom script: set x1 = GetLocationX(udg_VoC_PointSource[udg_VoC_CurrentIndex])
              • Custom script: set y1 = GetLocationY(udg_VoC_PointSource[udg_VoC_CurrentIndex])
              • Custom script: call MoveLocation(udg_VoC_Location, x1, y1)
              • Custom script: set z1 = GetLocationZ(udg_VoC_Location) + udg_VoC_PointSourceZ[udg_VoC_CurrentIndex]
              • -------- For UnitSource Location --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VoC_UnitTarget[VoC_CurrentIndex] Not equal to No unit
            • Then - Actions
              • Custom script: set x2 = GetUnitX(udg_VoC_UnitTarget[udg_VoC_CurrentIndex])
              • Custom script: set y2 = GetUnitY(udg_VoC_UnitTarget[udg_VoC_CurrentIndex])
              • Custom script: call MoveLocation(udg_VoC_Location, x2, y2)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • (VoC_UnitTarget[VoC_CurrentIndex] is A ground unit) Equal to True
                • Then - Actions
                  • Custom script: set z2 = GetLocationZ(udg_VoC_Location) + udg_VoC_UnitZ
                • Else - Actions
                  • Custom script: set z2 = GetLocationZ(udg_VoC_Location) + GetUnitFlyHeight(udg_VoC_UnitTarget[udg_VoC_CurrentIndex])
            • Else - Actions
              • Custom script: set x2 = GetLocationX(udg_VoC_PointTarget[udg_VoC_CurrentIndex])
              • Custom script: set y2 = GetLocationY(udg_VoC_PointTarget[udg_VoC_CurrentIndex])
              • Custom script: call MoveLocation(udg_VoC_Location, x2, y2)
              • Custom script: set z2 = GetLocationZ(udg_VoC_Location) + udg_VoC_PointTargetZ[udg_VoC_CurrentIndex]
              • -------- For TargetSource Location --------
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • VoC_Duration[VoC_CurrentIndex] Greater than 0.00
              • (VoC_UnitSource[VoC_CurrentIndex] is alive) Equal to True
            • Then - Actions
              • Set VoC_Duration[VoC_CurrentIndex] = (VoC_Duration[VoC_CurrentIndex] - VoC_Interval)
              • Set VoC_LightningAlpha[VoC_CurrentIndex] = (VoC_LightningAlpha[VoC_CurrentIndex] - VoC_LightningFadeInterval[VoC_CurrentIndex])
              • Custom script: if udg_VoC_LightningAlpha[udg_VoC_CurrentIndex] < 0.00 then
              • Custom script: set udg_VoC_Duration[udg_VoC_CurrentIndex] = -0.01
              • Custom script: else
              • Custom script: call MoveLightningEx(udg_VoC_Lightning[udg_VoC_CurrentIndex], true, x1, y1, z1, x2, y2, z2)
              • Custom script: call SetLightningColor(udg_VoC_Lightning[udg_VoC_CurrentIndex], 1.00, 1.00, 1.00, udg_VoC_LightningAlpha[udg_VoC_CurrentIndex])
              • Custom script: endif
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VoC_Timer[VoC_CurrentIndex] Greater than 0.00
                • Then - Actions
                  • Set VoC_Timer[VoC_CurrentIndex] = (VoC_Timer[VoC_CurrentIndex] - 0.03)
                • Else - Actions
                  • Unit - Cause VoC_UnitSource[VoC_CurrentIndex] to damage VoC_UnitTarget[VoC_CurrentIndex], dealing VoC_Damage[VoC_Level[VoC_CurrentIndex]] damage of attack type Spells and damage type Normal
                  • Floating Text - Create floating text that reads (String((Integer(VoC_Damage[VoC_Level[VoC_CurrentIndex]])))) above VoC_UnitTarget[VoC_CurrentIndex] with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
                  • Floating Text - Change (Last created floating text): Disable permanence
                  • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
                  • Floating Text - Change the fading age of (Last created floating text) to 2.50 seconds
                  • Floating Text - Change the lifespan of (Last created floating text) to 3.00 seconds
                  • Set VoC_Timer[VoC_CurrentIndex] = 1.00
              • Set VoC_Distance_Between[VoC_CurrentIndex] = (Distance between VoC_PointSource[VoC_CurrentIndex] and VoC_PointTarget[VoC_CurrentIndex])
              • Set VoC_Angle_Between[VoC_CurrentIndex] = (Angle from VoC_PointSource[VoC_CurrentIndex] to VoC_PointTarget[VoC_CurrentIndex])
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VoC_Distance_Between[VoC_CurrentIndex] Greater than VoC_Distance_Border[VoC_Level[VoC_CurrentIndex]]
                • Then - Actions
                  • Unit - Move VoC_UnitTarget[VoC_CurrentIndex] instantly to (VoC_PointSource[VoC_CurrentIndex] offset by VoC_Distance_Border[VoC_Level[VoC_CurrentIndex]] towards VoC_Angle_Between[VoC_CurrentIndex] degrees), facing Default building facing degrees
                  • Custom script: call DestroyEffect(AddSpecialEffectTarget(udg_VoC_Effect_Model[1], udg_VoC_UnitTarget[udg_VoC_CurrentIndex],udg_VoC_Attachment[1]))
                • Else - Actions
            • Else - Actions
              • Lightning - Destroy VoC_Lightning[VoC_CurrentIndex]
              • Custom script: call RemoveLocation(udg_VoC_PointSource[udg_VoC_CurrentIndex])
              • Custom script: call RemoveLocation(udg_VoC_PointTarget[udg_VoC_CurrentIndex])
              • Set VoC_PointSource[VoC_CurrentIndex] = VoC_PointSource[VoC_MaxIndex]
              • Set VoC_PointTarget[VoC_CurrentIndex] = VoC_PointTarget[VoC_MaxIndex]
              • Set VoC_Duration[VoC_CurrentIndex] = VoC_Duration[VoC_MaxIndex]
              • Set VoC_Lightning[VoC_CurrentIndex] = VoC_Lightning[VoC_MaxIndex]
              • Set VoC_UnitSource[VoC_CurrentIndex] = VoC_UnitSource[VoC_MaxIndex]
              • Set VoC_UnitTarget[VoC_CurrentIndex] = VoC_UnitTarget[VoC_MaxIndex]
              • Set VoC_PointSourceZ[VoC_CurrentIndex] = VoC_PointSourceZ[VoC_MaxIndex]
              • Set VoC_PointTargetZ[VoC_CurrentIndex] = VoC_PointTargetZ[VoC_MaxIndex]
              • Set VoC_LightningName[VoC_CurrentIndex] = VoC_LightningName[VoC_MaxIndex]
              • Set VoC_LightningAlpha[VoC_CurrentIndex] = VoC_LightningAlpha[VoC_MaxIndex]
              • Set VoC_LightningFadeInterval[VoC_CurrentIndex] = VoC_LightningFadeInterval[VoC_MaxIndex]
              • Set VoC_CurrentIndex = (VoC_CurrentIndex - 1)
              • Set VoC_MaxIndex = (VoC_MaxIndex - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • VoC_MaxIndex Equal to 0
                • Then - Actions
                  • Trigger - Turn off VoC Loop <gen>
                • Else - Actions
          • Custom script: call RemoveLocation(udg_VoC_PointSource[udg_VoC_CurrentIndex])
          • Custom script: call RemoveLocation(udg_VoC_PointTarget[udg_VoC_CurrentIndex])

 
Last edited:
Status
Not open for further replies.
Top