Permanent closure of the plugin API and the removal of China/Asia realm support menu

User Tag List

Page 7 of 16 FirstFirst ... 34567891011 ... LastLast
Results 91 to 105 of 234
  1. #91
    MlokCZ's Avatar Member
    Reputation
    5
    Join Date
    Mar 2017
    Posts
    70
    Thanks G/R
    11/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks, I have tried yours example and I have same problem. For another application then D3 (test IrfanView), it works ok. For D3 I have got whole black bmp (without runnig TH).
    Last edited by MlokCZ; 09-30-2019 at 04:35 AM.

    Permanent closure of the plugin API and the removal of China/Asia realm support
  2. #92
    KillerJohn's Avatar TurboHUD HUDmaster CoreCoins Purchaser Authenticator enabled
    Reputation
    3696
    Join Date
    Jul 2012
    Posts
    2,532
    Thanks G/R
    46/3338
    Trade Feedback
    0 (0%)
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by MlokCZ View Post
    Thanks, I have tried yours example and I have same problem. For another application then D3 (test IrfanView), it works ok. For D3 I have got whole black bmp (without runnig TH).
    It is very strange because it would mean you can not call GetPixel at all (GetPixel does the same as the method I posted above)
    Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...

  3. #93
    MlokCZ's Avatar Member
    Reputation
    5
    Join Date
    Mar 2017
    Posts
    70
    Thanks G/R
    11/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Example bellow: PixelGetColor works ok but only without TH, MemoryReadPixel doesn't work (even without TH). Same yours example (and same my test with that metod).

    #include <WinAPI.au3>

    HotKeySet("^{F2}","_exit")
    HotKeySet("{F1}","Go")

    Func Go()
    $handle = WinGetHandle("Diablo III")

    if $handle = "" Then
    MsgBox(0, "", "Please open app.")
    Exit
    EndIf

    MsgBox(0, "", "PixelGetColor color returned : " & hex(PixelGetColor(437, 11, $handle)) & @CRLF & _
    "MemoryReadPixel color returned : " & MemoryReadPixel(437, 11, $handle) )
    EndFunc

    Func _Exit()
    Exit
    EndFunc



    Opt("PixelCoordMode", 0)


    Func MemoryReadPixel($x, $y, $handle)
    Local $hDC
    Local $iColor
    Local $sColor

    $hDC = _WinAPI_GetWindowDC($handle)
    $iColor = DllCall("gdi32.dll", "int", "GetPixel", "int", $hDC, "int", $x, "int", $y)
    $sColor = Hex($iColor[0], 6)
    _WinAPI_ReleaseDC($handle, $hDC)

    Return Hex("0x" & StringRight($sColor, 2) & StringMid($sColor, 3, 2) & StringLeft($sColor, 2))
    EndFunc ;==>MemoryReadPixel

    While 1
    Sleep (100)
    WEnd

    Edit: And this example works ok both metod for non D3 aplication (like IrfanView).

  4. #94
    KillerJohn's Avatar TurboHUD HUDmaster CoreCoins Purchaser Authenticator enabled
    Reputation
    3696
    Join Date
    Jul 2012
    Posts
    2,532
    Thanks G/R
    46/3338
    Trade Feedback
    0 (0%)
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    improved a bit:

    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 $size = WinGetClientSize($WinHandle)
    	$iWidth = $size[0]
        $iHeight = $size[1]
    
        Local $hDDC = _WinAPI_GetDC($WinHandle)
        Local $hCDC = _WinAPI_CreateCompatibleDC($hDDC)
    
        $hBMP = _WinAPI_CreateCompatibleBitmap($hDDC, $iWidth, $iHeight)
    
        Local $hOldDC = _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)
        _WinAPI_SelectObject($hCDC, $hOldDC)
    
    ;~     $BMP = _GDIPlus_BitmapCreateFromHBITMAP($hBMP)
    ;~ 		read pixels here from $BMP
    
       _WinAPI_SaveHBITMAPToFile("C:\diablo-3-capture.bmp", $hBMP)
    
        _WinAPI_ReleaseDC($WinHandle, $hDDC)
        _WinAPI_DeleteDC($hCDC)
        _WinAPI_DeleteObject($hBMP)
    ;~     _GDIPlus_ImageDispose($BMP)
    
    EndFunc
    if this is not working for you then you may try to figure out why, because I tested it on 3 PCs and the example works on all. In fact this is a very simple stuff, so it should work easily...
    Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...

  5. #95
    MlokCZ's Avatar Member
    Reputation
    5
    Join Date
    Mar 2017
    Posts
    70
    Thanks G/R
    11/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks again. I will try figure out where is problem. And it is good that is working. Than it is possible solve the problem.
    I will start in evening on home computer. Now I am testing on notebook in domain and maybe some policy is problem (I have ofcourse user with admin rights). If yours example will work, than my example with MemoryReadPixel funkcion will probably work too and ii will be much faster.

  6. #96
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    Originally Posted by KillerJohn View Post
    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.
    Except if you explicitly prevent it, as in THUD.
    But D3 can not prevent it as it would make all "game overlays" to stop working. Otherwise D3 would have used this since it (the trick) was introduced.
    This "trick" was obviously introduced to prevent unauthorized copying of copyrighted material from any window. Like videos.
    I guess it must go down to the DirectX level as well to be really effective.

    As as we started sharing code here, this worked with D3 (with or without THUD running).
    You just need to have the windowHandle to do it.
    And you get from the processHandle!
    AHK and friends might we different concepts to make things easier for scripting, but in the end it boils down to process and window handles you have to have.
    You have to forget about which window is active or foreground etc. because they don't apply here.

    Code:
    while (running)
    {
        using (Graphics graphicsOut = Graphics.FromImage(screenCopy))
        {
            using (Graphics graphicsIn = Graphics.FromHwnd(windowHandle))
            {
                IntPtr hDcOut = graphicsOut.GetHdc();
                IntPtr hDcIn = graphicsIn.GetHdc();
                try
                {
                    BitBlt(hDcOut, srcX, srcY, srcWidth, srcHeight, hDcIn, destX, destY, (int)CopyPixelOperation.SourceCopy);
                }
                finally
                {
                    graphicsIn.ReleaseHdc();
                    graphicsOut.ReleaseHdc();
                }
            }
        }
        // Copy screen.
        var imageClone = screenCopy.Clone(copyRect, pixelFormat);
        ...
    It worked with THUD as well until recent events, which make me a bit sad.
    Buy hey, that's reality for us now and we just go on with what we have.
    And I'm happy if KJ is happy now
    Last edited by JarJarD3; 09-30-2019 at 05:06 AM. Reason: added highlight

  7. #97
    KillerJohn's Avatar TurboHUD HUDmaster CoreCoins Purchaser Authenticator enabled
    Reputation
    3696
    Join Date
    Jul 2012
    Posts
    2,532
    Thanks G/R
    46/3338
    Trade Feedback
    0 (0%)
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)
    You must understand that copying the screen is totally different than copying a window.
    If you copy the screen then you copy what you SEE.
    Printscreen, and most capture software captures the screen (or a region of it).
    Even AutoIt's _ScreenCapture_CaptureWnd method captures the screen and not the given window handle (it uses the hWnd to determine where is the window on the screen).

    But - as you can see in the example above - you can capture a window as well.

    HUD does not prevent anybody to copy the pixels from D3, but it prevents to copy the pixels from itself. Sadly while capturing the SCREEN Windows does not make the protected windows to disappear but they goes to black which means they mask everything behind them
    Do not send me private messages unless it is absolutely necessary or the content is sensitive or when I ask you to do that...

  8. #98
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    Above is pretty good explanation and I get it now AHK has problems (which one should be able to work around).
    THUD unintentionally blocks everything behind it when using screen capture method (which is simplest to do as it does not require any window handles at all).

  9. #99
    JarJarD3's Avatar Contributor
    Reputation
    106
    Join Date
    Oct 2017
    Posts
    395
    Thanks G/R
    41/101
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)
    And now when KJ has his attention here, there is one tiny request.
    Sorry for so long post.

    ISoundController is lacking features I found indispensable: asynchronous methods and option to cancel them.

    SpeechSynthesizer has all I would like to have to create better plugins that speak to me when I have press a button.

    History:
    Before I was aware of auto clickers I thought that it is better to speak than use UI (text, pictures).
    I am most of the time so busy killing monsters and staying alive that I have hard time reading instructions from the screen UI.
    I created a plugin that speaks to me when I have to do something (or there is something to do to be in prefect battle state).
    Cooldown expiration and buff expiration are two best examples of this.
    Or to apply buffs or something when there is monsters or bosses nearby.
    Move to trigger some buff or press generator to trigger something.
    Check that you have poisoned or haunted or applied whatever you can to monsters to make them easier to kill or crowd control.
    Typical macro or auto clicker stuff.

    Then I noticed from here that I can do sockets from THUD that was incredible loophole and of course I have to create my own auto clicker as it is fun challenge and ten times better than playing D3.
    When sockets was banned I had to move to pixel reading and it was nice challenge to learn something new and do it, thank you. Sockets was too easy, a no-brainer.

    Now as pixel reading is banned, I would like to move forward using more speak functionality to manage overlapping speaks without ISoundController restrictions.
    I guess for you it would be easiest to expose whole SpeechSynthesizer API as I don't see any danger doing so.

    An example:
    When I step into Oculus ring, I speak "inside oculus".
    When I step out from Oculus ring, I speak "outside oculus".
    When I repeat few times ISoundController start lagging as it has queued too much to speak them before new speak happens.

    And lets say I have five different things I track but there is now way to cancel them individually or know their position in speak queue.
    I can only say StopSpeak() but I don't know does it flushes the whole queue or just cancels current speak.
    There is now way to know when ISoundController is speaking or not.
    And that is not enough to manage the speak queue.

    I hope I presented this so that my point can be understood.
    TL;DR
    I want SpeechSynthesizer API.

  10. #100
    Vern1701's Avatar Active Member
    Reputation
    53
    Join Date
    Mar 2017
    Posts
    320
    Thanks G/R
    12/49
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I do not use any macros or "help" software, i.e., AHK, to play. I use TH simply because the base UI is boring. I should point out that I do have some limitations, so one would assume I should take advantage of all the tricks in the book. I don't do so by choice. TH is a wonderful aid for me and any other additional software is unnecessary. Those who use these automation aids are the real cheaters and are either lazy, ignorant, or have no fear of authority and aren't afraid to get caught.

  11. #101
    takayo72's Avatar Active Member
    Reputation
    17
    Join Date
    Jan 2018
    Posts
    203
    Thanks G/R
    43/15
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    i did try a ahk llibrary called gdip which call windows gdi dll call for screen capture.
    Isnt not working at all. It just captured a black screen

  12. #102
    MlokCZ's Avatar Member
    Reputation
    5
    Join Date
    Mar 2017
    Posts
    70
    Thanks G/R
    11/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Some progression on notebook.

    Problem is probably related with 2 grafic card (notebook has primary intel grafics a secondary nvidia).

    I have had able to one time successfull safe bit map to file. But only in combination run D3 in fullscreen and only first capture after first switch out and in D3. After second switch it doesen't work. And in Windowed fullscreen mode doesen't work at all. Switch D3 to Intel card doesen't help.

    When I simulated situation in fullscreen after first switch (out from D3 and back), than it works either simplier variantion with function MemoryReadPixel. Now I can't test it with TB (TB need windowed mode), but when it works without, than will work with it too.
    I will see in evening on computer with only one graphish card. But it is important for me, than it works on notebook too (I will try searching how to do it).

  13. #103
    iThinkiWin's Avatar Active Member
    Reputation
    28
    Join Date
    Oct 2018
    Posts
    104
    Thanks G/R
    25/25
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by takayo72 View Post
    i did try a ahk llibrary called gdip which call windows gdi dll call for screen capture.
    Isnt not working at all. It just captured a black screen
    with gdip

    image:=Gdip_BitmapFromHWND(hwnd) ; Pull the image from hwnd that you set.
    rgb := GDIP_GetPixel(image, x, y) ;get the color from the above image

  14. Thanks takayo72 (1 members gave Thanks to iThinkiWin for this useful post)
  15. #104
    Furnace's Avatar Member
    Reputation
    1
    Join Date
    Mar 2019
    Posts
    7
    Thanks G/R
    6/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thats sad tbh. I get why you do this, but like you and a few others said "update enigma" to get your macrostuff. Yeah but this is nothing simple players like the most of us are can do. There is a updated Version of D3 Helper but this few guys what have it dont share it with the comunity. Now its like you have to be computer scientist to play a game like you want. That dont hurt the top 10 Players, most of them have the updated D3 helper, it hurts us simple Players that are obviously cant do stuff like that. Its nothing what you just do in a few minutes or something without any knowledge.

  16. #105
    RNN's Avatar Legendary
    Reputation
    876
    Join Date
    Sep 2018
    Posts
    1,151
    Thanks G/R
    108/838
    Trade Feedback
    0 (0%)
    Mentioned
    15 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by Furnace View Post
    Now its like you have to be computer scientist to play a game like you want.
    This phrase could be said tb as : Now it's like you have to be a politician to use the laws however you want (it's a joke)
    One thing has become clear to me, the competitiveness (fair, it is understood) in this game is a mere illusion. Who does not use one thing uses another (except some people very afraid to lose their accounts), and not everyone has access to the same things.
    Last edited by RNN; 09-30-2019 at 08:01 AM.

Page 7 of 16 FirstFirst ... 34567891011 ... LastLast

Similar Threads

  1. [Request] Can anyone help me find a Bane of the Stricken plugin!
    By amarpatel826 in forum TurboHUD Discussions
    Replies: 2
    Last Post: 06-11-2019, 12:07 AM
  2. Replies: 0
    Last Post: 03-27-2019, 03:46 PM
  3. [Question] Name of the plugin in charge of this
    By ASSouthport in forum TurboHUD Support
    Replies: 1
    Last Post: 11-03-2018, 05:36 PM
  4. With the closure of the RMAH what are people's plans?
    By Funkays in forum Diablo 3 General
    Replies: 6
    Last Post: 03-15-2014, 12:59 PM
  5. Permanent Badge of the Swarmguard
    By KuRIoS in forum World of Warcraft Exploits
    Replies: 13
    Last Post: 11-02-2006, 04:56 PM
All times are GMT -5. The time now is 02:28 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