-
Originally Posted by
JarJarD3
My bad as few words was left out, you are not stealing our time (in the sense I meant).
What I wanted to write was: THUD hackers are stealing our time as you and others have to deal with them.
yes, I guessed, my response was a joke with irony
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...
-
Originally Posted by
MlokCZ
If it can, that's ok. I don't use AHK, but autoIT (own scripts), but it will be probably same. I will search how. It is necessarily to baypass overlay and read pixel color of D3 directly.
If it can, than it is good way restriction TH.
I hope reading directly from the hwnd (handle) of the D3 window will work for you.
Function PixelSearch
the last parameter is the handle of the window, and you can get it with this:
Function WinGetHandle
Do not forget this: if you pass the handle to the PixelSearch or other pixel getter functions then you need to use a relative coordinate system where 0:0 is the top-left corner of the window.
If you don't provide a handle, then these functions use the "desktop" handle and the coordinate system is absolute, where 0:0 is the top-left corner of the screen.
Btw probably your autoit script already looks for the D3 window to get the position of it.
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...
-
Member
Thanks, but it doesn't work (I have tested new version of script with adding hwnd parametr). I use PixelGetColor (but it is same problem). Both funcion (PixelGetColor and PixelSearch) read screen pixel and need active window on top. Hwnd parametr only restrict for right window (but it have to be on top and active). When overlay doen't pass color of D3 pixels, than PixelGetColor and PixelSearch will not work).
PixelGetColor with hwnd parametr read black pixel.
It will need reading pixel color of not active window and it will be much complicated and slower.
GetPixel - Pixel Color of background Window - AutoIt Example Scripts - AutoIt Forums
Last edited by MlokCZ; 09-30-2019 at 02:16 AM.
-
Active Member
my own written necro ahk script ( not rely on thud overlay) is not working
My script use imagesearch to capture the skill bar portion of skill, if its not in cooldown it will auto cast it.
when skill is on cooldown , it is having a dimmer in color
I already capture a portion of skill out of cooldown in .png
and use imagesearch to make a comparsion for checking cooldown status
any solution on ahk script ?
Last edited by takayo72; 09-30-2019 at 02:41 AM.
-
Originally Posted by
MlokCZ
Thanks, but it doesn't work (I have tested new version of script with adding hwnd parametr). I use PixelGetColor (but it is same problem). Both funcion (PixelGetColor and PixelSearch) read screen pixel and need active window on top. Hwnd parametr only restrict for right window (but it have to be on top and active). When overlay doen't pass color of D3 pixels, than PixelGetColor and PixelSearch will not work).
PixelGetColor with hwnd parametr read black pixel.
It will need reading pixel color of not active window and it will be much complicated and slower.
GetPixel - Pixel Color of background Window - AutoIt Example Scripts - AutoIt Forums
What you linked is the recommended solution to read lot of data from an application anyways.
TurboT (my Diablo 2 bot) used that method too, so nothing in front of D2 altered the pixels I read.
It is not too hard to rewrite most code:
- in the main loop you need to "capture" the whole window - and store $BMP,HDC, etc values in the variables
- then your custom code can read the pixels using _GDIPlus_BitmapGetPixel($BMP, $iX, $iY)
- release the handles (like in the link you posted)
- then your loop ends and starts again
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...
-
Member
Originally Posted by
iThinkiWin
This is incredibly ignorant, bans do occur but its not very common. Most are done to players on the leader boards.
(as of recent, but bot accounts did get these as well early 2018 if you were unlucky.)
When you get this email you will go, "So they do exist". Though now that it has been moved to the "Classic Games"
team officially; There's a chance of less banning all together unless enough people complain, and they will.
You telling me ignorant but if you are smart enough and stay away from leaderboards and public games you always will be fine. We are recommended this every day in rosbot discord. Looks like you are not an active discord user. As i told before i am runnning 4 accounts in VM since 2 years, never banned. Good luck next time
Last edited by xratedownz; 09-30-2019 at 03:14 AM.
-
Member
Originally Posted by
KillerJohn
What you linked is the recommended solution to read lot of data from an application anyways.
TurboT (my Diablo 2 bot) used that method too, so nothing in front of D2 altered the pixels I read.
It is not too hard to rewrite most code:
- in the main loop you need to "capture" the whole window - and store $BMP,HDC, etc values in the variables
- then your custom code can read the pixels using _GDIPlus_BitmapGetPixel($BMP, $iX, $iY)
- release the handles (like in the link you posted)
- then your loop ends and starts again
It works for another apliaction than D3. I have red pixel color of inactive window too (tested IrfanView, PSPAD, ...). But for D3 window it reads always value "ABABAB", even without TH. I don't know why. For non D3 window it reads color ok even inactive window.
It is possible to pass throw overlay D3 pixels and only block TH pixels color?
Edit: Now I am trying to find another solution.
Last edited by MlokCZ; 09-30-2019 at 03:30 AM.
-
Contributor
My logitech macro works in latest version.
now the problem is I need use phone to print screen
-
Member
- added: HUD overlay can not be captured - HUD must be stopped before making a screenshot of the game, otherwise it will be black
it's stupid, thud should make life easier for players, not complicate
-
Member
Try another method: MemoryReadPixel
Doesen't work either. It works on non D3 aplication ok, but not on D3 (for D3 alway read "ABABAB" again) - testing without TH. Maybe is possible that only method that will work is read active window pixel color and that will not work with new version of TH.
Please try pass pixels of D3 (and block only TH pixels).
-
Originally Posted by
s4000
My logitech macro works in latest version.
now the problem is I need use phone to print screen
it is acceptable for me
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...
-
Post Thanks / Like - 1 Thanks
wenqu (1 members gave Thanks to KillerJohn for this useful post)
-
Originally Posted by
MlokCZ
Try another method: MemoryReadPixel
Doesen't work either. It works on non D3 aplication ok, but not on D3 (for D3 alway read "ABABAB" again) - testing without TH. Maybe is possible that only method that will work is read active window pixel color and that will not work with new version of TH.
Please try pass pixels of D3 (and block only TH pixels).
it is not possible
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...
-
Member
Than it doesn't have solution. All metod other than PixelGetColor (and similar function in another tools like AHK) reads pixel color from memory. And that isn't possible with D3 without decryption like TH.
And funcionts that read pixel color from screen will not work with new version of TH.
-
Originally Posted by
KillerJohn
I hope reading directly from the hwnd (handle) of the D3 window will work for you.
Function PixelSearch
the last parameter is the handle of the window, and you can get it with this:
Function WinGetHandle
Do not forget this: if you pass the handle to the PixelSearch or other pixel getter functions then you need to use a relative coordinate system where 0:0 is the top-left corner of the window.
If you don't provide a handle, then these functions use the "desktop" handle and the coordinate system is absolute, where 0:0 is the top-left corner of the screen.
Btw probably your autoit script already looks for the D3 window to get the position of it.
this is working like a charm
Code:
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>
#include <Array.au3>
_GDIPlus_Startup()
$hwnd = WinGetHandle("Diablo III")
Capture($hwnd)
Func Capture($WinHandle)
Local $aPos = WinGetPos($WinHandle)
$iWidth = $aPos[2]
$iHeight = $aPos[3]
Local $hDDC = _WinAPI_GetDC($WinHandle)
Local $hCDC = _WinAPI_CreateCompatibleDC($hDDC)
$hBMP = _WinAPI_CreateCompatibleBitmap($hDDC, $iWidth, $iHeight)
_WinAPI_SelectObject($hCDC, $hBMP)
DllCall("User32.dll", "int", "PrintWindow", "hwnd", $WinHandle, "hwnd", $hCDC, "int", 0)
_WinAPI_BitBlt($hCDC, 0, 0, $iWidth, $iHeight, $hDDC, 0, 0, $__SCREENCAPTURECONSTANT_SRCCOPY)
$BMP = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)
_WinAPI_SaveHBITMAPToFile("C:\diablo-3-capture.bmp", $hBMP)
_WinAPI_ReleaseDC($WinHandle, $hDDC)
_WinAPI_DeleteDC($hCDC)
_WinAPI_DeleteObject($hBMP)
_GDIPlus_ImageDispose($BMP)
EndFunc
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...
-
Originally Posted by
MlokCZ
Than it doesn't have solution. All metod other than PixelGetColor (and similar function in another tools like AHK) reads pixel color from memory. And that isn't possible with D3 without decryption like TH.
And funcionts that read pixel color from screen will not work with new version of TH.
This is nonsense, pixels are nothing like the data segment of call stack... you can easily read pixels, just like with the script in my previous post...
All pixels are "memory". They are stored in window handles and that's easy to read.
Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...