Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Path of Exile
You last visited: Today at 04:24

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

Advertisement



[Tool][Source]Numba's POE Tools

Discussion on [Tool][Source]Numba's POE Tools within the Path of Exile forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2009
Posts: 10
Received Thanks: 0
[Tool][Source]Numba's POE Tools



Code:
; Numba's POE tools Version 1.1

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
#Persistent ; Only the user can kill the application
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
StringCaseSense, On ; Match strings with case.
SetFormat, FloatFast, 0.2
 
; ---------------------------------------
; Created by Numba
; Credit to mcpower Clif4D for dps calc
; ---------------------------------------

Gui, Add, Picture, x-8 y0 w840 h300 , Tools GUI.png
Gui, Show, x131 y169 h300 w830, New GUI Window
Return

Menu, Tray, Add, Toggle Window, GuiToggle
Menu, Tray, Default, Toggle Window
;...
Gui, show, w600 h400,.
;...
Main_Window := WinExist("A") 


GuiToggle:
IfWinExist, ahk_id %Main_Window%
 Gui, Hide
else
 Gui, Show
return


; DPS Calc
; Path of Exile Copy Paste for dps calc
F4::
IfWinActive Path of Exile ahk_class Direct3DWindowClass
{
WinActivate
BlockInput On
SendInput {Ctrl down}c{Ctrl up}
BlockInput Off
}
return

MouseMovePixels := 5 ; How many pixels you have to move. Edit this if you want.
 
OnClipboardChange:
IfWinActive Path of Exile ahk_class Direct3DWindowClass
        {
        ItemLevel := ""
        Name := ""
        Type := ""
        Quality := 0
        AttackSpeed := 0
        PhysicalDamageLow := 0
        PhysicalDamageHigh := 0
        IncreasedPhysicalDamage := 0
        FireDamageLow := 0
        FireDamageHigh := 0
        ColdDamageLow := 0
        ColdDamageHigh := 0
        LightningDamageLow := 0
        LightningDamageHigh := 0
        ChaosDamageLow := 0
        ChaosDamageHigh := 0
        Armour := 0
        EvasionRating := 0
        EnergyShield := 0
 
        Loop, parse, Clipboard, `n, `r          ; Goes through a loop with the lines of text found in the clipboard
        {
                if (A_Index = 1)
                {
                        IfNotInString, A_Loopfield, Rarity:             ; Starts a check whether it has "Rarity:" in the first line, otherwise exit
                        {
                                Exit
                        }
                }
                else if (A_Index = 2)
                {
                        Name := A_Loopfield
                }
                else if (A_Index = 3)
                {
                        Type := A_Loopfield
                }
                else if (!ItemLevel && RegExMatch(A_Loopfield, "Itemlevel: (\d*)", SubPat))
                {
                        ItemLevel := SubPat1
                }
                else if (!Quality && RegExMatch(A_Loopfield, "Quality: \+(\d*)\%", SubPat))
                {
                        Quality := SubPat1/100
                }
                else if (!AttackSpeed && RegExMatch(A_Loopfield, "Attacks per Second: (\d\.\d*)", SubPat))
                {
                        AttackSpeed     := SubPat1
                }
                else if (!PhysicalDamageLow && RegExMatch(A_Loopfield, "Physical Damage: (\d*)-(\d*)", SubPat))
                {
                        PhysicalDamageLow := SubPat1
                        PhysicalDamageHigh := SubPat2
                }
                else if (!IncreasedPhysicalDamage && RegExMatch(A_Loopfield, "(\d*)\% increased Physical Damage", SubPat))
                {
                        IncreasedPhysicalDamage := SubPat1/100
                }
                else if (!FireDamageLow && RegExMatch(A_Loopfield, "Adds (\d*)-(\d*) Fire Damage", SubPat))
                {
                        FireDamageLow := SubPat1
                        FireDamageHigh := SubPat2
                }
                else if (!ColdDamageLow && RegExMatch(A_Loopfield, "Adds (\d*)-(\d*) Cold Damage", SubPat))
                {
                        ColdDamageLow := SubPat1
                        ColdDamageHigh := SubPat2
                }
                else if (!LightningDamageLow && RegExMatch(A_Loopfield, "Adds (\d*)-(\d*) Lightning Damage", SubPat))
                {
                        LightningDamageLow := SubPat1
                        LightningDamageHigh := SubPat2
                }
                else if (!ChaosDamageLow && RegExMatch(A_Loopfield, "Adds (\d*)-(\d*) Chaos Damage", SubPat))
                {
                        ChaosDamageLow := SubPat1
                        ChaosDamageHigh := SubPat2
                }      
                else if (!Armour && RegExMatch(A_Loopfield, "Armour: (\d*)", SubPat))
                {
                        Armour:= SubPat1
                }
                else if (!EvasionRating && RegExMatch(A_Loopfield, "Evasion Rating: (\d*)", SubPat))
                {
                        EvasionRating:= SubPat1
                }
                else if (!EnergyShield && RegExMatch(A_Loopfield, "Energy Shield: (\d*)", SubPat))
                {
                        EnergyShield:= SubPat1
                }      
        }
        if (!ItemLevel) ; If we didn't get the itemlevel...
                exit
        if (AttackSpeed) ; It's a weapon
        {
                pDPS := (PhysicalDamageLow + PhysicalDamageHigh)/2*AttackSpeed
                q20pDPS := ( round((round((PhysicalDamageLow)/(1+IncreasedPhysicalDamage+Quality))*(1+IncreasedPhysicalDamage+0.2))) + round((round((PhysicalDamageHigh)/(1+IncreasedPhysicalDamage+Quality))*(1+IncreasedPhysicalDamage+0.2))) ) /2*AttackSpeed
                eDPS := (FireDamageLow + FireDamageHigh + ColdDamageLow + ColdDamageHigh + LightningDamageLow + LightningDamageHigh)/2*AttackSpeed
                chaosDPS := (ChaosDamageLow + ChaosDamageHigh)/2*AttackSpeed
                DPS := pDPS + eDPS + chaosDPS
                q20DPS := q20pDPS + eDPS + chaosDPS
                Attack := "DPS: " DPS " / " q20DPS "`n"
                if (pDPS)
                {
                        Attack := Attack " Physical: " pDPS " / " q20pDPS "`n"
                }
                if (eDPS)
                {
                        Attack := Attack " Elemental: " eDPS "`n"
                }
                if (chaosDPS)
                {
                        Attack := Attack " Chaos: " chaosDPS "`n"
                }
                ToolTip,%Name%`n%Type%`nItem Level: %ItemLevel%`n%Attack%
        }
        else if(Armour or EvasionRating or EnergyShield)
        {
                Defense := ""
                if (Armour)
                {
                        Defense := Defense "Armour: " Armour "/" round(round(Armour/(1+Quality))*1.2) "`n"
                }
                if (EvasionRating)
                {
                        Defense := Defense "Evasion Rating: " EvasionRating "/" round(round(EvasionRating/(1+Quality))*1.2) "`n"
                }
                if (EnergyShield)
                {
                        Defense := Defense "Energy Shield: " EnergyShield "/" round(round(EnergyShield/(1+Quality))*1.2) "`n"
                }
                ToolTip,%Name%`n%Type%`nItem Level: %ItemLevel%`n%Defense%
        }
        else
        {
                ToolTip,%Name%`n%Type%`nItem Level: %ItemLevel%
        }
       
        MouseGetPos, X, Y ; Stores the mouse position when the tooltip was displayed
        Increment := 0 ; Sets the variable to increment
        SetTimer, TimerTick, 100
}
return
 
TimerTick:
MouseMovePixels = 5 ; How many pixels you have to move. Edit this if you want.
Increment += 1 ; When it hits 75 (7.5 sec), it removes the tool tip just in case of it screwing up
MouseGetPos, currentX, currentY ; Used for the below expression
if ((X - CurrentX)**2 + (Y - CurrentY)**2 > MouseMovePixels**2 or Increment >= 75) {
        SetTimer, TimerTick, Off ; When the mouse moves MouseMovePixels pixels, it stops the tooltip.
        ToolTip
}
return
 
RemoveTooltip: ; exactly what it says
ToolTip
return

;You specify the x and y values, in the above example the x was 100 and the y was 1000
RandSleep(x,y) {
;Generate a random number between x(100) and y(1000)
Random, rand, %x%, %y%
;Sleep for the random amount
Sleep %rand%
}

; Path of Exile /oos
 
F2::
IfWinActive Path of Exile ahk_class Direct3DWindowClass
{
WinActivate
BlockInput On
SendInput {enter}/oos{enter}
BlockInput Off
}
return

; Path of Exile /remaining
F3::
IfWinActive Path of Exile ahk_class Direct3DWindowClass
{
WinActivate
BlockInput On
SendInput {enter}/remaining{enter}
BlockInput Off
}
return


; Path of Exile /itemlevel
F5::
IfWinActive Path of Exile ahk_class Direct3DWindowClass
{
WinActivate
BlockInput On
SendInput {enter}/itemlevel{enter}
BlockInput Off
}
return
 
 
; Path of Exile Auto Exit
F7::
IfWinActive Path of Exile ahk_class Direct3DWindowClass
{
WinActivate
BlockInput On
SendInput, {Esc}
WinGetPos,,,Width,Height,A
X := (Width / 2)
Y := Height * .45
RandSleep(150,300)
MouseClick, Left, X, Y, 1, 1
BlockInput Off
}
return

F8::
exitapp


; Spam Chat Chans 1-15 One time
F6::
IfWinActive Path of Exile ahk_class Direct3DWindowClass
{
WinActivate
	SendMode Input
	loop
	{
	  SendInput {enter}
			RandSleep(100,300)
	  SendInput {BS}
			RandSleep(100,300)
	  SendInput {BS}
			RandSleep(100,300)
	  SendInput {/}
			RandSleep(100,300)
	  SendInput {t}
			RandSleep(100,300)
	  SendInput {r}
			RandSleep(100,300)
	  SendInput {a}
			RandSleep(100,300)
	  SendInput {d}
			RandSleep(100,300)
	  SendInput {e}
			RandSleep(100,300)
	  SendInput {Space}
			RandSleep(100,300)
	  SendInput %A_Index%
			RandSleep(100,300)
	  SendInput {enter}
			RandSleep(100,300)
	  SendInput {enter} 
			RandSleep(100,300)
	  SendInput {Up}
			RandSleep(100,300)
	  SendInput {Up}
			RandSleep(100,300)
	  SendInput {enter}
			RandSleep(100,300)
		If A_Index = 15
		Break
		else
		RandSleep(500,1500)
	}
}
return

F10::Pause


ReadMe Version 1.1

F2 - Out of Sync
Uses the Command /oos

F3 - Remaining
Uses The command /remaining

F4 - Dps Calc
First Hover Over A Item Ingame Then press F4 This Will show a tool tip with the dps of the item and also the itemlevel

F5 - Item Level
Uses the command /itemlevel ingame
pick up a item in your hand and press F5 to get item level

F6 - Item Spam
This Will Spam trade chat 1-15
First make What you want to sell in A Trade chat press enter Then Press F6

F7 - Auto Exit
This Will Exit you to the Char select Screen Very Fast

F8 - Close APP
Not Hard Gets Rid OF this App out of System Tray

F10 - Pause/Resume

Donations Are always welcome on
d2jsp name Numba

you will get one false positive that is common with AHK scripts



Download
For the exe and Source

or
Thabo is offline  
Old 12/22/2013, 14:18   #2
 
elite*gold: 0
Join Date: Dec 2007
Posts: 21
Received Thanks: 5
U should add that for "Dps Calc" it needs to be 'Windowed Fullscreen' in Path of Exile settings
konradmm is offline  
Reply


Similar Threads Similar Threads
Pk2 Tools (Source)
03/26/2020 - SRO Coding Corner - 14 Replies
Hello, Is there any simple C# source, to extract a single file from the Media.pk2 and add this again? For Example what i mean with "simple" i found this to Read: pk2Reader.dll //Usage Example pk2.pk2Reader reader = new pk2Reader(@"Path to Media.pk2"); byte chardata = reader.getFile("characterdata_5000.txt") ; TextReader txtReader = new StreamReader(new MemoryStream(chardata));
All mob meshes , technique , tool and tool code source
06/07/2013 - CO2 PServer Guides & Releases - 25 Replies
as the title says here is the technique (thanks to pro4never) simple c# app. which capture certain area from screen and i've changed the handling of the expball to change my body , added it to f1 , ++ing each time without taking away the item with declaring the variable out side the method end up with something like case 722136: case 723911: case 723834: case 723700:
[B] Skype API Tool Source+Verkaufsrecht der Source [S] 10€ PSC / 550 e*gold
02/15/2013 - elite*gold Trading - 8 Replies
^Topic.. Mehr Infos gibt es HIER Der Käufer erhält die Source sowie Verkaufrechte der Source (Dem Käufer gehört alles zu 100%) (Werde meinen Thread nach Verkauf der Source löschen) Alle die hier was unnötiges reinposten werden direkt reported ;)
ƝoFear´s Signature Shop Numba #2
02/17/2011 - elite*gold Trading - 16 Replies
Kurz und knapp: Sigs mit Name: 10 eg Sigs mit PSD : 20 eg Part1 http://s5.directupload.net/images/110214/d29n7ukx .png Part2



All times are GMT +1. The time now is 04:25.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.