diff --git a/Autopot.ahk b/Autopot.ahk index 3c2b808..24d33fb 100644 --- a/Autopot.ahk +++ b/Autopot.ahk @@ -1,4 +1,4 @@ -;██████╗ ██╗ ██╗ ██████╗ ██╗ ██╗██████╗ ██╗ ██╗██████╗ +;██████╗ ██╗ ██╗ ██████╗ ██╗ ██╗██████╗ ██╗ ██╗██████╗ ;██╔══██╗╚██╗ ██╔╝ ██╔════╝ ██║ ██║██╔══██╗██║ ██║██╔══██╗ ;██████╔╝ ╚████╔╝ ██║ ███╗██║ ██║██████╔╝██║ ██║██║ ██║ ;██╔══██╗ ╚██╔╝ ██║ ██║██║ ██║██╔══██╗██║ ██║██║ ██║ @@ -771,8 +771,8 @@ PlayerConfig["Default"].FlaskConfig:=[] WindowQueuedFlaskEffects:=[] ;keyed by "%hwnd%%CurrPid%", hpQueueEndtime, manaQueueEndtime -basePtrAoBArray:=[0xCE, 0x50, 0xC7, 0x45, 0xF0] -basePtrAobOffset:=+0x10 +basePtrAoBArray := [0x8B, 0x35, "?", "?", "?", "?", 0xA3, "?", "?", "?", "?", 0x85, 0xF6, 0x74, 0x15, 0x8B, 0xCE, 0xE8, "?", "?", "?", "?", 0x68, "?", "?", "?", "?", 0x56, 0xE8, "?", "?", "?", "?", 0x83, 0xc4, 0x08, 0xC6] +basePtrAobOffset := 0x02 WindowBasicsCache:=[] ; keyed by "%hwnd%%CurrPid%", entries are objects with properties processHandle, moduleBase, moduleSize, baseFramePtr @@ -933,7 +933,7 @@ GetUiBase(hwnd) FrameBase:=GetFrameBase(hwnd) If (FrameBase="" || FrameBase=0) return - uiBase:=GetMultilevelPointer(pH,[FrameBase+Offset3,Offset4,0x8f8]) + uiBase:=GetMultilevelPointer(pH,[FrameBase+Offset3,Offset4,0x938]) return uiBase } @@ -966,17 +966,17 @@ ReadPlayerStats(hwnd, byRef PlayerStats) If (Steam) { - global Offset1:=0x154 - global Offset2:=0x4c4 - global Offset3:=0x158 + global Offset1:=0x140 + global Offset2:=0x158 + global Offset3:=0x144 global Offset4:=0x220 - global Offset5:=0x2E80 - global Offset6:=0x15a8 - global Offset7:=0x15ac - global Offset8:=0xa24 - global Offset9:=0x9cc - global Offset10:=0x12C - global Offset11:=0x198 + global Offset5:=0x3934 + global Offset6:=0x158c + global Offset7:=0x1590 + global Offset8:=0xa58 + global Offset9:=0x9fc + global Offset10:=0xa38 + global Offset11:=0xaa0 } Else If (Taiwan) { @@ -994,17 +994,17 @@ ReadPlayerStats(hwnd, byRef PlayerStats) } Else If (GlobalS) { - global Offset1:=0x138 - global Offset2:=0x144 - global Offset3:=0x13c - global Offset4:=0x220 - global Offset5:=0x3934 - global Offset6:=0x158c - global Offset7:=0x1590 - global Offset8:=0xa04 - global Offset9:=0x9ac - global Offset10:=0xa38 - global Offset11:=0xaa0 + global Offset1:=0x1C0 + global Offset2:=0x288 + global Offset3:=0x1C4 + global Offset4:=0x224 + global Offset5:=0x4A38 + global Offset6:=0x17E4 + global Offset7:=0x17E8 + global Offset8:=0xA84 + global Offset9:=0xA04 + global Offset10:=0x12C + global Offset11:=0x198 } Else If (Singapore) { @@ -1029,16 +1029,16 @@ ReadPlayerStats(hwnd, byRef PlayerStats) ;PlayerStats.ConfigPath:=ReadMemStr(ph,Config+0xa4,255,"UTF-16") PlayerMain:=ReadMemUInt(pH,PlayerBase+4) PlayerStatsOffset:=ReadMemUInt(pH,PlayerMain+0xC) - PlayerStats.MaxHP:=ReadMemUInt(pH,PlayerStatsOffset+0x2c) - PlayerStats.CurrHP:=ReadMemUInt(pH,PlayerStatsOffset+0x30) - PlayerStats.ReservedHPFlat:=ReadMemUInt(pH,PlayerStatsOffset+0x38) - PlayerStats.ReservedHPPercent:=ReadMemUInt(pH,PlayerStatsOffset+0x3c) - PlayerStats.MaxMana:=ReadMemUInt(pH,PlayerStatsOffset+0x50) - PlayerStats.ReservedManaFlat:=ReadMemUInt(pH,PlayerStatsOffset+0x5c) - PlayerStats.ReservedManaPercent:=ReadMemUInt(pH,PlayerStatsOffset+0x60) - PlayerStats.CurrMana:=ReadMemUInt(pH,PlayerStatsOffset+0x54) - PlayerStats.MaxEShield:=ReadMemUInt(pH,PlayerStatsOffset+0x74) - PlayerStats.CurrEShield:=ReadMemUInt(pH,PlayerStatsOffset+0x78) + PlayerStats.MaxHP:=ReadMemUInt(pH,PlayerStatsOffset+0x34) + PlayerStats.CurrHP:=ReadMemUInt(pH,PlayerStatsOffset+0x38) + PlayerStats.ReservedHPFlat:=ReadMemUInt(pH,PlayerStatsOffset+0x40) + PlayerStats.ReservedHPPercent:=ReadMemUInt(pH,PlayerStatsOffset+0x44) + PlayerStats.MaxMana:=ReadMemUInt(pH,PlayerStatsOffset+0x64) + PlayerStats.CurrMana:=ReadMemUInt(pH,PlayerStatsOffset+0x68) + PlayerStats.ReservedManaFlat:=ReadMemUInt(pH,PlayerStatsOffset+0x70) + PlayerStats.ReservedManaPercent:=ReadMemUInt(pH,PlayerStatsOffset+0x74) + PlayerStats.MaxEShield:=ReadMemUInt(pH,PlayerStatsOffset+0x90) + PlayerStats.CurrEShield:=ReadMemUInt(pH,PlayerStatsOffset+0x94) PlayerActionIDOffset:=ReadMemUInt(pH,PlayerMain+0x1C) PlayerStats.PlayerActionID:=ReadMemUInt(pH,PlayerActionIDOffset+0x70) /* @@ -1050,8 +1050,8 @@ ReadPlayerStats(hwnd, byRef PlayerStats) PlayerStats.PlayerActionID:=PlayerActionID2 */ - BuffListStart:=ReadMemUInt(pH,PlayerStatsOffset+0x94) - BuffListEnd:=ReadMemUInt(pH,PlayerStatsOffset+0x98) + BuffListStart:=ReadMemUInt(pH,PlayerStatsOffset+0xB0) + BuffListEnd:=ReadMemUInt(pH,PlayerStatsOffset+0xB4) BuffAmount:=((BuffListEnd-BuffListStart)/4) PlayerStats.BuffAmount:=((BuffListEnd-BuffListStart)/4) Loop, %BuffAmount% @@ -1074,16 +1074,29 @@ ReadPlayerStats(hwnd, byRef PlayerStats) PanelInventoryOffset:=ReadMemUInt(pH,CheckBase+Offset8) PlayerStats.PanelInventory:=ReadMemUInt(pH,PanelInventoryOffset+0x754) - PanelSocialOffset:=ReadMemUInt(pH,CheckBase+Offset8+0x14) - PlayerStats.PanelSocial:=ReadMemUInt(pH,PanelSocialOffset+0x754) - PanelSkillTreeOffset:=ReadMemUInt(pH,CheckBase+Offset8+0x18) + PanelSocialOffset:=ReadMemUInt(pH,CheckBase+0xA98) + PlayerStats.PanelSocial:=ReadMemUInt(pH,PanelSocialOffset+0x754) + PanelSkillTreeOffset:=ReadMemUInt(pH,CheckBase+0xA9C) PlayerStats.PanelSkillTree:=ReadMemUInt(pH,PanelSkillTreeOffset+0x754) - PanelWaypointOffset:=ReadMemUInt(pH,CheckBase+Offset8+0x30) + PanelWaypointOffset:=ReadMemUInt(pH,CheckBase+0xAB8) PlayerStats.PanelWaypoint:=ReadMemUInt(pH,PanelWaypointOffset+0x754) - PanelInstanceManagerOffset:=ReadMemUInt(pH,CheckBase+Offset8+0xB8) ;added by immor + PanelInstanceManagerOffset:=ReadMemUInt(pH,CheckBase+0xB8C) PlayerStats.PanelInstanceManager:=ReadMemUInt(pH,PanelInstanceManagerOffset+0x754) ;added by immor + /* InCityOffset:=GetMultilevelPointer(pH,[CheckBase+Offset10,0x704,0x958]) + InCityOffset:=GetMultilevelPointer(pH,[CheckBase+Offset10,0x954]) PlayerStats.InCity:=ReadMemUInt(pH,InCityOffset+0x754) + */ + AreaCodeNameOffset:=GetMultilevelPointer(pH,[fBase+Offset1,0x14,0x0]) + AreaCodeName:=ReadMemStr(ph,AreaCodeNameOffset,100,"UTF-16") + If InStr(AreaCodeName, "town") + { + PlayerStats.InCity:=65536 + } + else + { + PlayerStats.InCity:=65537 + } MouseOnEnemyOffset:=GetMultilevelPointer(pH,[CheckBase+Offset11,0x8c4,0x7f4]) PlayerStats.MouseOnEnemyStatus:=ReadMemUInt(pH,MouseOnEnemyOffset+0x38) EnemyNamePtr:=GetMultilevelPointer(ph,[CheckBase+Offset11,0x8c4,0xb30]) @@ -1107,7 +1120,7 @@ ReadFlasksData(hwnd, byRef FlasksData) If (!UiBase) ;not InGame return - FlaskInvBase:=GetMultilevelPointer(pH,[UiBase+0x8b4,0x950,0x20]) + FlaskInvBase:=GetMultilevelPointer(pH,[UiBase+0x8E0,0x980,0x30]) Loop, 5 { @@ -1164,7 +1177,7 @@ ReadFlasksData(hwnd, byRef FlasksData) If (FlasksData[A_Index].ChargesCurrent < FlasksData[A_Index].ChargesPerUse) ; not enough charges in this flask to use it, don't bother continue - FlaskMetadataPtr:=GetMultilevelPointer(ph,[currFlaskPtr,0,0x14]) + FlaskMetadataPtr:=GetMultilevelPointer(ph,[currFlaskPtr,0,0x10]) FlaskMetadataStr:=ReadMemStr(ph,FlaskMetadataPtr,70,"UTF-16") FlaskTypeStr:=SubStr(FlaskMetadataStr,23) FlasksData[A_Index].type:=FlaskTypeStr @@ -4345,7 +4358,7 @@ ReadMe: return Donate: - Run "https://donate.doctorswithoutborders.org/onetime.cfm" + Run "https://www.paypal.me/yuwei1" return GuiClose: diff --git a/Autopot.exe b/Autopot.exe new file mode 100644 index 0000000..745ed41 Binary files /dev/null and b/Autopot.exe differ diff --git a/README.md b/README.md index 5310a8f..ed92913 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,16 @@ -# Download -https://github.com/badplayerr/beta-autopot/releases +# beta-autopot +This is for 32bit POE on global server only.
Although it's not detected, use at your own risk. +## Donation Info +Donations can be made here: https://www.paypal.me/yuwei1 -Using cports to quit +## Hot to use +Run the Autopot.exe
Mouse right click on the mini icon in tray menu to set the config. -cports.exe can be found here: http://www.nirsoft.net/utils/cports.html#DownloadLinks - -place it in the same directory as the script +## File Description +#### 1.AutoHotkeyMemoryLib.ahk +The libary for Autopot.ahk +#### 2.Autopot.ahk +If you don't like run Autopot.exe.
You can install AHK and run the Autopot.ahk.
AHK can be found here:
https://autohotkey.com/download/ +#### 3.cports.exe +Use cports for autoquit.
If you want to downlord it yourself,it can be found here:
http://www.nirsoft.net/utils/cports.html#DownloadLinks
Just cover the existing cports.exe. \ No newline at end of file diff --git a/cports.exe b/cports.exe new file mode 100644 index 0000000..8c4f009 Binary files /dev/null and b/cports.exe differ