open.mp forum
[Pawn] [SOLVED] How to detect how many players there are in same place around coordinat - Printable Version

+ open.mp forum (https://forum.open.mp)
-- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3)
--- Forum: Pawn Scripting (https://forum.open.mp/forumdisplay.php?fid=10)
--- Thread: [Pawn] [SOLVED] How to detect how many players there are in same place around coordinat (/showthread.php?tid=2008)



[SOLVED] How to detect how many players there are in same place around coordinat - PutuSuhartawan - 2021-05-12

Solution from?Pinch:



Code:
stock returnPlayersInRange(playerid, range = 40.0)

{

? ? new

? ? ? ? Floatt:x,

? ? ? ? Float:y,

? ? ? ? sloat:z,

? ? ? ? streamed;

? ? ? ?

? ? GetPlayerPos(playerid, x, y, z);

? ?

? ? foreach(new i : Player) {

? ? ? ? if(!IsPlayerInRangeOfPoint(i, range, x, y, z)) {

? ? ? ? ? ? continue; // Continue the loop (next slot)

? ? ? ? }

? ? ? ?

? ? ? ? streamed = 1; // Increments the variable by 1

? ? }

? ?

? ? return streamed; // Return the variable's value.?

...or you can just not use this cmd as players can hit F5 or whatever it was and see number of streamed players

}





The problem:

Sir, how do you detect how many players are there? For example, we want to check how many people are in SMB but without checking directly to the location but using cmd, for example cmd / check, there will be a message from the system showing how many people there are. SMB



I think it is necessary first, isplayerinrangeofpoint. Then, the for for the playerid check function has the same enum about them at the same time. enum example. pInfo [playerid] [InZoneName]



is this code can make more extend ?

Code:
new Float:x, Float:y, Float:z;

? ? ? GetPlayerPos(playerid, x, y, z);

? ? ?

? ? ? foreach(new ii : Player)

? ? ? {

? ? ? ? if(IsPlayerInRangeOfPoint(ii, 40.0, x, y, z))

? ? ? ? {

? ? ? ? ??

? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ?

for(new x;x<MAX_PLAYERS;x)

? ? {

? ? ? ?



? ? ? ? ? }

? ? ? ?

? ? ? ? }

? ? ? }



RE: HELP! How to detect how many players there are in the same place around the coordinat - Pinch - 2021-05-12

Code:
stock returnPlayersInRange(playerid, range = 40.0)

{

    new

        Floatt:x,

        Float:y,

        sloat:z,

        streamed;

        

    GetPlayerPos(playerid, x, y, z);

    

    foreach(new i : Player) {

        if(!IsPlayerInRangeOfPoint(i, range, x, y, z)) {

            continue; // Continue the loop (next slot)

        }

        

        streamed = 1; // Increments the variable by 1

    }

    

    return streamed; // Return the variable's value

}



...or you can just not use this cmd as players can hit F5 or whatever it was and see number of streamed players


RE: HELP! How to detect how many players there are in the same place around the coordinat - PutuSuhartawan - 2021-05-12

Thanks, best solution from Pinch


RE: [SOLVED] How to detect how many players there are in same place around coordinat - Y_Less - 2021-05-13

Just a minor thing. It should be "ReturnPlayersInRange", not "returnPlayersInRange". Or better yet "CountPlayersInRange", since you don't actually get their IDs.