HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Why doesn't this work?

10-07-2006, 03:50 PM#1
darkwulfv
Ok, I have here's my trigger. Many have probably seen similair versions, because I keep posting it because the map i make it in is always lost for various reasons and it never likes to work.

This one makes flames but doesn't destroy them.
Collapse JASS:
function Conditions_Flame_Stomp takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function Flames takes nothing returns nothing
  local real x = GetUnitX(GetTriggerUnit())
  local real y = GetUnitY(GetTriggerUnit())
  local effect array SFX
  local integer i = 1
//This creates flames in a clockwise order starting from the right side of the caster (This cannot be seen in-game)
set SFX[1] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x+300, y+0) 
set SFX[2] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x+300, y+300)
set SFX[3] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x+0, y+300)
set SFX[4] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x-300, y+300)
set SFX[5] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x-300, y+0)
set SFX[6] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x-300, y-300)
set SFX[7] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x+0, y-300)
set SFX[8] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x+300, y-300)
set SFX[9] = AddSpecialEffect("Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl", x, y)
    call PolledWait(2.0)
    
   loop
      exitwhen i == 10
      call DestroyEffect(SFX[i])
     set i = i+1
     set SFX[i] = null
   endloop
     
endfunction
10-07-2006, 04:36 PM#2
Vexorian
You are nulling the Effect before destroying it...
Collapse JASS:
   loop
      exitwhen i == 10
      call DestroyEffect(SFX[i])

      set SFX[i] = null
      set i = i+1

   endloop
10-07-2006, 04:48 PM#3
darkwulfv
Well I see one issue. the variable i is changed before the null, so it nulls the wrong one.
10-07-2006, 05:40 PM#4
BertTheJasser
No, you null the variable before you destroy it, which means that the arguement of the DestroyEffect is always null, which means it does not work and your effects will persist until heaven falls onto our head.