Posts: 98
Threads: 33
Joined: Feb 2013
Reputation:
0
Bueno la pregunta es la siguiente.
їExiste alguna funciуn para detectar usuarios en "x" zona?
De ser asн, me gustarнa aprender a contar cuantas personas hay en "x" zona.
їComo podrнa comenzar?
Posts: 2,041
Threads: 97
Joined: Jun 2013
PHP код:
stock IsPlayerInZone(playerid, Float:min_x, Float:min_y, Float:min_z, Float:max_x, Float:max_y, Float:max_z)
{
new Float:fX, Float:fY, Float:fZ;
GetPlayerPos(playerid, fX, fY, fZ);
return (min_x <= fX <= max_x && min_y <= fX <= max_y && min_z <= fX <= max_z);
}
if(IsPlayerInZone(playerid, 0.0, 0.0, 0.0, 30.0, 30.0, 10.0))
for(new i = 0, j = GetMaxPlayers(); i <= j; i++)
{
if(IsPlayerInZone(playerid, 0.0, 0.0, 0.0, 30.0, 30.0, 10.0))
{
// ...
}
}
Otra opciуn serнa con "GetPlayerDistanceFromPoint" :P
Posts: 2,041
Threads: 97
Joined: Jun 2013
Quote:
Originally Posted by Doniczzz
Eso no seria lo mismo que:
Код:
foreach(Player,i)
{
if(IsPlayerInRangeOfPoint(i,250,1813.4744,-1843.1809,13.5781))
{
MensajeF(playerid,-1,"Hay "#CVERDE"%d"#CBLANCO" Personas en unity", i);
}
}
Porque tomaria como un condicional que estes en cierta posicion, de lo contrario no se ejecuta el comando.. Corrigeme si me equivoco
|
Sobre lo de "tomaria como un condicional que estes en cierta posicion" estбs en lo correcto, lo de "de lo contrario no se ejecuta el comando", a quй te refieres? el comando se ejecuta de todas formas :P
La funciуn que te pase detecta si el jugador estб en una zona cъbica
(asн se dice? vos me entendes
)
Posts: 98
Threads: 33
Joined: Feb 2013
Reputation:
0
Me explico, al ejecutar el comando quiero que me envнe un mensaje con la cantidad de personas que hay en ese rango desde cualquier parte del mapa, pero el problema es que me envнa el mensaje solo cuando estoy en ese rango. Me entiendes?
PD: Se dirнa zona cuadrada, si quisiera saber tambiйn la profundidad de la zona pues si es cubica xd
Posts: 2,041
Threads: 97
Joined: Jun 2013
Zona cъbica es cuando es 3D
(analiza profundidad/altura
), cuadrada es cuando es 2D
(no analiza profundidad/altura
).
Respecto a tu duda, es porque le envнas un mensaje sуlo a los jugadores que estбn en esa zona. Hбzlo asн:
PHP код:
foreach(Player,i)
{
new count;
if(IsPlayerInRangeOfPoint(i,250,1813.4744,-1843.1809,13.5781)) count++;
}
// Acб envнas el mensaje a todos (SendClientMessageToAll)