Fire Wave by mogulkhan1Axe

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Triggers



  • FW Variable
    • Events
      • Time - Elapsed game time is 0.00 seconds
    • Conditions
    • Actions
      • Set FW_Ability = Fire Wave
      • Set FW_DistanceTraveled = 35.00
      • Set FW_FireWaveDummy = Dummy (fire wave)
      • Set FW_Loop_Interval = 0.03125
      • Trigger - Add to FW Loop <gen> the event (Time - Every (Real(FW_Loop_Interval)) seconds of game time)


  • FW Cast
    • Events
      • Unit - A unit Starts the effect of an ability
    • Conditions
      • (Ability being cast) Equal to FW_Ability
    • Actions
      • Set FW_Index = (FW_Index + 1)
      • Set FW_Caster[FW_Index] = (Triggering unit)
      • Set FW_TargetPoint[FW_Index] = (Target point of ability being cast)
      • Set FW_OwnerOfUnit[FW_Index] = (Triggering player)
      • Set tempPoints[1] = (Position of FW_Caster[FW_Index])
      • Set FW_Angle[FW_Index] = (Angle from tempPoints[1] to FW_TargetPoint[FW_Index])
      • Unit - Hide FW_Caster[FW_Index]
      • Unit - Create 1 FW_FireWaveDummy for FW_OwnerOfUnit[FW_Index] at tempPoints[1] facing FW_Angle[FW_Index] degrees
      • Set FW_FireWave[FW_Index] = (Last created unit)
      • Unit - Turn collision for FW_FireWave[FW_Index] Off
      • Custom script: call RemoveLocation ( udg_tempPoints[1])
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • FW_Index Equal to 1
        • Then - Actions
          • Trigger - Turn on FW Loop <gen>
        • Else - Actions



  • FW Loop
    • Events
    • Conditions
    • Actions
      • For each (Integer tempInt) from 1 to FW_Index, do (Actions)
        • Loop - Actions
          • Set tempPoints[2] = (Position of FW_FireWave[tempInt])
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Distance between tempPoints[2] and FW_TargetPoint[tempInt]) Greater than or equal to FW_DistanceTraveled
            • Then - Actions
              • Set tempPoints[3] = (tempPoints[2] offset by FW_DistanceTraveled towards FW_Angle[tempInt] degrees)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • ((Playable map area) contains tempPoints[3]) Equal to True
                • Then - Actions
                  • Unit - Move FW_FireWave[tempInt] instantly to tempPoints[3]
                  • Custom script: call RemoveLocation ( udg_tempPoints[3])
                • Else - Actions
                  • Set tempPoints[4] = (tempPoints[3] offset by FW_DistanceTraveled towards 270.00 degrees)
                  • Unit - Kill FW_FireWave[tempInt]
                  • Unit - Move FW_Caster[tempInt] instantly to tempPoints[4]
                  • Custom script: call RemoveLocation ( udg_tempPoints[4])
                  • Unit - Unhide FW_Caster[tempInt]
                  • Selection - Add FW_Caster[tempInt] to selection for FW_OwnerOfUnit[tempInt]
                  • Set FW_Caster[tempInt] = FW_Caster[FW_Index]
                  • Set FW_Angle[tempInt] = FW_Angle[FW_Index]
                  • Set FW_FireWave[tempInt] = FW_FireWave[FW_Index]
                  • Custom script: call RemoveLocation ( udg_FW_TargetPoint[udg_tempInt])
                  • Set FW_TargetPoint[tempInt] = FW_TargetPoint[FW_Index]
                  • Set FW_OwnerOfUnit[tempInt] = FW_OwnerOfUnit[FW_Index]
                  • Set FW_Caster[FW_Index] = No unit
                  • Set FW_FireWave[FW_Index] = No unit
                  • Set FW_Index = (FW_Index - 1)
                  • Set tempInt = (tempInt - 1)
                  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                    • If - Conditions
                      • FW_Index Equal to 0
                    • Then - Actions
                      • Trigger - Turn off (This trigger)
                    • Else - Actions
            • Else - Actions
              • Unit - Kill FW_FireWave[tempInt]
              • Unit - Move FW_Caster[tempInt] instantly to FW_TargetPoint[tempInt]
              • Unit - Unhide FW_Caster[tempInt]
              • Selection - Add FW_Caster[tempInt] to selection for FW_OwnerOfUnit[tempInt]
              • Set FW_Caster[tempInt] = FW_Caster[FW_Index]
              • Set FW_Angle[tempInt] = FW_Angle[FW_Index]
              • Set FW_FireWave[tempInt] = FW_FireWave[FW_Index]
              • Custom script: call RemoveLocation ( udg_FW_TargetPoint[udg_tempInt])
              • Set FW_TargetPoint[tempInt] = FW_TargetPoint[FW_Index]
              • Set FW_OwnerOfUnit[tempInt] = FW_OwnerOfUnit[FW_Index]
              • Set FW_Caster[FW_Index] = No unit
              • Set FW_FireWave[FW_Index] = No unit
              • Set FW_Index = (FW_Index - 1)
              • Set tempInt = (tempInt - 1)
              • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                • If - Conditions
                  • FW_Index Equal to 0
                • Then - Actions
                  • Trigger - Turn off (This trigger)
                • Else - Actions
          • Custom script: call RemoveLocation ( udg_tempPoints[2])



Keywords:
Fire, Wave, Firewave, Fireball
Contents

Just another Warcraft III map (Map)

Reviews
Rejected on request. 12:39, 8th Apr 2015 IcemanBo: Read post in thread.
Level 8
Joined
Nov 9, 2011
Messages
322
I dislike arrays for the point variable, but I think it's okay, so I'll let it slip.
Leaks aren't spotted
What's with the selection? I think it's unnecessary tbh.

well, arrays for point variables are to reduce number of variables, and selection is for easy escape (bcz this is an escape, initiate spell so it will be easy to continue walking or casting spells)
 
  • Please add a ingame screenshot that presents your spell in action.
  • Please add short but descriptive comments in config part.
  • Config trigger should run at initialiaztion.
  • Hiding a unit is not enough to prevent damage towards a unit. It still may get damage due certain operations.
  • Caster may get to places where he will be unable to move on. "Deep water" for example.
  • Disable food usage for dummy.
  • Just an idea. Why not adding a small explosion on arrival for example?
    Though maybe you want just a better teleport. Your decission.
 
Top