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

[Solved] Puzzle Fail

Status
Not open for further replies.
Level 26
Joined
Oct 2, 2011
Messages
2,482
Hi!
I need some help with a puzzle I have created.
I have this bug that only appears occasionally, and I can't seem to figure out what the problem is myself.

Here is the problem as described by two players:
After I completed the tile puzzle the first time, I wanted to try the second, harder one. But some sort of graphical glitch caused most of the tiles to disappear and/or overlap so they would change colour/flicker as I moved around. I'm pretty sure this wasn't intentional, and it made the second stage of the puzzle impossible to solve.

When you solved it all cells mixed and you can solved it again to get a good reward. But when I tried to solve it all cells one by one mixed with themself and in the end I have only 1! cell but with all colors in it. All others cells were empty. I don`t understand how I did it, but because of this bug it is impossible to solve it.

So basically, tiles start to overlap after starting the second level of the puzzle.

The bug is in this map: Warden - Solen's Sanctuary 1.37
The triggers are under the "Puzzle" category.

I'll list all the triggers in a hidden tag below too.
  • Tile Advanced Setup
    • Events
    • Conditions
    • Actions
      • Trigger - Turn off Tile lever Move <gen>
      • Trigger - Turn on Tile lever Move Advanced <gen>
      • Trigger - Turn on Tile Solve Advanced <gen>
      • Unit - Set mana of Tile 0020 <gen> to 40.00
      • Unit - Set mana of Tile 0030 <gen> to 40.00
      • Unit - Set mana of Tile 0032 <gen> to 80.00
      • Unit - Set mana of Tile 0034 <gen> to 40.00
      • Unit - Set mana of Tile 0023 <gen> to 60.00
      • Unit - Set mana of Tile 0025 <gen> to 60.00
      • Unit - Set mana of Tile 0029 <gen> to 60.00
      • Unit - Set mana of Tile 0019 <gen> to 20.00
      • Unit - Set mana of Tile 0024 <gen> to 100.00
      • Unit - Set mana of Tile 0026 <gen> to 60.00
      • Unit - Set mana of Tile 0036 <gen> to 100.00
      • Unit - Set mana of Tile 0021 <gen> to 100.00
      • Unit - Set mana of Tile 0031 <gen> to 20.00
      • Unit - Set mana of Tile 0033 <gen> to 20.00
      • Unit - Set mana of Tile 0022 <gen> to 20.00
      • Unit - Set mana of Tile 0027 <gen> to 40.00
      • Unit - Set mana of Tile 0008 <gen> to 80.00
      • Unit - Set mana of Tile 0018 <gen> to 80.00
      • Unit - Set mana of Tile 0028 <gen> to 100.00
      • Unit - Set mana of Tile 0038 <gen> to 80.00
      • Trigger - Run Tile Init <gen> (ignoring conditions)
  • Tile Init
    • Events
      • Map initialization
    • Conditions
    • Actions
      • Set UnitGroup = (Units in (Playable map area) matching ((Unit-type of (Matching unit)) Equal to Tile))
      • Unit Group - Pick every unit in UnitGroup and do (Actions)
        • Loop - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Equal to 20.00
            • Then - Actions
              • Animation - Change (Picked unit)'s vertex coloring to (100.00%, 0.00%, 0.00%) with 0.00% transparency
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Equal to 40.00
            • Then - Actions
              • Animation - Change (Picked unit)'s vertex coloring to (0.00%, 100.00%, 0.00%) with 0.00% transparency
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Equal to 60.00
            • Then - Actions
              • Animation - Change (Picked unit)'s vertex coloring to (0.00%, 100.00%, 100.00%) with 0.00% transparency
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Equal to 80.00
            • Then - Actions
              • Animation - Change (Picked unit)'s vertex coloring to (100.00%, 100.00%, 0.00%) with 0.00% transparency
            • Else - Actions
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • (Mana of (Picked unit)) Equal to 100.00
            • Then - Actions
              • Animation - Change (Picked unit)'s vertex coloring to (100.00%, 0.00%, 100.00%) with 0.00% transparency
            • Else - Actions
      • Custom script: call DestroyGroup (udg_UnitGroup)
  • Tile lever Move
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Unit-type of (Casting unit)) Equal to Tile Lever
    • Actions
      • Trigger - Turn off (This trigger)
      • Animation - Play (Casting unit)'s death animation
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (Casting unit) Equal to Tile Lever 0014 <gen>
              • (Casting unit) Equal to Tile Lever 0013 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Vertical 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 270.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
          • Set UnitGroup = (Units in Tile Puzzle Vertical 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 270.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (Casting unit) Equal to Tile Lever 0011 <gen>
              • (Casting unit) Equal to Tile Lever 0012 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 180.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 180.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (Casting unit) Equal to Tile Lever 0015 <gen>
              • (Casting unit) Equal to Tile Lever 0016 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Vertical 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 90.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
          • Set UnitGroup = (Units in Tile Puzzle Vertical 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 90.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • Or - Any (Conditions) are true
            • Conditions
              • (Casting unit) Equal to Tile Lever 0009 <gen>
              • (Casting unit) Equal to Tile Lever 0010 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 0.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 256.00 towards 0.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • Wait 0.25 seconds
      • Animation - Play (Casting unit)'s stand animation
      • Trigger - Turn on (This trigger)
  • Tile lever Move Advanced
    • Events
      • Unit - A unit Begins casting an ability
    • Conditions
      • (Unit-type of (Casting unit)) Equal to Tile Lever
    • Actions
      • Animation - Play (Casting unit)'s death animation
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0013 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Vertical 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 270.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0014 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Vertical 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 270.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0011 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 180.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0012 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 180.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0015 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Vertical 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 90.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0016 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Vertical 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 90.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0010 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 1 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 0.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Casting unit) Equal to Tile Lever 0009 <gen>
        • Then - Actions
          • Set UnitGroup = (Units in Tile Puzzle Horizontal 2 <gen> matching ((Unit-type of (Matching unit)) Equal to Tile))
          • Unit Group - Pick every unit in UnitGroup and do (Actions)
            • Loop - Actions
              • Set Pos1 = ((Position of (Picked unit)) offset by 128.00 towards 0.00 degrees)
              • Unit - Move (Picked unit) instantly to Pos1
              • Custom script: call RemoveLocation (udg_Pos1)
          • Custom script: call DestroyGroup (udg_UnitGroup)
        • Else - Actions
      • Wait 0.25 seconds
      • Animation - Play (Casting unit)'s stand animation
  • Tile Move Back 1
    • Events
      • Unit - A unit enters Tile Puzzle North Levers <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Tile
    • Actions
      • Set Pos1 = ((Position of (Triggering unit)) offset by 768.00 towards 270.00 degrees)
      • Unit - Move (Triggering unit) instantly to Pos1
      • Custom script: call RemoveLocation (udg_Pos1)
  • Tile Move Back 2
    • Events
      • Unit - A unit enters Tile Puzzle East Levers <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Tile
    • Actions
      • Set Pos1 = ((Position of (Triggering unit)) offset by 768.00 towards 180.00 degrees)
      • Unit - Move (Triggering unit) instantly to Pos1
      • Custom script: call RemoveLocation (udg_Pos1)
  • Tile Move Back 3
    • Events
      • Unit - A unit enters Tile Puzzle South Levers <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Tile
    • Actions
      • Set Pos1 = ((Position of (Triggering unit)) offset by 768.00 towards 90.00 degrees)
      • Unit - Move (Triggering unit) instantly to Pos1
      • Custom script: call RemoveLocation (udg_Pos1)
  • Tile Move Back 4
    • Events
      • Unit - A unit enters Tile Puzzle West Levers <gen>
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Tile
    • Actions
      • Set Pos1 = ((Position of (Triggering unit)) offset by 768.00 towards 0.00 degrees)
      • Unit - Move (Triggering unit) instantly to Pos1
      • Custom script: call RemoveLocation (udg_Pos1)
  • Tile Solve
    • Events
      • Time - Every 1.50 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 1 <gen> matching ((Mana of (Matching unit)) Equal to 20.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 1 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 2 <gen> matching ((Mana of (Matching unit)) Equal to 40.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 2 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 3 <gen> matching ((Mana of (Matching unit)) Equal to 60.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 3 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 4 <gen> matching ((Mana of (Matching unit)) Equal to 80.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 4 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 5 <gen> matching ((Mana of (Matching unit)) Equal to 100.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 5 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 1 <gen> matching ((Mana of (Matching unit)) Equal to 20.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 2 <gen> matching ((Mana of (Matching unit)) Equal to 40.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 3 <gen> matching ((Mana of (Matching unit)) Equal to 60.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 4 <gen> matching ((Mana of (Matching unit)) Equal to 80.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 5 <gen> matching ((Mana of (Matching unit)) Equal to 100.00))) Equal to 4
        • Then - Actions
          • Destructible - Make Demonic Gate (Custom) 0080 <gen> Invulnerable
          • Set Pos1 = (Center of Tile Puzzle Group 3 <gen>)
          • Special Effect - Create a special effect at Pos1 using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
          • Destructible - Open Demonic Gate (Custom) 0080 <gen>
          • Sound - Play LargeCityGateOpen1 <gen>
          • Trigger - Run Tile Advanced Setup <gen> (ignoring conditions)
          • Trigger - Turn off (This trigger)
          • Wait 3.00 seconds
          • Sound - Play Hint <gen>
          • Game - Display to (All players) the text: |cffffff00Hint:|r T...
        • Else - Actions
  • Tile Solve Advanced
    • Events
      • Time - Every 1.50 seconds of game time
    • Conditions
    • Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 1 <gen> matching ((Mana of (Matching unit)) Equal to 20.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 1 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 2 <gen> matching ((Mana of (Matching unit)) Equal to 40.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 2 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 3 <gen> matching ((Mana of (Matching unit)) Equal to 60.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 3 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 4 <gen> matching ((Mana of (Matching unit)) Equal to 80.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 4 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 5 <gen> matching ((Mana of (Matching unit)) Equal to 100.00))) Equal to 4
        • Then - Actions
          • Set Pos1 = (Center of Tile Puzzle Group 5 <gen>)
          • Special Effect - Create a special effect at Pos1 using Environment\NightElfBuildingFire\ElfSmallBuildingFire2.mdl
          • Special Effect - Destroy (Last created special effect)
          • Custom script: call RemoveLocation (udg_Pos1)
        • Else - Actions
      • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
        • If - Conditions
          • (Number of units in (Units in Tile Puzzle Group 1 <gen> matching ((Mana of (Matching unit)) Equal to 20.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 2 <gen> matching ((Mana of (Matching unit)) Equal to 40.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 3 <gen> matching ((Mana of (Matching unit)) Equal to 60.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 4 <gen> matching ((Mana of (Matching unit)) Equal to 80.00))) Equal to 4
          • (Number of units in (Units in Tile Puzzle Group 5 <gen> matching ((Mana of (Matching unit)) Equal to 100.00))) Equal to 4
        • Then - Actions
          • Trigger - Turn off (This trigger)
          • Set CharDamage = (CharDamage + 100.00)
          • Set Pos1 = (Center of Tile Puzzle Group 3 <gen>)
          • Special Effect - Create a special effect at Pos1 using Units\NightElf\Wisp\WispExplode.mdl
          • Special Effect - Destroy (Last created special effect)
          • Game - Display to (All players) the text: Well done! Take a ...
          • Custom script: call RemoveLocation (udg_Pos1)
          • Trigger - Run Tile Advanced Setup <gen> (ignoring conditions)
        • Else - Actions
Thanks in advnace! :)
 
Level 13
Joined
May 10, 2009
Messages
868
First, I have to say that your map is amazing! Actually, I've played it until the puzzle part - hehe.

Well, after analyzing your triggers, I found out that both "Tile lever Move" and "Tile lever Move Advanced" were active at the same time. The reason why the "Tile lever Move" becomes active is simple: Every time the player interacts with a Lever, you do your actions and *wait* 0.25 seconds, then turn it on again. The bug only occurs when a player hits a lever before the trigger "Tile Solve" runs, which means that this happens:

Imagine that the trigger "Tile Solve" has just been executed, and 1.25 second passed. Then:

-The Player interacts with a Lever;
-"Tile lever Move" turns off, does its actions, and wait 0.25;
-The "Tile Solve" event fires again, checks that everything is ok, runs the "Tile Advanced Setup" (which also turns off "Tile lever Move").
-But then, that little wait (0.25) has just expired and turned "Tile lever Move" on again.

All I did in the video was just add some text messages to some triggers and show how they would perform after solving the puzzle. The rest of its content was basically what I described above. I removed the video to not spoil the puzzle for everyone else.

That's why that bug happens occasionally.
You probably noticed that I am terrible at explaining anything. Sorry.

EDIT: I forgot to tell you how I fixed it:

  • -------- In your "Tile lever Move" trigger, just add a condition checking if the advanced one is not turned on. --------
  • -------- [...] --------
  • Wait 0.25 seconds
  • Animation - Play (Casting unit)'s stand animation
  • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
    • If - Conditions
      • (Tile lever Move Advanced <gen> is on) Equal to False
    • Then - Actions
      • Trigger - Turn on (This trigger)
    • Else - Actions
 
Last edited:
Level 26
Joined
Oct 2, 2011
Messages
2,482
Duuuude!
Thank you so much! :D
I'll get right on fixing that.

The video was really helpful. (Haha, You found the "shadowfury" shortcut too!)

First, I have to say that your map is amazing! Actually, I've played it until the puzzle part - hehe.
Thanks!
I would love to hear your opinions on it in the campaign thread, if you have something to share! :)
 
Status
Not open for further replies.
Top