SA-MP Forums Archive
detect if a player is near - 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)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: detect if a player is near (/showthread.php?tid=164138)



detect if a player is near - willsuckformoney - 30.07.2010

how to detect if a player is near a npc?? ima need it for my drug bot xD && the npc wont be in one place xD


Re: detect if a player is near - ikey07 - 30.07.2010

Here you go

pawn Код:
forward GetClosestPlayer(p1);
forward Float:GetDistanceBetweenPlayers(p1,p2);
pawn Код:
public GetClosestPlayer(p1)
{
    new x,Float:dis,Float:dis2,player;
    player = -1;
    dis = 99999.99;
    for (x=0;x<MAX_PLAYERS;x++)
    {
        if(IsPlayerConnected(x))
        {
            if(x != p1)
            {
                dis2 = GetDistanceBetweenPlayers(x,p1);
                if(dis2 < dis && dis2 != -1.00)
                {
                    dis = dis2;
                    player = x;
                }
            }
        }
    }
    return player;
}
pawn Код:
public Float:GetDistanceBetweenPlayers(p1,p2)
{
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
        return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}



Re: detect if a player is near - willsuckformoney - 30.07.2010

Tanks but mind telling me how to use this?? xD


Re: detect if a player is near - ikey07 - 30.07.2010

Now I figure out easly way

each one second,
GetPlayerPos(npc,x,y,z)
if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z))
{
"You are near of NPC"
}

if you need whole script , just ask



Re: detect if a player is near - willsuckformoney - 30.07.2010

teheh just a little script to show me? please


Re: detect if a player is near - willsuckformoney - 30.07.2010

tehe gots it && of topic nice pic xD


Re: detect if a player is near - ikey07 - 30.07.2010

Here you go
pawn Код:
public OnPlayerUpdate(playerid)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(YOUR_NPC_ID,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z))
    {
        SendClientMessage(playerid,0xFFFFFFFF,"NPC Says: hello, Im NPC, what can I do for you?");
    }
    return 1;
}



Re: detect if a player is near - WackoX - 30.07.2010

Quote:
Originally Posted by ikey07
Посмотреть сообщение
Here you go
pawn Код:
public OnPlayerUpdate(playerid)
{
    new Float:x,Float:y,Float:z;
    GetPlayerPos(YOUR_NPC_ID,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,3.0,x,y,z))
    {
        SendClientMessage(playerid,0xFFFFFFFF,"NPC Says: hello, Im NPC, what can I do for you?");
    }
    return 1;
}
Are you serious? that would spam your chatbox every 0.02 seconds or so.


Re: detect if a player is near - Steven82 - 30.07.2010

Maybe set it on like a 30 second timer. Idk. Or just like make a checkpoint and when player enter's the checkpoint display the text.


Re: detect if a player is near - ikey07 - 30.07.2010

Quote:
Originally Posted by WackoX
Посмотреть сообщение
Are you serious? that would spam your chatbox every 0.02 seconds or so.
Well, I only showed the script, what he put under it, its not my Biz, because there is ppls who understand only when there is SendClientMessage, than some only understand where he must put his code, I hope you got.

I belive that SendClient.... isn't good idea on some timers, but that was only script example!!!!