Come one guys, I explained what I'm trying to do. My code is a little complex, not very self explanatory, and not optimized yet.
Here's the important parts: (theres no point in giving the entire program because it only works if you have the game running)
Func SetupGUI()
$g_Menu[0][0][0] = GUICtrlCreateMenu("&File")
$g_Menu[0][1][0] = GUICtrlCreateMenuitem("Load", $g_Menu[0][0][0])
$g_Menu[0][2][0] = GUICtrlCreateMenuitem("", $g_Menu[0][0][0]) ; create a separator line
GUICtrlSetState(-1, $GUI_DISABLE)
$g_Menu[0][3][0] = GUICtrlCreateMenuitem("Exit", $g_Menu[0][0][0])
GUICtrlSetOnEvent($g_Menu[0][3][0], "Event")
GUISetOnEvent($GUI_EVENT_CLOSE, "Event")
$g_Menu[1][0][0] = GUICtrlCreateMenu("&Command") ;change 5 to 0
For $id = 1 To UBOUND($g_Account) - 1
GUICtrlCreateMenu("Account " & $id, $g_Menu[1][0][0])
$g_Menu[1][$id][0] = GUICtrlCreateMenuitem("Queue", $g_Menu[1][$id][0])
$g_Menu[1][$id][1] = GUICtrlCreateMenuitem("Position", $g_Menu[1][$id][0])
$g_Menu[1][$id][2] = GUICtrlCreateMenuitem("Roam", $g_Menu[1][$id][0])
GUICtrlCreateMenu("Guard", $g_Menu[1][$id][0])
$g_Menu[1][$id][3] = GUICtrlCreateMenuitem("Graveyard", $g_Menu[1][$id][4])
$g_Menu[1][$id][4] = GUICtrlCreateMenuitem("Bunker", $g_Menu[1][$id][4])
$g_Menu[1][$id][5] = GUICtrlCreateMenuitem("Halt", $g_Menu[1][$id][0])
GUICtrlSetState($g_Menu[1][$id][5], $GUI_CHECKED)
GUICtrlSetOnEvent($g_Menu[1][$id][0], "Event")
GUICtrlSetOnEvent($g_Menu[1][$id][1], "Event")
GUICtrlSetOnEvent($g_Menu[1][$id][2], "Event")
GUICtrlSetOnEvent($g_Menu[1][$id][3], "Event")
GUICtrlSetOnEvent($g_Menu[1][$id][4], "Event")
GUICtrlSetOnEvent($g_Menu[1][$id][5], "Event")
$g_Menu[1][$id][8] = GUICtrlCreateMenuitem("", $g_Menu[1][$id][0])
$g_Menu[1][$id][9] = GUICtrlCreateMenuitem("Unload", $g_Menu[1][$id][0])
Next
GUICtrlSetOnEvent($g_Menu[3][1][0], "Event")
For $id = 1 To UBOUND($g_Account) - 1
;$g_Menu[4][$id][0] = GUICtrlCreateLabel("Account " & $id, 15 + 110 * ($id - 1), 10)
GUICtrlCreateGroup("Account " & $id, 15 + 110 * ($id - 1), 10, 95, 200)
$g_Menu[4][$id][0] = GUICtrlCreateRadio("Queue", 25 + 110 * ($id - 1), 25)
$g_Menu[4][$id][1] = GUICtrlCreateRadio("Position", 25 + 110 * ($id - 1), 45)
$g_Menu[4][$id][2] = GUICtrlCreateRadio("Roam", 25 + 110 * ($id - 1), 65)
;$g_Menu[4][$id][4] = GUICtrlCreateLabel("Guard", 25 + 110 * ($id - 1), 90)
GUICtrlCreateGroup("Guard", 22 + 110 * ($id - 1), 90, 81, 63)
$g_Menu[4][$id][3] = GUICtrlCreateRadio("Graveyard", 30 + 110 * ($id - 1), 105)
$g_Menu[4][$id][4] = GUICtrlCreateRadio("Bunker", 30 + 110 * ($id - 1), 125)
GUICtrlCreateGroup ("", -99, -99, 1, 1)
$g_Menu[4][$id][5] = GUICtrlCreateRadio("Halt", 25 + 110 * ($id - 1), 157)
GUICtrlCreateGroup ("", -99, -99, 1, 1)
GUICtrlSetState($g_Menu[4][$id][5], $GUI_CHECKED)
GUICtrlSetOnEvent($g_Menu[4][$id][0], "Event")
GUICtrlSetOnEvent($g_Menu[4][$id][1], "Event")
GUICtrlSetOnEvent($g_Menu[4][$id][2], "Event")
GUICtrlSetOnEvent($g_Menu[4][$id][3], "Event")
GUICtrlSetOnEvent($g_Menu[4][$id][4], "Event")
GUICtrlSetOnEvent($g_Menu[4][$id][5], "Event")
$g_Menu[6][$id][0] = GUICtrlCreateButton("Start", 20 + 110 * ($id - 1), 185, 40, 20)
$g_Menu[6][$id][1] = GUICtrlCreateButton("Stop", 65 + 110 * ($id - 1), 185, 40, 20)
GUICtrlSetState($g_Menu[6][$id][0], $GUI_FOCUS)
GUICtrlSetOnEvent($g_Menu[6][$id][0], "Event")
GUICtrlSetOnEvent($g_Menu[6][$id][1], "Event")
Next
$g_Menu[7][2][0] = GUICtrlCreateLabel("Ready", 0, 225, 125 + 125 * ($g_Window[0][0] - 1), 16, BitOr($SS_SIMPLE, $SS_SUNKEN))
GUISetState(@SW_SHOW, $g_GUI)
EndFunc
Func Event()
Local $msg = @GUI_CtrlId
For $id = 1 To UBOUND($g_Account) - 1
Switch $msg
Case $g_Menu[6][$id][0]
ContinueCase
Case $g_Menu[1][$id][0]
ContinueCase
Case $g_Menu[4][$id][0]
If UpdateStatus($id, 0) Then
;SetWindowState($id, "Hide")
EndIf
Case $g_Menu[1][$id][1]
ContinueCase
Case $g_Menu[4][$id][1]
If UpdateStatus($id, 1) Then
;SetWindowState($id, "Hide")
EndIf
Case $g_Menu[1][$id][2]
ContinueCase
Case $g_Menu[4][$id][2]
If UpdateStatus($id, 2) Then
;SetWindowState($id, "Hide")
EndIf
Case $g_Menu[1][$id][3]
ContinueCase
Case $g_Menu[4][$id][3]
If UpdateStatus($id, 3) Then
;SetWindowState($id, "Hide")
EndIf
Case $g_Menu[1][$id][4]
ContinueCase
Case $g_Menu[4][$id][4]
If UpdateStatus($id, 4) Then
;SetWindowState($id, "Hide")
EndIf
Case $g_Menu[6][$id][1]
ContinueCase
Case $g_Menu[1][$id][5]
ContinueCase
Case $g_Menu[4][$id][5]
If UpdateStatus($id, 5) Then
;SetWindowState($id, "Show")
EndIf
Case Else
EndSwitch
Next
EndFunc
Func UpdateStatus($id, $change)
Local $status = GetStatus($id)
If $status == $change Then
Return False
Else
;Msgbox(0, "State", $status & " " & $change)
If BitAnd(GUICtrlRead($g_Menu[1][$id][$status]), $GUI_CHECKED) Then
GUICtrlSetState($g_Menu[1][$id][$status], $GUI_UNCHECKED)
EndIf
If BitAnd(GUICtrlRead($g_Menu[4][$id][$status]), $GUI_CHECKED) Then
GUICtrlSetState($g_Menu[4][$id][$status], $GUI_UNCHECKED)
EndIf
SetStatus($id, $change)
If BitAnd(GUICtrlRead($g_Menu[1][$id][$change]), $GUI_UNCHECKED) Then
GUICtrlSetState($g_Menu[1][$id][$change], $GUI_CHECKED)
EndIf
If BitAnd(GUICtrlRead($g_Menu[4][$id][$change]), $GUI_UNCHECKED) Then
GUICtrlSetState($g_Menu[4][$id][$change], $GUI_CHECKED)
EndIf
Return True
EndIf
EndFunc
Func Jump($id)
SendKey($id, "{SPACE down}")
Sleep(100 + Rand(1, 50))
SendKey($id, "{SPACE up}")
Sleep(150000 + Rand(5000, 10000))
EndFunc
If $g_Window[0][0] > 0 Then
SetupGUI()
While 1
For $id = 1 To UBOUND($g_Account) - 1
Local $status = GetStatus($id)
Switch $status
Case 0
Queue($id)
UpdateStatus($id, 1)
Case 1
Position($id)
UpdateStatus($id, 2)
Case 2
Roam($id)
UpdateStatus($id, 3)
Case 3
Jump($id)
Case 4
Jump($id)
Case 5
Halt($id)
EndSwitch
Next
WEnd
EndIf