Results 1 to 8 of 8
  1. #1
    limacezzz's Avatar
    Join Date
    May 2015
    Gender
    male
    Posts
    62
    Reputation
    10
    Thanks
    338
    My Mood
    Inspired

    Lightbulb Nk Gems/XP Bot 1.5

    Nk Gems/XP Bot

    What's new :
    New launcher, can work in any adventure world (even geode topside !)
    Now working in background !
    Now working on any monitor (not only primary) !

    Disclaimer :
    This bot is here to prove that you can do avnthing you want if you have an idea.
    If you want a better gems/exp bot, you can make your own just editing my code.

    Info & Tuto :
    The 5th update of my adventure bot !

    To make it work on a 1920x1080 : (for others, read the quick guide below)
    • Press "i" and disable everything except "Dungeons".
    • Set the game to windowed mode.
    • Maximize this window.
    • Run the GUI
    • Enter a world
    • Pick the blade direction on the GUI
    • You are done, now you can let it play in background

    If this is not working (the bot is just /respawn-ing), check this tutorial :
    https://www.mpgh.net/forum/showthread.php?t=1490846


    Explanations :
    This script will make you respawn.
    Then it sends keys to move to the rally blade and use it.
    Once teleported, it checks if you are in a dungeon by searching for it's logo (checking pixel color at logo location) on the top right of the screen.
    If the logo is found, the script checks every 5s if this logo is still here, this during 90s or until the dungeon is completed.
    If the dungeon is cleared before those 90s, the script will try to loot, add 1 to dungeons count and restart (/respawn...).
    After 90s uncleared the script will timeout and respawn.

    To-do :
    (still) Find the dungeon pointer (that shows up the dungeon logo).
    Improve delays between keys sending ?
    Enable multi-acc.
    Adapt to different resolutions ?
    Create better "random" human behavior when waiting in dungeon or respawning
    Make a geode caves bot
    Add auto pots script
    Add automatic world switch ?

    I'm opened to all of your ideas and suggestions, feel free to share them in the comments (Thanks to those who already inspired me)

    AHK Script :
    Launcher :
    Code:
    SetWorkingDir %A_ScriptDir%
    PauseFlag := 0
    
    Gui Add, GroupBox, h87 w250, Adventure Bot Control (arrow = blade position)
    Gui Add, Button, xm+5 ym+12 w80 h23 gTopL, 🡼
    Gui Add, Button, xm+85 ym+12 w80 h23 gTop, 🡹
    Gui Add, Button, xm+165 ym+12 w80 h23 gTopR, 🡽 
    Gui Add, Button, xm+5 ym+35 w80 h23 gLeft, 🡸
    Gui Add, Button, xm+85 ym+35 w80 h23, unused
    Gui Add, Button, xm+165 ym+35 w80 h23 gRight,  🡺
    Gui Add, Button, xm+5 ym+58 w80 h23 gBotL, 🡿
    Gui Add, Button, xm+85 ym+58 w80 h23 gBot,🡻
    Gui Add, Button, xm+165 ym+58 w80 h23 gBotR, 🡾
    Gui Add, GroupBox, h87 w90 x262 y6, Tools
    Gui Add, Button, xm+257 ym+12 w80 h23 gPxChk, Pixel Checker
    Gui Add, Button, xm+257 ym+35 w80 h23 gPause vToggle, Pause
    Gui Add, Button, xm+257 ym+58 w80 h23 gStop, Stop
    Gui Show,, Nk Bots v1.5
    Return
    
    TopL:
    	Run, NkAdvBot.ahk "TopL"
    Return
    
    Top:
    	Run, NkAdvBot.ahk "Top"
    Return
    
    TopR:
    	Run, NkAdvBot.ahk "TopR"
    Return
    
    Left:
    	Run, NkAdvBot.ahk "Left"
    Return
    
    Right:
    	Run, NkAdvBot.ahk "Right"
    Return
    
    BotL:
    	Run, NkAdvBot.ahk "BotL"
    Return
    
    Bot:
    	Run, NkAdvBot.ahk "Bot"
    Return
    
    BotR:
    	Run, NkAdvBot.ahk "BotR"
    Return
    
    Pause:
    	Send {Numpad1}
    	if(PauseFlag=0){
    		PauseFlag := 1
    		GuiControl,,Toggle,Resume
    	}else{
    		PauseFlag := 0
    		GuiControl,,Toggle,Pause
    	}
    Return
    	
    Stop:
    	Send {Numpad0}
    Return
    	
    PxChk:
    	Run, NkPxChk.ahk
    Return
    
    GuiClose:
    	Send {Numpad0}
    	ExitApp
    Return
    Bot :
    Code:
    #SingleInstance force
    #NoTrayIcon
    
    ;get window handle
    hWnd := WinExist("ahk_exe Trove.exe")
    
    if(hWnd=""){
    	MsgBox, 48, Error, No Trove window found
    	ExitApp
    }else{
    	CoordMode, Mouse, Screen
    	CoordMode, Pixel, Screen
    	SysGet, WindowBorderWidth, 32
    	;Delay between each key (ms) to avoid some bugs while typing
    	SetKeyDelay, 40	
    }
    		
    ;Retrieve the direction from args[1] and setup the keys (don't ask me why, dir is always equal to 1, which is also the name of the first arg var, so it works only like this Ô_o
    dir := 1
    if (%dir% = "TopL"){
    	xDirKey := "q"
    	yDirKey := "z"
    }else if (%dir% = "Top"){
    	xDirKey := ""
    	yDirKey := "z"
    }else if (%dir% = "TopR"){
    	xDirKey := "d"
    	yDirKey := "z"
    }else if (%dir% = "Left"){
    	xDirKey := "q"	
    	yDirKey := ""
    }else if (%dir% = "Right"){
    	xDirKey := "d"
    	yDirKey := ""
    }else if (%dir% = "BotL"){
    	xDirKey := "q"
    	yDirKey := "s"
    }else if (%dir% = "Bot"){
    	xDirKey := ""
    	yDirKey := "s"
    }else if (%dir% = "BotR"){
    	xDirKey := "d"
    	yDirKey := "s"
    }
    
    ;Init quests tracker
    ClearedDungeons := 0
    Loop {
    	ToolTipColor(0x262626,0xffab87)
    	ToolTip, Dungeons completed : %ClearedDungeons%`nPress num1 to pause`nPress num0 to exit, 10, 34
    	Sleep 200
    	ControlSend,,{w},ahk_id %hWnd%
    	Sleep 100
    	ControlSend,,{z down},ahk_id %hWnd%
    	ControlSend,,{d down},ahk_id %hWnd%
    	Sleep 100
    	ControlSend,,{Space},ahk_id %hWnd%
    	Sleep 200
    	ControlSend,,{Space},ahk_id %hWnd%
    	Sleep 200
    	ControlSend,,{Space},ahk_id %hWnd%
    	Sleep 200
    	ControlSend,,{Space},ahk_id %hWnd%
    	Sleep 200
    	ControlSend,,{Space},ahk_id %hWnd%
    	Sleep 200
    	ControlSend,,{Space down},ahk_id %hWnd%
    	Sleep 600
    	ControlSend,,{z up},ahk_id %hWnd%
    	ControlSend,,{d up},ahk_id %hWnd%
    	ControlSend,,{Space up},ahk_id %hWnd%
    	Sleep 200
    	;respawn to the rally blade and use it	
    	ControlSend,,{Enter}{Shift down}:{Shift up}respawn{Enter},ahk_id %hWnd%
    	Sleep 1000
    	ControlSend,,e,ahk_id %hWnd%
    	;Send {e}
    	Sleep 2000
    	ControlSend,,w,ahk_id %hWnd%
    	ControlSend,,{%yDirKey% down},ahk_id %hWnd%
    	ControlSend,,{%xDirKey% down},ahk_id %hWnd%
    	Sleep 300
    	ControlSend,,{%yDirKey% up},ahk_id %hWnd%
    	Sleep 100
    	ControlSend,,{%xDirKey% up},ahk_id %hWnd%
    	Sleep 1000
    	ControlSend,,e,ahk_id %hWnd%
    	Sleep 3000
    	TimeOut = 0
    	FoundDungeon = 0
    	Loop {
    		;detect a dungeon TO-DO : Edit for multi accounts
    		Dungeon1 := PixelColorSimple(1560 , 122, hWnd)
    		Dungeon2 := PixelColorSimple(1560 , 194, hWnd)
    		Dungeon3 := PixelColorSimple(1560 , 266, hWnd)
    		
    		if (Dungeon1 = "0xFEF89A"||Dungeon2 = "0xFEF89A"||Dungeon3 = "0xFEF89A")
    		{
    			FoundDungeon = 1
    			if (TimeOut = 18)
    			{
    				;break after 5000ms*18=90s in uncleared dungeon
    				Break
    			}
    			TimeOut++	
    			;fake human moves in 5000ms loop
    			Sleep 500
    			ControlSend,,&,ahk_id %hWnd%				
    			Sleep 4500 ;=5000ms wait per loop inside dungeon
    		}
    		else
    		{
    			;When the dungeon is completed (after waiting a bit and the detected icon disappeared)
    			if (FoundDungeon = 1)
    			{
    				ClearedDungeons++
    				;time to loot !
    				Sleep 2000
    				;wait for chest to be destroyed
    				ControlSend,,{e down},ahk_id %hWnd%
    				;auto loot everything
    				Sleep 5000
    				ControlSend,,{e up},ahk_id %hWnd%
    			}
    			Break
    		}
    	}
    }
    
    Numpad0::ExitApp
    Numpad1::
    	ToolTipColor(0x262626,0xff0000)
    	ToolTip, The bot is paused `nPress num1 to resume, 10, 34
    	Pause,,1 
    Return 
    
    ;libraries :
    ;Thanks to lexikos for his pixel color and tooltip color libs
    
    PixelColorSimple(pc_x, pc_y, hWnd)
    {
    	SysGet, WindowTitleHeight, 4
    	SysGet, WindowBorderWidth, 45
    	pc_hDC := DllCall("GetDC", "UInt", hWnd)
    	pc_fmtI := A_FormatInteger
    	SetFormat, IntegerFast, Hex
    	pc_c := DllCall("GetPixel", "UInt", pc_hDC, "Int", pc_x+WindowBorderWidth, "Int", pc_y-WindowTitleHeight, "UInt")
    	pc_c := pc_c >> 16 & 0xff | pc_c & 0xff00 | (pc_c & 0xff) << 16
    	pc_c .= ""
    	SetFormat, IntegerFast, %pc_fmtI%
    	DllCall("ReleaseDC", "UInt", hWnd, "UInt", pc_hDC)
    	return pc_c
    }
    
    ToolTipColor(Background := "", Text := "", hwnd := "") {
        static bc := "", tc := ""
        if (hwnd = "") {
            if (Background != "")
                bc := Background="Default" ? "" : _TTG("Color", Background)
            if (Text != "")
                tc := Text="Default" ? "" : _TTG("Color", Text)
            _TTHook()
        }
        else {
            VarSetCapacity(empty, 2, 0)
            DllCall("UxTheme.dll\SetWindowTheme", "ptr", hwnd, "ptr", 0
                , "ptr", (bc != "" && tc != "") ? &empty : 0)
            if (bc != "")
                DllCall("SendMessage", "ptr", hwnd, "uint", 1043, "ptr", bc, "ptr", 0)
            if (tc != "")
                DllCall("SendMessage", "ptr", hwnd, "uint", 1044, "ptr", tc, "ptr", 0)
        }
    }
     
    _TTHook() {
        static hook := 0
        if !hook
            hook := DllCall("SetWindowsHookExW", "int", 4
                , "ptr", RegisterCallback("_TTWndProc"), "ptr", 0
                , "uint", DllCall("GetCurrentThreadId"), "ptr")
    }
     
    _TTWndProc(nCode, _wp, _lp) {
        Critical 999
       ;lParam  := NumGet(_lp+0*A_PtrSize)
       ;wParam  := NumGet(_lp+1*A_PtrSize)
        uMsg    := NumGet(_lp+2*A_PtrSize, "uint")
        hwnd    := NumGet(_lp+3*A_PtrSize)
        if (nCode >= 0 && (uMsg = 1081 || uMsg = 1036)) {
            _hack_ = ahk_id %hwnd%
            WinGetClass wclass, %_hack_%
            if (wclass = "tooltips_class32") {
                ToolTipColor(,, hwnd)
            }
        }
        return DllCall("CallNextHookEx", "ptr", 0, "int", nCode, "ptr", _wp, "ptr", _lp, "ptr")
    }
     
    _TTG(Cmd, Arg1, Arg2 := "") {
        static htext := 0, hgui := 0
        if !htext {
            Gui _TTG: Add, Text, +hwndhtext
            Gui _TTG: +hwndhgui +0x40000000
        }
        Gui _TTG: %Cmd%, %Arg1%, %Arg2%
        if (Cmd = "Font") {
            GuiControl _TTG: Font, %htext%
            SendMessage 0x31, 0, 0,, ahk_id %htext%
            return ErrorLevel
        }
        if (Cmd = "Color") {
            hdc := DllCall("GetDC", "ptr", htext, "ptr")
            SendMessage 0x138, hdc, htext,, ahk_id %hgui%
            clr := DllCall("GetBkColor", "ptr", hdc, "uint")
            DllCall("ReleaseDC", "ptr", htext, "ptr", hdc)
            return clr
        }
    }


    Virus scans :
    https://virusscan.jotti.org/filescanjob/8vna22lk60
    https://www.virustotal.com/gui/file/...97fb/detection
    <b>Downloadable Files</b> Downloadable Files
    Last edited by T-800; 03-05-2020 at 10:09 AM.
    "Open source enables a development method for software that harnesses the power of distributed peer review and transparency of process.
    The promise of open source is higher quality, better reliability, greater flexibility, lower cost, and an end to predatory vendor lock-in."

    -> Gem farming bot

  2. The Following 8 Users Say Thank You to limacezzz For This Useful Post:

    chipon1 (03-21-2020),derpherpder (03-04-2020),ehtrocc (03-03-2020),jonnispro (03-03-2020),Raato100 (04-24-2020),rahiri182 (03-04-2020),thegamingobsession (03-03-2020),Trovetesteur (03-03-2020)

  3. #2
    thegamingobsession's Avatar
    Join Date
    Mar 2019
    Gender
    male
    Posts
    9
    Reputation
    10
    Thanks
    2
    its just re spawning for me when it teleports me to a player even with a dungeon there, tried to change the pixels myself but still no success
    Last edited by thegamingobsession; 03-03-2020 at 04:49 PM.

  4. #3
    meme's Avatar
    Join Date
    Jan 2016
    Gender
    male
    Location
    42.434720, -83.985
    Posts
    8,107
    Reputation
    1470
    Thanks
    2,430
    My Mood
    Lurking
    /approved //2short//
    Quote Originally Posted by Hennessy View Post
    meme is shittiest general mod ever.
     
    dd/mm/yy
    Member | 28/1/16 - ∞
    Premium | 20/3/16 - ∞
    BattleOn Minion | 24/12/17 - 21/7/21
    Minion+ | 4/4/19 - 11/12/20
    Other MMMORPG Minion | 10/11/19 - 21/7/21
    Publicist | 7/2/20 - Unknown
    Minecraft Minion | 10/12/20 - 21/7/21
    General Minion | 10/12/20 - 21/7/21

    Moderator | 11/12/20 - 21/7/21
    Princess | 5/1/21 - 30/6/21
    Global Moderator | 21/7/21 - ∞
    Pharaoh | 30/1/22 - ∞
    Trusted Member | 16/3/23 - ∞

  5. #4
    limacezzz's Avatar
    Join Date
    May 2015
    Gender
    male
    Posts
    62
    Reputation
    10
    Thanks
    338
    My Mood
    Inspired
    Quote Originally Posted by thegamingobsession View Post
    its just re spawning for me when it teleports me to a player even with a dungeon there, tried to change the pixels myself but still no success
    check the tutorial, with the new pixel checker (coords are now different from the previous one, because i used "coordmode, pixel, screen")
    "Open source enables a development method for software that harnesses the power of distributed peer review and transparency of process.
    The promise of open source is higher quality, better reliability, greater flexibility, lower cost, and an end to predatory vendor lock-in."

    -> Gem farming bot

  6. #5
    thegamingobsession's Avatar
    Join Date
    Mar 2019
    Gender
    male
    Posts
    9
    Reputation
    10
    Thanks
    2
    thats what im saying ive done but still no success

  7. #6
    derpherpder's Avatar
    Join Date
    Nov 2013
    Gender
    male
    Posts
    8
    Reputation
    10
    Thanks
    1
    Will be trying this, will post again with results when finished

  8. #7
    Kumoko's Avatar
    Join Date
    Apr 2011
    Gender
    male
    Posts
    175
    Reputation
    10
    Thanks
    321
    So far this appears to only work in the single occasion that the blade is behind you on the left, every other direction does not work thus far.
    Im back.

  9. #8
    limacezzz's Avatar
    Join Date
    May 2015
    Gender
    male
    Posts
    62
    Reputation
    10
    Thanks
    338
    My Mood
    Inspired
    Quote Originally Posted by Kumoko View Post
    So far this appears to only work in the single occasion that the blade is behind you on the left, every other direction does not work thus far.
    If you have a qwerty keyboard you have to edit the first part with dirkeys
    Last edited by limacezzz; 03-05-2020 at 02:18 AM.
    "Open source enables a development method for software that harnesses the power of distributed peer review and transparency of process.
    The promise of open source is higher quality, better reliability, greater flexibility, lower cost, and an end to predatory vendor lock-in."

    -> Gem farming bot

Similar Threads

  1. Grimoire 3.8 --Tainted Gems Farming Bot
    By Viserra in forum Adventure Quest Worlds (AQW) Hacks / Cheats / Trainers
    Replies: 3
    Last Post: 02-25-2019, 10:00 AM
  2. [Release] Dreadrock Gem Exchange bot (fast Tainted Gems, Dark Crystal Shards & Diamonds)
    By axtreckkkk in forum Adventure Quest Worlds (AQW) Hacks / Cheats / Trainers
    Replies: 46
    Last Post: 11-02-2018, 12:33 AM
  3. [Release] Fast TAINTED GEMS Dreadrock Gem Exchange Bot
    By amir buu in forum Adventure Quest Worlds (AQW) Hacks / Cheats / Trainers
    Replies: 3
    Last Post: 08-15-2017, 05:02 AM
  4. [Release] Pure Ichor Gem (Merge Item) Bot!
    By Eternity in forum Adventure Quest Worlds (AQW) Hacks / Cheats / Trainers
    Replies: 3
    Last Post: 11-22-2014, 07:46 AM
  5. [Release] NEW, FASTER GOOD + EVIL REP (TAINTED GEM) BOT FOR RANK 4 GOOD + EVIL
    By dzungteelee in forum Adventure Quest Worlds (AQW) Hacks / Cheats / Trainers
    Replies: 3
    Last Post: 09-11-2013, 11:34 PM