need help with my homemade bot menu

User Tag List

Results 1 to 11 of 11
  1. #1
    kuandahan's Avatar Member
    Reputation
    1
    Join Date
    Aug 2016
    Posts
    1
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    need help with my homemade bot

    Hello guys, I'm a newbie programmer want to make a poe bot by myself, the bot reads memory, but never writes it (to avoid to get banned).

    bot usage: dried lake voll farming (for voll card and currency, 6s, 6l, etc)

    C language is the only language I know (my job is related to android driver developing).

    problem 1: how to let the program know the layout of the map, so it can find the path to the boss without getting stuck? (i.e. how to load the layout into the program?)
    problem 2: how to pick up items like chaos, unique? i know that poehud can detect notable loot in the surrounding area, but i'd like to make this function by myself. and also i'd like to learn that how to let the program know the position of the drop, so it can go there to pick it up?

    Any help is appreciated, tyvm.

    need help with my homemade bot
  2. #2
    TehCheat's Avatar ★ Elder ★
    Reputation
    2559
    Join Date
    Oct 2013
    Posts
    1,896
    Thanks G/R
    347/2261
    Trade Feedback
    5 (100%)
    Mentioned
    32 Post(s)
    Tagged
    1 Thread(s)
    Problem 1: Buried in the HUD thread somewhere is a link to a youtube video where the guy is viewing the memory region of the walkable area in game. If you find the video, you should be able to track down the map data fairly easily. I found it within a few minutes of looking (to give a massive hint as to how to find it, a walkable tile is flagged as 55, so you can search for a byte array full of several 0x55 bytes. Once you find one, look at the surrounding memory, if it looks like a pattern, you've probably found it). I had to poke for a few more minutes before I found the pointer to it, but the end result was the crappy map hack I posted a screen shot on one of the last couple of pages of the HUD thread. I'm not sure how helpful that would be to find Voll, but there it is.

    Problem 2: This is done in HUD. Just look through the code. If you find the CollectEntities function, that will loop through and gather all of the entities near the player. Then you can look at the ItemAlerter to see how entities are checked for specific sockets/links/rarity/class (currency)/etc.
    Last edited by TehCheat; 08-09-2016 at 08:28 AM.

  3. Thanks toadskin, Sithylis, calebrivers098 (3 members gave Thanks to TehCheat for this useful post)
  4. #3
    Cosmo777's Avatar Active Member CoreCoins Purchaser
    Reputation
    36
    Join Date
    Oct 2016
    Posts
    25
    Thanks G/R
    1/19
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    kuandahan if you are still around here is the link to that youtube video

    Path of Exile - Pathfinding Data - YouTube

  5. Thanks toadskin, Sithylis (2 members gave Thanks to Cosmo777 for this useful post)
  6. #4
    Cosmo777's Avatar Active Member CoreCoins Purchaser
    Reputation
    36
    Join Date
    Oct 2016
    Posts
    25
    Thanks G/R
    1/19
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The next pressing question is how to figure out how large the map is to make sense of the data. Does anyone know if all maps are the same size in a given area? This would make this much easier.
    Last edited by Cosmo777; 11-17-2016 at 09:50 AM.

  7. Thanks toadskin (1 members gave Thanks to Cosmo777 for this useful post)
  8. #5
    Cosmo777's Avatar Active Member CoreCoins Purchaser
    Reputation
    36
    Join Date
    Oct 2016
    Posts
    25
    Thanks G/R
    1/19
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Next update, once you do find the map area in memory you can then find the dimension of one of the axis by looking for the first value of 0x50. The beginning of the memory that represents the map to the first 0x50 is a dimension of an axis. Continue reading memory with that interval until the internal is not 0x50 and you will have read the entire memory region for the map.

  9. #6
    rtoqwo's Avatar Private
    Reputation
    6
    Join Date
    Nov 2016
    Posts
    2
    Thanks G/R
    0/5
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Just look for a structure containing the start, the end and the width of the map.
    Starting from :
    PoeHUD PoEHUD/src/Poe/RemoteMemoryObjects/IngameState.cs: public IngameData Data => ReadObject<IngameData>(Address + 0x138 + Offsets.IgsOffset);
    or
    PoeAutoFlask beta-autopot/Autopot.ahk: global Offset1:=0x138

    at offset 0x28c :
    3EC75660 map start
    3ECD7BA1 map end
    3ECD7BA1
    3F6470C0 flying shitters map start ?
    3F6A9601 map end
    3F6A9601
    000001C1 width of the map
    00000005 something like your position
    00000009
    00000014
    00000018

    I think only the 0x0 bytes in the map are non-walkable. If your small enough everything else is walkable.

  10. #7
    Cosmo777's Avatar Active Member CoreCoins Purchaser
    Reputation
    36
    Join Date
    Oct 2016
    Posts
    25
    Thanks G/R
    1/19
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by rtoqwo View Post
    Just look for a structure containing the start, the end and the width of the map.
    Starting from :
    PoeHUD PoEHUD/src/Poe/RemoteMemoryObjects/IngameState.cs: public IngameData Data => ReadObject<IngameData>(Address + 0x138 + Offsets.IgsOffset);
    or
    PoeAutoFlask beta-autopot/Autopot.ahk: global Offset1:=0x138

    at offset 0x28c :
    3EC75660 map start
    3ECD7BA1 map end
    3ECD7BA1
    3F6470C0 flying shitters map start ?
    3F6A9601 map end
    3F6A9601
    000001C1 width of the map
    00000005 something like your position
    00000009
    00000014
    00000018

    I think only the 0x0 bytes in the map are non-walkable. If your small enough everything else is walkable.
    Thanks, based off the in game data offset from poehud i was able to find the following offsets.
    AreaStart = memory.ReadInt(Address + 0x28c);
    AreaEnd = memory.ReadInt(Address + 0x290);
    AreaWidth = memory.ReadInt(Address + 0x2A4);

  11. #8
    Empted's Avatar Contributor
    Reputation
    83
    Join Date
    Aug 2011
    Posts
    117
    Thanks G/R
    0/5
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by rtoqwo View Post
    Just look for a structure containing the start, the end and the width of the map.
    Starting from :
    PoeHUD PoEHUD/src/Poe/RemoteMemoryObjects/IngameState.cs: public IngameData Data => ReadObject<IngameData>(Address + 0x138 + Offsets.IgsOffset);
    or
    PoeAutoFlask beta-autopot/Autopot.ahk: global Offset1:=0x138

    at offset 0x28c :
    3EC75660 map start
    3ECD7BA1 map end
    3ECD7BA1
    3F6470C0 flying shitters map start ?
    3F6A9601 map end
    3F6A9601
    000001C1 width of the map
    00000005 something like your position
    00000009
    00000014
    00000018

    I think only the 0x0 bytes in the map are non-walkable. If your small enough everything else is walkable.
    I've been following the steps listed in this thread and the offsets now are almost the same (added 4 to all to get it working). I've been researching for a little and came up with the conclusion that every byte of this map is actually 2 values. Both low and high 4 bits of every byte are describing a map cell. And I suppose cell values mean the radius (in this map units) of an object that can step into this map cell. What I struggle with is parsing this so-called coordinates/position. I could almost precisely get map cell coords by dividing game float coodinates by the constant value (4.6 for X and 9.2 for Y). But this doesn't seem the right thing to do. Does anyone know how to parse those 4 dword values after the map width? I've tried to reverse some code that accesses those 4 dwords but from what I've seen it's some tricky math function on params of a function and I'm not sure those operations are lossless. Also those 4 values are likely to be a union.

    P.S. Zana's map device located near the wall in my hideout looks like this. With every number representing high/low byte value of every map cell.
    need help with my homemade bot-f5efc128687f1f90029a4ea130685bb8-png

    P.P.S. after some reversing I've found the constant 0.092f in code. My guess was the right thing. Just multiplying game coords by 0.092 gets you the cell number.
    Last edited by Empted; 04-22-2017 at 10:05 AM.

  12. Thanks calebrivers098 (1 members gave Thanks to Empted for this useful post)
  13. #9
    calebrivers098's Avatar Member
    Reputation
    3
    Join Date
    Mar 2017
    Posts
    13
    Thanks G/R
    6/2
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can anyone clarify on the following :
    Is the offset 28c from Base + Offset1 ( 0x138 ) ? or it is Base + x28c ?? I am trying to get the MapStart, MapEnd, MapWidth in Poe x64 dx11 but to no avail, any help is appreciated.
    Thanks!

    Edit : Top Post is correct, new pointers are 29c, 300, 2b4. Above post got everything right!! GGWP!!
    Last edited by calebrivers098; 10-09-2017 at 11:22 AM. Reason: edited so it wouldn't parse smileys and found the solution

  14. #10
    mkwhite703's Avatar Member
    Reputation
    1
    Join Date
    Oct 2017
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hey, how did you get the pointer to it? I can find the Walkable tiles and view the map with cheat engine, but i'm having absolutely no luck getting a pointer to it. Also, is there anyway to get the X,Y,Z ssociated with the 55?

  15. #11
    mkwhite703's Avatar Member
    Reputation
    1
    Join Date
    Oct 2017
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by calebrivers098 View Post
    Can anyone clarify on the following :
    Is the offset 28c from Base + Offset1 ( 0x138 ) ? or it is Base + x28c ?? I am trying to get the MapStart, MapEnd, MapWidth in Poe x64 dx11 but to no avail, any help is appreciated.
    Thanks!

    Edit : Top Post is correct, new pointers are 29c, 300, 2b4. Above post got everything right!! GGWP!!
    can you help me with this for 64bit?

Similar Threads

  1. need help with maestro bot membership, Any trusted Member out there?
    By komo321 in forum SWTOR Bots and Programs
    Replies: 3
    Last Post: 07-12-2012, 04:23 PM
  2. [Bot] Need help with a error on Swadow Bot
    By otkachen in forum World of Warcraft Bots and Programs
    Replies: 1
    Last Post: 06-17-2011, 12:34 PM
  3. Need help with BG bots
    By Rohi in forum World of Warcraft General
    Replies: 5
    Last Post: 09-13-2008, 04:19 PM
  4. Replies: 4
    Last Post: 09-18-2006, 06:38 PM
All times are GMT -5. The time now is 02:55 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search