-
Active Member
Originally Posted by
berloga03rus
I tried to add it into autoupdateplugin but it disappeared after ExileAPI relaunch
-
Contributor
Originally Posted by
armory236
I tried to add it into autoupdateplugin but it disappeared after ExileAPI relaunch
There is also a rar file in plugins 'source' folder. You have to extract it to 'compiled' folder in ExileAPI.
-
Post Thanks / Like - 1 Thanks
armory236 (1 members gave Thanks to arturino009 for this useful post)
-
Active Member
Originally Posted by
arturino009
There is also a rar file in plugins 'source' folder. You have to extract it to 'compiled' folder in ExileAPI.
that helped, appreciate that!
-
Member
Originally Posted by
KinetsuBR
stashie is working fine here.
I had to uncheck "Ignore Elder/Shaper Items" in fullraresetmanager to make it work.
Could you give a link to a working version of FullRareSetManager, which I have also does not work with disabled "Ignore Elder/Shaper Items".
-
Member
Originally Posted by
arturino009
Thank you for the advice! I did manage to find the right offset (0x58C), and it falls in line with the other offset range! But now I wonder, what exactly have I found? It is the correct offset, as it changes from state of showing a tooltip, and not showing it. But is this the UIHower element? Or maybe it is UIHoverTooltip? What is the difference?
Well, at least i know how to find an offset now

.
I'm not sure if he is oversimplifying or isn't sure what he is talking about. Max HP is a value in the Life Component. The Life Component is one of many components that can be assigned to an entity. In this case the LocalPlayer Entity. Basically you want GameStates -> InGameState -> InGameData -> LocalPlayer -> LifeComponent -> MaxHP. This is all good to know but basically useless because each one of -> is a pointer and it is very difficult to work backwards. Your best bet is to start at the beginning and go forward.
Here is some code I wrote to get to the GameStates address. The GameStates Pattern will take you to an address. Then you go to the 0x48 offset of that address and follow that pointer. That will be the GameStates hashmap. After you find the InGameState pointer from the hashmap, it is fairly simple to follow the pointers to LocalPlayer. Component pointers are stored in a List so it is not as easy to find the one you want but simpler than the hashmap. Code below might need some formatting as I snipped it out of a couple files. It is also in C# which is different than the C++ ExileApi is written in. Hashmaps are confusing. I highly recommend just copying the code out of ExileAPI and figuring out how it works.
This might sound complicated but I guarantee you it is even more complicated than you think.
Code:
[DllImport("kernel32.dll")]
static extern IntPtr OpenProcess(int[] dwDesiredAccess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll")]
public static extern bool ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, IntPtr nSize, ref int lpNumberOfBytesRead);
[DllImport("kernel32.dll")]
public static extern int CloseHandle(IntPtr hObject);
public static byte[] GetMemoryCache()
{
Buffer = new byte[Process.MainModule.ModuleMemorySize];
ReadProcessMemory(ProcessHandle, ProcessAddress, Buffer, new IntPtr(Buffer.Length), ref NumberOfBytes);
return Buffer;
}
public static IntPtr GameStateControllerAddress => PatternMatch(0);
public static IntPtr FilesRootAddress => PatternMatch(1);
public static IntPtr AreaChangeAddress => PatternMatch(2);
public static IntPtr PatternMatch(int a)
{
if (_MemoryCache == null)
{
_MemoryCache = GetMemoryCache();
}
if (_PatternMatchAddresses != null)
{
return _PatternMatchAddresses[a];
}
int size = typeof(Patterns).GetFields().Length - 1;
string[] strings = new string[size];
byte[][] patterns = new byte[size][];
_PatternMatchAddresses = new IntPtr[size];
for (int i = 0; i < size; i++)
{
var field = typeof(Patterns).GetFields()[i + 1];
if (field.FieldType == typeof(string))
{
strings[i] = field.Name;
patterns[i] = Array.ConvertAll(((string)field.GetValue(field.Name)).Replace("??", "00").Split(' '), x => byte.Parse(x, NumberStyles.HexNumber));
_PatternMatchAddresses[i] = IntPtr.Zero;
}
}
int pointersFound = 0;
for (int i = 0; i < _MemoryCache.Length; i++)
{
for (int j = 0; j < size; j++)
{
for (int k = 0; _PatternMatchAddresses[j] == IntPtr.Zero && i + k < _MemoryCache.Length && (_MemoryCache[i + k] == patterns[j][k] || patterns[j][k] == 0x00); k++)
{
if (k == patterns[j].Length - 1)
{
_PatternMatchAddresses[j] = Process.MainModule.BaseAddress + i + Patterns.Offsets[strings[j]] + 0x04 + BitConverter.ToInt32(_MemoryCache, i + Patterns.Offsets[strings[j]]);
pointersFound++;
break;
}
}
}
if (pointersFound == size) break;
}
return _PatternMatchAddresses[a];
}
public static class Patterns
{
public const string GameStateController = "48 83 EC 50 48 C7 44 24 ?? ?? ?? ?? ?? 48 89 9C 24 ?? ?? ?? ?? 48 8B F9 33 ED 48 39";
public const string FilesRoot = "48 8B 08 4C 8D 35 ?? ?? ?? ?? 8B 04 0E";
public const string AreaChange = "E8 ?? ?? ?? ?? E8 ?? ?? ?? ?? FF 05";
public static readonly Dictionary<string, int> Offsets = new Dictionary<string, int>()
{
{"GameStateController", 0x1D },
{"FilesRoot", 0x06 },
{"AreaChange", 0x0C }
};
}
Last edited by natemiddleman; 01-27-2021 at 01:09 PM.
-
Member
Is there a working version of Map Exchange plugin yet? Noticed the old one give error compiling
Code:
2021-01-27 10:16:55.521 +01:00 [ERR] MapsExchange -> CompilePlugin failed2021-01-27 10:16:55.528 +01:00 [ERR] MapsExchange -> C:\Users\Tony\Documents\Path of Exile\PoeHelper 3.13\Plugins\Source\MapsExchange\src\MapsExchange\MapsExchange.cs(423,74) : error CS1061: 'Element' does not contain a definition for 'InventorySlots' and no accessible extension method 'InventorySlots' accepting a first argument of type 'Element' could be found (are you missing a using directive or an assembly reference?)
2021-01-27 10:16:55.528 +01:00 [ERR] MapsExchange -> C:\Users\Tony\Documents\Path of Exile\PoeHelper 3.13\Plugins\Source\MapsExchange\src\MapsExchange\MapsExchange.cs(569,47) : error CS1061: 'AtlasNode' does not contain a definition for 'GetLayerByTier' and no accessible extension method 'GetLayerByTier' accepting a first argument of type 'AtlasNode' could be found (are you missing a using directive or an assembly reference?)
-
Contributor
Originally Posted by
AROR64
Could you give a link to a working version of FullRareSetManager, which I have also does not work with disabled "Ignore Elder/Shaper Items".
GitHub - IlliumIv/FullRareSetManager
-
Member
Guys please can anyone help me? I am opening Loader.exe but after 1 second it minimizes so i can't see the menu. If i click the icon in down still doesnt show anything. Only one second appear and then it doesnt show. How can i fix this ? My windows version is 1909 (build 1863) and i installed netframework vc x64 all of utility but still can't open the loader :/
-
Elite User
Originally Posted by
Pjey
Hello everyone. New here. I'm wondering, thinking of trying pickit to not having to click as much. But whats the risk currently? How safe are these kind of "utilities" to use? cheers
Thats something no one can answer you. I am not aware of any recent bans for using (only) the PoeHelper overlay.
Originally Posted by
OnurTest
Guys please can anyone help me? I am opening Loader.exe but after 1 second it minimizes so i can't see the menu. If i click the icon in down still doesnt show anything. Only one second appear and then it doesnt show. How can i fix this ? My windows version is 1909 (build 1863) and i installed netframework vc x64 all of utility but still can't open the loader :/
You need to run Path of Exile in window fullscreen. NOT fullscreen.
The Troubleshooting section in the first post might be interesting for you.
-
Member
anyone got crashing exileapi after latest update? (3.13.12) it triggers when i pick and land heist contracts to inventory...
ps. turned off advanced tooltip and it stopped crash
Last edited by berloga03rus; 01-27-2021 at 05:38 PM.
-
Member
Originally Posted by
berloga03rus
anyone got crashing exileapi after latest update? (3.13.12) it triggers when i pick and land heist contracts to inventory...
ps. turned off advanced tooltip and it stopped crash
Yeah, it is a problem with tooltips, I guess, because MapNotify also causes crashes (for example, on atlas screen opening).
I tried reverting back to 3.13.11, but it didn't seem to help (didn't try clean installation though).
-
Member
Anyone know why some plugins wont load after the last patch? In the log window it reads that it cannont find them in the compiled file and i checked they are missing. I dont know why its not compiled them.
-
Member
Originally Posted by
Bachkou
Anyone know why some plugins wont load after the last patch? In the log window it reads that it cannont find them in the compiled file and i checked they are missing. I dont know why its not compiled them.
Have you tried deleting their config files in PoeHelper/config/global?
-
Site Donator
Anyone had issues with BasicFlaskRoutine not using offensive/defensive flasks at all? It had been working fine for a week then a few days ago stopped working and I've tried everything I can think of to fix (fresh install, every setting possible, etc). The odd part is that health/mana/speed flasks work perfect, just offensive and defensive flasks not triggering.
-
Member
is stashie with fragment stash tab working for anyone? It wont sort anything into it and just stop working.