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.