Function such as "IsPlayerCloseToPlayer" or something -
NoahF - 23.06.2014
Hey
Is there a function that can detect if a player is within a certain distance to another player? I looked all over the SA-MP Wiki but couldn't find one?
Thanks!
Re : Function such as "IsPlayerCloseToPlayer" or something -
S4t3K - 23.06.2014
It's impossible you've looked all over the SAMP wiki because there's something which can help you :
IsPlayerInRangeOfPoint.
Just get the player2 pos and check if it's close enough through the "radius" parameter to the playerid's position (gotten automatically by SAMP)
Re: Function such as "IsPlayerCloseToPlayer" or something -
Clad - 23.06.2014
pawn Код:
stock Float:GetDistanceBetweenPlayers(playerid,targetplayerid)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetplayerid)) {
return -1.00;
}
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(targetplayerid,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
P.S : by
Kostantinos
Re: Function such as "IsPlayerCloseToPlayer" or something -
NoahF - 23.06.2014
Quote:
Originally Posted by S4t3K
It's impossible you've looked all over the SAMP wiki because there's something which can help you : IsPlayerInRangeOfPoint.
Just get the player2 pos and check if it's close enough through the "radius" parameter to the playerid's position (gotten automatically by SAMP)
|
Quote:
Originally Posted by Clad
pawn Код:
stock Float:GetDistanceBetweenPlayers(playerid,targetplayerid) { new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2; if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetplayerid)) { return -1.00; } GetPlayerPos(playerid,x1,y1,z1); GetPlayerPos(targetplayerid,x2,y2,z2); return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2)); }
P.S : by Kostantinos
|
This is exactly what I wanted! Thank you. And S4t3K, I saw that but I didn't think that would be useful. Thanks anyways!
EDIT: Now for the GetDistanceBetweenPlayers function, would I do:
Код:
if(GetDistanceBetweenPlayers(playerid, targetid)) = x (x would be a number or a float)
Re : Function such as "IsPlayerCloseToPlayer" or something -
S4t3K - 23.06.2014
Konstantinos' function can be optimized using
VectorSize :
PHP код:
stock Float:GetDistanceBetweenPlayers(pl1, pl2)
{
new Float:pos[6];
if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) return -1.0;
GetPlayerPos(pl1, pos[0], pos[1], pos[2]);
GetPlayerPos(pl2, pos[3], pos[4], pos[5]);
return VectorSize(pos[0]-pos[3],pos[1] - pos[4], pos[2]-pos[5]);
}
This "VectorSize" usage is from the wiki page VectorSize, and a similar function called "GetDistanceBetweenPoints" uses this kind of implementation, credits go to Vince.
Re: Function such as "IsPlayerCloseToPlayer" or something -
Clad - 23.06.2014
pawn Код:
forward Float:GetDistanceBetweenPlayers(playerid,targetplayerid);
public Float:GetDistanceBetweenPlayers(playerid,targetplayerid)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if(!IsPlayerConnected(playerid) || !IsPlayerConnected(targetplayerid)) {
return -1.00;
}
GetPlayerPos(playerid,x1,y1,z1);
GetPlayerPos(targetplayerid,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
Re : Function such as "IsPlayerCloseToPlayer" or something -
S4t3K - 23.06.2014
Why do you want to use a public function here ? Except if you plan to call the function through a timer or through CallLocal/RemoteFunction, it's pointless.
And why do you repost the exact function as above ?
Re: Function such as "IsPlayerCloseToPlayer" or something -
Rittik - 23.06.2014
Late.
Re: Function such as "IsPlayerCloseToPlayer" or something -
NoahF - 23.06.2014

?
Quote:
EDIT: Now for the GetDistanceBetweenPlayers function, would I do:
Code:
if(GetDistanceBetweenPlayers(playerid, targetid)) == x (x would be a number or a float)
|
I don't understand what you are trying to say by just giving me the stock?
Re: Re : Function such as "IsPlayerCloseToPlayer" or something -
Clad - 23.06.2014
Quote:
Originally Posted by S4t3K
Why do you want to use a public function here ? Except if you plan to call the function through a timer or through CallLocal/RemoteFunction, it's pointless.
And why do you repost the exact function as above ?
|
Don't get mad homie, When I sent it I didn't know you will send it too, Relax pls.