Checking steps on the selected task...

Norrathian

Lifetime Member
Joined
Jun 7, 2007
Messages
238
Reaction score
52
Points
28
Location
The hills of Tennessee
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
 
When I wrote InTheDark.mac for the anniversary task to get the bone rod I ended up using an array and a sub to maintain step completion. Here are some snippets from that macro.


Code:
/declare StepCompleted[14] int outer 0

Sub GetStep
	/if (${Debugging}) /echo Sub GetStep Entry
	/call OpenTaskWnd
	/declare i int local 0
	/for i 1 to ${StepCompleted.Size}
		/if (${Window[TaskWnd].Child[TASK_TaskElementList].List[${i},2].Equal[Done]}) {
			/if (!${StepCompleted[${i}]}) /echo ${Yellow}Setting Step ${i} as ${Green}completed
			/varset StepCompleted[${i}] 1
		} else {
			/if (${Debugging}) /echo ${Yellow}Step ${i} is ${Red}not completed.
		}
	/next i
	/if (${Debugging}) /echo Sub GetStep Exit
/return

/if (!${StepCompleted[1]} || !${StepCompleted[2]} || !${StepCompleted[3]} || !${StepCompleted[5]}) {
/if (!${Me.XTarget}) {
	/call GoFish
} else {
	/call FarmStuff
}
/call GetStep
}

This macro used an RG exclusive plugin and I didn't have time to convert it to be MMOBugs friendly. But here is the macro in it's entirety to see how it worked.
 

Attachments

  • InTheDark.mac
    63.4 KB · Views: 2
Last edited: