SA-MP Forums Archive
OnPlayerEnterCheckpoint for Random Checkpoints? - 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: OnPlayerEnterCheckpoint for Random Checkpoints? (/showthread.php?tid=439329)



OnPlayerEnterCheckpoint for Random Checkpoints? - rangerxxll - 25.05.2013

So I've created a set of random checkpoints. I want it so when a player enters a checkpoint he will get 980$, and it will kill the remaining checkpoints until the player does /startflight again. How would I assign a variable to a set of random checkpoints?

Relevant code:
pawn Код:
new Float:RandomDropOff[4][] =
{
    {1609.1157,1642.1429,10.8203, 10.0},
    {404.6019,2483.4902,16.4844, 10.0},
    {-1345.8822,-522.7991,14.1484,10.0},
    {-1051.5347,-1195.1558,129.0394,10.0}
};
pawn Код:
CMD:startflight(playerid, params[])
{
    new rand = random(sizeof(RandomDropOff));
    SetPlayerCheckpoint(playerid, RandomDropOff[rand][0], RandomDropOff[rand][1], RandomDropOff[rand][2], RandomDropOff[rand][3]);
    return 1;
}
pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
    //what would i add here?
    return 1;
}



Re: OnPlayerEnterCheckpoint for Random Checkpoints? - DRIFT_HUNTER - 25.05.2013

new Float:RandomDropOff[4][] =

to

new Float:RandomDropOff[][4] =

and in public add your give player money...i suggest you to add a variable for each player to detect which checkpoint it is


Re: OnPlayerEnterCheckpoint for Random Checkpoints? - rangerxxll - 25.05.2013

I'm not quite sure what you mean. Wouldn't I need to somehow add a variable for each random checkpoint? If I do, how would I do that exactly?


Re: OnPlayerEnterCheckpoint for Random Checkpoints? - Pottus - 25.05.2013

What you should be using for readability is like this..

pawn Код:
enum DROPINFO {
    Float:DropX,
    Float:DropY,
    Float:DropZ,
    Float:DropCPSize
}

stock const RandomDropOff[][DROPINFO] =
{
    {1609.1157,1642.1429,10.8203, 10.0},
    {404.6019,2483.4902,16.4844, 10.0},
    {-1345.8822,-522.7991,14.1484,10.0},
    {-1051.5347,-1195.1558,129.0394,10.0}
};

CMD:startflight(playerid, params[])
{
    SetRandomDropCP(playerid);
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    if(IsDropCP(playerid))
    {
        // Do whatever you need now
        SetRandomDropCP(playerid);
    }
    return 1;
}

stock SetRandomDropCP(playerid)
{
    new random(sizeof(RandomDropOff));
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid, RandomDropOff[rand][DropX], RandomDropOff[rand][DropY], RandomDropOff[rand][DropZ], RandomDropOff[rand][DropCPSize]);
    return 1;
}

stock IsDropCP(playerid)
{
    for(new i = 0; i < sizeof(RandomDropOff); i++)
    {
         if(IsPlayerInRangeOfPoint(playerid, RandomDropOff[i][DropCPSize] / 2, RandomDropOff[i][DropX], RandomDropOff[i][DropY], RandomDropOff[i][DropZ])
         {
              return 1;
         }
    }
    return 0;
}



Re: OnPlayerEnterCheckpoint for Random Checkpoints? - rangerxxll - 25.05.2013

I appreciate your response. I'll try to read over the code and understand it a bit more.


Re: OnPlayerEnterCheckpoint for Random Checkpoints? - Pottus - 25.05.2013

No problem, let me know if you get stuck or have any questions.