[TUT] Sistema de Dinero con Guardado Simple
#1
Pequeño tutorial de Sistema de Dinero con Guardado Simple
Código PHP:
#include <amxmodx>

// Incluimos el vault a usar
#include <ndrs_vault>

#define PLUGIN  "Sistema de Dinero con Guardado Simple"
#define VERSION "1.0"
#define AUTHOR  "[N]drs"

// definimos el nombre de la tabla
#define TABLE "test"

// definimos el nombre del campo a usar
#define FIELD_MONEY "monedas"

// Creamos la variable en donde almacenaremos el dinero
new g_iMoney[33]

public 
plugin_init()
{
    
// Registramos nuestro plugin
    
register_plugin(PLUGINVERSIONAUTHOR)

    
// Registramos el evento para detectar las muertes
    
register_event("DeathMsg""eventDeathMsg""a")

    
// Registraremos un comando para que el jugaddor vea su dinero
    
register_clcmd("say /money""clcmdShowMoney")
    
    
// Iniciamos el vault y establecemos que haremos 
    // un guardado usando el nombre de los jugadores
    
ndrs_start(TABLENDRS_NAME)

    
// Registramos el campo en donde
    // se guardará nuestra variable
    
ndrs_register_fields(FIELD_MONEY)
}

// Cuando el jugador entre
public client_putinserver(id)
{
    
// Ejecutamos la funcion de carga
    
load(id)
}

// Cuando haya una muerte en el servidor
public eventDeathMsg()
{
    
// Almacenamos el id del que hizo la muerte
    
new iAttacker read_data(1)

    
// Si el id obtenido no está conectado
    // Regresamos y no hacemos nada
    
if(!is_user_connected(iAttacker))
        return

    
// Por cada kill sumaremos 3 monedas al jugador
    
g_iMoney[iAttacker] += 3
}

// Cuando el jugador use el comando /money
public clcmdShowMoney(id)
{
    
// Mostraremos al jugador su dinero actual en el chat
    
client_print(idprint_chat"[AMXX] Tienes %d monedas"g_iMoney[id])

    
// Evitamos que el comando usado se muestre en el chat
    
return PLUGIN_HANDLED
}

// Cuando el jugador salga
public client_disconnected(idbool:dropmessage[], maxlen)
{
    
// Ejecutamos la funcion de guardado
    
save(id)
}

load(id)
{
    
// Cargaremos los datos del jugador de la siguiente forma:
    
g_iMoney[id] = ndrs_get(idFIELD_MONEY)
}

save(id)
{
    
// Guardaremos los datos del jugador de la siguiente forma:
    // NDRS_INT significa que el dato que vamos a guardar es de tipo entero
    
ndrs_set(idFIELD_MONEYNDRS_INTg_iMoney[id])


Plugin sin comentarios:
Código PHP:
#include <amxmodx>
#include <ndrs_vault>

#define PLUGIN  "Sistema de Dinero con Guardado Simple"
#define VERSION "1.0"
#define AUTHOR  "[N]drs"

#define TABLE "test"
#define FIELD_MONEY "monedas"

new g_iMoney[33]

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)

    
register_event("DeathMsg""eventDeathMsg""a")

    
register_clcmd("say /money""clcmdShowMoney")

    
ndrs_start(TABLENDRS_NAME)
    
ndrs_register_fields(FIELD_MONEY)
}

public 
client_putinserver(id)
    
load(id)

public 
eventDeathMsg()
{
    new 
iAttacker read_data(1)

    if(!
is_user_connected(iAttacker))
        return

    
g_iMoney[iAttacker] += 3
}

public 
clcmdShowMoney(id)
{
    
client_print(idprint_chat"[AMXX] Tienes %d monedas"g_iMoney[id])
    return 
PLUGIN_HANDLED
}

public 
client_disconnected(idbool:dropmessage[], maxlen)
    
save(id)

load(id)
    
g_iMoney[id] = ndrs_get(idFIELD_MONEY)

save(id)
    
ndrs_set(idFIELD_MONEYNDRS_INTg_iMoney[id]) 

Ndrs Vault: https://amxmodx-es.com/showthread.php?ti...pid=225617
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)