Hey.
I plan to post several offsets that I found in this thread - perhaps, while the PoeHelper is released, they will help someone
TerrainData [updated for 3.13.0c]
sorry for the late update - i was sleeping
Code:
public long address {get{
var one = ui.M.Read<long>(ui.M.AddressOfProcess + 0x02516E28); // =>0x02516E18
var two = ui.M.Read<long>(one + 0x30);
return two + 0x660 - 0x18;
}
}
public TerrainData data => ui.M.Read<TerrainData>(address);
the old TerrainData structure works fine with this offset
Code:
[StructLayout(LayoutKind.Explicit, Pack = 1)]
public struct TerrainData {
[FieldOffset(0x18)] public long NumCols;
[FieldOffset(0x20)] public long NumRows;
[FieldOffset(0xd8)] public NativePtrArray LayerMelee;
[FieldOffset(0xf0)] public NativePtrArray LayerRanged;
[FieldOffset(0x108)] public int BytesPerRow;
}
Last edited by GameAssist; 01-21-2021 at 01:31 AM.
Static offsets based on the "GameStateOffset" for 3.13
Code:
public LoginPanel Login_panel {
get {
var l0 = M.Read<long>(M.AddressOfProcess + M.BaseOffsets[Shared.Enums.OffsetsName.GameStateOffset]);
var l1 = M.Read<long>(l0 + 0x20);
var l2 = M.Read<long>(l1 + 0x10);
var res = GetObject<LoginPanel>(M.Read<long>(l2 + 0x108));
return res.IsValid ? res : null;
}
}
public HeroFrame hero_frame {
get {
var l0 = M.Read<long>(M.AddressOfProcess + M.BaseOffsets[Shared.Enums.OffsetsName.GameStateOffset]);
var l1 = M.Read<long>(l0 + 0x20);
var l2 = M.Read<long>(l1 + 0x10);
var l3 = M.Read<long>(l2 + 0x58);
var res = GetObject<HeroFrame>(M.Read<long>(l3 + 0x2a8)); //1C0CD8E6CF0
return res.IsValid?res:null;
}
}
public EscModalDialog esc_dialog { get {
var l0 = M.Read<long>(M.AddressOfProcess + M.BaseOffsets[Shared.Enums.OffsetsName.GameStateOffset]);
var l1 = M.Read<long>(l0 + 0x20);
var l2 = M.Read<long>(l1 + 0x10);
var l3 = M.Read<long>(l2 + 0x58);
var l4 = M.Read<long>(l3 + 0x198);
var res = GetObject<EscModalDialog>(M.Read<long>(l4 + 0x90));
return res.IsValid ? res : null;
} }