How will i do this?
#1

I want to make a system that when a player types /freeze, the person infront of him will freeze. Not by typing the id. I have tried ProxDetector and IsPlayerInRangeOfPoint but that did not work, beside's that freeze me instead of my closer person
Reply
#2

You'll need these functions:

pawn Код:
forward Float:GetDistanceBetweenPlayers(p1,p2);
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));
}


stock 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;
}
Reply
#3

ya i know. But that will freeze me instead of the other person infront of me
Reply
#4

If you done it incorrect you'll have it like that.
Reply
#5

can you tell me a function which is made by that stock GetClosestPlayer
Reply
#6

Its made by its owner.

pawn Код:
new victimid = GetClosestPlayer(playerid);
if(GetDistanceBetweenPlayers(victimid,playerid) < 4)
{
//ya code
}
Reply
#7

thankz for that
Reply
#8

No problem.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)