SA-MP Forums Archive
Pamdex Pathfinder and streamer(objects) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Pamdex Pathfinder and streamer(objects) (/showthread.php?tid=676016)



Pamdex Pathfinder and streamer(objects) - jasperschellekens - 27.05.2020

Hi everyone,

I finally got Pamdex's pathfinder to work with my NPC system.
It works perfect for samp default objects but it does not for custom placed objects.
Note: I do not know if this applies for dynamic one's only as I don't use statics but my assumption is that it doesn't work with streamer objects because they aren't static.

Does anyone know a work around for this? To make the pathfinder also calculate paths around streamed objects?

My code:
pawn Code:
//Chase player , playerid is zombie playerid
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
PathFinder_FindWay(playerid, x, y, pos[0], pos[1]);  // Pos[] holds the value of the victim's position

public OnPathCalculated(routeid, success, Float:nodesX[], Float:nodesY[], Float:nodesZ[], nodesSize)
{
    if(success)
    {
        RNPC_CreateBuild(routeid,PLAYER_RECORDING_TYPE_ONFOOT);
        for(new i; i < nodesSize; i++)
        {
            ApplyAnimation(routeid,"RYDER","RYD_DIE_PT1",4.1,1,1,1,1,1);
            RNPC_AddMovement(nodesX[i], nodesY[i], nodesZ[i]+0.3, nodesX[i+1], nodesY[i+1], nodesZ[i+1]+0.3, RNPC_SPEED_WALK);
        }
        RNPC_FinishBuild();
        RNPC_StartBuildPlayback(routeid);
    }
    return 1;
}



Re: Pamdex Pathfinder and streamer(objects) - Dignity - 27.05.2020

Considering it uses MapAndreas, maybe it's worth a try to switch to ColAndreas and using CA_CreateDynamicObject on custom objects to create collision walls. (natives should be the same been a few years since I converted MapAndreas to ColAndreas)

Other than the above you have no solution - the plugin has no way to "read" the custom objects unless you do the above.


Re: Pamdex Pathfinder and streamer(objects) - jasperschellekens - 28.05.2020

ColAndreas is certainly an option for me, but I'm not sure if it's an option for Pathfinder.

This is how Pathfinder is initiated using a MapAndreas address:
pawn Code:
MapAndreas_Init(MAP_ANDREAS_MODE_FULL, "scriptfiles/SAfull.hmap");
printf("MapAndreasAddress: %x", MapAndreas_GetAddress());
PathFinder_Init(MapAndreas_GetAddress(), 100);
// mapAndreasAddress <- mem address of CMapAndreas class
How could I change Pathfinder to work with ColAndreas instead?


Re: Pamdex Pathfinder and streamer(objects) - NaS - 28.05.2020

It would probably be easier to generate a custom hmap that include your static mappings than to change the plugin to use CA, because you can't simply replace the MA functions with CA functions. MapAndreas and ColAndreas are vastly different.


Re: Pamdex Pathfinder and streamer(objects) - jasperschellekens - 29.05.2020

Thank you for the information.
I've been searching on how to do it and then I stumbled onto this:
https://github.com/Fleynaro/PathFind...de4ccd35325949

This person has already done it and released it, but I am stuck on how I would make an useable dll and/or inc file. I have no experience in plugin development.


Re: Pamdex Pathfinder and streamer(objects) - NaS - 30.05.2020

Oh nice.. If you want I can try compiling it and see if it works.