[Tutorial] IsPlayerInArea
#1

IsPlayerInArea

'Aporte Realizado Para Los Usuarios Novato en 'Pawno''


* FUNCION:
Код:
stock IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy)
{
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if (x > minx && x < maxx && y > miny && y < maxy) return 1;
    return 0;
}
* MODO DE USO:
Код:
if(IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy))
{
    return 1;
}
* їQue Es?:
* Es Un stock Que Lo Que Hace Es que Mira la Posision de Un Jugador y Si Este el Un area Determinada y Le Ejecuta La Funcion Que Hallas Colocado En IsPlayerInArea.

* їComo Determino Un Area?:
* Para Determinar Un Area Debes Colocar Las Coordenadas minx, maxx, miny, maxy de la Area Que Desea Crear.

* їComo Consigo Las Coordenadas minx, maxx, miny, maxy?:
* Para Conseguir Las Coordenadas minx, maxx, miny, maxy Puedes Utilizar Un Programita Llamado Xtreme Vehicle Plotter o Con /Save Siguiendo El Siguiente Tutorial:

* Primer Paso:
* Entras a Tu Server y Sacas 2 Coordenadas Con /Save Como Se Ve En La Siguiente Imagen:



---> Coordenada 1
---> Coordenada 2
---> Area a Determinar

AddPlayerClass(0, x, y, z a, 0,0,0,0,0,0);
AddPlayerClass(0, x, y, z, a, 0,0,0,0,0,0);

* Segundo Paso:
* Ahora Armademos La Coordenadas minx, maxx, miny, maxy Las 2 Coordenadas Sacadas Con /Save:

AddPlayerClass(0, x, y, z, a, 0,0,0,0,0,0);
AddPlayerClass(0, x, y, z, a, 0,0,0,0,0,0);

---> Coordenada 1
minx, miny

---> Coordenada 2
maxx, maxy

* Y Nos Quedaria Lo Siguiente:
minx,maxx, miny,maxy

* EJEMPLO DE USO:
Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy))
    {
        SendClientMessage(playerid, -1, "    [ ! ] Entraste Al Area Determinada Por Otacon :P!.");
    }
    else
    {
        SendClientMessage(playerid, -1, "    [ ! ] Saliste Del Area Determinada Por Otacon :P!.");
        return 1;
    }
	return 1;
}
* Creditos:
* OTACON , SAMP, WIKI
Reply
#2

La utilizaciуn de varias veces IsPlayerInArea en OnPlayerUpdate puede traer como consecuencia lapsos de retrasos en el servidor, es decir, lag. Hay que utilizar con mucho cuidado esta callback y escasamente.
Ademбs esta funciуn quedo algo descartada luego de que el Streamer Plugin adquiriera las funciones y callbacks de areas.
Otra cosa, ese ejemplo que hiciste de IsPlayerInArea en OnPlayerUpdate enviarб el mensaje de que estб o no en el area cada vez que se llame OnPlayerUpdate, es decir, aproximadamente cada 40 ms, por lo tanto va a floodear en el chat.
Reply
#3

Quote:
Originally Posted by Francis.
Посмотреть сообщение
La utilizaciуn de varias veces IsPlayerInArea en OnPlayerUpdate puede traer como consecuencia lapsos de retrasos en el servidor, es decir, lag. Hay que utilizar con mucho cuidado esta callback y escasamente.
Ademбs esta funciуn quedo algo descartada luego de que el Streamer Plugin adquiriera las funciones y callbacks de areas.
Otra cosa, ese ejemplo que hiciste de IsPlayerInArea en OnPlayerUpdate enviarб el mensaje de que estб o no en el area cada vez que se llame OnPlayerUpdate, es decir, aproximadamente cada 40 ms, por lo tanto va a floodear en el chat.
Es Solo Un EJEMPLO ¬¬
Reply
#4

Muy bueno
Reply
#5

Buen Tutorial !
Reply
#6

Es un ejemplo pero los novatos lo van a utilizar y luego postearбn de que lo hicieron mal y sin embargo el script estб mal.
Reply
#7

Quote:
Originally Posted by bytytus
Посмотреть сообщение
Es Solo Un EJEMPLO ¬¬
Las cosas se hacen bien o no se hacen.
Reply
#8

Quote:
Originally Posted by Jovanny
Посмотреть сообщение
Las cosas se hacen bien o no se hacen.
Las cosas Se Hicieron bien , El Ejemo Se Hizo Pa mostrar Como Poner El IF y Donde Irian LAs Funciones Dentro Del Area. el Call No Es Importante En el tutorial, y Claro Ke Deberan Colocar Otras cosas pero eso es para otro tuotiral del tema.

y en OnPlayerUpdate claro ke funciona bien, solo lo deben Saber Utilizar, y depende del GM, Todos Se Basan DE Los GMs Ya Hecho y Eso Esta Mal por ke hay ke enseсa desde uno desde cero para ke cada uno haga sus Scripts.

PD: Hay Algo Raro en todos los Ke Me Critican Los Post... No aportan Nada y estan siempre Preguntando cosas En su sub foro correspondiente... ¬¬ Raro No? :P xD.
Reply
#9

Quote:
Originally Posted by bytytus
Посмотреть сообщение
Las cosas Se Hicieron bien , El Ejemo Se Hizo Pa mostrar Como Poner El IF y Donde Irian LAs Funciones Dentro Del Area. el Call No Es Importante En el tutorial, y Claro Ke Deberan Colocar Otras cosas pero eso es para otro tuotiral del tema.

y en OnPlayerUpdate claro ke funciona bien, solo lo deben Saber Utilizar, y depende del GM, Todos Se Basan DE Los GMs Ya Hecho y Eso Esta Mal por ke hay ke enseсa desde uno desde cero para ke cada uno haga sus Scripts.

PD: Hay Algo Raro en todos los Ke Me Critican Los Post... No aportan Nada y estan siempre Preguntando cosas En su sub foro correspondiente... ¬¬ Raro No? :P xD.
En un server con muchos usuarios esto puede provocar lagg.. Sabнas que OnPlayerUpdate es llamado 20 veces por segundo por cada player ?

Si tienes un server con 20 players el server hara esta misma comprobacion 400 veces x segundo

Y que pasarнa si una persona lo pone en un server con 50 personas ? El server hara esta comprobaciуn 1000 veces x segundo...

Bueno y si son 100 ? 2000 veces la misma comprobacion x segundo, en un minuto el server habra hecho 120,000 veces esta misma comprobacion y en una hora 7,200,000 esta misma comprobaciуn, enserio, crees que esta es una manera efectiva de hacerlo ?
Reply
#10

La mayorнa de los servidores usan streamer, por lo que altamente recomiendo que usen la funciуn, 'IsPlayerInDynamicArea'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)