• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Pawn] [SOLVED] How to detect how many players there are in same place around coordinat
#1
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)

? ? {

? ? ? ?



? ? ? ? ? }

? ? ? ?

? ? ? ? }

? ? ? }
  Reply
#2
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
Using Pawn.CMD?

If you're doing so, this is the very first sign that you absolutely shouldn't utilize your all powerful P-Code knowledge in any of the scripting discussion topics.
  Reply
#3
Thanks, best solution from Pinch
  Reply
#4
Just a minor thing. It should be "ReturnPlayersInRange", not "returnPlayersInRange". Or better yet "CountPlayersInRange", since you don't actually get their IDs.
  Reply


Forum Jump: