[TUT] Primer Plugin Básico
#1
Para comprender este post debes primero haber leído Programación para principiantes un par de veces y haber aprendido lo básico

Suponiendo que eres nuevo y ya leíste el post mencionado
Capaz te preguntes, y ahora como creo un plugin?

En este post te mostraré la estructura de un plugin y el uso básico de las native y forward que trae el Amxx mediante la creación de tu propio plugin loading sound

Considero que ya sabes que es una función y cual es su utilidad
Así a lo frio:
Una native es una función externa de la cual podemos hacer uso
Una forward es una función que espera ser llamada en algún momento


Comencemos:

Código PHP:
// Contiene las native y fordward fundamentales para la creacion de un plugin
#include <amxmodx>

// Vamos a declarar un string constante (su valor no puede cambiar) y le vamos a asignar la ruta de nuestro sonido 
new const szSound[] = "sound/mi_carpeta/mi_sonido.mp3"

// Fordward que se llama instantes despues de la activacion del servidor
public plugin_init()
{
    
// Con esta native vamos a registrar nuestro plugin
    
register_plugin("Simple Loading Sound""1.0""[N]drs")
}

// Fordward que tambien se llama instantes despues de la activacion del servidor, solo que aquí debemos cargar los recursos que vayamos a usar en nuestro plugin (sonidos/modelos/etc)
public plugin_precache()
{
    
// Usaremos la native precache_generic para cargar nuestro sonido siempre y cuando sea un MP3
    // Aqui te estoy enseñando a crear un plugin basico cualquiera, si quieres saber mas sobre como cargar sonidos, te toca buscar
    // Esta native necesita como parametro la ruta de nuestro archivo
    // precache_generic("sound/mi_carpeta/mi_sonido.mp3")
    // Anteriormente ya la habiamos declarado en una variable, así que la usaremos
    
precache_generic(szSound)
}

// Fordward que se llama cuando un jugador se conecta al servidor
// La fordward nos da ya el index(índice) del jugador
public client_connect(id)
{
    
// Estando dentro de una partida, si en tu consola ejecutas el comando "mp3 play sound/mi_carpeta/mi_sonido.mp3", te daras cuenta que empieza a sonar el sonido
    // Como hariamos si quisieramos que ese sonido suene cuando nos estemos conectando?

    // Con la native client_cmd podemos ejecutar comandos desde la consola del jugador
    // Esta native necesita el index del jugador y el comando a ejecutar
    // client_cmd(id, "sound/mi_carpeta/mi_sonido.mp3")
    // Usando nuestra variable ya declarada quedaria así:

    
client_cmd(id"mp3 play %s"szSound)


Quitando los comentarios nuestro plugin quedaría así:
Código PHP:
#include <amxmodx>

new const szSound[] = "sound/mi_carpeta/mi_sonido.mp3"

public plugin_init()
{
    
register_plugin("Simple Loading Sound""1.0""[N]drs")
}

public 
plugin_precache()
{
    
precache_generic(szSound)
}

public 
client_connect(id)
{
    
client_cmd(id"mp3 play %s"szSound)


Si quieres saber que otras native o forward existen y que parámetros necesitan o nos dan, tienes que leer el archivo amxmodx.inc
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)