This is crude, but works great for stepping through tasks...
Code:
|STEP 1
/if (!${Me.XTarget} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]}) /call Step1
|STEP 2
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]}) /call Step2
|STEP 3
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]}) /call Step3
|STEP 4
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]}) /call Step4
|STEP 5
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]}) /call Step5
|STEP 6
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]}) /call Step6
|STEP 7
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]}) /call Step7
|STEP 8
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]}) /call Step8
|STEP 9
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]}) /call Step9
|STEP 10
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]}) /call Step10
|STEP 11
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[11,2].Equal[Done]}) /call Step11
|STEP 12
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[11,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[12,2].Equal[Done]}) /call Step12
|STEP 13
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[11,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[12,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[13,2].Equal[Done]}) /call Step13
|STEP 14
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[11,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[12,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[13,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[14,2].Equal[Done]}) /call Step14
|STEP 15
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[11,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[12,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[13,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[14,2].Equal[Done]} && !${Window[TaskWnd].Child[TASK_TaskElementList].List[15,2].Equal[Done]}) /call Step15
|STEP 16
/if (!${Me.XTarget} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[1,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[2,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[3,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[4,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[5,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[6,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[7,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[8,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[9,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[10,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[11,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[12,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[13,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[14,2].Equal[Done]} && ${Window[TaskWnd].Child[TASK_TaskElementList].List[15,2].Equal[Done]}) /call Step16