WoW BG bot: Moxzbot (timed macro input with a basic GUI) menu

User Tag List

Page 18 of 24 FirstFirst ... 141516171819202122 ... LastLast
Results 256 to 270 of 356
  1. #256
    greeeed's Avatar Private
    Reputation
    1
    Join Date
    Oct 2012
    Posts
    3
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks and yes it auto queue random/mount.

    WoW BG bot: Moxzbot (timed macro input with a basic GUI)
  2. #257
    Instinctlol's Avatar Member
    Reputation
    6
    Join Date
    Aug 2009
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What bgs do you guys have it que'd for? I am level 80 and trying to reach 90 with this. Any suggestion on what bg is the fastest?

  3. #258
    Wookiz's Avatar Member
    Reputation
    -2
    Join Date
    Aug 2009
    Posts
    76
    Thanks G/R
    3/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'd appreciate the source of this. You should know you would get many more users if we could see the code.
    EDIT: Nevermind, here it is.

    Code:
    Global Const $ws_tiled = 0
    Global Const $ws_overlapped = 0
    Global Const $ws_maximizebox = 65536
    Global Const $ws_minimizebox = 131072
    Global Const $ws_tabstop = 65536
    Global Const $ws_group = 131072
    Global Const $ws_sizebox = 262144
    Global Const $ws_thickframe = 262144
    Global Const $ws_sysmenu = 524288
    Global Const $ws_hscroll = 1048576
    Global Const $ws_vscroll = 2097152
    Global Const $ws_dlgframe = 4194304
    Global Const $ws_border = 8388608
    Global Const $ws_caption = 12582912
    Global Const $ws_overlappedwindow = 13565952
    Global Const $ws_tiledwindow = 13565952
    Global Const $ws_maximize = 16777216
    Global Const $ws_clipchildren = 33554432
    Global Const $ws_clipsiblings = 67108864
    Global Const $ws_disabled = 134217728
    Global Const $ws_visible = 268435456
    Global Const $ws_minimize = 536870912
    Global Const $ws_child = 1073741824
    Global Const $ws_popup = -2147483648
    Global Const $ws_popupwindow = -2138570752
    Global Const $ds_modalframe = 128
    Global Const $ds_setforeground = 512
    Global Const $ds_contexthelp = 8192
    Global Const $ws_ex_acceptfiles = 16
    Global Const $ws_ex_mdichild = 64
    Global Const $ws_ex_appwindow = 262144
    Global Const $ws_ex_composited = 33554432
    Global Const $ws_ex_clientedge = 512
    Global Const $ws_ex_contexthelp = 1024
    Global Const $ws_ex_dlgmodalframe = 1
    Global Const $ws_ex_leftscrollbar = 16384
    Global Const $ws_ex_overlappedwindow = 768
    Global Const $ws_ex_right = 4096
    Global Const $ws_ex_staticedge = 131072
    Global Const $ws_ex_toolwindow = 128
    Global Const $ws_ex_topmost = 8
    Global Const $ws_ex_transparent = 32
    Global Const $ws_ex_windowedge = 256
    Global Const $ws_ex_layered = 524288
    Global Const $ws_ex_controlparent = 65536
    Global Const $ws_ex_layoutrtl = 4194304
    Global Const $ws_ex_rtlreading = 8192
    Global Const $wm_gettextlength = 14
    Global Const $wm_gettext = 13
    Global Const $wm_size = 5
    Global Const $wm_sizing = 532
    Global Const $wm_user = 1024
    Global Const $wm_create = 1
    Global Const $wm_destroy = 2
    Global Const $wm_move = 3
    Global Const $wm_activate = 6
    Global Const $wm_setfocus = 7
    Global Const $wm_killfocus = 8
    Global Const $wm_enable = 10
    Global Const $wm_setredraw = 11
    Global Const $wm_settext = 12
    Global Const $wm_paint = 15
    Global Const $wm_close = 16
    Global Const $wm_queryendsession = 17
    Global Const $wm_quit = 18
    Global Const $wm_erasebkgnd = 20
    Global Const $wm_queryopen = 19
    Global Const $wm_syscolorchange = 21
    Global Const $wm_endsession = 22
    Global Const $wm_showwindow = 24
    Global Const $wm_settingchange = 26
    Global Const $wm_wininichange = 26
    Global Const $wm_devmodechange = 27
    Global Const $wm_activateapp = 28
    Global Const $wm_fontchange = 29
    Global Const $wm_timechange = 30
    Global Const $wm_cancelmode = 31
    Global Const $wm_ime_startcomposition = 269
    Global Const $wm_ime_endcomposition = 270
    Global Const $wm_ime_composition = 271
    Global Const $wm_ime_keylast = 271
    Global Const $wm_setcursor = 32
    Global Const $wm_mouseactivate = 33
    Global Const $wm_childactivate = 34
    Global Const $wm_queuesync = 35
    Global Const $wm_getminmaxinfo = 36
    Global Const $wm_painticon = 38
    Global Const $wm_iconerasebkgnd = 39
    Global Const $wm_nextdlgctl = 40
    Global Const $wm_spoolerstatus = 42
    Global Const $wm_drawitem = 43
    Global Const $wm_measureitem = 44
    Global Const $wm_deleteitem = 45
    Global Const $wm_vkeytoitem = 46
    Global Const $wm_chartoitem = 47
    Global Const $wm_setfont = 48
    Global Const $wm_getfont = 49
    Global Const $wm_sethotkey = 50
    Global Const $wm_gethotkey = 51
    Global Const $wm_querydragicon = 55
    Global Const $wm_compareitem = 57
    Global Const $wm_getobject = 61
    Global Const $wm_compacting = 65
    Global Const $wm_commnotify = 68
    Global Const $wm_windowposchanging = 70
    Global Const $wm_windowposchanged = 71
    Global Const $wm_power = 72
    Global Const $wm_notify = 78
    Global Const $wm_copydata = 74
    Global Const $wm_canceljournal = 75
    Global Const $wm_inputlangchangerequest = 80
    Global Const $wm_inputlangchange = 81
    Global Const $wm_tcard = 82
    Global Const $wm_help = 83
    Global Const $wm_userchanged = 84
    Global Const $wm_notifyformat = 85
    Global Const $wm_parentnotify = 528
    Global Const $wm_entermenuloop = 529
    Global Const $wm_exitmenuloop = 530
    Global Const $wm_nextmenu = 531
    Global Const $wm_capturechanged = 533
    Global Const $wm_moving = 534
    Global Const $wm_powerbroadcast = 536
    Global Const $wm_devicechange = 537
    Global Const $wm_mdicreate = 544
    Global Const $wm_mdidestroy = 545
    Global Const $wm_mdiactivate = 546
    Global Const $wm_mdirestore = 547
    Global Const $wm_mdinext = 548
    Global Const $wm_mdimaximize = 549
    Global Const $wm_mditile = 550
    Global Const $wm_mdicascade = 551
    Global Const $wm_mdiiconarrange = 552
    Global Const $wm_mdigetactive = 553
    Global Const $wm_mdisetmenu = 560
    Global Const $wm_entersizemove = 561
    Global Const $wm_exitsizemove = 562
    Global Const $wm_dropfiles = 563
    Global Const $wm_mdirefreshmenu = 564
    Global Const $wm_ime_setcontext = 641
    Global Const $wm_ime_notify = 642
    Global Const $wm_ime_control = 643
    Global Const $wm_ime_compositionfull = 644
    Global Const $wm_ime_select = 645
    Global Const $wm_ime_char = 646
    Global Const $wm_ime_request = 648
    Global Const $wm_ime_keydown = 656
    Global Const $wm_ime_keyup = 657
    Global Const $wm_ncmousehover = 672
    Global Const $wm_mousehover = 673
    Global Const $wm_ncmouseleave = 674
    Global Const $wm_mouseleave = 675
    Global Const $wm_wtssession_change = 689
    Global Const $wm_tablet_first = 704
    Global Const $wm_tablet_last = 735
    Global Const $wm_cut = 768
    Global Const $wm_copy = 769
    Global Const $wm_paste = 770
    Global Const $wm_clear = 771
    Global Const $wm_undo = 772
    Global Const $wm_paletteischanging = 784
    Global Const $wm_hotkey = 786
    Global Const $wm_palettechanged = 785
    Global Const $wm_print = 791
    Global Const $wm_printclient = 792
    Global Const $wm_appcommand = 793
    Global Const $wm_querynewpalette = 783
    Global Const $wm_themechanged = 794
    Global Const $wm_handheldfirst = 856
    Global Const $wm_handheldlast = 863
    Global Const $wm_afxfirst = 864
    Global Const $wm_afxlast = 895
    Global Const $wm_penwinfirst = 896
    Global Const $wm_penwinlast = 911
    Global Const $wm_contextmenu = 123
    Global Const $wm_stylechanging = 124
    Global Const $wm_stylechanged = 125
    Global Const $wm_displaychange = 126
    Global Const $wm_geticon = 127
    Global Const $wm_seticon = 128
    Global Const $wm_nccreate = 129
    Global Const $wm_ncdestroy = 130
    Global Const $wm_nccalcsize = 131
    Global Const $wm_nchittest = 132
    Global Const $wm_ncpaint = 133
    Global Const $wm_ncactivate = 134
    Global Const $wm_getdlgcode = 135
    Global Const $wm_syncpaint = 136
    Global Const $wm_ncmousemove = 160
    Global Const $wm_nclbuttondown = 161
    Global Const $wm_nclbuttonup = 162
    Global Const $wm_nclbuttondblclk = 163
    Global Const $wm_ncrbuttondown = 164
    Global Const $wm_ncrbuttonup = 165
    Global Const $wm_ncrbuttondblclk = 166
    Global Const $wm_ncmbuttondown = 167
    Global Const $wm_ncmbuttonup = 168
    Global Const $wm_ncmbuttondblclk = 169
    Global Const $wm_ncxbuttondown = 171
    Global Const $wm_ncxbuttonup = 172
    Global Const $wm_ncxbuttondblclk = 173
    Global Const $wm_keydown = 256
    Global Const $wm_keyfirst = 256
    Global Const $wm_keyup = 257
    Global Const $wm_char = 258
    Global Const $wm_deadchar = 259
    Global Const $wm_syskeydown = 260
    Global Const $wm_syskeyup = 261
    Global Const $wm_syschar = 262
    Global Const $wm_sysdeadchar = 263
    Global Const $wm_keylast = 265
    Global Const $wm_unichar = 265
    Global Const $wm_initdialog = 272
    Global Const $wm_command = 273
    Global Const $wm_syscommand = 274
    Global Const $wm_timer = 275
    Global Const $wm_hscroll = 276
    Global Const $wm_vscroll = 277
    Global Const $wm_initmenu = 278
    Global Const $wm_initmenupopup = 279
    Global Const $wm_menuselect = 287
    Global Const $wm_menuchar = 288
    Global Const $wm_enteridle = 289
    Global Const $wm_menurbuttonup = 290
    Global Const $wm_menudrag = 291
    Global Const $wm_menugetobject = 292
    Global Const $wm_uninitmenupopup = 293
    Global Const $wm_menucommand = 294
    Global Const $wm_changeuistate = 295
    Global Const $wm_updateuistate = 296
    Global Const $wm_queryuistate = 297
    Global Const $wm_ctlcolormsgbox = 306
    Global Const $wm_ctlcoloredit = 307
    Global Const $wm_ctlcolorlistbox = 308
    Global Const $wm_ctlcolorbtn = 309
    Global Const $wm_ctlcolordlg = 310
    Global Const $wm_ctlcolorscrollbar = 311
    Global Const $wm_ctlcolorstatic = 312
    Global Const $wm_ctlcolor = 25
    Global Const $mn_gethmenu = 481
    Global Const $wm_app = 32768
    Global Const $nm_first = 0
    Global Const $nm_outofmemory = $nm_first - 1
    Global Const $nm_click = $nm_first - 2
    Global Const $nm_dblclk = $nm_first - 3
    Global Const $nm_return = $nm_first - 4
    Global Const $nm_rclick = $nm_first - 5
    Global Const $nm_rdblclk = $nm_first - 6
    Global Const $nm_setfocus = $nm_first - 7
    Global Const $nm_killfocus = $nm_first - 8
    Global Const $nm_customdraw = $nm_first - 12
    Global Const $nm_hover = $nm_first - 13
    Global Const $nm_nchittest = $nm_first - 14
    Global Const $nm_keydown = $nm_first - 15
    Global Const $nm_releasedcapture = $nm_first - 16
    Global Const $nm_setcursor = $nm_first - 17
    Global Const $nm_char = $nm_first - 18
    Global Const $nm_tooltipscreated = $nm_first - 19
    Global Const $nm_ldown = $nm_first - 20
    Global Const $nm_rdown = $nm_first - 21
    Global Const $nm_themechanged = $nm_first - 22
    Global Const $wm_mousefirst = 512
    Global Const $wm_mousemove = 512
    Global Const $wm_lbuttondown = 513
    Global Const $wm_lbuttonup = 514
    Global Const $wm_lbuttondblclk = 515
    Global Const $wm_rbuttondown = 516
    Global Const $wm_rbuttonup = 517
    Global Const $wm_rbuttondblclk = 518
    Global Const $wm_mbuttondown = 519
    Global Const $wm_mbuttonup = 520
    Global Const $wm_mbuttondblclk = 521
    Global Const $wm_mousewheel = 522
    Global Const $wm_xbuttondown = 523
    Global Const $wm_xbuttonup = 524
    Global Const $wm_xbuttondblclk = 525
    Global Const $wm_mousehwheel = 526
    Global Const $ps_solid = 0
    Global Const $ps_dash = 1
    Global Const $ps_dot = 2
    Global Const $ps_dashdot = 3
    Global Const $ps_dashdotdot = 4
    Global Const $ps_null = 5
    Global Const $ps_insideframe = 6
    Global Const $lwa_alpha = 2
    Global Const $lwa_colorkey = 1
    Global Const $rgn_and = 1
    Global Const $rgn_or = 2
    Global Const $rgn_xor = 3
    Global Const $rgn_diff = 4
    Global Const $rgn_copy = 5
    Global Const $errorregion = 0
    Global Const $nullregion = 1
    Global Const $simpleregion = 2
    Global Const $complexregion = 3
    Global Const $transparent = 1
    Global Const $opaque = 2
    Global Const $ccm_first = 8192
    Global Const $ccm_getunicodeformat = ($ccm_first + 6)
    Global Const $ccm_setunicodeformat = ($ccm_first + 5)
    Global Const $ccm_setbkcolor = $ccm_first + 1
    Global Const $ccm_setcolorscheme = $ccm_first + 2
    Global Const $ccm_getcolorscheme = $ccm_first + 3
    Global Const $ccm_getdroptarget = $ccm_first + 4
    Global Const $ccm_setwindowtheme = $ccm_first + 11
    Global Const $ga_parent = 1
    Global Const $ga_root = 2
    Global Const $ga_rootowner = 3
    Global Const $sm_cxscreen = 0
    Global Const $sm_cyscreen = 1
    Global Const $sm_cxvscroll = 2
    Global Const $sm_cyhscroll = 3
    Global Const $sm_cycaption = 4
    Global Const $sm_cxborder = 5
    Global Const $sm_cyborder = 6
    Global Const $sm_cxdlgframe = 7
    Global Const $sm_cydlgframe = 8
    Global Const $sm_cyvthumb = 9
    Global Const $sm_cxhthumb = 10
    Global Const $sm_cxicon = 11
    Global Const $sm_cyicon = 12
    Global Const $sm_cxcursor = 13
    Global Const $sm_cycursor = 14
    Global Const $sm_cymenu = 15
    Global Const $sm_cxfullscreen = 16
    Global Const $sm_cyfullscreen = 17
    Global Const $sm_cykanjiwindow = 18
    Global Const $sm_mousepresent = 19
    Global Const $sm_cyvscroll = 20
    Global Const $sm_cxhscroll = 21
    Global Const $sm_debug = 22
    Global Const $sm_swapbutton = 23
    Global Const $sm_reserved1 = 24
    Global Const $sm_reserved2 = 25
    Global Const $sm_reserved3 = 26
    Global Const $sm_reserved4 = 27
    Global Const $sm_cxmin = 28
    Global Const $sm_cymin = 29
    Global Const $sm_cxsize = 30
    Global Const $sm_cysize = 31
    Global Const $sm_cxframe = 32
    Global Const $sm_cyframe = 33
    Global Const $sm_cxmintrack = 34
    Global Const $sm_cymintrack = 35
    Global Const $sm_cxdoubleclk = 36
    Global Const $sm_cydoubleclk = 37
    Global Const $sm_cxiconspacing = 38
    Global Const $sm_cyiconspacing = 39
    Global Const $sm_menudropalignment = 40
    Global Const $sm_penwindows = 41
    Global Const $sm_dbcsenabled = 42
    Global Const $sm_cmousebuttons = 43
    Global Const $sm_secure = 44
    Global Const $sm_cxedge = 45
    Global Const $sm_cyedge = 46
    Global Const $sm_cxminspacing = 47
    Global Const $sm_cyminspacing = 48
    Global Const $sm_cxsmicon = 49
    Global Const $sm_cysmicon = 50
    Global Const $sm_cysmcaption = 51
    Global Const $sm_cxsmsize = 52
    Global Const $sm_cysmsize = 53
    Global Const $sm_cxmenusize = 54
    Global Const $sm_cymenusize = 55
    Global Const $sm_arrange = 56
    Global Const $sm_cxminimized = 57
    Global Const $sm_cyminimized = 58
    Global Const $sm_cxmaxtrack = 59
    Global Const $sm_cymaxtrack = 60
    Global Const $sm_cxmaximized = 61
    Global Const $sm_cymaximized = 62
    Global Const $sm_network = 63
    Global Const $sm_cleanboot = 67
    Global Const $sm_cxdrag = 68
    Global Const $sm_cydrag = 69
    Global Const $sm_showsounds = 70
    Global Const $sm_cxmenucheck = 71
    Global Const $sm_cymenucheck = 72
    Global Const $sm_slowmachine = 73
    Global Const $sm_mideastenabled = 74
    Global Const $sm_mousewheelpresent = 75
    Global Const $sm_xvirtualscreen = 76
    Global Const $sm_yvirtualscreen = 77
    Global Const $sm_cxvirtualscreen = 78
    Global Const $sm_cyvirtualscreen = 79
    Global Const $sm_cmonitors = 80
    Global Const $sm_samedisplayformat = 81
    Global Const $sm_immenabled = 82
    Global Const $sm_cxfocusborder = 83
    Global Const $sm_cyfocusborder = 84
    Global Const $sm_tabletpc = 86
    Global Const $sm_mediacenter = 87
    Global Const $sm_starter = 88
    Global Const $sm_serverr2 = 89
    Global Const $sm_cmetrics = 90
    Global Const $sm_remotesession = 4096
    Global Const $sm_shuttingdown = 8192
    Global Const $sm_remotecontrol = 8193
    Global Const $sm_caretblinkingenabled = 8194
    Global Const $blackness = 66
    Global Const $captureblt = 1073741824
    Global Const $dstinvert = 5570569
    Global Const $mergecopy = 12583114
    Global Const $mergepaint = 12255782
    Global Const $nomirrorbitmap = -2147483648
    Global Const $notsrccopy = 3342344
    Global Const $notsrcerase = 1114278
    Global Const $patcopy = 15728673
    Global Const $patinvert = 5898313
    Global Const $patpaint = 16452105
    Global Const $srcand = 8913094
    Global Const $srccopy = 13369376
    Global Const $srcerase = 4457256
    Global Const $srcinvert = 6684742
    Global Const $srcpaint = 15597702
    Global Const $whiteness = 16711778
    Global Const $dt_bottom = 8
    Global Const $dt_calcrect = 1024
    Global Const $dt_center = 1
    Global Const $dt_editcontrol = 8192
    Global Const $dt_end_ellipsis = 32768
    Global Const $dt_expandtabs = 64
    Global Const $dt_externalleading = 512
    Global Const $dt_hideprefix = 1048576
    Global Const $dt_internal = 4096
    Global Const $dt_left = 0
    Global Const $dt_modifystring = 65536
    Global Const $dt_noclip = 256
    Global Const $dt_nofullwidthcharbreak = 524288
    Global Const $dt_noprefix = 2048
    Global Const $dt_path_ellipsis = 16384
    Global Const $dt_prefixonly = 2097152
    Global Const $dt_right = 2
    Global Const $dt_rtlreading = 131072
    Global Const $dt_singleline = 32
    Global Const $dt_tabstop = 128
    Global Const $dt_top = 0
    Global Const $dt_vcenter = 4
    Global Const $dt_wordbreak = 16
    Global Const $dt_word_ellipsis = 262144
    Global Const $rdw_erase = 4
    Global Const $rdw_frame = 1024
    Global Const $rdw_internalpaint = 2
    Global Const $rdw_invalidate = 1
    Global Const $rdw_noerase = 32
    Global Const $rdw_noframe = 2048
    Global Const $rdw_nointernalpaint = 16
    Global Const $rdw_validate = 8
    Global Const $rdw_erasenow = 512
    Global Const $rdw_updatenow = 256
    Global Const $rdw_allchildren = 128
    Global Const $rdw_nochildren = 64
    Global Const $wm_renderformat = 773
    Global Const $wm_renderallformats = 774
    Global Const $wm_destroyclipboard = 775
    Global Const $wm_drawclipboard = 776
    Global Const $wm_paintclipboard = 777
    Global Const $wm_vscrollclipboard = 778
    Global Const $wm_sizeclipboard = 779
    Global Const $wm_askcbformatname = 780
    Global Const $wm_changecbchain = 781
    Global Const $wm_hscrollclipboard = 782
    Global Const $hterror = -2
    Global Const $httransparent = -1
    Global Const $htnowhere = 0
    Global Const $htclient = 1
    Global Const $htcaption = 2
    Global Const $htsysmenu = 3
    Global Const $htgrowbox = 4
    Global Const $htsize = $htgrowbox
    Global Const $htmenu = 5
    Global Const $hthscroll = 6
    Global Const $htvscroll = 7
    Global Const $htminbutton = 8
    Global Const $htmaxbutton = 9
    Global Const $htleft = 10
    Global Const $htright = 11
    Global Const $httop = 12
    Global Const $httopleft = 13
    Global Const $httopright = 14
    Global Const $htbottom = 15
    Global Const $htbottomleft = 16
    Global Const $htbottomright = 17
    Global Const $htborder = 18
    Global Const $htreduce = $htminbutton
    Global Const $htzoom = $htmaxbutton
    Global Const $htsizefirst = $htleft
    Global Const $htsizelast = $htbottomright
    Global Const $htobject = 19
    Global Const $htclose = 20
    Global Const $hthelp = 21
    Global Const $color_scrollbar = 0
    Global Const $color_background = 1
    Global Const $color_activecaption = 2
    Global Const $color_inactivecaption = 3
    Global Const $color_menu = 4
    Global Const $color_window = 5
    Global Const $color_windowframe = 6
    Global Const $color_menutext = 7
    Global Const $color_windowtext = 8
    Global Const $color_captiontext = 9
    Global Const $color_activeborder = 10
    Global Const $color_inactiveborder = 11
    Global Const $color_appworkspace = 12
    Global Const $color_highlight = 13
    Global Const $color_highlighttext = 14
    Global Const $color_btnface = 15
    Global Const $color_btnshadow = 16
    Global Const $color_graytext = 17
    Global Const $color_btntext = 18
    Global Const $color_inactivecaptiontext = 19
    Global Const $color_btnhighlight = 20
    Global Const $color_3ddkshadow = 21
    Global Const $color_3dlight = 22
    Global Const $color_infotext = 23
    Global Const $color_infobk = 24
    Global Const $color_hotlight = 26
    Global Const $color_gradientactivecaption = 27
    Global Const $color_gradientinactivecaption = 28
    Global Const $color_menuhilight = 29
    Global Const $color_menubar = 30
    Global Const $color_desktop = 1
    Global Const $color_3dface = 15
    Global Const $color_3dshadow = 16
    Global Const $color_3dhighlight = 20
    Global Const $color_3dhilight = 20
    Global Const $color_btnhilight = 20
    Global Const $hinst_commctrl = -1
    Global Const $idb_std_small_color = 0
    Global Const $idb_std_large_color = 1
    Global Const $idb_view_small_color = 4
    Global Const $idb_view_large_color = 5
    Global Const $idb_hist_small_color = 8
    Global Const $idb_hist_large_color = 9
    Global Const $startf_forceofffeedback = 128
    Global Const $startf_forceonfeedback = 64
    Global Const $startf_runfullscreen = 32
    Global Const $startf_usecountchars = 8
    Global Const $startf_usefillattribute = 16
    Global Const $startf_usehotkey = 512
    Global Const $startf_useposition = 4
    Global Const $startf_useshowwindow = 1
    Global Const $startf_usesize = 2
    Global Const $startf_usestdhandles = 256
    Global Const $cdds_prepaint = 1
    Global Const $cdds_postpaint = 2
    Global Const $cdds_preerase = 3
    Global Const $cdds_posterase = 4
    Global Const $cdds_item = 65536
    Global Const $cdds_itemprepaint = 65537
    Global Const $cdds_itempostpaint = 65538
    Global Const $cdds_itempreerase = 65539
    Global Const $cdds_itemposterase = 65540
    Global Const $cdds_subitem = 131072
    Global Const $cdis_selected = 1
    Global Const $cdis_grayed = 2
    Global Const $cdis_disabled = 4
    Global Const $cdis_checked = 8
    Global Const $cdis_focus = 16
    Global Const $cdis_default = 32
    Global Const $cdis_hot = 64
    Global Const $cdis_marked = 128
    Global Const $cdis_indeterminate = 256
    Global Const $cdis_showkeyboardcues = 512
    Global Const $cdis_nearhot = 1024
    Global Const $cdis_othersidehot = 2048
    Global Const $cdis_drophilited = 4096
    Global Const $cdrf_dodefault = 0
    Global Const $cdrf_newfont = 2
    Global Const $cdrf_skipdefault = 4
    Global Const $cdrf_notifypostpaint = 16
    Global Const $cdrf_notifyitemdraw = 32
    Global Const $cdrf_notifysubitemdraw = 32
    Global Const $cdrf_notifyposterase = 64
    Global Const $cdrf_doerase = 8
    Global Const $cdrf_skippostpaint = 256
    Global Const $gui_ss_default_gui = BitOR($ws_minimizebox, $ws_caption, $ws_popup, $ws_sysmenu)
    Global Const $ss_left = 0
    Global Const $ss_center = 1
    Global Const $ss_right = 2
    Global Const $ss_icon = 3
    Global Const $ss_blackrect = 4
    Global Const $ss_grayrect = 5
    Global Const $ss_whiterect = 6
    Global Const $ss_blackframe = 7
    Global Const $ss_grayframe = 8
    Global Const $ss_whiteframe = 9
    Global Const $ss_simple = 11
    Global Const $ss_leftnowordwrap = 12
    Global Const $ss_bitmap = 14
    Global Const $ss_etchedhorz = 16
    Global Const $ss_etchedvert = 17
    Global Const $ss_etchedframe = 18
    Global Const $ss_noprefix = 128
    Global Const $ss_notify = 256
    Global Const $ss_centerimage = 512
    Global Const $ss_rightjust = 1024
    Global Const $ss_sunken = 4096
    Global Const $gui_ss_default_label = 0
    Global Const $gui_ss_default_graphic = 0
    Global Const $gui_ss_default_icon = $ss_notify
    Global Const $gui_ss_default_pic = $ss_notify
    Global Const $gui_event_close = -3
    Global Const $gui_event_minimize = -4
    Global Const $gui_event_restore = -5
    Global Const $gui_event_maximize = -6
    Global Const $gui_event_primarydown = -7
    Global Const $gui_event_primaryup = -8
    Global Const $gui_event_secondarydown = -9
    Global Const $gui_event_secondaryup = -10
    Global Const $gui_event_mousemove = -11
    Global Const $gui_event_resized = -12
    Global Const $gui_event_dropped = -13
    Global Const $gui_rundefmsg = "GUI_RUNDEFMSG"
    Global Const $gui_avistop = 0
    Global Const $gui_avistart = 1
    Global Const $gui_aviclose = 2
    Global Const $gui_checked = 1
    Global Const $gui_indeterminate = 2
    Global Const $gui_unchecked = 4
    Global Const $gui_dropaccepted = 8
    Global Const $gui_nodropaccepted = 4096
    Global Const $gui_acceptfiles = $gui_dropaccepted
    Global Const $gui_show = 16
    Global Const $gui_hide = 32
    Global Const $gui_enable = 64
    Global Const $gui_disable = 128
    Global Const $gui_focus = 256
    Global Const $gui_nofocus = 8192
    Global Const $gui_defbutton = 512
    Global Const $gui_expand = 1024
    Global Const $gui_ontop = 2048
    Global Const $gui_fontitalic = 2
    Global Const $gui_fontunder = 4
    Global Const $gui_fontstrike = 8
    Global Const $gui_dockauto = 1
    Global Const $gui_dockleft = 2
    Global Const $gui_dockright = 4
    Global Const $gui_dockhcenter = 8
    Global Const $gui_docktop = 32
    Global Const $gui_dockbottom = 64
    Global Const $gui_dockvcenter = 128
    Global Const $gui_dockwidth = 256
    Global Const $gui_dockheight = 512
    Global Const $gui_docksize = 768
    Global Const $gui_dockmenubar = 544
    Global Const $gui_dockstatebar = 576
    Global Const $gui_dockall = 802
    Global Const $gui_dockborders = 102
    Global Const $gui_gr_close = 1
    Global Const $gui_gr_line = 2
    Global Const $gui_gr_bezier = 4
    Global Const $gui_gr_move = 6
    Global Const $gui_gr_color = 8
    Global Const $gui_gr_rect = 10
    Global Const $gui_gr_ellipse = 12
    Global Const $gui_gr_pie = 14
    Global Const $gui_gr_dot = 16
    Global Const $gui_gr_pixel = 18
    Global Const $gui_gr_hint = 20
    Global Const $gui_gr_refresh = 22
    Global Const $gui_gr_pensize = 24
    Global Const $gui_gr_nobkcolor = -2
    Global Const $gui_bkcolor_default = -1
    Global Const $gui_bkcolor_transparent = -2
    Global Const $gui_bkcolor_lv_alternate = -33554432
    Global Const $gui_ws_ex_parentdrag = 1048576
    Global Const $bs_groupbox = 7
    Global Const $bs_bottom = 2048
    Global Const $bs_center = 768
    Global Const $bs_defpushbutton = 1
    Global Const $bs_left = 256
    Global Const $bs_multiline = 8192
    Global Const $bs_pushbox = 10
    Global Const $bs_pushlike = 4096
    Global Const $bs_right = 512
    Global Const $bs_rightbutton = 32
    Global Const $bs_top = 1024
    Global Const $bs_vcenter = 3072
    Global Const $bs_flat = 32768
    Global Const $bs_icon = 64
    Global Const $bs_bitmap = 128
    Global Const $bs_notify = 16384
    Global Const $bs_splitbutton = 12
    Global Const $bs_defsplitbutton = 13
    Global Const $bs_commandlink = 14
    Global Const $bs_defcommandlink = 15
    Global Const $bcsif_glyph = 1
    Global Const $bcsif_image = 2
    Global Const $bcsif_style = 4
    Global Const $bcsif_size = 8
    Global Const $bcss_nosplit = 1
    Global Const $bcss_stretch = 2
    Global Const $bcss_alignleft = 4
    Global Const $bcss_image = 8
    Global Const $button_imagelist_align_left = 0
    Global Const $button_imagelist_align_right = 1
    Global Const $button_imagelist_align_top = 2
    Global Const $button_imagelist_align_bottom = 3
    Global Const $button_imagelist_align_center = 4
    Global Const $bs_3state = 5
    Global Const $bs_auto3state = 6
    Global Const $bs_autocheckbox = 3
    Global Const $bs_checkbox = 2
    Global Const $bs_radiobutton = 4
    Global Const $bs_autoradiobutton = 9
    Global Const $bs_ownerdraw = 11
    Global Const $gui_ss_default_button = 0
    Global Const $gui_ss_default_checkbox = 0
    Global Const $gui_ss_default_group = 0
    Global Const $gui_ss_default_radio = 0
    Global Const $bcm_first = 5632
    Global Const $bcm_getidealsize = ($bcm_first + 1)
    Global Const $bcm_getimagelist = ($bcm_first + 3)
    Global Const $bcm_getnote = ($bcm_first + 10)
    Global Const $bcm_getnotelength = ($bcm_first + 11)
    Global Const $bcm_getsplitinfo = ($bcm_first + 8)
    Global Const $bcm_gettextmargin = ($bcm_first + 5)
    Global Const $bcm_setdropdownstate = ($bcm_first + 6)
    Global Const $bcm_setimagelist = ($bcm_first + 2)
    Global Const $bcm_setnote = ($bcm_first + 9)
    Global Const $bcm_setshield = ($bcm_first + 12)
    Global Const $bcm_setsplitinfo = ($bcm_first + 7)
    Global Const $bcm_settextmargin = ($bcm_first + 4)
    Global Const $bm_click = 245
    Global Const $bm_getcheck = 240
    Global Const $bm_getimage = 246
    Global Const $bm_getstate = 242
    Global Const $bm_setcheck = 241
    Global Const $bm_setdontclick = 248
    Global Const $bm_setimage = 247
    Global Const $bm_setstate = 243
    Global Const $bm_setstyle = 244
    Global Const $bcn_first = -1250
    Global Const $bcn_dropdown = ($bcn_first + 2)
    Global Const $bcn_hotitemchange = ($bcn_first + 1)
    Global Const $bn_clicked = 0
    Global Const $bn_paint = 1
    Global Const $bn_hilite = 2
    Global Const $bn_unhilite = 3
    Global Const $bn_disable = 4
    Global Const $bn_doubleclicked = 5
    Global Const $bn_setfocus = 6
    Global Const $bn_killfocus = 7
    Global Const $bn_pushed = $bn_hilite
    Global Const $bn_unpushed = $bn_unhilite
    Global Const $bn_dblclk = $bn_doubleclicked
    Global Const $bst_checked = 1
    Global Const $bst_indeterminate = 2
    Global Const $bst_unchecked = 0
    Global Const $bst_focus = 8
    Global Const $bst_pushed = 4
    Global Const $bst_dontclick = 128
    
    Func _arrayadd(ByRef $avarray, $vvalue)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
    	If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, -1)
    	Local $iubound = UBound($avarray)
    	ReDim $avarray[$iubound + 1]
    	$avarray[$iubound] = $vvalue
    	Return $iubound
    EndFunc
    
    Func _arraybinarysearch(Const ByRef $avarray, $vvalue, $istart = 0, $iend = 0)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
    	If UBound($avarray, 0) <> 1 Then Return SetError(5, 0, -1)
    	Local $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(4, 0, -1)
    	Local $imid = Int(($iend + $istart) / 2)
    	If $avarray[$istart] > $vvalue OR $avarray[$iend] < $vvalue Then Return SetError(2, 0, -1)
    	While $istart <= $imid AND $vvalue <> $avarray[$imid]
    		If $vvalue < $avarray[$imid] Then
    			$iend = $imid - 1
    		Else
    			$istart = $imid + 1
    		EndIf
    		$imid = Int(($iend + $istart) / 2)
    	WEnd
    	If $istart > $iend Then Return SetError(3, 0, -1)
    	Return $imid
    EndFunc
    
    Func _arraycombinations(ByRef $avarray, $iset, $sdelim = "")
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
    	Local $in = UBound($avarray)
    	Local $ir = $iset
    	Local $aidx[$ir]
    	For $i = 0 To $ir - 1
    		$aidx[$i] = $i
    	Next
    	Local $itotal = __array_combinations($in, $ir)
    	Local $ileft = $itotal
    	Local $aresult[$itotal + 1]
    	$aresult[0] = $itotal
    	Local $icount = 1
    	While $ileft > 0
    		__array_getnext($in, $ir, $ileft, $itotal, $aidx)
    		For $i = 0 To $iset - 1
    			$aresult[$icount] &= $avarray[$aidx[$i]] & $sdelim
    		Next
    		If $sdelim <> "" Then $aresult[$icount] = StringTrimRight($aresult[$icount], 1)
    		$icount += 1
    	WEnd
    	Return $aresult
    EndFunc
    
    Func _arrayconcatenate(ByRef $avarraytarget, Const ByRef $avarraysource, $istart = 0)
    	If NOT IsArray($avarraytarget) Then Return SetError(1, 0, 0)
    	If NOT IsArray($avarraysource) Then Return SetError(2, 0, 0)
    	If UBound($avarraytarget, 0) <> 1 Then
    		If UBound($avarraysource, 0) <> 1 Then Return SetError(5, 0, 0)
    		Return SetError(3, 0, 0)
    	EndIf
    	If UBound($avarraysource, 0) <> 1 Then Return SetError(4, 0, 0)
    	Local $iuboundtarget = UBound($avarraytarget) - $istart, $iuboundsource = UBound($avarraysource)
    	ReDim $avarraytarget[$iuboundtarget + $iuboundsource]
    	For $i = $istart To $iuboundsource - 1
    		$avarraytarget[$iuboundtarget + $i] = $avarraysource[$i]
    	Next
    	Return $iuboundtarget + $iuboundsource
    EndFunc
    
    Func _arraycreate($v_0, $v_1 = 0, $v_2 = 0, $v_3 = 0, $v_4 = 0, $v_5 = 0, $v_6 = 0, $v_7 = 0, $v_8 = 0, $v_9 = 0, $v_10 = 0, $v_11 = 0, $v_12 = 0, $v_13 = 0, $v_14 = 0, $v_15 = 0, $v_16 = 0, $v_17 = 0, $v_18 = 0, $v_19 = 0, $v_20 = 0)
    	Local $av_array[21] = [$v_0, $v_1, $v_2, $v_3, $v_4, $v_5, $v_6, $v_7, $v_8, $v_9, $v_10, $v_11, $v_12, $v_13, $v_14, $v_15, $v_16, $v_17, $v_18, $v_19, $v_20]
    	ReDim $av_array[@NumParams]
    	Return $av_array
    EndFunc
    
    Func _arraydelete(ByRef $avarray, $ielement)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	Local $iubound = UBound($avarray, 1) - 1
    	If NOT $iubound Then
    		$avarray = ""
    		Return 0
    	EndIf
    	If $ielement < 0 Then $ielement = 0
    	If $ielement > $iubound Then $ielement = $iubound
    	Switch UBound($avarray, 0)
    		Case 1
    			For $i = $ielement To $iubound - 1
    				$avarray[$i] = $avarray[$i + 1]
    			Next
    			ReDim $avarray[$iubound]
    		Case 2
    			Local $isubmax = UBound($avarray, 2) - 1
    			For $i = $ielement To $iubound - 1
    				For $j = 0 To $isubmax
    					$avarray[$i][$j] = $avarray[$i + 1][$j]
    				Next
    			Next
    			ReDim $avarray[$iubound][$isubmax + 1]
    		Case Else
    			Return SetError(3, 0, 0)
    	EndSwitch
    	Return $iubound
    EndFunc
    
    Func _arraydisplay(Const ByRef $avarray, $stitle = "Array: ListView Display", $iitemlimit = -1, $itranspose = 0, $sseparator = "", $sreplace = "|", $sheader = "")
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	Local $idimension = UBound($avarray, 0), $iubound = UBound($avarray, 1) - 1, $isubmax = UBound($avarray, 2) - 1
    	If $idimension > 2 Then Return SetError(2, 0, 0)
    	If $sseparator = "" Then $sseparator = Chr(124)
    	If _arraysearch($avarray, $sseparator, 0, 0, 0, 1) <> -1 Then
    		For $x = 1 To 255
    			If $x >= 32 AND $x <= 127 Then ContinueLoop 
    			Local $sfind = _arraysearch($avarray, Chr($x), 0, 0, 0, 1)
    			If $sfind = -1 Then
    				$sseparator = Chr($x)
    				ExitLoop 
    			EndIf
    		Next
    	EndIf
    	Local $vtmp, $ibuffer = 4094
    	Local $icollimit = 250
    	Local $ioneventmode = Opt("GUIOnEventMode", 0), $sdataseparatorchar = Opt("GUIDataSeparatorChar", $sseparator)
    	If $isubmax < 0 Then $isubmax = 0
    	If $itranspose Then
    		$vtmp = $iubound
    		$iubound = $isubmax
    		$isubmax = $vtmp
    	EndIf
    	If $isubmax > $icollimit Then $isubmax = $icollimit
    	If $iitemlimit < 1 Then $iitemlimit = $iubound
    	If $iubound > $iitemlimit Then $iubound = $iitemlimit
    	If $sheader = "" Then
    		$sheader = "Row  "
    		For $i = 0 To $isubmax
    			$sheader &= $sseparator & "Col " & $i
    		Next
    	EndIf
    	Local $avarraytext[$iubound + 1]
    	For $i = 0 To $iubound
    		$avarraytext[$i] = "[" & $i & "]"
    		For $j = 0 To $isubmax
    			If $idimension = 1 Then
    				If $itranspose Then
    					$vtmp = $avarray[$j]
    				Else
    					$vtmp = $avarray[$i]
    				EndIf
    			Else
    				If $itranspose Then
    					$vtmp = $avarray[$j][$i]
    				Else
    					$vtmp = $avarray[$i][$j]
    				EndIf
    			EndIf
    			$vtmp = StringReplace($vtmp, $sseparator, $sreplace, 0, 1)
    			If StringLen($vtmp) > $ibuffer Then $vtmp = StringLeft($vtmp, $ibuffer)
    			$avarraytext[$i] &= $sseparator & $vtmp
    		Next
    	Next
    	Local Const $_arrayconstant_gui_dockborders = 102
    	Local Const $_arrayconstant_gui_dockbottom = 64
    	Local Const $_arrayconstant_gui_dockheight = 512
    	Local Const $_arrayconstant_gui_dockleft = 2
    	Local Const $_arrayconstant_gui_dockright = 4
    	Local Const $_arrayconstant_gui_event_close = -3
    	Local Const $_arrayconstant_lvm_getcolumnwidth = (4096 + 29)
    	Local Const $_arrayconstant_lvm_getitemcount = (4096 + 4)
    	Local Const $_arrayconstant_lvm_getitemstate = (4096 + 44)
    	Local Const $_arrayconstant_lvm_setextendedlistviewstyle = (4096 + 54)
    	Local Const $_arrayconstant_lvs_ex_fullrowselect = 32
    	Local Const $_arrayconstant_lvs_ex_gridlines = 1
    	Local Const $_arrayconstant_lvs_showselalways = 8
    	Local Const $_arrayconstant_ws_ex_clientedge = 512
    	Local Const $_arrayconstant_ws_maximizebox = 65536
    	Local Const $_arrayconstant_ws_minimizebox = 131072
    	Local Const $_arrayconstant_ws_sizebox = 262144
    	Local $iwidth = 640, $iheight = 480
    	Local $hgui = GUICreate($stitle, $iwidth, $iheight, Default, Default, BitOR($_arrayconstant_ws_sizebox, $_arrayconstant_ws_minimizebox, $_arrayconstant_ws_maximizebox))
    	Local $aiguisize = WinGetClientSize($hgui)
    	Local $hlistview = GUICtrlCreateListView($sheader, 0, 0, $aiguisize[0], $aiguisize[1] - 26, $_arrayconstant_lvs_showselalways)
    	Local $hcopy = GUICtrlCreateButton("Copy Selected", 3, $aiguisize[1] - 23, $aiguisize[0] - 6, 20)
    	GUICtrlSetResizing($hlistview, $_arrayconstant_gui_dockborders)
    	GUICtrlSetResizing($hcopy, $_arrayconstant_gui_dockleft + $_arrayconstant_gui_dockright + $_arrayconstant_gui_dockbottom + $_arrayconstant_gui_dockheight)
    	GUICtrlSendMsg($hlistview, $_arrayconstant_lvm_setextendedlistviewstyle, $_arrayconstant_lvs_ex_gridlines, $_arrayconstant_lvs_ex_gridlines)
    	GUICtrlSendMsg($hlistview, $_arrayconstant_lvm_setextendedlistviewstyle, $_arrayconstant_lvs_ex_fullrowselect, $_arrayconstant_lvs_ex_fullrowselect)
    	GUICtrlSendMsg($hlistview, $_arrayconstant_lvm_setextendedlistviewstyle, $_arrayconstant_ws_ex_clientedge, $_arrayconstant_ws_ex_clientedge)
    	For $i = 0 To $iubound
    		GUICtrlCreateListViewItem($avarraytext[$i], $hlistview)
    	Next
    	$iwidth = 0
    	For $i = 0 To $isubmax + 1
    		$iwidth += GUICtrlSendMsg($hlistview, $_arrayconstant_lvm_getcolumnwidth, $i, 0)
    	Next
    	If $iwidth < 250 Then $iwidth = 230
    	$iwidth += 20
    	If $iwidth > @DesktopWidth Then $iwidth = @DesktopWidth - 100
    	WinMove($hgui, "", (@DesktopWidth - $iwidth) / 2, Default, $iwidth)
    	GUISetState(@SW_SHOW, $hgui)
    	While 1
    		Switch GUIGetMsg()
    			Case $_arrayconstant_gui_event_close
    				ExitLoop 
    			Case $hcopy
    				Local $sclip = ""
    				Local $aicuritems[1] = [0]
    				For $i = 0 To GUICtrlSendMsg($hlistview, $_arrayconstant_lvm_getitemcount, 0, 0)
    					If GUICtrlSendMsg($hlistview, $_arrayconstant_lvm_getitemstate, $i, 2) Then
    						$aicuritems[0] += 1
    						ReDim $aicuritems[$aicuritems[0] + 1]
    						$aicuritems[$aicuritems[0]] = $i
    					EndIf
    				Next
    				If NOT $aicuritems[0] Then
    					For $sitem In $avarraytext
    						$sclip &= $sitem & @CRLF
    					Next
    				Else
    					For $i = 1 To UBound($aicuritems) - 1
    						$sclip &= $avarraytext[$aicuritems[$i]] & @CRLF
    					Next
    				EndIf
    				ClipPut($sclip)
    		EndSwitch
    	WEnd
    	GUIDelete($hgui)
    	Opt("GUIOnEventMode", $ioneventmode)
    	Opt("GUIDataSeparatorChar", $sdataseparatorchar)
    	Return 1
    EndFunc
    
    Func _arrayfindall(Const ByRef $avarray, $vvalue, $istart = 0, $iend = 0, $icase = 0, $icompare = 0, $isubitem = 0)
    	$istart = _arraysearch($avarray, $vvalue, $istart, $iend, $icase, $icompare, 1, $isubitem)
    	If @error Then Return SetError(@error, 0, -1)
    	Local $iindex = 0, $avresult[UBound($avarray)]
    	Do
    		$avresult[$iindex] = $istart
    		$iindex += 1
    		$istart = _arraysearch($avarray, $vvalue, $istart + 1, $iend, $icase, $icompare, 1, $isubitem)
    	Until @error
    	ReDim $avresult[$iindex]
    	Return $avresult
    EndFunc
    
    Func _arrayinsert(ByRef $avarray, $ielement, $vvalue = "")
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
    	Local $iubound = UBound($avarray) + 1
    	ReDim $avarray[$iubound]
    	For $i = $iubound - 1 To $ielement + 1 Step -1
    		$avarray[$i] = $avarray[$i - 1]
    	Next
    	$avarray[$ielement] = $vvalue
    	Return $iubound
    EndFunc
    
    Func _arraymax(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
    	Local $iresult = _arraymaxindex($avarray, $icompnumeric, $istart, $iend)
    	If @error Then Return SetError(@error, 0, "")
    	Return $avarray[$iresult]
    EndFunc
    
    Func _arraymaxindex(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
    	If NOT IsArray($avarray) OR UBound($avarray, 0) <> 1 Then Return SetError(1, 0, -1)
    	If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, -1)
    	Local $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(2, 0, -1)
    	Local $imaxindex = $istart
    	If $icompnumeric Then
    		For $i = $istart To $iend
    			If Number($avarray[$imaxindex]) < Number($avarray[$i]) Then $imaxindex = $i
    		Next
    	Else
    		For $i = $istart To $iend
    			If $avarray[$imaxindex] < $avarray[$i] Then $imaxindex = $i
    		Next
    	EndIf
    	Return $imaxindex
    EndFunc
    
    Func _arraymin(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
    	Local $iresult = _arrayminindex($avarray, $icompnumeric, $istart, $iend)
    	If @error Then Return SetError(@error, 0, "")
    	Return $avarray[$iresult]
    EndFunc
    
    Func _arrayminindex(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
    	If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, -1)
    	Local $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(2, 0, -1)
    	Local $iminindex = $istart
    	If $icompnumeric Then
    		For $i = $istart To $iend
    			If Number($avarray[$iminindex]) > Number($avarray[$i]) Then $iminindex = $i
    		Next
    	Else
    		For $i = $istart To $iend
    			If $avarray[$iminindex] > $avarray[$i] Then $iminindex = $i
    		Next
    	EndIf
    	Return $iminindex
    EndFunc
    
    Func _arraypermute(ByRef $avarray, $sdelim = "")
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
    	Local $isize = UBound($avarray), $ifactorial = 1, $aidx[$isize], $aresult[1], $icount = 1
    	For $i = 0 To $isize - 1
    		$aidx[$i] = $i
    	Next
    	For $i = $isize To 1 Step -1
    		$ifactorial *= $i
    	Next
    	ReDim $aresult[$ifactorial + 1]
    	$aresult[0] = $ifactorial
    	__array_exeterinternal($avarray, 0, $isize, $sdelim, $aidx, $aresult, $icount)
    	Return $aresult
    EndFunc
    
    Func _arraypop(ByRef $avarray)
    	If (NOT IsArray($avarray)) Then Return SetError(1, 0, "")
    	If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, "")
    	Local $iubound = UBound($avarray) - 1, $slastval = $avarray[$iubound]
    	If NOT $iubound Then
    		$avarray = ""
    	Else
    		ReDim $avarray[$iubound]
    	EndIf
    	Return $slastval
    EndFunc
    
    Func _arraypush(ByRef $avarray, $vvalue, $idirection = 0)
    	If (NOT IsArray($avarray)) Then Return SetError(1, 0, 0)
    	If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, 0)
    	Local $iubound = UBound($avarray) - 1
    	If IsArray($vvalue) Then
    		Local $iubounds = UBound($vvalue)
    		If ($iubounds - 1) > $iubound Then Return SetError(2, 0, 0)
    		If $idirection Then
    			For $i = $iubound To $iubounds Step -1
    				$avarray[$i] = $avarray[$i - $iubounds]
    			Next
    			For $i = 0 To $iubounds - 1
    				$avarray[$i] = $vvalue[$i]
    			Next
    		Else
    			For $i = 0 To $iubound - $iubounds
    				$avarray[$i] = $avarray[$i + $iubounds]
    			Next
    			For $i = 0 To $iubounds - 1
    				$avarray[$i + $iubound - $iubounds + 1] = $vvalue[$i]
    			Next
    		EndIf
    	Else
    		If $idirection Then
    			For $i = $iubound To 1 Step -1
    				$avarray[$i] = $avarray[$i - 1]
    			Next
    			$avarray[0] = $vvalue
    		Else
    			For $i = 0 To $iubound - 1
    				$avarray[$i] = $avarray[$i + 1]
    			Next
    			$avarray[$iubound] = $vvalue
    		EndIf
    	EndIf
    	Return 1
    EndFunc
    
    Func _arrayreverse(ByRef $avarray, $istart = 0, $iend = 0)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, 0)
    	Local $vtmp, $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(2, 0, 0)
    	For $i = $istart To Int(($istart + $iend - 1) / 2)
    		$vtmp = $avarray[$i]
    		$avarray[$i] = $avarray[$iend]
    		$avarray[$iend] = $vtmp
    		$iend -= 1
    	Next
    	Return 1
    EndFunc
    
    Func _arraysearch(Const ByRef $avarray, $vvalue, $istart = 0, $iend = 0, $icase = 0, $icompare = 0, $iforward = 1, $isubitem = -1)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
    	If UBound($avarray, 0) > 2 OR UBound($avarray, 0) < 1 Then Return SetError(2, 0, -1)
    	Local $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(4, 0, -1)
    	Local $istep = 1
    	If NOT $iforward Then
    		Local $itmp = $istart
    		$istart = $iend
    		$iend = $itmp
    		$istep = -1
    	EndIf
    	Local $icomptype = False
    	If $icompare = 2 Then
    		$icompare = 0
    		$icomptype = True
    	EndIf
    	Switch UBound($avarray, 0)
    		Case 1
    			If NOT $icompare Then
    				If NOT $icase Then
    					For $i = $istart To $iend Step $istep
    						If $icomptype AND VarGetType($avarray[$i]) <> VarGetType($vvalue) Then ContinueLoop 
    						If $avarray[$i] = $vvalue Then Return $i
    					Next
    				Else
    					For $i = $istart To $iend Step $istep
    						If $icomptype AND VarGetType($avarray[$i]) <> VarGetType($vvalue) Then ContinueLoop 
    						If $avarray[$i] == $vvalue Then Return $i
    					Next
    				EndIf
    			Else
    				For $i = $istart To $iend Step $istep
    					If StringInStr($avarray[$i], $vvalue, $icase) > 0 Then Return $i
    				Next
    			EndIf
    		Case 2
    			Local $iuboundsub = UBound($avarray, 2) - 1
    			If $isubitem > $iuboundsub Then $isubitem = $iuboundsub
    			If $isubitem < 0 Then
    				$isubitem = 0
    			Else
    				$iuboundsub = $isubitem
    			EndIf
    			For $j = $isubitem To $iuboundsub
    				If NOT $icompare Then
    					If NOT $icase Then
    						For $i = $istart To $iend Step $istep
    							If $icomptype AND VarGetType($avarray[$i][$j]) <> VarGetType($vvalue) Then ContinueLoop 
    							If $avarray[$i][$j] = $vvalue Then Return $i
    						Next
    					Else
    						For $i = $istart To $iend Step $istep
    							If $icomptype AND VarGetType($avarray[$i][$j]) <> VarGetType($vvalue) Then ContinueLoop 
    							If $avarray[$i][$j] == $vvalue Then Return $i
    						Next
    					EndIf
    				Else
    					For $i = $istart To $iend Step $istep
    						If StringInStr($avarray[$i][$j], $vvalue, $icase) > 0 Then Return $i
    					Next
    				EndIf
    			Next
    		Case Else
    			Return SetError(7, 0, -1)
    	EndSwitch
    	Return SetError(6, 0, -1)
    EndFunc
    
    Func _arraysort(ByRef $avarray, $idescending = 0, $istart = 0, $iend = 0, $isubitem = 0)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	Local $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(2, 0, 0)
    	Switch UBound($avarray, 0)
    		Case 1
    			__arrayquicksort1d($avarray, $istart, $iend)
    			If $idescending Then _arrayreverse($avarray, $istart, $iend)
    		Case 2
    			Local $isubmax = UBound($avarray, 2) - 1
    			If $isubitem > $isubmax Then Return SetError(3, 0, 0)
    			If $idescending Then
    				$idescending = -1
    			Else
    				$idescending = 1
    			EndIf
    			__arrayquicksort2d($avarray, $idescending, $istart, $iend, $isubitem, $isubmax)
    		Case Else
    			Return SetError(4, 0, 0)
    	EndSwitch
    	Return 1
    EndFunc
    
    Func __arrayquicksort1d(ByRef $avarray, ByRef $istart, ByRef $iend)
    	If $iend <= $istart Then Return 
    	Local $vtmp
    	If ($iend - $istart) < 15 Then
    		Local $vcur
    		For $i = $istart + 1 To $iend
    			$vtmp = $avarray[$i]
    			If IsNumber($vtmp) Then
    				For $j = $i - 1 To $istart Step -1
    					$vcur = $avarray[$j]
    					If ($vtmp >= $vcur AND IsNumber($vcur)) OR (NOT IsNumber($vcur) AND StringCompare($vtmp, $vcur) >= 0) Then ExitLoop 
    					$avarray[$j + 1] = $vcur
    				Next
    			Else
    				For $j = $i - 1 To $istart Step -1
    					If (StringCompare($vtmp, $avarray[$j]) >= 0) Then ExitLoop 
    					$avarray[$j + 1] = $avarray[$j]
    				Next
    			EndIf
    			$avarray[$j + 1] = $vtmp
    		Next
    		Return 
    	EndIf
    	Local $l = $istart, $r = $iend, $vpivot = $avarray[Int(($istart + $iend) / 2)], $fnum = IsNumber($vpivot)
    	Do
    		If $fnum Then
    			While ($avarray[$l] < $vpivot AND IsNumber($avarray[$l])) OR (NOT IsNumber($avarray[$l]) AND StringCompare($avarray[$l], $vpivot) < 0)
    				$l += 1
    			WEnd
    			While ($avarray[$r] > $vpivot AND IsNumber($avarray[$r])) OR (NOT IsNumber($avarray[$r]) AND StringCompare($avarray[$r], $vpivot) > 0)
    				$r -= 1
    			WEnd
    		Else
    			While (StringCompare($avarray[$l], $vpivot) < 0)
    				$l += 1
    			WEnd
    			While (StringCompare($avarray[$r], $vpivot) > 0)
    				$r -= 1
    			WEnd
    		EndIf
    		If $l <= $r Then
    			$vtmp = $avarray[$l]
    			$avarray[$l] = $avarray[$r]
    			$avarray[$r] = $vtmp
    			$l += 1
    			$r -= 1
    		EndIf
    	Until $l > $r
    	__arrayquicksort1d($avarray, $istart, $r)
    	__arrayquicksort1d($avarray, $l, $iend)
    EndFunc
    
    Func __arrayquicksort2d(ByRef $avarray, ByRef $istep, ByRef $istart, ByRef $iend, ByRef $isubitem, ByRef $isubmax)
    	If $iend <= $istart Then Return 
    	Local $vtmp, $l = $istart, $r = $iend, $vpivot = $avarray[Int(($istart + $iend) / 2)][$isubitem], $fnum = IsNumber($vpivot)
    	Do
    		If $fnum Then
    			While ($istep * ($avarray[$l][$isubitem] - $vpivot) < 0 AND IsNumber($avarray[$l][$isubitem])) OR (NOT IsNumber($avarray[$l][$isubitem]) AND $istep * StringCompare($avarray[$l][$isubitem], $vpivot) < 0)
    				$l += 1
    			WEnd
    			While ($istep * ($avarray[$r][$isubitem] - $vpivot) > 0 AND IsNumber($avarray[$r][$isubitem])) OR (NOT IsNumber($avarray[$r][$isubitem]) AND $istep * StringCompare($avarray[$r][$isubitem], $vpivot) > 0)
    				$r -= 1
    			WEnd
    		Else
    			While ($istep * StringCompare($avarray[$l][$isubitem], $vpivot) < 0)
    				$l += 1
    			WEnd
    			While ($istep * StringCompare($avarray[$r][$isubitem], $vpivot) > 0)
    				$r -= 1
    			WEnd
    		EndIf
    		If $l <= $r Then
    			For $i = 0 To $isubmax
    				$vtmp = $avarray[$l][$i]
    				$avarray[$l][$i] = $avarray[$r][$i]
    				$avarray[$r][$i] = $vtmp
    			Next
    			$l += 1
    			$r -= 1
    		EndIf
    	Until $l > $r
    	__arrayquicksort2d($avarray, $istep, $istart, $r, $isubitem, $isubmax)
    	__arrayquicksort2d($avarray, $istep, $l, $iend, $isubitem, $isubmax)
    EndFunc
    
    Func _arrayswap(ByRef $vitem1, ByRef $vitem2)
    	Local $vtmp = $vitem1
    	$vitem1 = $vitem2
    	$vitem2 = $vtmp
    EndFunc
    
    Func _arraytoclip(Const ByRef $avarray, $istart = 0, $iend = 0)
    	Local $sresult = _arraytostring($avarray, @CR, $istart, $iend)
    	If @error Then Return SetError(@error, 0, 0)
    	Return ClipPut($sresult)
    EndFunc
    
    Func _arraytostring(Const ByRef $avarray, $sdelim = "|", $istart = 0, $iend = 0)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, "")
    	If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, "")
    	Local $sresult, $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(2, 0, "")
    	For $i = $istart To $iend
    		$sresult &= $avarray[$i] & $sdelim
    	Next
    	Return StringTrimRight($sresult, StringLen($sdelim))
    EndFunc
    
    Func _arraytrim(ByRef $avarray, $itrimnum, $idirection = 0, $istart = 0, $iend = 0)
    	If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
    	If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
    	Local $iubound = UBound($avarray) - 1
    	If $iend < 1 OR $iend > $iubound Then $iend = $iubound
    	If $istart < 0 Then $istart = 0
    	If $istart > $iend Then Return SetError(5, 0, 0)
    	If $idirection Then
    		For $i = $istart To $iend
    			$avarray[$i] = StringTrimRight($avarray[$i], $itrimnum)
    		Next
    	Else
    		For $i = $istart To $iend
    			$avarray[$i] = StringTrimLeft($avarray[$i], $itrimnum)
    		Next
    	EndIf
    	Return 1
    EndFunc
    
    Func _arrayunique($aarray, $idimension = 1, $ibase = 0, $icase = 0, $vdelim = "|")
    	Local $iubounddim
    	If $vdelim = "|" Then $vdelim = Chr(1)
    	If NOT IsArray($aarray) Then Return SetError(1, 0, 0)
    	If NOT $idimension > 0 Then
    		Return SetError(3, 0, 0)
    	Else
    		$iubounddim = UBound($aarray, 1)
    		If @error Then Return SetError(3, 0, 0)
    		If $idimension > 1 Then
    			Local $aarraytmp[1]
    			For $i = 0 To $iubounddim - 1
    				_arrayadd($aarraytmp, $aarray[$i][$idimension - 1])
    			Next
    			_arraydelete($aarraytmp, 0)
    		Else
    			If UBound($aarray, 0) = 1 Then
    				Dim $aarraytmp[1]
    				For $i = 0 To $iubounddim - 1
    					_arrayadd($aarraytmp, $aarray[$i])
    				Next
    				_arraydelete($aarraytmp, 0)
    			Else
    				Dim $aarraytmp[1]
    				For $i = 0 To $iubounddim - 1
    					_arrayadd($aarraytmp, $aarray[$i][$idimension - 1])
    				Next
    				_arraydelete($aarraytmp, 0)
    			EndIf
    		EndIf
    	EndIf
    	Local $shold
    	For $icc = $ibase To UBound($aarraytmp) - 1
    		If NOT StringInStr($vdelim & $shold, $vdelim & $aarraytmp[$icc] & $vdelim, $icase) Then $shold &= $aarraytmp[$icc] & $vdelim
    	Next
    	If $shold Then
    		$aarraytmp = StringSplit(StringTrimRight($shold, StringLen($vdelim)), $vdelim, 1)
    		Return $aarraytmp
    	EndIf
    	Return SetError(2, 0, 0)
    EndFunc
    
    Func __array_exeterinternal(ByRef $avarray, $istart, $isize, $sdelim, ByRef $aidx, ByRef $aresult, ByRef $icount)
    	If $istart == $isize - 1 Then
    		For $i = 0 To $isize - 1
    			$aresult[$icount] &= $avarray[$aidx[$i]] & $sdelim
    		Next
    		If $sdelim <> "" Then $aresult[$icount] = StringTrimRight($aresult[$icount], 1)
    		$icount += 1
    	Else
    		Local $itemp
    		For $i = $istart To $isize - 1
    			$itemp = $aidx[$i]
    			$aidx[$i] = $aidx[$istart]
    			$aidx[$istart] = $itemp
    			__array_exeterinternal($avarray, $istart + 1, $isize, $sdelim, $aidx, $aresult, $icount)
    			$aidx[$istart] = $aidx[$i]
    			$aidx[$i] = $itemp
    		Next
    	EndIf
    EndFunc
    
    Func __array_combinations($in, $ir)
    	Local $i_total = 1
    	For $i = $ir To 1 Step -1
    		$i_total *= ($in / $i)
    		$in -= 1
    	Next
    	Return Round($i_total)
    EndFunc
    
    Func __array_getnext($in, $ir, ByRef $ileft, $itotal, ByRef $aidx)
    	If $ileft == $itotal Then
    		$ileft -= 1
    		Return 
    	EndIf
    	Local $i = $ir - 1
    	While $aidx[$i] == $in - $ir + $i
    		$i -= 1
    	WEnd
    	$aidx[$i] += 1
    	For $j = $i + 1 To $ir - 1
    		$aidx[$j] = $aidx[$i] + $j - $i
    	Next
    	$ileft -= 1
    EndFunc
    
    Global $fileexit, $jqkey, $aakey, $jqmodcombo, $aamodcombo, $mnone, $mshift, $mctrl, $malt, $jqmodpick, $aamodpick, $sgui, $jqinput, $aainput
    Global $random1, $random2, $randomtime, $botdata, $ppkey, $ppmodpick, $ppmodcombo, $ppinput, $looping, $tgui, $r1input, $r2input, $combodat
    Global $handledata, $combodatlabel, $wowhandle, $list, $pid, $hwnd, $modarray, $helptext
    If NOT FileExists(@AppDataDir & "\Moxzbot") Then DirCreate(@AppDataDir & "\Moxzbot\")
    If NOT FileExists(@AppDataDir & "\Moxzbot\Help.txt") Then FileInstall("Documents and Settings\Zach\My Documents\autoit scripts\WoW bot\Help.txt", @AppDataDir & "\Moxzbot\Help.txt")
    If NOT FileExists(@AppDataDir & "\Moxzbot\moxzbot.ini") Then FileInstall("Documents and Settings\Zach\My Documents\autoit scripts\WoW bot\moxzbot.ini", @AppDataDir & "\Moxzbot\moxzbot.ini")
    If NOT ProcessExists("WoW.exe") Then
    	MsgBox(0, "Error", "Please open World of Warcraft first")
    	Exit 
    Else
    	$buttonlab = "Start"
    	Opt("GUIOnEventMode", 1)
    	$mgui = GUICreate("MoxzBot v2.0", 200, 200, -1, -1, $ws_border)
    	$filemenu = GUICtrlCreateMenu("&File")
    	$filehelp = GUICtrlCreateMenuItem("Help", $filemenu)
    	GUICtrlSetOnEvent($filehelp, "HelpMenu")
    	$fileexit = GUICtrlCreateMenuItem("Exit", $filemenu)
    	GUICtrlSetOnEvent($fileexit, "Close")
    	$smenu = GUICtrlCreateMenu("&Settings")
    	$skeybinds = GUICtrlCreateMenuItem("Keybinds", $smenu)
    	GUICtrlSetOnEvent($skeybinds, "keybindsGUI")
    	$stimer = GUICtrlCreateMenuItem("Timer", $smenu)
    	GUICtrlSetOnEvent($stimer, "timerGUI")
    	$startbutton = GUICtrlCreateButton($buttonlab, 20, 20, 50, 30)
    	GUICtrlSetOnEvent($startbutton, "StartButton")
    	$botlabel = GUICtrlCreateLabel("Click 'Start' to begin", 85, 30, 100, 30)
    	$combolabel = GUICtrlCreateLabel("pick a WoW.exe Process ID", 30, 70)
    	$combolabel2 = GUICtrlCreateLabel("Your bot will send keys to this process", 10, 120)
    	$combodat = GUICtrlCreateCombo("", 45, 90, 100)
    	populate()
    	GUISetState(@SW_SHOW)
    EndIf
    While 1
    	If ($looping = 1) Then
    		readini()
    		ToolTip($randomtime, 0, 0)
    		$jqmodi = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modarray[5][1], "")
    		$aamodi = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modarray[6][1], "")
    		$ppmodi = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modarray[7][1], "")
    		$randomtime = Random($random1, $random2)
    		$randomtime = $randomtime * 1000
    		Sleep($randomtime / 5)
    		Sleep($randomtime / 5)
    		Sleep($randomtime / 5)
    		ControlSend($hwnd, "", "", $ppmodi & "{" & $ppkey & "}")
    		Sleep(50)
    		ControlSend($hwnd, "", "", $ppmodi & "{" & $ppkey & "}")
    		Sleep(50)
    		ControlSend($hwnd, "", "", $aamodi & "{" & $aakey & "}")
    		Sleep(50)
    		ControlSend($hwnd, "", "", $jqmodi & "{" & $jqkey & "}")
    		Sleep($randomtime / 5)
    		Sleep($randomtime / 5)
    	Else
    		Sleep(50)
    		ToolTip($looping, 0, 0)
    	EndIf
    WEnd
    
    Func close()
    	Exit 
    EndFunc
    
    Func timergui()
    	readini()
    	$tgui = GUICreate("Timer", 200, 200, -1, -1, $ws_border)
    	GUICtrlCreateLabel("Random Delay is chosen", 30, 10)
    	GUICtrlCreateLabel("Between :", 45, 40)
    	$r1input = GUICtrlCreateInput($random1, 95, 38, 50)
    	GUICtrlCreateLabel("And        :", 45, 70)
    	$r2input = GUICtrlCreateInput($random2, 95, 68, 50)
    	GUICtrlCreateLabel("Seconds", 70, 100)
    	$timersave = GUICtrlCreateButton("Save", 35, 130, 50)
    	GUICtrlSetOnEvent($timersave, "timerSave")
    	$timerdefault = GUICtrlCreateButton("Default", 105, 130, 50)
    	GUICtrlSetOnEvent($timerdefault, "timeDefault")
    	GUISetState()
    EndFunc
    
    Func timersave()
    	$iniwrite = GUICtrlRead($r1input)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random1", $iniwrite)
    	$iniwrite = GUICtrlRead($r2input)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random2", $iniwrite)
    	GUIDelete($tgui)
    EndFunc
    
    Func timedefault()
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random1", "5")
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random2", "12")
    	GUIDelete($tgui)
    EndFunc
    
    Func keybindsgui()
    	readini()
    	Opt("GUIOnEventMode", 1)
    	$sgui = GUICreate("Keybinds", 300, 180, -1, -1, $ws_border)
    	$join_queue = GUICtrlCreateLabel("Queue / Join : ", 10, 20)
    	$jqinput = GUICtrlCreateInput($jqkey, 85, 18, 40, 20)
    	$jqmod = GUICtrlCreateLabel("Modifier:", 140, 20)
    	$jqmodcombo = GUICtrlCreateCombo($modarray[5][1], 190, 18, 60, 20)
    	GUICtrlSetData(-1, $modarray[1][0] & "|" & $modarray[2][0] & "|" & $modarray[3][0] & "|" & $modarray[4][0])
    	$antiafk = GUICtrlCreateLabel("Anti-AFK : ", 10, 50)
    	$aainput = GUICtrlCreateInput($aakey, 85, 48, 40, 20)
    	$aamod = GUICtrlCreateLabel("Modifier:", 140, 50)
    	$aamodcombo = GUICtrlCreateCombo($modarray[6][1], 190, 48, 60, 20)
    	GUICtrlSetData(-1, $modarray[1][0] & "|" & $modarray[2][0] & "|" & $modarray[3][0] & "|" & $modarray[4][0])
    	$pvppanel = GUICtrlCreateLabel("PVP Pane : ", 10, 80)
    	$ppinput = GUICtrlCreateInput($ppkey, 85, 78, 40, 20)
    	$ppmod = GUICtrlCreateLabel("Modifier:", 140, 80)
    	$ppmodcombo = GUICtrlCreateCombo($modarray[7][1], 190, 78, 60, 20)
    	GUICtrlSetData(-1, $modarray[1][0] & "|" & $modarray[2][0] & "|" & $modarray[3][0] & "|" & $modarray[4][0])
    	$ssave = GUICtrlCreateButton("Save", 20, 110, 40, 30)
    	GUICtrlSetOnEvent($ssave, "Savekeybind")
    	$defaultbutton = GUICtrlCreateButton("Default", 70, 110, 50, 30)
    	GUICtrlSetOnEvent($defaultbutton, "defaultKeybind")
    	GUISetState()
    EndFunc
    
    Func savekeybind()
    	$iniwrite = GUICtrlRead($jqmodcombo)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "jqmodPick", $iniwrite)
    	$iniwrite = GUICtrlRead($jqinput)
    	$iniwrite = StringLower($iniwrite)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "queue", $iniwrite)
    	$iniwrite = GUICtrlRead($aamodcombo)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "aamodPick", $iniwrite)
    	$iniwrite = GUICtrlRead($aainput)
    	$iniwrite = StringLower($iniwrite)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "afk", $iniwrite)
    	$iniwrite = GUICtrlRead($ppmodcombo)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "ppmodPick", $iniwrite)
    	$iniwrite = GUICtrlRead($ppinput)
    	$iniwrite = StringLower($iniwrite)
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "pvp", $iniwrite)
    	GUIDelete($sgui)
    EndFunc
    
    Func defaultkeybind()
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "jqmodPick", "NONE")
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "queue", "F9")
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "aamodPick", "NONE")
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "afk", "F10")
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "ppmodPick", "NONE")
    	IniWrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "pvp", "h")
    	GUIDelete($sgui)
    EndFunc
    
    Func readini()
    	$modarray = IniReadSection(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier")
    	$jqmodpick = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modarray[5][1], "ERROR")
    	$aamodpick = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modarray[6][1], "ERROR")
    	$ppmodpick = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modarray[7][1], "ERROR")
    	$aakey = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "afk", "ERROR")
    	$jqkey = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "queue", "ERROR")
    	$ppkey = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "pvp", "ERROR")
    	$random1 = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "Timer", "random1", "ERROR")
    	$random2 = IniRead(@AppDataDir & "\Moxzbot\moxzbot.ini", "Timer", "random2", "ERROR")
    EndFunc
    
    Func startbutton()
    	$buttonlab = "Pause"
    	$pid = GUICtrlRead($combodat)
    	_gethwndfrompid($pid)
    	GUICtrlSetData($botlabel, "Bot Running")
    	GUICtrlSetData($startbutton, $buttonlab)
    	GUICtrlSetOnEvent($startbutton, "PauseButton")
    	$looping = 1
    EndFunc
    
    Func pausebutton()
    	$buttonlab = "Start"
    	GUICtrlSetData($botlabel, "Bot Paused")
    	GUICtrlSetData($startbutton, $buttonlab)
    	GUICtrlSetOnEvent($startbutton, "StartButton")
    	$looping = 0
    EndFunc
    
    Func helpmenu()
    	Local $file = Run("Notepad.exe " & @AppDataDir & "\Moxzbot\Help.txt")
    EndFunc
    
    Func populate()
    	Local $list = ProcessList("WoW.exe")
    	For $i = 1 To $list[0][0]
    		GUICtrlSetData($combodat, $list[$i][1], $list[1][1])
    	Next
    EndFunc
    
    Func _gethwndfrompid($pid)
    	$hwnd = 0
    	$stpid = DllStructCreate("int")
    	Do
    		$winlist2 = WinList()
    		For $i = 1 To $winlist2[0][0]
    			If $winlist2[$i][0] <> "" Then
    				DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $winlist2[$i][1], "ptr", DllStructGetPtr($stpid))
    				If DllStructGetData($stpid, 1) = $pid Then
    					$hwnd = $winlist2[$i][1]
    					ExitLoop 
    				EndIf
    			EndIf
    		Next
    		Sleep(100)
    	Until $hwnd <> 0
    	Return $hwnd
    EndFunc
    Last edited by Wookiz; 10-08-2012 at 11:18 PM.

  4. #259
    kakkygrecko's Avatar Active Member
    Reputation
    34
    Join Date
    May 2009
    Posts
    95
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Well it's coded in autoit so it's fairly simple, I'll add it to the OP.

    Code:
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include <array.au3>
    
    Global $fileExit, $jqkey, $aaKey, $jqmodcombo, $aamodcombo, $mNONE, $mSHIFT, $mCTRL, $mALT, $jqmodPick, $aamodPick, $sGUI, $jqInput, $aaInput
    Global $random1, $random2, $randomtime, $botData, $ppkey, $ppmodpick, $ppmodcombo, $ppInput, $looping, $tGUI, $r1Input, $r2Input, $combodat
    Global $handledata, $combodatlabel, $wowHandle, $list, $PID, $hWnd, $modArray, $helptext
    
    If Not FileExists(@AppDataDir & "\Moxzbot") Then DirCreate(@AppDataDir & "\Moxzbot\")
    if not FileExists(@AppDataDir & "\Moxzbot\Help.txt") Then FileInstall("C:\Documents and Settings\Zach\My Documents\autoit scripts\WoW bot\Help.txt", @AppDataDir & "\Moxzbot\Help.txt")
    if Not FileExists(@AppDataDir & "\Moxzbot\moxzbot.ini") Then FileInstall("C:\Documents and Settings\Zach\My Documents\autoit scripts\WoW bot\moxzbot.ini", @AppDataDir & "\Moxzbot\moxzbot.ini")
    
    if not processexists("WoW.exe") Then
    	msgbox(0, "Error", "Please open World of Warcraft")
    	Exit
    Else
    
    
    	$buttonLab = "Start"
    
    	Opt("GUIOnEventMode", 1)
    
    	$mGUI = GUICreate("MoxzBot v2.0", 200, 200, -1, -1, $WS_BORDER)
    	$fileMenu = GUICtrlCreateMenu("&File")
    	$fileHelp = GuiCtrlCreateMenuItem("Help", $fileMenu)
    	GuiCtrlSetOnEvent($fileHelp, "HelpMenu")
    	$fileExit = GUICtrlCreateMenuItem("Exit", $fileMenu)
    	GUICtrlSetOnEvent($fileExit, "Close")
    
    	$sMenu = GuiCtrlCreateMenu("&Settings")
    	$sKeybinds = GuiCtrlCreateMenuItem("Keybinds", $sMenu)
    	GUICtrlSetOnEvent($sKeybinds, "keybindsGUI")
    	$sTimer = GuiCtrlCreateMenuItem("Timer", $sMenu)
    	GuiCtrlSetOnEvent($sTimer, "timerGUI")
    
    	$startButton = GUICtrlCreateButton($buttonLab, 20, 20, 50, 30)
    	GuiCtrlSetOnEvent($startButton, "StartButton")
    	$botLabel = GuiCtrlCreateLabel("Click 'Start' to begin", 85, 30, 100, 30)
    
    	$comboLabel = GuiCtrlCreateLabel("pick a WoW.exe Process ID", 30, 70)
    	$comboLabel2 = GuiCtrlCreateLabel("Your bot will send keys to this process", 10, 120)
    	$combodat = GuiCtrlCreateCombo("", 45, 90, 100)
    	populate()
    
    	GUISetState(@SW_SHOW)
    
    EndIf
    
    while 1
    	if($looping = 1) Then
    		readIni()
    		;msgbox(1,$handledata,$wowHandle)
    
    		$jqmodi = iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modArray[5][1], "")
    		$aamodi = iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modArray[6][1], "")
    		$ppmodi = iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modArray[7][1], "")
    
    		$randomtime = Random($random1, $random2)
    		$randomtime = $randomtime * 1000
    
    		sleep($randomtime / 5)
    		sleep($randomtime / 5)
    		sleep($randomtime / 5)
    
    		ControlSend($hWnd, "", "", $ppmodi & "{" & $ppkey & "}")
    		sleep(50)
    		ControlSend($hWnd, "", "", $ppmodi & "{" & $ppkey & "}")
    		sleep(50)
    		ControlSend($hWnd, "", "", $aamodi & "{" & $aaKey & "}")
    		sleep(50)
    		ControlSend($hWnd, "", "", $jqmodi & "{" & $jqkey & "}")
    
    		sleep($randomtime / 5)
    		sleep($randomtime / 5)
    	else
    		sleep(50)
    	EndIf
    WEnd
    
    func Close()
    	Exit
    EndFunc   ;==>Close
    
    func timerGUI()
    	readIni()
    
    	$tGUI = GUICreate("Timer", 200, 200, -1, -1, $WS_BORDER)
    	GuiCtrlCreateLabel("Random Delay is chosen", 30, 10)
    	GUICtrlCreateLabel("Between :", 45, 40)
    	$r1Input = GUICtrlCreateInput($random1, 95, 38, 50)
    	GuiCtrlCreateLabel("And        :", 45, 70)
    	$r2Input = GuiCtrlCreateInput($random2, 95, 68, 50)
    	GuiCtrlCreateLabel("Seconds", 70, 100)
    
    	$timerSave = GuiCtrlCreateButton("Save", 35, 130, 50)
    	GuiCtrlSetOnEvent($timerSave, "timerSave")
    	$timerDefault = GuiCtrlCreateButton("Default", 105, 130, 50)
    	GuiCtrlSetOnEvent($timerDefault, "timeDefault")
    
    	GUISetState()
    EndFunc   ;==>timerGUI
    
    Func timerSave()
    	$iniwrite = GuiCtrlRead($r1Input)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random1", $iniwrite)
    
    	$iniwrite = GuiCtrlRead($r2Input)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random2", $iniwrite)
    	GUIDelete($tGUI)
    EndFunc   ;==>timerSave
    
    Func timeDefault()
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random1", "5")
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "timer", "random2", "12")
    	GUIDelete($tGUI)
    EndFunc   ;==>timeDefault
    
    
    func keybindsGUI()
    	readIni()
    
    	Opt("GUIOnEventMode", 1)
    	$sGUI = GUICreate("Keybinds", 300, 180, -1, -1, $WS_BORDER)
    
    	;JOIN / QUEUE KEYBIND
    	$join_queue = GUICtrlCreateLabel("Queue / Join : ", 10, 20)
    	$jqInput = GuiCtrlCreateInput($jqkey, 85, 18, 40, 20)
    	$jqmod = GuiCtrlCreateLabel("Modifier:", 140, 20)
    	$jqmodcombo = GuiCtrlCreateCombo($modArray[5][1], 190, 18, 60, 20)
    	;GUICtrlSetData(-1,$mNONE &"|"& $mSHIFT &"|"& $mCTRL &"|"& $mALT)
    	GuiCtrlSetData(-1, $modArray[1][0] & "|" & $modArray[2][0] & "|" & $modArray[3][0] & "|" & $modArray[4][0])
    
    	;ANTI AFK KEYBIND
    	$antiAfk = GuiCtrlCreateLabel("Anti-AFK : ", 10, 50)
    	$aaInput = GuiCtrlCreateInput($aaKey, 85, 48, 40, 20)
    	$aamod = GuiCtrlCreateLabel("Modifier:", 140, 50)
    	$aamodcombo = GuiCtrlCreateCombo($modArray[6][1], 190, 48, 60, 20)
    	GuiCtrlSetData(-1, $modArray[1][0] & "|" & $modArray[2][0] & "|" & $modArray[3][0] & "|" & $modArray[4][0])
    
    	;PVP PANE KEYBIND
    	$pvpPaneL = GuiCtrlCreateLabel("PVP Pane : ", 10, 80)
    	$ppInput = GuiCtrlCreateInput($ppkey, 85, 78, 40, 20)
    	$ppmod = GuiCtrlCreateLabel("Modifier:", 140, 80)
    	$ppmodcombo = GuiCtrlCreateCombo($modArray[7][1], 190, 78, 60, 20)
    	GuiCtrlSetData(-1, $modArray[1][0] & "|" & $modArray[2][0] & "|" & $modArray[3][0] & "|" & $modArray[4][0])
    
    	;SaveButton
    	$sSave = GuiCtrlCreateButton("Save", 20, 110, 40, 30)
    	GUICtrlSetOnEvent($sSave, "Savekeybind")
    
    	;DefaultButton
    	$defaultButton = GuiCtrlCreateButton("Default", 70, 110, 50, 30)
    	GuiCtrlSetOnEvent($defaultButton, "defaultKeybind")
    
    	;setstate
    	GUISetState()
    EndFunc   ;==>keybindsGUI
    
    Func Savekeybind()
    
    	;JOIN QUEUE KEYBIND SAVE
    	$iniwrite = GuiCtrlRead($jqmodcombo)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "jqmodPick", $iniwrite)
    	$iniwrite = GuiCtrlRead($jqInput)
    	$iniwrite = StringLower($iniwrite)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "queue", $iniwrite)
    
    	;ANTI AFK KEYBIND SAVE
    	$iniwrite = GuiCtrlRead($aamodcombo)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "aamodPick", $iniwrite)
    	$iniwrite = GuiCtrlRead($aaInput)
    	$iniwrite = StringLower($iniwrite)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "afk", $iniwrite)
    
    	;PVP PANE KEYBIND SAVE
    	$iniwrite = GuiCtrlRead($ppmodcombo)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "ppmodPick", $iniwrite)
    	$iniwrite = GuiCtrlRead($ppInput)
    	$iniwrite = StringLower($iniwrite)
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "pvp", $iniwrite)
    
    	GUIDelete($sGUI)
    
    EndFunc   ;==>Savekeybind
    
    func DefaultKeybind()
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "jqmodPick", "NONE")
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "queue", "F9")
    
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "aamodPick", "NONE")
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "afk", "F10")
    
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", "ppmodPick", "NONE")
    	iniwrite(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "pvp", "h")
    
    	GUIDelete($sGUI)
    
    EndFunc   ;==>DefaultKeybind
    
    func readIni()
    	;KEYBIND MODIFIER READ
    
    	$modArray = IniReadSection(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier")
    
    	$jqmodPick = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modArray[5][1], "ERROR")
    	$aamodPick = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modArray[6][1], "ERROR")
    	$ppmodpick = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "modifier", $modArray[7][1], "ERROR")
    
    	;KEYBIND READ
    	$aaKey = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "afk", "ERROR")
    	$jqkey = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "queue", "ERROR")
    	$ppkey = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "keybind", "pvp", "ERROR")
    
    	;TIMER READ
    	$random1 = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "Timer", "random1", "ERROR")
    	$random2 = Iniread(@AppDataDir & "\Moxzbot\moxzbot.ini", "Timer", "random2", "ERROR")
    
    EndFunc   ;==>readIni
    
    
    func StartButton()
    	$buttonLab = "Pause"
    
    	$PID = GuiCtrlRead($combodat)
    	_GetHwndFromPID($PID)
    
    	GuiCtrlSetData($botLabel, "Bot Running")
    	GuiCtrlSetData($startButton, $buttonLab)
    	GuiCtrlSetOnEvent($startButton, "PauseButton")
    
    	$looping = 1
    EndFunc   ;==>StartButton
    
    func PauseButton()
    	$buttonLab = "Start"
    
    	GuiCtrlSetData($botLabel, "Bot Paused")
    	GuiCtrlSetData($startButton, $buttonLab)
    	GuiCtrlSetOnEvent($startButton, "StartButton")
    	$looping = 0
    EndFunc   ;==>PauseButton
    
    func HelpMenu()
    	Local $file = Run('Notepad.exe ' & @AppDataDir & '\Moxzbot\Help.txt')
    EndFunc   ;==>HelpMenu
    
    
    ;THISCODEISNTMINE
    func populate()
    	Local $list = ProcessList("WoW.exe")
    	For $i = 1 To $list[0][0]
    		GUICtrlSetData($combodat, $list[$i][1], $list[1][1])
    	Next
    EndFunc   ;==>populate
    
    Func _GetHwndFromPID($PID)
    	$hWnd = 0
    	$stPID = DllStructCreate("int")
    	Do
    		$winlist2 = WinList()
    		For $i = 1 To $winlist2[0][0]
    			If $winlist2[$i][0] <> "" Then
    				DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $winlist2[$i][1], "ptr", DllStructGetPtr($stPID))
    				If DllStructGetData($stPID, 1) = $PID Then
    					$hWnd = $winlist2[$i][1]
    					ExitLoop
    				EndIf
    			EndIf
    		Next
    		Sleep(100)
    	Until $hWnd <> 0
    	Return $hWnd
    EndFunc   ;==>_GetHwndFromPID
    I'm not the best coder, so it's probably pretty messy, and maybe a bit disorienting.
    But there's the actual code from autoit.

    feel free to hand out any syntax/optimization tips ^_^

  5. #260
    reyloco's Avatar Private
    Reputation
    1
    Join Date
    Sep 2012
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Isn't there any better macros?
    I'd love it if it could be a little less bot-like, and use some kind of rotation, randomized or not.
    A targetrandom(enemy) macro for example.

  6. #261
    Snow79's Avatar Sergeant
    Reputation
    6
    Join Date
    Mar 2012
    Posts
    57
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I guess it needs to be updated for 5.0.5b? Since when I try to run it now, it says "Please open World of Warcraft" first

  7. #262
    FattyXP's Avatar Member
    Reputation
    20
    Join Date
    Feb 2009
    Posts
    168
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Snow79 View Post
    I guess it needs to be updated for 5.0.5b? Since when I try to run it now, it says "Please open World of Warcraft" first
    You probably have to enable/disable 64 bit in the launcher, still works fine for me, and judging by the afk's in BG's lately, its working for a lot of others too.

  8. #263
    Snow79's Avatar Sergeant
    Reputation
    6
    Join Date
    Mar 2012
    Posts
    57
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    That seems to do the trick, qued now Thanks FattyXP.

  9. #264
    kakkygrecko's Avatar Active Member
    Reputation
    34
    Join Date
    May 2009
    Posts
    95
    Thanks G/R
    0/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by reyloco View Post
    Isn't there any better macros?
    I'd love it if it could be a little less bot-like, and use some kind of rotation, randomized or not.
    A targetrandom(enemy) macro for example.
    Well the "anti-afk" macro can be customized any way you would like it...
    As far as I know there is no "target random enemy" function.
    and for rotations you can use a castsequence macro, I have one on my priest.

    /castsequence reset=15 Power Word: Shield, Renew, Prayer of Mending

    the reset isn't really necessary, but I like the backup. I made it longer than the bot's maximum button send delay.
    There is also this other approach:

    /castrandom Renew, Holy Nova, Inner Fire

    of course you'll want to use abilities with no cooldowns, or CDs with less than ~5 seconds, I used to use "/castrandom" for my mounts in WOTLK, but I think it's still in the game.
    Also you can add "null" in place of a spell, and it will just do nothing. Which will make it look less automated. Although that's probably the same as tweaking the random time delay parameters within the bot.

    I would suggest checking out a list of possible macro commands on wowwiki.com, and try to figure out some cool things you can do.
    Feel free to post anything revolutionary you find. ^_^

  10. #265
    MetaBeta's Avatar Private
    Reputation
    2
    Join Date
    Oct 2012
    Posts
    12
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hai pandamon
    Attachment 10822

  11. #266
    leztek's Avatar Private
    Reputation
    1
    Join Date
    Oct 2012
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I have heard many great things about this bot and so far it is working just fine for my needs. I am testing it on my shaman who is elemental. Just wanted to ask which spells are best. I have this now:
    /cast [harm] Earthshock
    /cast Thunderstorm

    Thanks!
    Last edited by leztek; 10-15-2012 at 12:09 AM.

  12. #267
    domzftw's Avatar Private
    Reputation
    1
    Join Date
    Feb 2012
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Anyone got any good Mage macros? The bot works great but i got one Issue with it.... its really botty looking.. :/ anyone have any good macros for mage like frost-bolt mount up follow macros anything similar? thanks im not to savvy with making macros

  13. #268
    niklasmm's Avatar Private
    Reputation
    1
    Join Date
    Oct 2010
    Posts
    14
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Sorry, but i just cant download this, i dont know why, it says when i download it from the program iLivid that its sending me a message, and the i get Error.. is it possible that you can upload it somewhere else??

  14. #269
    domzftw's Avatar Private
    Reputation
    1
    Join Date
    Feb 2012
    Posts
    2
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by niklasmm View Post
    Sorry, but i just cant download this, i dont know why, it says when i download it from the program iLivid that its sending me a message, and the i get Error.. is it possible that you can upload it somewhere else??
    That is just an AD. click on skip ad and you will be able to download iLivid is some bogus program to watch videos dont download that. just skip ad and procedd to download file.


    Hope this helps.

    But im still looking for any good mage macros if anyone has any Thx!

  15. #270
    barandeniz's Avatar Member
    Reputation
    4
    Join Date
    Nov 2006
    Posts
    133
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    is it possible to use this bot with PQR? i am priest/pally healer so PQR would auto heal but as i wonder is it possbile to use them togather ?

Page 18 of 24 FirstFirst ... 141516171819202122 ... LastLast

Similar Threads

  1. [Trading] SWTOR with 50 Merc BH 400k+ credits epic speeder training for WoW Annual Pass or Time
    By lxhackdxl in forum World of Warcraft Buy Sell Trade
    Replies: 2
    Last Post: 03-24-2012, 09:04 PM
  2. [Trading] wow 60 day game time for pirox bot
    By sycto in forum World of Warcraft Buy Sell Trade
    Replies: 0
    Last Post: 08-23-2011, 09:08 PM
  3. [Trading] Tradeing a Battle.net account With every game on it + wow 1 month game time
    By Enclave06789 in forum World of Warcraft Buy Sell Trade
    Replies: 2
    Last Post: 06-11-2011, 04:55 PM
  4. AutoIt Macro for WoW AFK Bot
    By Matt in forum World of Warcraft Bots and Programs
    Replies: 8
    Last Post: 04-06-2006, 06:01 AM
All times are GMT -5. The time now is 03:59 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search