10/11/2013, 08:03 AM
(Última modificación: 10/11/2013, 08:06 AM por alan_el_more.)
IMPORTANTE! Antes que nada quiero decirles que los que quieran aprender, no lo lean ya que no está terminado porque puede ser que tenga errores en las explicaciones o agregarle algo que me faltó.
Si hay alguna correción para hacerme o sugerirme que agregue algo, comentalo así nos ayudamos entre todos
Si hay alguna correción para hacerme o sugerirme que agregue algo, comentalo así nos ayudamos entre todos
Código PHP:
// 'Mi Primer Plugin' hecho por 'alan_el_more' para 'amxmodx-es.com'
// Perfil: http://amxmodx-es.com/User-alan-el-more
// Twitter: https://twitter.com/alan_floresta94
// En las siguiente líneas agregaremos los 'includes'
// Estos incluyen distintos tipos de funciones que podremos agregar
// Estos 'includes' se alojan en la carpeta 'cstrike/addons/amxmodx/scripting/include'
// Estos usan la extension 'inc' (Ejemplo: 'amxmodx.inc')
#include <amxmodx>
#include <fun>
// Creamos una 'constante' en el cual le establecemos la cantidad de vida extra que recibirá
// el jugador al escribir en el say '/vida'
// Como bien lo dice el nombre, su valor es constante y no puede ser modificado bajo ningún
// aspecto, para eso existen las 'variables'
const CantidadVida = 100
// Existen dos grupos de funciones: forwards y natives
// Los 'forwards' son llamados por ciertos eventos (Por medio de otro plugin o un módulo)
// Las 'natives' son ejecutadas dentro de los 'forwards'
// plugin_init() es un 'forward' ya que es llamado básicamente al inicio de un mapa
public plugin_init()
{
// register_plugin() es una 'native' ya que puede ser ejecutado dentro de un forward
// Con esto, registramos los datos del plugin y para eso son los 'parámetros'
// Como verán, usamos tres 'parámetros':
// Primer parámetro: "Mi Primer Plugin" // Nombre del plugin
// Segundo parámetro: "1.0" // Versión del plugin
// Tercer parámetro: "alan_el_more" // Autor del plugin
// Los parámetros son separados por una coma mientras que no esten dentro de las comillas
register_plugin("Mi Primer Plugin", "1.0", "alan_el_more")
// Registramos el comando que ejecuta un jugador, en este caso, cuando escribe en
// el say /vida, llama a la función 'ComandoVida'
register_clcmd("say /vida", "ComandoVida")
}
// Agregamos el 'forward' que es llamado cuando el jugador escribe en el say /vida,
// para ejecutar nuestras 'natives' y otras cosas, en este caso, agregarle vida extra
// El id es el 'índice del jugador' el cual es un número y que identifica a cada jugador
public ComandoVida(id)
{
// if() es una declaración que significa 'si...'
// En este caso vamos a comprobar que el jugador este vivo
// is_user_alive() devuelve 1 o 0 dependiendo si está vivo o muerto respectivamente
// Entonces esto se leería como: 'Si el jugador está vivo...'
if(is_user_alive(id))
{
// Si está vivo...
// Le establecemos la vida del jugador ya que 'set_user_health' hace eso
// Pero si hacemos algo así: 'set_user_health(id, 100)' le estaríamos dando
// 100 de vida sin importar la vida que tenemos y eso no es lo que queremos
// Para eso usamos otra native 'get_user_health()' que devuelve la cantidad
// de vida que tenemos
// Entonces le establecemos 'la vida actual del jugador' + CantidadVida
// Ejemplo: 58 + 100 = 158
set_user_health(id, get_user_health(id) + CantidadVida)
// Le mostramos un mensaje donde le avisamos al jugador que ha recibido correctamente
// la vida extra.
// client_print() debe usar tres (requeridos obligatoriamente) o más parámetros
// Primer parámetro: Indice del jugador al que le mostramos el mensaje
// Segundo parámetro: Tipo de mensaje (En este caso, en el chat)
// Tercer parámetro: Mensaje a mostrar
// Como verán, hay un símbolo ('%d') que reemplaza la cantidad de vida que recibimos
// Para eso creamos la constante 'CantidadVida', para facilitar la edición de la cantidad
// Lo que hace '%d' es mostrar el siguiente parámetro (CantidadVida)
// Entonces nos aparecerá un mensaje como 'Has recibido 100 de vida extra'
client_print(id, print_chat, "Has recibido %d de vida extra", CantidadVida)
}
else // Si no [está vivo]...
{
// Le avisamos que no le podemos dar vida extra
client_print(id, print_chat, "Lo siento pero debes estar vivo para recibir vida extra")
}
// Opcional:
// Esto nos sirve para que no muestre que el jugador ha escrito /vida en el say
// Esto se explicará en otros tutoriales
return PLUGIN_HANDLED
}
Mis plugins públicos
Batalla de cuchillos 2.1 [18/10/13] [Aprobado]
Crear botones 1.1b [09/09/14] [Aprobado]
Vencimiento de admins 1.0d [09/09/14] [Aprobado]
Batalla de cuchillos 2.1 [18/10/13] [Aprobado]
Crear botones 1.1b [09/09/14] [Aprobado]
Vencimiento de admins 1.0d [09/09/14] [Aprobado]
Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Gracias por su atención.