:::APRENDE A SCRIPTEAR PAWN:::
INTRODUCCIÓN A PAWN
Comenzando con esta primera sección de nuestro 'curso' por darle un nombre, quiero decirles algo que muchos nuevos en este lenguaje confunden. ¿Pawn? ¿Pawno? Es lo mismo, según muchas personas. Pero por más que a simple vista tenga una sola diferencia ( la o ) realmente es completamente distinto. Cuando nos referimos a pawn nos estamos refiriendo a un lenguaje de programación. Cuando hablamos de pawno estamos refiriéndonos a un compilador de este lenguaje llamado pawn.
Comenzaremos con pawn.
PAWN es un lenguaje de programación simple. Tiene una sintaxis similar a la del lenguaje de programación C ( o PHP también ). Es un lenguaje que consiste en un conjunto de funciones y un conjunto de variables. Las variables son conjuntos de datos ( hay diferentes tipos de variables que a lo largo de este 'curso' iremos viendo). Las funciones son quienes contienen las 'instrucciones' que realizan la tarea que nosotros programemos. Este lenguaje es utilizado en distintos tipo de juegos como Half-Life o Quake. Pero en este caso nosotros lo utilizaremos para San Andreas Multi Player. Pawn a crecido mucho ya que la meta de el 90% de un jugador de San Andreas Multi Players es aprender este lenguaje.
Una vez explicado esto, continuamos. Como mencioné antes, pawno y pawn son dos cosas distintas, por lo que ahora explicaré lo que es pawno.
Cuando nos referimos a PAWNO no estamos refiriendo a un programa ( .exe ) que nos sirve para hacer 'funcionar' nuestro script. Es decir, podemos realizar un gran script pero sin un compilador, nos serviría de muy poco, ya que no lo podríamos hacer funcionar. Pawno ya posee sus propias funciones ( que son leídas desde los includes ) pero a lo largo de este 'curso' aprenderán a crear sus propias funciones. ( pawno no es el único compilador, ya nos extenderemos en esto )
En este lenguaje hay dos extensiones para nuestros archivos .pwn y .amx, la diferencia entre ambas es que una a pasado por nuestro compilador. Es decir, cuando nosotros escribimos un código y guardamos el archivo nos guardará un archivo con extensión .pwn, una vez que lo hallamos compilado con un compilador para este lenguaje, nos creará un nuevo archivo con extensión .amx. Este archivo nos lo creará en caso de que nuestro código no tenga ningún tipo de error ni fallo ( ya pasaremos por el tema de bugs y tal luego, que son fallos que nuestro compilador es imposible que detecte ). Si nuestro código está compilado si lo modificamos y nos da algún tipo de error este archivo .amx se eliminará automáticamente y quedará nuestro source ( código fuente, .pwn ).
Resumiendo:
pawn: lenguaje de programación.
pawno: compilador de nuestro lenguaje.
.pwn: Es nuestro código sin compilar, para editarlo utilizaremos el pawno.
.amx: Es nuestro código compilado, para editarlo debemos compilar el .pwn y para utilizarlo debemos hacerlo con un servidor.
Un video creado por mí para aprender lo básico sobre el lenguaje Pawn
::: FUNCIONES :::
Vehículos
AddStaticVehicle - Agregar un vehículo estático
AddStaticVehicleEx - Agregar un vehículo estático con un tiempo de spawn perzonalizado
AddVehicleComponent - Agregar un componente a un vehículo
AttachTrailerToVehicle - Sujetar un remolque a un vehículo
ChangeVehicleColor - Cambiar el color en un vehículo
ChangeVehiclePaintjob - Cambiar el trabajo de pintura en un vehículo
CreateVehicle - Crear un vehículo
DestroyVehicle - Destruir un vehículo
DetachTrailerFromVehicle - Separar el remolque de un vehículo
GetPlayerSurfingVehicleID - Obtener el ID de un vehículo cuando un jugador es el surfeador
GetPlayerVehicleID - Obtener el ID del vehículo cuando un jugador se encuentre en el
GetVehicleComponentInSlot - Obtener el determinado componente de un vehículo en cierto slot
GetVehicleComponentType - Encuentre el tipo de componente de un vehículo
GetVehicleDamageStatus - Obtener el estado de daño de un vehículo(daño visual)
GetVehicleHealth - Obtener el estado de salud de un vehículo
GetVehicleModel - Obtener el modelo de un vehículo
GetVehiclePos - Obtener la posición de un vehículo
GetVehicleTrailer - Obtener el ID de remolque del vehículo
GetVehicleVelocity - Obtener la velocidad de un vehículo
GetVehicleVirtualWorld - Obtener el mundo virtual en el que se encuentre un vehículo
GetVehicleZAngle - Obtener la rotación de un vehículo
IsPlayerInAnyVehicle - Verificar si un jugador está en algún vehículo
IsPlayerInVehicle - Verificar si un jugador se encuentra en determinado vehículo
IsTrailerAttachedToVehicle - Verificar si un vehículo tiene un remolque unido
IsVehicleStreamedIn - Verificar si un vehículo está en determinado rango para un jugador
LinkVehicleToInterior - Mandar un vehículo adentro de un interior
PlayerSpectateVehicle - Hacer que un jugador vigile un vehículo
PutPlayerInVehicle - Poner a un jugador en un vehículo
RemovePlayerFromVehicle - Remover a un jugador de su vehículo
RemoveVehicleComponent - Remover el componente de un vehículo
RepairVehicle - Reparar un vehículo (daño visual y motor)
SetVehicleHealth - Establecer la salud de un vehículo (motor)
SetVehicleParamsForPlayer - Establecer los parametros de un vehículo para un jugador(bloqueado, objetivo)
SetVehiclePos - Establecer la posición de un vehículo
SetVehicleToRespawn - Reaparecer un vehículo
SetVehicleVelocity - Establecer la velocidad de un vehículo
SetVehicleVirtualWorld - Establecer un mundo virtual para un vehículo
SetVehicleZAngle - Establecer la rotación de un vehículo
UpdateVehicleDamageStatus - Actualizar el estado de daño de un vehículo (daño visual)
Objetos Globales
AttachObjectToPlayer - Sujetar un objeto a un jugador
CreateObject - Crear un objeto
DestroyObject - Destruir un objeto
GetObjectPos - Obtener la posición de un objeto
GetObjectRot - Obtener la rotación de un objeto
IsValidObject - Verificar si es un objeto existente
MoveObject - Mover un objeto
SetObjectPos - Establecer la posición de un objeto
SetObjectRot - Establecer la rotación de un objeto
StopObject - Detener un objeto (en movimiento)
Objetos del Jugador
CreatePlayerObject - Crear un objeto para un jugador
DestroyPlayerObject - Destruir el objeto de un jugador
GetPlayerObjectPos - Obtener la posición del objeto de un jugador
GetPlayerObjectRot - Obtener la rotación del objeto de un jugador
IsValidPlayerObject - Verificar si es un objeto existente
MovePlayerObject - Mover el objeto de un jugador
SetPlayerObjectPos - Establecer la posición del objeto de un jugador
SetPlayerObjectRot - Establecer la rotación del objeto de un jugador
StopPlayerObject - Detener el objeto de un jugador (en movimiento)
Textdraws
TextDrawAlignment - Establecer el alineamiento de un textdraw
TextDrawBackgroundColor - Establecer el color de fondo de un textdraw
TextDrawBoxColor - Establecer el color de la caja del textdaw
TextDrawColor - Establecer el color del textdraw
TextDrawCreate - Crear un textdraw
TextDrawDestroy - Destruir un textdraw
TextDrawFont - Establecer la fuente del textdraw
TextDrawHideForAll - Ocultar un textdraw para todos los jugadores
TextDrawHideForPlayer - Ocultar un textdraw para un jugador específico
TextDrawLetterSize - Establecer el tamaño del texto del textdraw
TextDrawSetOutline - Establecer el espesor del contorno de un textdraw
TextDrawSetProportional - Establecer la proporción del textdraw
TextDrawSetShadow - Activa la sombra atrás del textdraw
TextDrawSetString - Establecer el texto en el textdraw
TextDrawShowForAll - Mostrar el textdraw a todos los jugadores
TextDrawShowForPlayer - Mostrar el textdraw para un jugador específico
TextDrawTextSize - Establecer el tamaño del textdraw
TextDrawUseBox - Activar si el textdraw debe tener caja o no
Gangzones (Zona de pandillas)
GangZoneCreate - Crear un gangzone
GangZoneDestroy - Destruir un gangzone
GangZoneFlashForAll - Hacer que un gangzone parpadee para todos los jugadores
GangZoneFlashForPlayer - Hacer que un gangzone parpadee para cierto jugador
GangZoneHideForAll - Ocultar un gangzone para todos los jugadores
GangZoneHideForPlayer - Ocultar un gangzone para cierto jugador
GangZoneShowForAll - Mostrar un gangzone para todos los jugadores
GangZoneShowForPlayer - Mostrar un gangzone para un solo jugador
GangZoneStopFlashForAll - Detener el parpadeo de un gangzone para todos los jugadores
GangZoneStopFlashForPlayer - Detener el parapadeo de un gangzone para un solo jugador
3D Text Labels (Letreros 3D)
Attach3DTextLabelToPlayer - Adjuntar un 3D text label a un jugador
Attach3DTextLabelToVehicle - Adjuntar un 3D text label a un vehículo
Create3DTextLabel - Crear un 3D text label
CreatePlayer3DTextLabel - Crear un 3D text label para un jugador
Delete3DTextLabel - Destruir un 3D text label
DeletePlayer3DTextLabel - Eliminar un 3D text label para un jugador
Update3DTextLabelText - Actualizar el texto y el color de un 3D text label
UpdatePlayer3DTextLabelText - Actualizar el texto y el color de un 3D text label para un jugador
Checkpoints Normales
DisablePlayerCheckpoint - Deshabilitar un checkpoint para un solo jugador
IsPlayerInCheckpoint - Verificar si un jugador se encuentra en un checkpoint
SetPlayerCheckpoint - Establecer checkpoint para un jugador
Checkpoints de Carreras
DisablePlayerRaceCheckpoint - Deshabilitar un checkpoint de carreras
IsPlayerInRaceCheckpoint - Verificar si un jugador se encuentra en un checkpoint de carreras
SetPlayerRaceCheckpoint - Establecer checkpoint de carreras para un jugador
Variables del Jugador
DeletePVar - Eliminar una variable del jugador
GetPVarFloat - Obtener la variable de un jugador si es un flotante(float)
GetPVarInt - Obtener la varible de un jugador si es un entero(integer)
GetPVarString - Obtener la varible de un jugador si es una cadena de caracteres(string)
SetPVarFloat - Establecer la varible de un jugador a un flotante
SetPVarInt - Establecer la varible de un jugador a un entero
SetPVarString - Establecer la variable de un jugador a una cadena de caracteres
Espectador
PlayerSpectatePlayer - Hacer que un jugador sea espectador de otro jugador
PlayerSpectateVehicle - Hacer que un jugador sea espectador de un vehículo
TogglePlayerSpectating - Activar a un jugador si es espectador o no
Administración
Ban - Prohibir(ban) a un jugador que se conecte al servidor
BanEx - Prohibir a un jugador que se conecte al servidor con una razon perzonalizada
IsPlayerAdmin - Verificar si un jugador a iniciado sesión con RCON o no
Kick - Expulsar a un jugador del servidor
SendRconCommand - Enviar un comando RCON vía script

SIGUEME Y ENTERATE DE LAS NUEVAS ACTUALIZACIONES Y POST MÍOS ADEMÁS DE NUEVOS TUTORIALES CON MAYOR DIFICULTAD COMO ESTË

