is ahk possible to read d3 screen directly ? menu

User Tag List

Page 2 of 3 FirstFirst 123 LastLast
Results 16 to 30 of 44
  1. #16
    DeeThree's Avatar Member
    Reputation
    4
    Join Date
    Feb 2018
    Posts
    32
    Thanks G/R
    30/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you for posting both of those johnbl!

    I don't quite understand what you did in a few spots though:

    Code:
    bmpHaystack := Gdip_BitmapFromHWNDCropped(d3hwnd, _x "|" _y "|" _w "|" _h)
    The positioning of the "" is throwing me off.

    Code:
    _x := S[1], _y := S[2], _w := S[3], _h := S[4]
    Where are these being defined? Or is that what you meant to go where the pipes "|" are?

    is ahk possible to read d3 screen directly ?
  2. #17
    johnbl's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    129
    Thanks G/R
    347/16
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DeeThree View Post
    Thank you for posting both of those johnbl!

    I don't quite understand what you did in a few spots though:

    Code:
    bmpHaystack := Gdip_BitmapFromHWNDCropped(d3hwnd, _x "|" _y "|" _w "|" _h)
    The positioning of the "" is throwing me off.

    Code:
    _x := S[1], _y := S[2], _w := S[3], _h := S[4]
    Where are these being defined? Or is that what you meant to go where the pipes "|" are?
    Those are the coordinates of (x, y of top left, width and height) of the portion of the screen you want to capture (in my case, just the skill bar).
    You just set them with
    _x := some number
    _y := another number
    etc

    The pipes are needed for the StrSplit function

  3. Thanks DeeThree (1 members gave Thanks to johnbl for this useful post)
  4. #18
    DeeThree's Avatar Member
    Reputation
    4
    Join Date
    Feb 2018
    Posts
    32
    Thanks G/R
    30/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thanks, so many ways to do the same things in AHK that it gets confusing. Sadly even though I stumbled onto the main fix am not having luck using gdip_image or pixel search methods in an actual script other than making single screenshots with it.

  5. #19
    johnbl's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    129
    Thanks G/R
    347/16
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by DeeThree View Post
    Thanks, so many ways to do the same things in AHK that it gets confusing. Sadly even though I stumbled onto the main fix am not having luck using gdip_image or pixel search methods in an actual script other than making single screenshots with it.
    Take a look here and at the test script from here.

  6. Thanks DeeThree (1 members gave Thanks to johnbl for this useful post)
  7. #20
    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)
    vRet := Gdip_ImageSearch(gameBitmap, skillBitmap, vPosXY, 0, 0, 0, 0, 30)
    u can use 0,0,0,0 to define the search area from cropped image

    with original Gdip_BitmapFromHWND function, a whole game screen will be capture, that why we need to specific a search area instead of whole image (search from thousand of pixels)to speed up the process. Now with new cropped function, 0,0,0,0 means search from whole cropped images (a few ten pixels by ten pixels only), it wont slow down the search speed

  8. Thanks DeeThree (1 members gave Thanks to takayo72 for this useful post)
  9. #21
    DeeThree's Avatar Member
    Reputation
    4
    Join Date
    Feb 2018
    Posts
    32
    Thanks G/R
    30/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you to both of you.

    EDIT:

    What the issue largely ended up being was AHK deciding to be entirely random on accepting %A_ScriptDir% or any variation thereof in the paths for the skill images.
    I simply used a full path when defining those variable names for my skills.

    For anyone else having issues simply add a MsgBox after one of your ImageSearch to get the code, 1 , 0 or things like -1001 that means invalid Needle.

    Code:
    vRet := Gdip_ImageSearch(gameBitmap, skillBitmap, vPosXY, 0, 0, 0, 0, 30)
    MsgBox, %vRet%
    Last edited by DeeThree; 11-04-2019 at 09:03 PM.

  10. #22
    Disaster99's Avatar Member
    Reputation
    11
    Join Date
    Feb 2018
    Posts
    19
    Thanks G/R
    3/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    something that works for me

    My journey below

    1.) was annoyed as fuck for having hud blackout the screen
    2.) looked for a way around it
    3.) found this thread and was hoping it would show me how to use an alternative to the default AHK ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
    3.) I'm, not a programmer, just some guy with some minimal self-taught experience and after reading the thread was more confused than ever. (mainly casue there was no "working" example just all little code snipplets that don't mean much by themselves.)
    4.) continued with the google search
    5.) etc
    6.) etc
    7.) etc
    8.) end up with something that works
    9.) posting here with an example script to possible help anyone as clueless as I am/was

    Notes:
    - as I said I'm, not a programmer and there may be better ways to do this however this is what I've come up with that working for myself.


    Additional Files
    - Gdip_All.ahk
    ---- AHKv2-Gdip/Gdip_All.ahk at master . mmikeww/AHKv2-Gdip . GitHub

    - Gdip_ImageSearch.ahk
    ---- AutoHotkey/Gdip_ImageSearch.ahk at master . MasterFocus/AutoHotkey . GitHub

    - archon.png
    ---- turned hud off
    ---- took a snapshot (print screen button)
    ---- pasted in paint
    ---- cropped archon skill on the skill bar
    ---- saved file as archon.png

    - these files + the main ahk script are all located in the same directory


    Code:
    SetBatchLines, -1
    Process, Priority,, High
    SendMode, Input
    
    #Include Gdip_All.ahk                       ; load functions from Gdip_All.ahk file
                                                ; Ddip_All.ahk - https://github.com/mmikeww/AHKv2-Gdip/blob/master/Gdip_All.ahk
    
    #Include Gdip_ImageSearch.ahk               ; load functions from Gdip_ImageSearch.ahk file
                                                ; Gdip_ImageSearch.ahk - https://github.com/MasterFocus/AutoHotkey/blob/master/Functions/Gdip_ImageSearch/Gdip_ImageSearch.ahk
    
    archon_skill_key = 4                        ; set to the key that archon skill is set to in game
                                                ; usually 1 2 3 4 LButton RButton
    
    5::                                         ; hotkey to start (don't really need but here as example)
        loop,                                   ; just loops the script continuously untill you close it
        {
            findArchonImg()                     ; calls function that will keep looking until archon skill is off cooldown
            SendInput, {%archon_skill_key%}     ; presses archon
    
            loop, 30                            ; loop is going to run 30 times 
            {
                SendInput, 1                    ; will send the 1 key to activate archon blast
                sleep 650                       ; then will sleep 650ms  (30 x 650ms = 19,500  close to lengh of archon)
            }
        }
    
        Return 
    
    findArchonImg()                                                                                            ; function name can be anything you want
    {
        gdipToken := Gdip_Startup()                                                                            ; idk exactly but sounds like it starts the gdip library 
        hwnd := WinExist("ahk_exe Diablo III64.exe")                                                           ; the variable hwnd is set to the diablo window name 
        image_to_find := Gdip_CreateBitmapFromFile("archon.png")                                               ; the variable image_to_find is set to the image file thats located in the same directory
    
        while (!true_or_false_var)                                                                             ; basically saying - while the archon.png image is not found countinue looking   (! = not) 
        {
            screen_snapshot := Gdip_BitmapFromHWND(hwnd)                                                       ; takes a screen shot of the diablo window and saves it in the variable screen_snapshot
    
                                                                                                               ; this is where its searching the diablo window simular to the defualt ahk ImageSearch function
            true_or_false_var := Gdip_ImageSearch(screen_snapshot, image_to_find, LIST,0,0,0,0,0,0xFFFFFF,1,0) ; if it sees the archon.png img on the screen then it will set "true_or_false_var" to 1 (aka true)
                                                                                                               ; if it does not see the archon.png img on the screen then it will set "true_or_false_var" to 0 (aka false)     
                                                                                                  
        }
    
        Gdip_DisposeImage(image_to_find)                                 ; idk exactly but sounds like it clears the img from memory
        Gdip_DisposeImage(screen_snapshot)                               ; idk exactly but sounds like it clears the img from memory
        Gdip_Shutdown(gdipToken)                                         ; idk exactly but sounds like it stop the gdip library that was started from running "gdipToken := Gdip_Startup()"
    
        Return
    }
    Last edited by Disaster99; 11-07-2019 at 08:45 PM.

  11. Thanks johnbl, DeeThree, QianLei (3 members gave Thanks to Disaster99 for this useful post)
  12. #23
    johnbl's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    129
    Thanks G/R
    347/16
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey Disaster99, the difference between your code and takayo72/mine's is that you are capturing the whole screen (screen_snapshot := Gdip_BitmapFromHWND(hwnd)) and using that to search for the archon picture. We are using an alternative function to capture only the skill bar (Gdip_BitmapFromHWNDCropped(d3hwnd, _x "|" _y "|" _w "|" _h)) and search for the skill picture in there.
    Since the skill bar is much smaller than the whole screen, the search will be faster.

  13. Thanks Disaster99, DeeThree (2 members gave Thanks to johnbl for this useful post)
  14. #24
    Disaster99's Avatar Member
    Reputation
    11
    Join Date
    Feb 2018
    Posts
    19
    Thanks G/R
    3/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So I was able to get johnbl cropped image capture to work. (thanks it is was faster - 10ms ish vs 60ms ish). Anyways the reason I was able to get it to work was because you had posted
    Code:
    Gdip_BitmapFromHWNDCropped(d3hwnd, _x "|" _y "|" _w "|" _h)
    I was messing up the _x "|" _y "|" _w "|" _h part because i've never seen a single argument be split up into multiple variables before.

    So my first question is why use Gdip_BitmapFromHWNDCropped(d3hwnd, _x "|" _y "|" _w "|" _h)
    instead of using Gdip_BitmapFromHWNDCropped(d3hwnd, x, y, w, h) ?


    Second question.)
    I would like to use
    _x1 _y1 _x2 _y2
    VS
    _x _y _w _h

    Code:
    Gdip_BitmapFromHWNDCropped(hwnd, Screen) {
    	Raster := ""
    	Ptr := A_PtrSize ? "UPtr" : "UInt"
    	hhdc := GetDCEx(hwnd, 3)
    	S := StrSplit(Screen, "|")
    	_x1 := S[1], _y1 := S[2], _x2 := S[3] - S[1], _y2 := S[4] - S[2]
    
    
    	chdc := CreateCompatibleDC(), hbm := CreateDIBSection(_x2, _y2, chdc)
    	obm := SelectObject(chdc, hbm), hhdc := hhdc ? hhdc : GetDC()
    	BitBlt(chdc, 0, 0, _x2, _y2, hhdc, _x1, _y1, Raster)
    	ReleaseDC(hhdc)
    
    	pBitmap := Gdip_CreateBitmapFromHBITMAP(hbm)
    	SelectObject(chdc, obm), DeleteObject(hbm), DeleteDC(hhdc), DeleteDC(chdc)
    	return pBitmap
    }
    will work but I feel like there is a better way?

  15. #25
    johnbl's Avatar Active Member
    Reputation
    33
    Join Date
    Dec 2016
    Posts
    129
    Thanks G/R
    347/16
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So my first question is why use Gdip_BitmapFromHWNDCropped(d3hwnd, _x "|" _y "|" _w "|" _h)
    instead of using Gdip_BitmapFromHWNDCropped(d3hwnd, x, y, w, h) ?
    Because "screen" is a single argument of the function that gets split into 4 values by the StrSplit() function. The pipe symbol is used so it knows where to split. You could rewrite the function so it receives 4 arguments instead of just 1, but because the original used only one, I kept it.

    I would like to use
    _x1 _y1 _x2 _y2
    VS
    _x _y _w _h
    You shouldn't change the function's internal variables names, you just use whatever you want in your script and pass them to the function.

    Using your findArchonImg function as an example:
    Code:
    findArchonImg()                                                                                            ; function name can be anything you want
    {
        gdipToken := Gdip_Startup()                                                                            ; idk exactly but sounds like it starts the gdip library 
        d3hwnd := WinExist("ahk_exe Diablo III64.exe")                                                           ; the variable hwnd is set to the diablo window name 
        image_to_find := Gdip_CreateBitmapFromFile("archon.png")                                               ; the variable image_to_find is set to the image file thats located in the same directory
        _x1 := 800 ; top left pixel
        _y1 := 600 ; top left pixel
        _x2 := 640 ; width
        _y2 := 480 ; height
    
        while (!true_or_false_var)                                                                             ; basically saying - while the archon.png image is not found countinue looking   (! = not) 
        {
            screen_snapshot := Gdip_BitmapFromHWNDCropped(d3hwnd, _x1 "|" _y1 "|" _x2 "|" _y2)
    
                                                                                                               ; this is where its searching the diablo window simular to the defualt ahk ImageSearch function
            true_or_false_var := Gdip_ImageSearch(screen_snapshot, image_to_find, LIST,0,0,0,0,0,0xFFFFFF,1,0) ; if it sees the archon.png img on the screen then it will set "true_or_false_var" to 1 (aka true)
                                                                                                               ; if it does not see the archon.png img on the screen then it will set "true_or_false_var" to 0 (aka false)     
                                                                                                  
        }
    
        Gdip_DisposeImage(image_to_find)                                 ; idk exactly but sounds like it clears the img from memory
        Gdip_DisposeImage(screen_snapshot)                               ; idk exactly but sounds like it clears the img from memory
        Gdip_Shutdown(gdipToken)                                         ; idk exactly but sounds like it stop the gdip library that was started from running "gdipToken := Gdip_Startup()"
    
        Return
    }
    Last edited by johnbl; 11-10-2019 at 11:19 PM.

  16. #26
    wigworth's Avatar Member
    Reputation
    2
    Join Date
    Mar 2019
    Posts
    8
    Thanks G/R
    1/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Will these methods still work now after the latest turbohud patch?

  17. Thanks QianLei (1 members gave Thanks to wigworth for this useful post)
  18. #27
    Disaster99's Avatar Member
    Reputation
    11
    Join Date
    Feb 2018
    Posts
    19
    Thanks G/R
    3/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    johnbl - I don't think you understood what I was asking.

    _x1 := 800 ; top left pixel
    _y1 := 600 ; top left pixel
    _x2 := 640 ; width
    _y2 := 480 ; height

    would not work the x2 and y2 values "have" to be greater than the x1 and y1 values.

    _x1 := 800 ; top left pixel
    _y1 := 600 ; top left pixel
    _x2 := 1400; bottom right pixel
    _y2 := 1080; bottom right pixel

    would be proper values.

    my issue with the _x _y _w _h is that you need to "manualy" subtract coordinates to get the proper _w and _h values (I think the program should be doing this for you... it should be making your life easier not harder...)
    example on 1440p if I find the coordinates for the skill bar button 4 they are - 1116, 1345 and 1173, 1402
    - well, there I already found 4 values I should just be able to input those... and be done with it...
    - however, using _x _y _w _h would not allow me to just enter these 4 values because I would first have to minu the fist values from the second values (to find the width and height)
    - then end up getting 1116, 1345 and 57, 57

    - its a matter of semantics for me...

    Anyways, this is what I ended up using below and seems to be working well for me now.


    Example Script

    Code:
    ; example script
    
    SendMode Input
    SetMouseDelay -1
    SetBatchLines -1
    Process, Priority,, High
    SysGet, screenSizeX, 0
    SysGet, screenSizeY, 1
    #IfWinActive ahk_class D3 Main Window Class
    
    #include Gdip_All.ahk
    #include Gdip_ImageSearch.ahk
    #include diabloFunctions.ahk
    
    ; sets defualt pics dir
    default_pictures := "pictures/1440p/"
    if (screenSizeX != 2560 || screenSizeY != 1440)
    	default_pictures := "pictures/1080p/"
    
    ; chat on icon 1
    	x1 := 31, y1 := 1172, x2 := 51, y2 := 1189
    	if (screenSizeX != 2560 || screenSizeY != 1440)
    		x1 *= (screenSizeX / 2560), y1 *= (screenSizeY / 1440), x2 *= (screenSizeX / 2560), y2 *= (screenSizeY / 1440)
    chat_on_icon1 := x1 "|" y1 "|" x2 "|" y2
    
    ; skill bar #4
    	x1 := 1116, y1 := 1345, x2 := 1173, y2 := 1402
    	if (screenSizeX != 2560 || screenSizeY != 1440)
    		x1 *= (screenSizeX / 2560), y1 *= (screenSizeY / 1440), x2 *= (screenSizeX / 2560), y2 *= (screenSizeY / 1440)
    skill_bar_4 := x1 "|" y1 "|" x2 "|" y2
    
    ; checks if chat window is open
    ~Enter::
    	sleep 75
    	if checkImage(default_pictures "chat_on1_1.png", chat_on_icon1) or checkImage(default_pictures "chat_on1_2.png", chat_on_icon1)
        {
            tooltip, chat is on, 0,0
    		chat_isOn := True
        }
    	else
        {
            tooltip, chat is off, 0,0
    		chat_isOn := False
        }
        
        Return
    
    ; take picture of chat_on icon (you will need to rename and move file after) press enter before taking pic
    7::
        screenShot(chat_on_icon1)
        
        Return
        
    ; take picture of archon skill on skill slot #4 (you will need to rename and move file after)
    6::
        screenShot(skill_bar_4)
        
        Return
       
    ; after pressing five it will wait till archon off cdr to press 4 button   
    5::
        findImage(default_pictures "archon.png", skill_bar_4)
        sleep 250
        SendInput, 4
        
        Return



    Below is the file called diabloFunctions.ahk

    Code:
    ; ============================================================================================
    ; search for image in diablo - keep looping until img found
    ; ============================================================================================
    findImage(pictureName, Screen)
    {
        S := StrSplit(Screen, "|")
        x1 := S[1], y1 := S[2], x2 := S[3], y2 := S[4]
    
        gdipToken := Gdip_Startup()
        hwnd := WinExist("ahk_exe Diablo III64.exe")
        image_to_find := Gdip_CreateBitmapFromFile(pictureName)
    
        if (image_to_find <= 0)
            msgbox, can not find %pictureName%
    
        while (!true_or_false_var)
        {
            screen_snapshot := Gdip_BitmapFromHWNDCropped(hwnd, x1 "|" y1 "|" x2 "|" y2)
            true_or_false_var := Gdip_ImageSearch(screen_snapshot, image_to_find, LIST,0,0,0,0,5,0xFFFFFF,1,0)
        }
    
        Gdip_DisposeImage(image_to_find)
        Gdip_DisposeImage(screen_snapshot)
        Gdip_Shutdown(gdipToken)
    
        Return
    }
    
    ; ============================================================================================
    ; check for image in diablo - just check if img is there once
    ; ============================================================================================
    checkImage(pictureName, Screen)
    {
        S := StrSplit(Screen, "|")
        x1 := S[1], y1 := S[2], x2 := S[3], y2 := S[4]
    
        gdipToken := Gdip_Startup()
        hwnd := WinExist("ahk_exe Diablo III64.exe")
        image_to_find := Gdip_CreateBitmapFromFile(pictureName)
    
        if (image_to_find <= 0)
            msgbox, can not find %pictureName%
    
        screen_snapshot := Gdip_BitmapFromHWNDCropped(hwnd, x1 "|" y1 "|" x2 "|" y2)
        true_or_false_var := Gdip_ImageSearch(screen_snapshot, image_to_find, LIST,0,0,0,0,5,0xFFFFFF,1,0)
    
        Gdip_DisposeImage(image_to_find)
        Gdip_DisposeImage(screen_snapshot)
        Gdip_Shutdown(gdipToken)
    
        Return true_or_false_var
    }
    
    ; ============================================================================================
    ; take screen shot
    ; ============================================================================================
    screenShot(Screen)
    {
        S := StrSplit(Screen, "|")
        x1 := S[1], y1 := S[2], x2 := S[3], y2 := S[4]
    
        pToken := Gdip_Startup()
    
        hwnd := WinExist("ahk_exe Diablo III64.exe")
        pBitmap := Gdip_BitmapFromHWNDCropped(hwnd, x1 "|" y1 "|" x2 "|" y2) 
        Gdip_SaveBitmapToFile(pBitmap, A_Now ".png", 100)
    
        Gdip_DisposeImage(pBitmap)
        Gdip_Shutdown(pToken)
    
        Return
    }
    
    ; ============================================================================================
    ; used for getting a cropped image from screen (from thud fourms)
    ; ============================================================================================
    Gdip_BitmapFromHWNDCropped(hwnd, Screen)
    {
        Raster := ""
        Ptr := A_PtrSize ? "UPtr" : "UInt"
        hhdc := GetDCEx(hwnd, 3)
        S := StrSplit(Screen, "|")
        x1 := S[1], y1 := S[2], x2 := S[3] - S[1], y2 := S[4] - S[2]
    
        chdc := CreateCompatibleDC(), hbm := CreateDIBSection(x2, y2, chdc)
        obm := SelectObject(chdc, hbm), hhdc := hhdc ? hhdc : GetDC()
        BitBlt(chdc, 0, 0, x2, y2, hhdc, x1, y1, Raster)
        ReleaseDC(hhdc)
    
        pBitmap := Gdip_CreateBitmapFromHBITMAP(hbm)
        SelectObject(chdc, obm), DeleteObject(hbm), DeleteDC(hhdc), DeleteDC(chdc)
    
        return pBitmap
    }


    wigworth
    - yes these method work as of nov 16 2019 with current thud

  19. Thanks QianLei (1 members gave Thanks to Disaster99 for this useful post)
  20. #28
    d3lak's Avatar Active Member
    Reputation
    18
    Join Date
    Jan 2018
    Posts
    105
    Thanks G/R
    2/17
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    if checkImage(default_pictures "chat_on1_1.png", chat_on_icon1) or checkImage(default_pictures "chat_on1_2.png", chat_on_icon1)

    Pressing 7 takes a screenshot, which I renamed and put in the 1440p folder - chat_on1_1.png

    Where do we get the 2nd image chat_on1_2.png?

  21. #29
    Disaster99's Avatar Member
    Reputation
    11
    Join Date
    Feb 2018
    Posts
    19
    Thanks G/R
    3/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Where do we get the 2nd image chat_on1_2.png?
    they are the same thing
    - 1st picture - press enter and a small quote looking thing appears near the chat window
    - 2nd picture - after pressing enter hover the mouse over the quote thing and it will change color


    I actually use image
    - chat_on2_1.png
    - chat_on2_2.png
    as well for when esc is pressed (but I omitted this from the example just to make it more simple)
    Last edited by Disaster99; 11-20-2019 at 04:09 PM.

  22. #30
    d3lak's Avatar Active Member
    Reputation
    18
    Join Date
    Jan 2018
    Posts
    105
    Thanks G/R
    2/17
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Got it. Do you have it with the the other 5 abilities added and escape option added? Also would be a good idea to maybe check for when in GR/Rift - can use the image of the rift bar slider to check for this.
    Last edited by d3lak; 11-20-2019 at 11:52 PM.

Page 2 of 3 FirstFirst 123 LastLast

Similar Threads

  1. Is it possible to get account back
    By asrstech in forum World of Warcraft General
    Replies: 11
    Last Post: 01-07-2007, 09:15 PM
  2. is it possible to...
    By qwert in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 11-21-2006, 08:36 PM
  3. Is it possible to change mount into Druid form?
    By Vincent in forum WoW ME Questions and Requests
    Replies: 3
    Last Post: 11-11-2006, 08:56 PM
  4. Is it possible to add weapon sounds to model changes?
    By sparrow in forum WoW ME Questions and Requests
    Replies: 3
    Last Post: 10-11-2006, 01:42 PM
  5. Is it possible to set up glider to only pick up certain fish?
    By RichyG in forum World of Warcraft General
    Replies: 1
    Last Post: 07-15-2006, 06:36 PM
All times are GMT -5. The time now is 03:55 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