Register for your free account! | Forgot your password?

Go Back   elitepvpers > Diablo 3 > Diablo 3 Hacks, Bots, Cheats & Exploits
You last visited: Today at 22:45

  • Please register to post and access all features, it's quick, easy and FREE!

 

D3EQ - Diablo 3 Equip Switcher

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2010
Posts: 4
Received Thanks: 0
D3EQ - Diablo 3 Equip Switcher

Hi,

title says it, switches your MF Gear with your dps gear with one button.

Readme:

Quote:
- only works with 1080p
- only works in fullscreen mode

- Bind the .exe to a hotkey
- place your 2nd equip just like the screenshot says
- dont move the mouse when using the .exe (takes about half a second)
VT:




don't know why it returns some false positives. for anybody who minds using it, here's the code to compile it yourself with autoit:

Quote:
Send('{c}')

MouseClick ( "right", 1434, 612, 1, 1)
MouseClick ( "right", 1486, 612, 1, 1)
MouseClick ( "right", 1524, 612, 1, 1)
MouseClick ( "right", 1580, 612, 1, 1)
MouseClick ( "right", 1629, 612, 1, 1)
MouseClick ( "right", 1672, 612, 1, 1)
MouseClick ( "right", 1729, 612, 1, 1)
MouseClick ( "right", 1768, 612, 1, 1)
MouseClick ( "right", 1824, 609, 1, 1)
MouseClick ( "right", 1823, 664, 1, 1)
MouseClick ( "right", 1874, 606, 1, 1)

Send('{ALT down}')
Sleep(100)
MouseClick ( "right", 1866, 656, 1, 1)
Send('{ALT up}')

Send('{c}')

MouseMove(962, 471, 1)
You must register and activate your account in order to view images.

Viel Spaß damit

it's safe selu
Attached Images
File Type: jpg d3eq.jpg (22.8 KB, 60 views)
Attached Files
File Type: zip d3eq.zip (279.9 KB, 219 views)



Alphagene1 is offline  
Old   #2
 
elite*gold: 280
Join Date: Nov 2009
Posts: 2,005
Received Thanks: 26,663
ControlClick u. ControlSend ist besser^^


*Dr.Bob* is offline  
Old   #3
 
elite*gold: 0
Join Date: May 2012
Posts: 1
Received Thanks: 0
1. What is alt-down and alt-up for?
2. How do I bind the .exe to a hotkey?
3. Can I do this full screen in a game?
longphant is offline  
Old   #4
 
elite*gold: 53
Join Date: Feb 2009
Posts: 2,028
Received Thanks: 611
das läuft nur auf deiner auflösung o.O


ηєσχ is offline  
Old   #5
 
elite*gold: 0
Join Date: May 2004
Posts: 252
Received Thanks: 73
failscript
hankchinaski is offline  
Old   #6
 
elite*gold: 0
Join Date: May 2006
Posts: 501
Received Thanks: 132
It works perfect, I'll help those who don't understand. I've been using it for 2 days now perfectly.
(1280x1024 version included at the end of this post)
Downloads included at the end for the lazy people, I like making life easy.

NOTE:
The keys can be modified.
F6 = Execute the script
C = Inventory

Click F6 while in-game to make it switch your gear. Do not move your mouse for a second when you execute it.
You must register and activate your account in order to view images.



(HD Ver - 1920x1080)
1.Download AutoIt
2.Open SciTE Script Editor and copy paste this
Code:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{DELETE}","terminate")
$runs = 0
While 1
   WinActivate("Diablo III")
HotKeySet("{F6}")
    Send("{F6}")
    HotKeySet("{F6}", "EquipSwitcher")
 
WEnd

Func EquipSwitcher()
Send('{c}')

MouseClick ( "right", 1434, 612, 1, 1)
MouseClick ( "right", 1486, 612, 1, 1)
MouseClick ( "right", 1524, 612, 1, 1)
MouseClick ( "right", 1580, 612, 1, 1)
MouseClick ( "right", 1629, 612, 1, 1)
MouseClick ( "right", 1672, 612, 1, 1)
MouseClick ( "right", 1729, 612, 1, 1)
MouseClick ( "right", 1768, 612, 1, 1)
MouseClick ( "right", 1824, 609, 1, 1)
MouseClick ( "right", 1823, 664, 1, 1)
MouseCLick ( "right", 1874, 606, 1, 1)
Send('{ALT down}')
Sleep(100)
MouseClick ( "right", 1866, 656, 1, 1)
Send('{ALT up}')
Send('{c}')
EndFunc

Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
 EndFunc   ;==>TogglePause
 
 Func terminate()
        Local $pos = MouseGetPos()
                 MsgBox(0, "Mouse x,y:", $pos[0] & "," & $pos[1] & "Runs " & $runs)
        Exit 0
	 EndFunc
3.File -> Save As
4.Open Compile Script to .exe (x86) (because it works in 32bit not 64bit obviously)
5.Choose the file u saved and then choose the destination folder for the compiled file.
6.Start it and have fun.



(1280x1024)
1.Download AutoIt
2.Open SciTE Script Editor and copy paste this
Code:
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{DELETE}","terminate")
$runs = 0
While 1
   WinActivate("Diablo III")
HotKeySet("{F6}")
    Send("{F6}")
    HotKeySet("{F6}", "EquipSwitcher")
 
WEnd

Func EquipSwitcher()
Send('{c}')

MouseClick ( "right", 814, 590, 1, 1)
MouseClick ( "right", 860, 599, 1, 1)
MouseClick ( "right", 912, 591, 1, 1)
MouseClick ( "right", 949, 596, 1, 1)
MouseClick ( "right", 1001, 595, 1, 1)
MouseClick ( "right", 1039 590, 1, 1)
MouseClick ( "right", 1095, 591, 1, 1)
MouseClick ( "right", 1135, 594, 1, 1)
MouseClick ( "right", 1175, 578, 1, 1)
MouseClick ( "right", 1189, 620, 1, 1)
MouseCLick ( "right", 1233, 576, 1, 1)
Send('{ALT down}')
Sleep(100)
MouseClick ( "right", 1232, 620, 1, 1)
Send('{ALT up}')
Send('{c}')
EndFunc

Func TogglePause()
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Script is "Paused"', 0, 0)
    WEnd
    ToolTip("")
 EndFunc   ;==>TogglePause
 
 Func terminate()
        Local $pos = MouseGetPos()
                 MsgBox(0, "Mouse x,y:", $pos[0] & "," & $pos[1] & "Runs " & $runs)
        Exit 0
	 EndFunc
3.File -> Save As
4.Open Compile Script to .exe (x86) (because it works in 32bit not 64bit obviously)
5.Choose the file u saved and then choose the destination folder for the compiled file.
6.Start it and have fun.



If you need help, feel free to ask.
Attached Files
File Type: rar 1280x1024.rar (267.1 KB, 60 views)
File Type: rar 1920x1080.rar (267.0 KB, 82 views)
Childish is offline  
Thanks
2 Users
Old   #7
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Making the coords hard coded is not good.

My little script here will left click the item and place it in the slot you recorded, saved in a ini file with the client resolution (which is smaller than the actual one the game specifies in window mode).

To avoid clicks and other input you can blockInput for the short duration of the script, which requires admin rights.

As it is, the script is canceld by ESC, but you can change that.


The script will also send "s" before "c" so it works regardless if the inventory is open or not (it will allways open it, if you do not send s before, it will just close an allready open inventory, which is bad).


Maybe use a bunch of the code parts to improve your script and give me credits in your source code if you do so.


RECORDER
Code:
#include <Misc.au3>
_Singleton(@ScriptName)

AutoItSetOption ( "MouseCoordMode", 2)

Global $winTitle = "Diablo III"
Global $hWnd = WinGetHandle($winTitle)

HotKeySet("{ESC}", "_exit")
Func _exit()
	Exit 0
EndFunc

Global $iniFile = getIniFileName()
Func getIniFileName()
	local $clientSize = WinGetClientSize($winTitle)
	local $name = "COORD_" & $clientSize[0] & "x" & $clientSize[1] & ".ini"

	return $name
EndFunc
Global $item_names[13] = ["Helm","Shoulder","Body","Hand","Arm","Leg","Boots","Belt","Amulet","LeftRing","RightRing","LeftWeapon","RightSupport"]

Global $curCoordCount = 0
Global $coordMode = "Inventory"

HotKeySet("{Right}", "_countNext")
Func _countNext()
	if ($coordMode == "Inventory") Then
		$coordMode = "BodyPart"
	Else
		$curCoordCount+=1
		if ($curCoordCount >= UBound($item_names)) Then
			$curCoordCount = 0
		EndIf

		$coordMode = "Inventory"
	EndIf
EndFunc

HotKeySet("{Left}", "_countBack")
Func _countBack()

	if ($coordMode == "Inventory") Then
		$curCoordCount-=1
		if ($curCoordCount < 0) Then
			$curCoordCount = UBound($item_names)-1
		EndIf
		$coordMode = "BodyPart"
	Else
		$coordMode = "Inventory"
	EndIf
EndFunc

HotKeySet("{+}", "_addCoord")
Func _addCoord()
	local $mousePos = MouseGetPos()
	local $x = $mousePos[0]
	local $y = $mousePos[1]

	if ($coordMode == "Inventory") Then
		IniWrite($iniFile, $item_names[$curCoordCount], $coordMode & "_x", $x)
		IniWrite($iniFile, $item_names[$curCoordCount], $coordMode & "_y", $y)
	Else
		IniWrite($iniFile, $item_names[$curCoordCount], $coordMode & "_x", $x)
		IniWrite($iniFile, $item_names[$curCoordCount], $coordMode & "_y", $y)
	EndIf

	_countNext()
EndFunc

HotKeySet("{-}", "_removeCoord")
Func _removeCoord()
	_countBack()
	if ($coordMode == "Inventory") Then
		IniDelete($iniFile, $item_names[$curCoordCount], $coordMode & "_x")
		IniDelete($iniFile, $item_names[$curCoordCount], $coordMode & "_y")
	Else
		IniDelete($iniFile, $item_names[$curCoordCount], $coordMode & "_x")
		IniDelete($iniFile, $item_names[$curCoordCount], $coordMode & "_y")
	EndIf
EndFunc

ToolTip("RECORDER READY",0,0)
While (WinExists($winTitle))
	local $mousePos = MouseGetPos()
	ToolTip("Item: " & $item_names[$curCoordCount] & " : " & $coordMode & @CRLF & _
		"MousePos[" & $mousePos[0] & ", " & $mousePos[1] & "]",0,0)
	sleep(50)
WEnd

AutoEquipper

Code:
#RequireAdmin

#include <Misc.au3>
_Singleton(@ScriptName)

AutoItSetOption ( "MouseCoordMode", 2)

Global $winTitle = "Diablo III"
Global $hWnd = WinGetHandle($winTitle)

HotKeySet("{ESC}", "_exit")
Func _exit()
	Exit 0
EndFunc

Global $iniFile = getIniFileName()
Func getIniFileName()
	local $clientSize = WinGetClientSize($winTitle)
	local $name = "COORD_" & $clientSize[0] & "x" & $clientSize[1] & ".ini"

	return $name
EndFunc
Global $item_names[13] = ["Helm","Shoulder","Body","Hand","Arm","Leg","Boots","Belt","Amulet","LeftRing","RightRing","LeftWeapon","RightSupport"]

Global $Inventory_coords[13][2]
Global $BodyPart_coords[13][2]

Func _readCoordsFromIniFile()

	if (NOT FileExists($iniFile)) Then
		MsgBox("", "ERROR", $iniFile & " not found. Use Record first")
		_exit()
	EndIf

	local $sectionNames = IniReadSectionNames($iniFile)
	if (UBound($sectionNames) < 1) Then
		local $ret
		$ret = MsgBox(1, $iniFile & " ERROR", $iniFile & " is empty, delete it ?")
		if ($ret == 1) Then
			FileDelete($iniFile)
			_exit()
		Else
			_exit()
		EndIf
	EndIf

	ReDim $Inventory_coords[UBound($sectionNames)][2]
	ReDim $BodyPart_coords[UBound($sectionNames)][2]
	for $i = 1 to UBound($sectionNames)-1
		$Inventory_coords[$i][0] = IniRead($iniFile, $sectionNames[$i],  "Inventory_x", 0)
		$Inventory_coords[$i][1] = IniRead($iniFile, $sectionNames[$i],  "Inventory_y", 0)

		$BodyPart_coords[$i][0] = IniRead($iniFile, $sectionNames[$i],  "BodyPart_x", 0)
		$BodyPart_coords[$i][1] = IniRead($iniFile, $sectionNames[$i],  "BodyPart_y", 0)
	Next

EndFunc


HotKeySet("{F1}", "_equip")
Func _equip()

	BlockInput(1)

	ControlSend($winTitle, "", $hWnd, "s")
	sleep(100)
	ControlSend($winTitle, "", $hWnd, "c")

	for $i = 1 to UBound($Inventory_coords)-1
		ControlClick($winTitle, "", $hWnd, "left", 1, $Inventory_coords[$i][0], $Inventory_coords[$i][1])
		ControlClick($winTitle, "", $hWnd, "left", 1, $BodyPart_coords[$i][0], $BodyPart_coords[$i][1])
	Next

	ControlSend($winTitle, "", $hWnd, "c")

	BlockInput(0)

EndFunc

HotKeySet("{F2}", "_unequip")
Func _unequip()

	BlockInput(1)

	ControlSend($winTitle, "", $hWnd, "s")
	sleep(100)
	ControlSend($winTitle, "", $hWnd, "c")

	for $i = 1 to UBound($Inventory_coords)-1
		ControlClick($winTitle, "", $hWnd, "left", 1, $BodyPart_coords[$i][0], $BodyPart_coords[$i][1])
		ControlClick($winTitle, "", $hWnd, "left", 1, $Inventory_coords[$i][0], $Inventory_coords[$i][1])
	Next

	ControlSend($winTitle, "", $hWnd, "c")

	BlockInput(0)

EndFunc


_readCoordsFromIniFile()
While (WinExists($winTitle))
	sleep(500)
WEnd
TheOnlyOne652089 is offline  
Thanks
5 Users
Old   #8
 
elite*gold: LOCKED
Join Date: Apr 2012
Posts: 39
Received Thanks: 15
It works perfect, I'll help those who don't understand. I've been using it for 2 days now perfectly.
(1280x1024 version included at the end of this post)
Downloads included at the end for the lazy people, I like making life easy.

NOTE:
The keys can be modified.
F6 = Execute the script
C = Inventory
Aqua Vitale is offline  
Old   #9
 
elite*gold: 0
Join Date: Jun 2010
Posts: 2
Received Thanks: 0
can you make a 1920x1200 version aqua
sleepi is offline  
Old   #10
 
elite*gold: 0
Join Date: Aug 2007
Posts: 737
Received Thanks: 60
Some1 can chage the resoltion to 1920x1200?
Maximus9229 is offline  
Old   #11
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1
Received Thanks: 0
great switcher THX a LOT!!!
i edited keys to F1 switch, F2 pause and F4 close
and i added "MouseMove ( 960, 510 ,1 )" at the end of switching eq so my cursor will be back in the middle of screen after switching eq ;] (1920 x 1080)
my script based on Childish ;] Thx Mate ;]
if any1 need positions, get RECORDER script and it will help to get them in other resolutions.
zodeq is offline  
Old   #12
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by zodeq View Post
and i added "MouseMove ( 960, 510 ,1 )" at the end of switching eq so my cursor will be back in the middle of screen after switching eq ;] (1920 x 1080)
Thats why you "should" use the stricly superior ControlSend instead of the normal Send.

It will not move your mouse at all, and just send the mouse commands "directly".

Quote:
if any1 need positions, get RECORDER script and it will help to get them in other resolutions.
Thats what it is for, as hard coded coords are pretty "stupid" if you want the script to work for all monitor types.

With the record script my script should work for anyone, and anyone is welcome to change the Hotkeys to there liking.
TheOnlyOne652089 is offline  
Old   #13
 
elite*gold: 0
Join Date: May 2006
Posts: 501
Received Thanks: 132
The record isn't working, I can't seem to find the key that binds the item to the slot.

Just testing yours because it seems really good.


I found the key but problem is I choose all parts and bodyparts and yet it doesn't save it into an INI file.
Childish is offline  
Old   #14
 
elite*gold: 50
Join Date: May 2008
Posts: 2,216
Received Thanks: 1,821
Quote:
Originally Posted by Childish View Post
The record isn't working, I can't seem to find the key that binds the item to the slot.

Just testing yours because it seems really good.


I found the key but problem is I choose all parts and bodyparts and yet it doesn't save it into an INI file.
Simply press "+" to add a Coord to the ini file.

Should be no problem, at least it makes not much sence to "not work" as the Recorder itself does not do anything special other than writing coords according to "[name] x= y=" to an ini file with the client size as its name.


Potentially a "#requireAdmin" might fix your problem, just in case (but normally no action "should" require Admin rights within the recorder).
TheOnlyOne652089 is offline  
Old   #15
 
elite*gold: 0
Join Date: May 2012
Posts: 1
Received Thanks: 0
Quote:
Originally Posted by Childish View Post
I found the key but problem is I choose all parts and bodyparts and yet it doesn't save it into an INI file.
Yep, same here. :/


PowerAsh is offline  
Reply



« Previous Thread | Next Thread »

Similar Threads
Diablo III - Equip-Changer (Magiefundbonus)
Hallo, Ich habe hier einen (sehr) simplen Equip-Changer, um zwischen Magie-/Goldfundbonus-Equip und Main-Equip zu wechseln. -- 1920x1080 -- ...
151 Replies - Diablo 3 Hacks, Bots, Cheats & Exploits
[AutoIt] "Background" Clicker (Diablo III Equip Changer)
Hallo, Mein aktuelles Script: If Not IsDeclared("sToolTipAnswer") Then Local $sToolTipAnswer $sToolTipAnswer = ToolTip("Equip wird...
14 Replies - AutoIt
[S] Diablo II Hdin Perf Equip + Cdkeys
Cdkeys duerfen nicht stealed sein & das Equip muss perfekt bzw sehr gut sein.. dh. gutes CoA, crafted ammy, eni 775, 40er hoto, spirit, 6ercta,...
0 Replies - Diablo 3 Trading
Trade > +9 Item on Euro Chaos for Hammerdin Equip (Diablo 2)
Yep i need FULL Hammerdin equip.. If you got full Hammerdin Equip > Pm u can choose between +9 Immune Mant,+9 High lvl Shoes or +9 Chainmail of...
1 Replies - Last Chaos Trading



All times are GMT +1. The time now is 22:45.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.