Posts: 164
Threads: 26
Joined: Aug 2010
Reputation:
0
IsPlayerInRangeOfPoint
That is callend ONCE when a player ENTERS a the range..
Else, can somebody make it maybe?
Or explain how.
thanks!
Posts: 164
Threads: 26
Joined: Aug 2010
Reputation:
0
Not a function, callback, and when he enters, it need to called once, and when he exit and enters again, called once.
Posts: 1,988
Threads: 17
Joined: Apr 2011
Reputation:
0
Just make a timer or use OnPlayerUpdate.
Posts: 498
Threads: 34
Joined: Jan 2010
Reputation:
0
DO NOT use OnPlayerUpdate for this.
Posts: 2,938
Threads: 162
Joined: May 2010
Quote:
Originally Posted by wouter0100
Fixed, thanks 
|
NO!, bugs pls
pawn Code:
#define COORD 0.0, 0.0, 10.0
#define RANGE 10.5
#deinfe CHECK_INTERVAL 1000 // ms
new bool:isplayerinrange[MAX_PLAYERS] = {false,...};
forward RangeTimer();
forward OnPlayerEnterIRP(playerid);
forward OnPlayerLeaveIRP(playerid);
public RangeTimer()
{
foreach(Player, i)
{
if (IsPlayerInRangeOfPoint(i, RANGE, COORD))
{
if (isplayerinrange[i]) continue;
isplayerinrange[playerid] = true;
CallRemoteFunction("OnPlayerEnterIRP", "i", playerid);
}
else
{
if (!isplayerinrange[i]) continue;
isplayerinrange[playerid] = false;
CallRemoteFunction("OnPlayerLeaveIRP", "i", playerid);
}
}
}
public OnFilterScriptInit()
{
SetTimer("RangeTimer", CHECK_INTERVAL, 1);
return 1;
}
public OnPlayerConnect(playerid)
{
isplayerinrange[playerid] = false;
return 1;
}