[AutoIt] ZK Infinite Background-Mode Script menu

User Tag List

Page 1 of 6 12345 ... LastLast
Results 1 to 15 of 90
  1. #1
    Nachto's Avatar Active Member
    Reputation
    21
    Join Date
    Jan 2011
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [AutoIt] ZK Infinite Background-Mode Script

    Hello,

    the last two days i work on a infinite ZK script which is working in the background (partially) - and now i have finished it.

    What do i need?
    - 2 Diablo III window's with a resolution of 800x600 (smallest)
    - Both accounts must logged in (ingame) at start
    - Any resolution (this script works on any window position and resolution)

    What must i do?
    Please do this on first time before start bot!
    - (Both accounts) Make game to Act 2, Quest 8, Part 3
    - (Both accounts) Get ingame with both accounts
    - (Only host) Teleport to Archives and go to ZK without getting Checkpoint (only with host)
    - (Only host) Kill ZK and get soulstone (only with host)
    - (Only host) Go back to Terminus and NOT move (when you move you reached the checkpoint)
    - (Only host) Teleports back to town and log out - then resume game
    - (Only host) Requests invite to leecher
    - (Only leecher) Accept the invite
    - Then the host must leave the game as fast you can (but before leecher joins the game), after you leave game with host you must directly leave the game with the leecher before you get kicked by the game automatic.
    - Then you can resume game with both accounts and turn in the adria quest (only this time)
    - Now you can start the bot and it do this for you!

    I have found a bug, what i must do?
    - Please post it here with a information on which step (logout leecher, logout host, resume game leecher(...) quest turnin etc.)
    Info: If "ZKto.zip" not work for you - try "ZKto new.zip"!

    Known Bugs
    - Somestimes adria havn't quest turnin (but its not often!)
    - Sometimes misses to turn in the quest (not often too, only if mouseclick fails)

    What the program is doing?
    - Renaming diablo window's to "Diablo III #PROCESS ID" for identification
    - You can select host and leecher d3 window in a GUI (identification with the process id)
    - Every run takes ~27 seconds, depending on the game left/join speed
    - Clicks some errors before doing next step (example: Matchmaking error)

    Script was tested at Windows 7 - 64bit US

    Actually i make ~1,4mio XP per hour on normal mode,~ 2,7mio XP per hour on hell.

    The only thing which is not a background mode is the walk to adria - because interacting with a NPC not works in background. I will search for another method for this, but actually i have only this method. Walk to adria is every ~27 seconds - so you can do a little work between this^^

    In the attachements are a .zip with FastFind library and the source code of my script (+ compiled .exe).
    Thanks to nav4321 for the nice method (changed it a little bit) -> his post is here (Zol'tun Kulle infinite turn in XP (Post-nerf))!

    If you want to disable Inputs (mousemove, keyboard) while walking to adria, you can enable it at $blockInput in the source (dont work for OS with UAC). And if you want to reset the old mouse/window active position , you can setup it in the source code at $resetOldValues.

    Sorry for my bad english - my main language are german.

    I make this and future versions of this program for free. But if my work helps, you can also donate to me. Click on this button:
    Attached Files Attached Files
    Last edited by Nachto; 07-08-2012 at 06:07 PM.

    [AutoIt] ZK Infinite Background-Mode Script
  2. #2
    zottiri's Avatar Corporal
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    800x600
    doesnt work..
    i set windows
    clicked start nothing happens

  3. #3
    Nachto's Avatar Active Member
    Reputation
    21
    Join Date
    Jan 2011
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Do you have selected the Host/Leecher window? If you select it the tool will resize it automaticly.
    Started as administrator? (Required for background mode)

    P.s.: Shortcuts are F1 for Start, F2 for Stop and F3 for refresh window list.

  4. #4
    zottiri's Avatar Corporal
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    running as admin
    i selected host and leecher windows according to titles.

    While selecting its clicking to windows maybe resizing i dont know. and clicked on character once banner screen opened. 2x diablo already max. smaller size btw.
    Then i clicked start
    also pushed F1 nothing happens

  5. #5
    zottiri's Avatar Corporal
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    when i mouse over exe
    i see:
    zkscript.au3 line 130: sleep 100
    and
    fastfind.au3 line 271

    nothing else happening.

  6. #6
    zottiri's Avatar Corporal
    Reputation
    1
    Join Date
    Jun 2012
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    - (Only host) Requests invite to leecher
    - (Only leecher) Accept the invite
    - Then the host must leave the game as fast you can (but before leecher joins the game), after you leave game with host you must directly leave the game with the leecher before you get kicked by the game automatic.
    also manually tried 10 times on EU

    leecher error: you are unable to join game this time.

  7. #7
    FinnX's Avatar Banned
    Reputation
    40
    Join Date
    Aug 2009
    Posts
    82
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by zottiri View Post
    also manually tried 10 times on EU

    leecher error: you are unable to join game this time.
    /this

    Impossible to do it

  8. #8
    Nachto's Avatar Active Member
    Reputation
    21
    Join Date
    Jan 2011
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by zottiri View Post
    Then i clicked start
    also pushed F1 nothing happens
    Are you sure, that you stay ingame with both characters? Make sure the leecher is on the first position in the friendlist of the host (and no friend requests are open).
    Originally Posted by zottiri View Post
    zkscript.au3 line 130: sleep 100.
    The bot stands on this line to wait until the character screen is visible (to click on resume game) - so make sure you do the steps on top and stay with both characters ingame
    . The bot starts with the invite request step.
    Originally Posted by zottiri View Post
    also manually tried 10 times on EU
    leecher error: you are unable to join game this time.
    Make sure that you leave the game with host after accept invite with leecher, then leave with leecher. If the leacher is on the "Resume game"-screen you must click direct "resume game" and then you can turn in the quest.

    Detected some issues with clients in other language then english(british) - i try to fix it now!
    Last edited by Nachto; 07-01-2012 at 01:56 PM.

  9. #9
    simpleonin's Avatar Private
    Reputation
    2
    Join Date
    Jun 2012
    Posts
    7
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    how many exp do you guys receive in nightmare? my toon only gets 6k exp per run. is this normal? I find it too low. it is my first time trying this though.
    Last edited by simpleonin; 07-01-2012 at 02:02 PM. Reason: thanks for the script OP. appreciate it.

  10. #10
    sinaTT's Avatar Member
    Reputation
    1
    Join Date
    Oct 2010
    Posts
    36
    Thanks G/R
    0/0
    Trade Feedback
    7 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by simpleonin View Post
    how many exp do you guys receive in nightmare? my toon only gets 6k exp per run. is this normal? I find it too low. it is my first time trying this though.
    you need to do it on normal and then on hell, blizzard has nerfed it already.. so you get like 10k ep on normal but lower amount on nm

  11. #11
    Nachto's Avatar Active Member
    Reputation
    21
    Join Date
    Jan 2011
    Posts
    30
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If anyone have the problem that it stucks (for example at accept invite on leecher) try the other version in the attachment!
    The stuck comes if the bot not find the pixel and end in a loop - so this new version will fix this.

    If the version above works for you, you must not change it (the version above has checks if the char is ingame/char screen, so it work a little bit better).

    Thx to FinnX for test it out.
    Attached Files Attached Files

  12. #12
    FinnX's Avatar Banned
    Reputation
    40
    Join Date
    Aug 2009
    Posts
    82
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    If you're running the script on a VMWare you might edit the line where it runs to Adria (because the running takes more time on a Virtual Machine)
    I prefer using a sleep from 7000 to 8000 (ms).

    Search for that line (there are 2 from them):
    Code:
    MouseClick("left", (DllStructGetData($tpoint, "X") - $winPos[0]), (DllStructGetData($tpoint, "Y") - $winPos[1]), 1)
    Under that line is a SleepRandom. Set it to 7000-8000.

    In my example the result of the script is something like that:

    Code:
    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Misc.au3>
    #include <Array.au3>
    #include <GuiComboBox.au3>
    #include <FastFind.au3>
    Opt("WinTitleMatchMode", 3)
    Opt("GUIOnEventMode", 1)
    Opt("PixelCoordMode", 0)
    Opt("MouseCoordMode", 0)
    Opt("TrayIconDebug", 1)
    
    ; Block input while walk to adria? Doesn't work for everyone!
    Global $blockInput = True ; Set this to "False" if input will not blocked
    Global $resetOldValues = True ; Set this to "False" if not reset window and mouse position after walk to adria
    ; If you enable this, you cannot move your mouse or anything else until it works to adria!
    
    Global $dll = DllOpen("user32.dll")
    
    Global $status = False, $leecherHandle, $hostHandle
    Global $processList = ProcessList("Diablo III.exe")
    $Form1 = GUICreate("ZKScript by Nachto (Janis)", 362, 96, 192, 124)
    $lHost = GUICtrlCreateLabel("Host window:", 10, 10, 68, 17)
    $lLeecher = GUICtrlCreateLabel("Leecher window:", 10, 35, 85, 17)
    $cHost = GUICtrlCreateCombo("", 110, 6, 241, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
    $cLeecher = GUICtrlCreateCombo("", 110, 31, 241, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
    GUICtrlSetOnEvent($cHost, "hostChanged")
    GUICtrlSetOnEvent($cLeecher, "leecherChanged")
    $bStart = GUICtrlCreateButton("Start", 10, 60, 107, 25)
    GUICtrlSetOnEvent($bStart, "Start")
    $bRefresh = GUICtrlCreateButton("Refresh windowlist", 130, 60, 107, 25)
    GUICtrlSetOnEvent($bRefresh, "refreshList")
    $bStop = GUICtrlCreateButton("Stop", 245, 60, 107, 25)
    GUICtrlSetOnEvent($bStop, "Stop")
    GUICtrlSetState(-1, $GUI_DISABLE)
    Dim $Form1_AccelTable[3][2] = [["{F1}", $bStart],["{F3}", $bRefresh],["{F2}", $bStop]]
    GUISetAccelerators($Form1_AccelTable)
    If $processList[0][0] >= 2 Then
       For $i = 1 To $processList[0][0]
    	  _GUICtrlComboBox_AddString($cHost, $processList[$i][1])
    	  _GUICtrlComboBox_AddString($cLeecher, $processList[$i][1])
    	  WinSetTitle(_GetHwndFromPID($processList[$i][1]), "", "Diablo III #" & $processList[$i][1])
       Next
    EndIf
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "GUIClose")
    
    Func Worker()
       If Not ProcessExists(GUICtrlRead($cHost)) Or Not ProcessExists(GUICtrlRead($cLeecher)) Then
    	  AdlibUnRegister("Worker")
    	  GUICtrlSetState($bStop, $GUI_DISABLE)
    	  GUICtrlSetState($bStart, $GUI_ENABLE)
    	  $status = False
    	  Return
       EndIf
       ; Both accounts must be in game (no moving) to make the script work perfectly!
       ErrorConfirm($hostHandle)
       FFSnapShot(0, 0, 0, 0, 0, $hostHandle)
       If Hex(FFGetPixel(183, 528), 6) = "FFFFFF" Then ; Checks if char is ingame
    	  ControlClick($hostHandle, "", "", "left", 1, 769, 562) ; Open friendlist
    	  SleepRandom()
       EndIf
       ; Invite leecher with host account
       ErrorConfirm($hostHandle)
       FFSnapShot(0, 0, 0, 0, 0, $hostHandle)
       If Hex(FFGetPixel(649, 98), 6) = "1E0D08" Then ; Checks if friendlist is open on host
    	  ControlClick($hostHandle, "", "", "left", 1, 715, 196) ; Clicks on first account party invite on host
    	  SleepRandom(600, 750)
       EndIf
       ; Accept invite with leecher
       ErrorConfirm($leecherHandle)
       ControlClick($leecherHandle, "", "", "left", 1, 690, 513) ; Accept invite from host at leecher
       SleepRandom()
       ErrorConfirm($leecherHandle)
       FFSnapShot(0, 0, 0, 0, 0, $leecherHandle)
       If Hex(FFGetPixel(392, 312), 6) = "1B0A06" Then ; Checks if leave game confirm is open on leecher
    	  ControlClick($leecherHandle, "", "", "left", 1, 335, 351) ; Confirm leave game with "OK" on leecher
    	  SleepRandom()
       EndIf
       ErrorConfirm($hostHandle)
       FFSnapShot(0, 0, 0, 0, 0, $hostHandle)
       While Hex(FFGetPixel(716, 197), 6) = "DEB24A" ; Waits until leecher have accepted invite from host
    	  Sleep(100)
       WEnd
       SleepRandom(2500, 3500)
       ; Leave party with host account
       ErrorConfirm($hostHandle)
       ControlClick($hostHandle, "", "", "left", 1, 560, 570) ; Open options window at host
       SleepRandom()
       ControlClick($hostHandle, "", "", "left", 1, 339, 322) ; Click leave game on host
       SleepRandom()
       ErrorConfirm($hostHandle)
       ControlClick($hostHandle, "", "", "left", 1, 336, 352) ; Confirm leave game with "OK" on host
       SleepRandom()
       ; Leave game with leecher
       SleepRandom(1500, 2500)
       ErrorConfirm($leecherHandle)
       ControlClick($leecherHandle, "", "", "left", 1, 560, 570) ; Open options window at leecher
       SleepRandom()
       ControlClick($leecherHandle, "", "", "left", 1, 339, 322) ; Click leave game on leecher
       SleepRandom()
       ErrorConfirm($leecherHandle)
       FFSnapShot(0, 0, 0, 0, 0, $leecherHandle)
       ControlClick($leecherHandle, "", "", "left", 1, 336, 352) ; Confirm leave game with "OK" on leecher
       SleepRandom()
       ; Start new game at leecher
       ErrorConfirm($leecherHandle)
       SleepRandom(2500, 3000)
       ControlClick($leecherHandle, "", "", "left", 1, 130, 231) ; Click resume game on leecher
       ; Start new game at host
       ErrorConfirm($hostHandle)
       ControlClick($hostHandle, "", "", "left", 1, 130, 231) ; Click resume game on host
       SleepRandom()
       FFSnapShot(0, 0, 0, 0, 0, $leecherHandle)
       While Hex(FFGetPixel(183, 528), 6) <> "FFFFFF" ; Waits until leech char is ingame
    	  ControlClick($leecherHandle, "", "", "left", 1, 130, 231)
    	  FFSnapShot(0, 0, 0, 0, 0, $leecherHandle)
    	  ErrorConfirm($leecherHandle)
    	  If Hex(FFGetPixel(681, 560), 6) = "402515" Then
    		 ControlClick($leecherHandle, "", "", "left", 1, 130, 231)
    	  EndIf
    	  Sleep(100)
       WEnd
       While 1
    	  FFSnapShot(0, 0, 0, 0, 0, $leecherHandle)
    	  $res = FFNearestPixel(10, 5, 0x0038231E)
    	  If $res <> 0 Then
    		 Local $tpoint = DllStructCreate("int X;int Y")
    		 DllStructSetData($tpoint, "X", $res[0])
    		 DllStructSetData($tpoint, "Y", $res[1])
    		 _WinAPI_ClientToScreen($leecherHandle, $tpoint)
    		 $lastHandle = WinGetHandle("[ACTIVE]")
    		 $lastMousePos = MouseGetPos()
    		 If $blockInput Then
    			BlockInput(1)
    		 EndIf
    		 WinActivate($leecherHandle)
    		 $winPos = WinGetPos($leecherHandle)
    		 MouseMove((DllStructGetData($tpoint, "X") - $winPos[0]), (DllStructGetData($tpoint, "Y") - $winPos[1]))
    		 If $blockInput Then
    			BlockInput(1)
    		 EndIf
    		 WinActivate($leecherHandle)
    		 MouseClick("left", (DllStructGetData($tpoint, "X") - $winPos[0]), (DllStructGetData($tpoint, "Y") - $winPos[1]), 1)
    		 MouseClick("left", (DllStructGetData($tpoint, "X") - $winPos[0]), (DllStructGetData($tpoint, "Y") - $winPos[1]), 1)
    		 SleepRandom(6000, 8000)
    		 Sleep(400)
    		 If $blockInput Then
    			BlockInput(0)
    		 EndIf
    		 ExitLoop
    	  EndIf
       WEnd
       If $resetOldValues Then
    	  WinActivate($lastHandle)
    	  MouseMove($lastMousePos[0], $lastMousePos[1])
       EndIf
       Sleep(400)
       ErrorConfirm($leecherHandle)
       ControlClick($leecherHandle, "", "", "left", 1, 573, 442)
       SleepRandom(500, 800)
       ErrorConfirm($leecherHandle)
       ControlClick($leecherHandle, "", "", "left", 1, 573, 442)
       SleepRandom(500, 800)
       ErrorConfirm($leecherHandle)
       ControlClick($leecherHandle, "", "", "left", 1, 573, 442)
       ErrorConfirm($leecherHandle)
    EndFunc
    
    Func ErrorConfirm($windowHandle)
       FFSnapShot(0, 0, 0, 0, 0, $windowHandle)
       If Hex(FFGetPixel(476, 350), 6) = "020201" Then ; Checks if options window is opened at host
    	  ControlClick($windowHandle, "", "", "left", 1, 401, 351) ; Click leave game on host
    	  SleepRandom()
    	  Return 1
       EndIf
       Return 0
    EndFunc
    
    Func Start()
       If ProcessExists(GUICtrlRead($cHost)) Or GUICtrlRead($cHost) <> "" Then
    	  If ProcessExists(GUICtrlRead($cLeecher)) Or GUICtrlRead($cLeecher) <> "" Then
    		 AdlibRegister("Worker", 2000)
    		 GUICtrlSetState($bStop, $GUI_ENABLE)
    		 GUICtrlSetState($bStart, $GUI_DISABLE)
    		 $status = True
    	  Else
    		 MsgBox(0, "Error", "Selected leecher window was not found.")
    	  EndIf
       Else
    	  MsgBox(0, "Error", "Selected host window was not found.")
       EndIf
    EndFunc
    
    Func SleepRandom($minWait = 700, $maxWait = 800)
       Sleep(Random($minWait, $maxWait, 1))
    EndFunc
    
    Func Stop()
       AdlibUnRegister("Worker")
       GUICtrlSetState($bStop, $GUI_DISABLE)
       GUICtrlSetState($bStart, $GUI_ENABLE)
       $status = False
    EndFunc
    
    Func refreshList()
       If $status = True Then
    	  AdlibUnRegister("Worker")
    	  GUICtrlSetState($bStop, $GUI_DISABLE)
    	  GUICtrlSetState($bStart, $GUI_ENABLE)
    	  $status = False
       EndIf
       _GUICtrlComboBox_ResetContent($cHost)
       _GUICtrlComboBox_ResetContent($cLeecher)
       $processList = ProcessList("Diablo III.exe")
       If $processList[0][0] >= 2 Then
    	  For $i = 2 To $processList[0][0]
    		 _GUICtrlComboBox_AddString($cHost, $processList[$i][1])
    		 _GUICtrlComboBox_AddString($cLeecher, $processList[$i][1])
    		 WinSetTitle(_GetHwndFromPID($processList[$i][1]), "", "Diablo III #" & $processList[$i][1])
    	  Next
       EndIf
    EndFunc
    
    Func hostChanged()
       If $status = True Then
    	  AdlibUnRegister("Worker")
    	  GUICtrlSetState($bStop, $GUI_DISABLE)
    	  GUICtrlSetState($bStart, $GUI_ENABLE)
    	  $status = False
       EndIf
       $hostHandle = _GetHwndFromPID(GUICtrlRead($cHost))
       WinMove($hostHandle, "", Default, Default, 800, 600) ; Resize
       WinActivate($hostHandle)
       $hostInfo = WinGetPos($hostHandle)
       MouseClick("left", ($hostInfo[2] - 4), ($hostInfo[3] / 2), 1) ; Resize
    EndFunc
    
    Func leecherChanged()
       If $status = True Then
    	  AdlibUnRegister("Worker")
    	  GUICtrlSetState($bStop, $GUI_DISABLE)
    	  GUICtrlSetState($bStart, $GUI_ENABLE)
    	  $status = False
       EndIf
       $leecherHandle = _GetHwndFromPID(GUICtrlRead($cLeecher))
       WinMove($leecherHandle, "", Default, Default, 800, 600) ; Resize
       WinActivate($leecherHandle)
       $leecherInfo = WinGetPos($leecherHandle)
       MouseClick("left", ($leecherInfo[2] - 4), ($leecherInfo[3] / 2), 1) ; Resize
    EndFunc
    
    While 1
    	$nMsg = GUIGetMsg()
    	Switch $nMsg
    		Case $GUI_EVENT_CLOSE
    			Exit
    	EndSwitch
    	sleep(100)
    WEnd
    
    Func GUIClose()
       Exit(1)
    EndFunc
    
    Func SimulKey($hWnd, $key, $string = 0, $state = 'skip', $delay = 10)
       $user32 = DllOpen('user32.dll')
       If $user32 = -1 Then
    	  SetError(-1, 1, -1)
       EndIf
    
       Switch StringLower($key)
    	  Case 'enter'
    		 $WM_ENTER = 0x0d
    		 $dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_ENTER, 'int', 0)
    		 $lParam = BitOR(BitShift($dCall[0], -16), 1)
    	  Case 'space'
    		 $WM_SPACE = 0x20
    		 $dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_SPACE, 'int', 0)
    		 $lParam = BitOR(BitShift($dCall[0], -16), 1)
    	  Case 'tab'
    		 $WM_TAB = 0x09
    		 $dCall = DllCall($user32, 'int', "MapVirtualKey", 'int', $WM_TAB, 'int', 0)
    		 $lParam = BitOR(BitShift($dCall[0], -16), 1)
    	  Case Else
    		 If $string = 1 Then
    			$split = StringSplit($key, "")
    			For $ctn = 1 To $split[0]
    			   $split[$ctn] = Asc(StringLower($split[$ctn]))
    			Next
    			For $ctn = 1 To $split[0]
    			   $dCall = DllCall($user32, 'int', "VkKeyScan", 'int', $split[$ctn])
    			   $lParamAsc = DllCall($user32, 'int', "MapVirtualKey", 'int', $dCall[0], 'int', 0)
    			   $lParam = BitOR(BitShift($lParamAsc[0], -16), 1)
    			   $lUpParam = BitOR($lParam, 0xC0000000)
    			   DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN, 'int', $dCall[0], 'int', $lParam)
    			   Sleep($delay)
    			   DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP, 'int', $dCall[0], 'int', $lUpParam)
    			   Sleep(100)
    			Next
    		 ElseIf $string = 0 Then
    			$key = Asc(StringLower($key))
    			$dCall = DllCall($user32, 'int', "VkKeyScan", 'int', $key)
    			$lParamAsc = DllCall($user32, 'int', "MapVirtualKey", 'int', $dCall[0], 'int', 0)
    			$lParam = BitOR(BitShift($lParamAsc[0], -16), 1)
    		 EndIf
       EndSwitch
       $lUpParam = BitOR($lParam, 0xC0000000)
       If $string = 0 Then
    	  Switch StringLower($state)
    		 Case 'skip'
    			DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYDOWN, 'int', $dCall[0], 'int', $lParam)
    			Sleep($delay)
    			DllCall($user32, 'int', "PostMessage", 'hwnd', $hWnd, 'int', $WM_KEYUP, 'int', $dCall[0], 'int', $lUpParam)
    		 Case 'down'
    			DllCall($user32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_KEYDOWN, "int", $dCall[0], "int", $lParam)
    		 Case 'up'
    			DllCall($user32, "int", "PostMessage", "hwnd", $hWnd, "int", $WM_KEYUP, "int", $dCall[0], "int", $lParam)
    	  EndSwitch
       EndIf
       DllClose($user32)
       Return 1
    EndFunc
    
    Func _GetHwndFromPID($PID)
       $hWnd = 0
       $winlist = WinList()
       Do
    	  For $i = 1 To $winlist[0][0]
    		 If $winlist[$i][0] <> "" Then
    			$iPID2 = WinGetProcess($winlist[$i][1])
    			If $iPID2 = $PID Then
    			   $hWnd = $winlist[$i][1]
    			   ExitLoop
    			EndIf
    		 EndIf
    	  Next
       Until $hWnd <> 0
       Return $hWnd
    EndFunc
    Awesome script, works awesome! Already level 10 while writing this!

    +Rep

  13. #13
    sinaTT's Avatar Member
    Reputation
    1
    Join Date
    Oct 2010
    Posts
    36
    Thanks G/R
    0/0
    Trade Feedback
    7 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    great scipt, no problems so far. Will tell when some error comes up or something

  14. #14
    pwnagepimp's Avatar Corporal
    Reputation
    3
    Join Date
    Jun 2012
    Posts
    32
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Nachto View Post
    - Then the host must leave the game as fast you can (but before leecher joins the game), after you leave game with host you must directly leave the game with the leecher before you get kicked by the game automatic.
    - Then you can resume game with both accounts and turn in the adria quest (only this time)
    - Now you can start the bot and it do this for you!

    Are you saying that when we join up and we both have the quest to turn in to Adria, that we are supposed to turn it in?

    I turned it in on both accounts and now it's just trying to re-turn the quest I don't have to Adria...
    Last edited by pwnagepimp; 07-01-2012 at 04:17 PM.

  15. #15
    FinnX's Avatar Banned
    Reputation
    40
    Join Date
    Aug 2009
    Posts
    82
    Thanks G/R
    0/0
    Trade Feedback
    1 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by pwnagepimp View Post
    Are you saying that when we join up and we both have the quest to turn in to Adria, that we are supposed to turn it in?

    I turned it in on both accounts and now it's just trying to re-turn the quest I don't have to Adria...
    The host character must have the quest "Talk to Adria in the hidden camp" and the leecher must have this quest done, when you have it like this, start the bot.
    A video can be found right here: ZK Farming Script by Nachto - YouTube

Page 1 of 6 12345 ... LastLast

Similar Threads

  1. Any bots with Full Background Mode?
    By warheart209 in forum SWTOR Bots and Programs
    Replies: 7
    Last Post: 04-17-2012, 02:46 PM
  2. Replies: 17
    Last Post: 11-19-2009, 04:25 PM
  3. Question about background mode.
    By bigtimt in forum WoW Memory Editing
    Replies: 9
    Last Post: 05-17-2009, 08:39 PM
  4. [background mode] help
    By goliat in forum World of Warcraft General
    Replies: 0
    Last Post: 08-27-2008, 07:59 AM
All times are GMT -5. The time now is 04:15 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search