tags:

views:

47

answers:

1

Hello. I'm writing a script in AutoHotKey, and I've stumbled upon an impasse. Right now I have a working GUI that involves checkboxes and dropdown lists. The program is a macro script for gaming-- the user checks which macros he wants running in the background, submits his options, and the program constantly evaluates various conditions and executes commands based on whether or not those conditions are satisfied. The template of each one of the macros is this:

Loop:
PixelGetColor, color, 488, 778  ;gets pixel color of specific coordinate
if thecolor = 0x000000 ; if the color is black
{
    SendInput {Raw}f ;sends the f command to use item
    }

    else sleep 20
goto, Loop

So the macro loops, evaluating a pixel each 2 miliseconds, and sending input if the if statement is fulfilled.

Here is the problem: For each one of the macros that the user can check to run in the background, there is a different pixel color pinpointed, a different input sent, and a different coordinate to evaluate. How can I make an all-encompassing loop that takes into account the users check-box choices? For example, if the checkBox = 1 (selected), I could be like:

if(%Box1%=1) 
{
   Run above code
}

But if the user checks 1 and 2, I'll have to evaluate other coordinates, too. Like thus:

if(%Box1%=1 & %Box2%=2) 
{
   Run above code
            + 
   PixelGetColor, color2, 510, 778
   if thecolor = 0x000000
   {
         Send 1
         Sleep 20000
   goto, start
 }
  else, sleep 20

I don't want to have multiple different loops that run one after another because it would too slow, and I don't want to have to do a huge branch of all the possible 'if' permutations. Does anybody know what to do?

A: 

and I don't want to have to do a huge branch of all the possible 'if' permutations

The problem my friend is that that is the only solution. You have to check the status of each checkbox, so there is no jumping that part. If I could see your code I could send you an amendment for it, but you cannot paste the full code here. Try autohotkey.net/paste, and I will hopefully be able to help you.

RaptorX