SA-MP Forums Archive
[Tutorial] Бreas - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+----- Forum: Lanzamientos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=59)
+----- Thread: [Tutorial] Бreas (/showthread.php?tid=553361)



Бreas - [DOG]irinel1996 - 29.12.2014

Бreas
[*] Introducciуn
Buenas, decidн hacer este tutorial para que tengan una pequeсa referencia a la hora de crear бreas. Lo que me empujу a hacerlo fue la duda de un usuario de este foro, asн que, aquн os dejo una guнa para poder crear бreas correctamente. Yo enfocarй este tutorial sobre todo a las funciones del Streamer de Incognito, aunque tambiйn echaremos un vistazo al asunto sin usar plugins/includes/etc.

Antes de todo, tenemos que aclarar algunas dudas a las personas que no saben nada sobre бreas y superficies.


[*] їPara quй sirven?
Pues bбsicamente sirven para detectar cuando un jugador entra en una zona determinada.

Algunos ejemplos:Esas son algunas de las pocas cosas que podemos hacer si creamos бreas, obviamente, existen cosas mucho mбs complejas que esas.


[*] Diferencias entre бrea y superficie
Si estudiamos formas en 2D, el бrea y la superficie son dos cosas iguales, podrнamos decir que ambos conceptos son lo mismo. En el caso de las formas en 3D, son dos cosas distintas, pero no entraremos por ahн ya que nosotros estudiaremos esto sobre el mapa del GTA San Andreas.

El mapa del San Andreas, visto desde arriba, serнa una forma bidimensional (2D). Y si entramos al juego y nos ponemos a jugar, lo verнamos en 3D. Pero nosotros estudiaremos el бrea SOBRE EL MAPA.

Entonces, el бrea en el caso de las formas en 2D, serнa equivalente a la superficie que encierra dicha forma. Por ejemplo, en el rectбngulo que tenemos a continuaciуn lo que estб pintado de amarillo serнa el бrea o la superficie.


Matemбticamente, el бrea es el resultado del producto de a · b, y su unidad de medida es metros cuadrados (m2).


Este es el mapa del GTA San Andreas en 2D, ahora si colocamos sobre йl un eje de coordenadas con el origen (0) en el centro del mapa, obtendrнamos un sistema (X, Y).



Imagino que todos sabrбn que el centro del mapa (origen de coordenadas) es la famosa granja que se encuentra en Blueberry Acres. Como sabrбn, cuando vamos al juego y damos /save obtenemos una lнnea con el siguiente formato:
pawn Код:
AddPlayerClass(skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
Esa x e y que obtenemos en esa lнnea, son las distancias respecto al origen (punto en el que se cortan ambos ejes). Pues bien, teniendo x e y, obtenemos un punto sobre el mapa: P(x, y). Y esos puntos definen los bordes de nuestras superficies.

En esta imagen tenemos cuatro puntos: A, B, C y D. Cada punto tiene coordenadas distintas.


Entonces, como cada punto tiene una x e y distinta, podemos decir que tenemos varias parejas de coordenadas:
pawn Код:
new Float:Puntos[8] = {
    ax, ay,
    bx, by,
    cx, cy,
    dx, dy
};
Entre esos cuatro puntos tenemos una superficie, en este caso un rectбngulo, que serб nuestra бrea.

Sabiendo esto, podemos seguir adelante estudiando las funciones en sн.


[*] Funciones del Streamer
Como ya dije, este tutorial va enfocado hacia el Streamer de Incognito, las funciones para crear бreas son estas:
pawn Код:
native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicCylinder(Float:x, Float:y, Float:minz, Float:maxz, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicCuboid(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1);

[*] Callbacks del Streamer
El Streamer de Incognito solo tiene dos callbacks que nos permite interactuar con las бreas creadas anteriormente, estas callbacks son las siguientes:
Код:
forward OnPlayerEnterDynamicArea(playerid, areaid);
forward OnPlayerLeaveDynamicArea(playerid, areaid);
Los que sepan algo de inglйs ya se habrбn dado cuenta para que sirve cada una, los que no, vean esta sencilla explicaciуn:
[*] Notas Importantes
[*] Otro
Esto es todo por ahora, si encuentran faltas de ortografнa o algъn fallo en la explicaciуn, dejad un comentario aquн por favor.


Respuesta: Бreas - Whyd - 29.12.2014

Perfecto, pero:

Quote:
Originally Posted by [DOG]irinel1996
Посмотреть сообщение
Colocando el eje de coordenadas en el lado izquierdo del rectбngulo que ven en la foto, la X roja tendrнa los valores minx, maxy. Mientras que la X azul tendrнa los valores maxx, miny.
їNo serнa la x roja es minx y maxy, y tambiйn la azul maxx y maxy o estoy equivocado?


Respuesta: Бreas - [DOG]irinel1996 - 29.12.2014

No, si colocas el eje de coordenadas a la izquierda serнa tal como yo dije.

Si lo colocas a la derecha del rectбngulo, la azul serнa la equivalente a: (maxx, miny) y la roja serнa (minx, maxy).



Hay que tener en cuenta el origen del eje de coordenadas, depende de como lo pongas, puede variar o no. Pero en este caso, se mantienen los valores.

EDIT: lo que tu dices no estб del todo mal, pero serнa asн:


Respuesta: Бreas - Nicolas_Castillo - 29.12.2014

Quisiera compartir tambiйn una imagen que acabo de hacer. (Otra forma de sacar las coordenadas)



Donde la M es el punto de coordenada MaxX y MaxY y la m es el punto de coordenada minX y minY. Notece que la N es de norte y la S es de Sur


Respuesta: Бreas - [DOG]irinel1996 - 29.12.2014

Esa imagen tambiйn es correcta, lo que cambia respecto a la que yo puse, son las esquinas.

Un saludo.


Respuesta: Бreas - Goncho28 - 29.12.2014

Buen tutorial, me diste una idea +rep


Respuesta: Бreas - [DOG]irinel1996 - 29.12.2014

No hay problema men, ya nos contarбs la idea (me gusta escuchar ideas ъnicas), jajaja...

Un saludo.

_________________________________________
Voy a poner esta explicaciуn aquн.



Tenemos el eje de coordenadas pasando por el centro del mapa, y un rectбngulo.

їCuales son las minX, minY, maxX, maxY? La respuesta es: depende de que esquinas miramos.

Si miramos A y C:
A: minX - maxY
C: maxX - minY


Si miramos D y B:
D: minX - minY
B: maxX - maxY


Respuesta: Бreas - Swedky - 29.12.2014

Lindo bastante ъtiles las funciones de Streamer (vivo usбndolas jajaja).

Deberнas hacer un tutorial explicando otras funciones que casi nadie conoce de Streamer, quizбs alguna sea ъtil.


Respuesta: Бreas - [DOG]irinel1996 - 29.12.2014

Echarй un vistazo a ver que cosa necesita una explicaciуn detallada para hacer otro tutorial despuйs de terminar este.

Gracias EnzoMetlc, un saludo men.


Re: Бreas - xeon_inside - 29.12.2014

Lindo tutorial irinel , con funciones como estas uno puede divertirse creando cosas .