Samp Gps Plugin Versions Save

Modern and feature-rich pathfinding plugin for open.mp and SA-MP.

1.4.0

4 years ago
  • Refactoring.
  • More thread safety.
  • Option to disable loading nodes on startup: set gps_load_nodes to 0 in your server.cfg or if using sampctl, add "gps_load_nodes": false to the runtime.extra object in your pawn.json.

1.3.0

5 years ago
  • Runtime node management: Map nodes and their connections can be deleted and added.
  • The data of connections between map nodes can be accessed.
  • Function to save map node and connection data to a file.
  • Major refactoring and many minor optimisations.

1.2.0

5 years ago
  • Fixed the pathfinding algorithm - node comparison was completely broken and it most likely returned the first path it found, not the shortest one. It also improved the performance a lot. Using non-threaded pathfinding, finding a path from the top-leftmost node on the map to the bottom-rightmost node takes just 3 milliseconds on my testing server - that is around 30 times faster than before! Threaded (and asynchronous) pathfinding should be just as fast in real life situations, my test script spammed out so many pathfinding function calls that std::mutex became the "bottleneck".
  • Refactored some more code, node connections are now the only thing that need to be refactored, but this will happen when I implement runtime node management.
  • Updated the GPS.dat distributed with the plugin, thanks @Naseband!
  • New native (requested by @karimcambridge in #1):
native GetPathNodeIndex(Path:pathid, MapNode:nodeid, &index);

1.1.0

5 years ago
  • Fixed GetMapNodeDistanceFromPoint and GetClosestMapNodeToPoint.
  • Some refactoring.
  • New natives:
native GetAngleBetweenMapNodes(MapNode:first, MapNode:second, &Float:angle);
native GetMapNodeAngleFromPoint(MapNode:nodeid, Float:x, Float:y, &Float:angle);
native GetMapNodeConnectionCount(MapNode:nodeid, &count);
native GetHighestMapNodeID();
native GetRandomMapNode(&MapNode:nodeid);

1.0.0

5 years ago

Initial release.