• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • If you're using Gesior 2012 or MyAAC, please review this thread for information about a serious security vulnerability and a fix.

Programmer Looking for programmer to add pathfinding to my bot

kuhi

Premium User
Premium User
Joined
Aug 26, 2012
Messages
161
Solutions
1
Reaction score
52
Location
kuhi#6402
GitHub
Kuhicop
Hello,

I have an internal C++ dll that reads XY coordinates source and XY coordinates dest.

Your task is to include a pathfinding algorithm that will allow me to loop it in my current code.

Parameters that we must check:

  • path->isWalkable
  • path->isPathable

I will provide access to that data you will only have to include the path finding with this parameters:

C++:
std::vector<int> player_position{ player.x, player.y, player.z };
std::vector<int> walking_to_position{ waypoint.x, waypoint.y, waypoint.z };
 
DWORD tile = getTile(map, *(DWORD*)&walking_to_position);

bool tile_isWalkable = isWalkable(*(DWORD*)tile, 0);
bool tile_isPathable = isPathable(*(DWORD*)tile);

For the algorithm, you can use A* (preferably), point search or this one which is point search enhanced https://github.com/fgenesis/tinypile/blob/master/jps.hh

Please if you're interested contact me kuhi#6402

My idea is a copy & paste task for someone that already knows this.

Thank you <3
 
Last edited:

tetra20

DD
Joined
Jan 17, 2009
Messages
1,312
Solutions
4
Reaction score
314
Location
Egypt
You can't just use Dijkstra as it's not efficient for searching as it doesn't take the endpoint into consideration. A* would be the best viable algorithm for that.
 
OP
OP
kuhi

kuhi

Premium User
Premium User
Joined
Aug 26, 2012
Messages
161
Solutions
1
Reaction score
52
Location
kuhi#6402
GitHub
Kuhicop
You can't just use Dijkstra as it's not efficient for searching as it doesn't take the endpoint into consideration. A* would be the best viable algorithm for that.
thank you will edit my post
 

Boy67

Veteran OT User
Joined
Jul 4, 2007
Messages
442
Solutions
23
Reaction score
348
Location
England
Yup. In the game I built, I used my own version of Djikstra's for methods such as finding the nearest target etc, as tetra20 said, it is branching out from a start point with no specified end point.

A* is one of the best pathfinding algorithms to find the shortest path from point A to point B. Ofc, you will have to modify it to a point where diagonals should only be forced to use where a natural NESW movement is not possible, i.e blocked tile or creature is in the way.

A fast way to do this is when you have found a successful path, loop back through each waypoint and see if the adjacent tiles either side of the diagonal is walkable, and if both are available, randomise which to use, and add this waypoint inbetween.
 

Similar threads

Top