[Beta] Mi Primer Plugin
#1
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

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(idget_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(idprint_chat"Has recibido %d de vida extra"CantidadVida)
    }
    else 
// Si no [está vivo]...
    
{
        
// Le avisamos que no le podemos dar vida extra
        
client_print(idprint_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


Ni te molestes en enviarme un mensaje privado para pedirme ayuda porque NO lo voy a contestar.
Gracias por su atención.
Responder


Mensajes en este tema
[Beta] Mi Primer Plugin - por alan_el_more - 10/11/2013, 08:03 AM
RE: [Beta] Mi Primer Plugin - por [Anti] - 10/11/2013, 01:02 PM
RE: [Beta] Mi Primer Plugin - por Argenisv - 25/04/2015, 03:53 PM
RE: [Beta] Mi Primer Plugin - por joluis81 - 25/04/2015, 04:06 PM
RE: [Beta] Mi Primer Plugin - por Evil Spiret - 25/04/2015, 04:24 PM
RE: [Beta] Mi Primer Plugin - por hud - 25/04/2015, 04:50 PM
RE: [Beta] Mi Primer Plugin - por Evil Spiret - 25/04/2015, 05:06 PM
RE: [Beta] Mi Primer Plugin - por wiD - 25/04/2015, 04:28 PM
RE: [Beta] Mi Primer Plugin - por Evil Spiret - 25/04/2015, 04:40 PM
RE: [Beta] Mi Primer Plugin - por Mouri - 24/01/2018, 04:28 PM
RE: [Beta] Mi Primer Plugin - por Manu - 24/01/2018, 04:43 PM
RE: [Beta] Mi Primer Plugin - por zoolk - 24/01/2018, 04:46 PM
RE: [Beta] Mi Primer Plugin - por Mouri - 25/01/2018, 01:16 PM
RE: [Beta] Mi Primer Plugin - por jos1 - 02/04/2019, 11:20 AM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)