[TUT] Guardar/Cargar datos de un player (ejemplo zp)
#1
Para este tutorial vamos a usar la API del Advanced Vault System
Advanced Vault System

Código PHP:
#include <amxmodx>
#include <adv_vault>

/* Variables que usaremos para guardar/cargar en este ejemplo -------------------------------*/
new g_ammopacks[33]
new 
g_level[33]
new 
g_reset[33]
new 
g_points[33][2]         // Los puntos para gastar humanos y zombies
new g_kills[33][5]        // Los kills acumulados ejemplo:(zombie, humano, survivor, neme, sniper, assasin)
new g_habilidad[33][2][6]  // [2] (humanos y zombies) [6] (las habilidades)
// Supongamos que tenemos un sistema de cuentas (?
new g_password[33][20]        // la password de la cuenta
new g_pj[33][32]        // El PJ,Cuenta,Nick,Steamid,IP,HID o lo que quieras usar
/*----------------------------------------------------------------------------------------------------------*/


/*Creamos algunas constantes para facilitar la lectura del codigo*/ 
enum {
    
CAMPO_AMMOPACKS=0,
    
CAMPO_LEVEL,
    
CAMPO_RESET,
    
CAMPO_POINTS,
    
CAMPO_HAB_H,
    
CAMPO_HAB_Z,
    
CAMPO_KILLS,
    
CAMPO_PASSWORD,
    
MAX_FIELDS
}

/*En esta variable se guardaran los identificadores de los campos*/
new g_campos[MAX_FIELDS]

/*En esta variable se guardara el identificador del vault abierto*/ 
/*Nota: ID = Index = Identificador*/
new g_vault

public plugin_init()
{
    
/*Abrimos el vault ------------------------*/
    
g_vault adv_vault_open("datos_zp"false)
    
/*
       NOTA:
         -Si tienen muuuchoossss datos y acceden a ellos muchas veces pongan el ultimo parametro en true
          mejora el rendimiento
          g_vault = adv_vault_open("datos_zp", true)
     */
    
    /*Definimos los campos que usaremos ---------------------------------------------------------*/
    /*
       NOTA:
        -Cada vez que se actualice un key los campos que no estén actualmente definidos serán removidos.
        -Se pueden definir mas campos para guardar sin problemas.
        -Se puede agrandar y achicar el tamaño de los arrays y string en cualquier momento
    */

    
g_campos[CAMPO_AMMOPACKS]     = adv_vault_register_field(g_vault"ap")
    
g_campos[CAMPO_LEVEL]              = adv_vault_register_field(g_vault"level")
    
g_campos[CAMPO_RESET]             = adv_vault_register_field(g_vault"reset")
    
g_campos[CAMPO_POINTS]           = adv_vault_register_field(g_vault"points"DATATYPE_ARRAY2)
    
g_campos[CAMPO_KILLS]              = adv_vault_register_field(g_vault"kills"DATATYPE_ARRAY5)
    
g_campos[CAMPO_HAB_H]              = adv_vault_register_field(g_vault"hab_h"DATATYPE_ARRAY6)
    
g_campos[CAMPO_HAB_Z]              = adv_vault_register_field(g_vault"hab_z"DATATYPE_ARRAY6)
    
g_campos[CAMPO_PASSWORD]      = adv_vault_register_field(g_vault"pw"DATATYPE_STRING20)
    
/*--------------------------------------------------------------------------------------------*/
    
    /*Iniciamos el vault (Obligatorio luego de terminar de registrar los campos)*/
    
adv_vault_init(g_vault)
}

/*
Esta funcion la tienen que llamar cuando quieran guardar los datos.
Ejemplo:
  - Cuando se desconecta
  - Si ustedes tienen algún sistema de cuentas lo tienen que poner al crear una cuenta.
  - Y en cualquier otro lugar donde quieran asegurarse que los datos se guardaron.
*/
funcion_guardar(id)
{
    
/*Preparamos el vault para el guardado*/
    
adv_vault_set_start(g_vault)
    
    
/*Configuramos los campos ---------------------------------------------------------------------------------*/
    /*
       NOTA: Supongamos que hay tres campos guardados y solo configuramos uno,los otros dos campos quedan igual.
    */
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOPACKS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_LEVEL], g_level[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RESET], g_reset[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_POINTS], g_points[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_KILLS], g_kills[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_HAB_H], g_habilidad[id][0])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_HAB_Z], g_habilidad[id][1])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_PASSWORD], g_password[id])
    
/*--------------------------------------------------------------------------------------------------------*/
    
    /*Guardamos los campos ----------------*/
    
adv_vault_set_end(g_vault0g_pj[id])
}



/*
Esta funcion la tienen que llamar cuando quieran cargar los datos.
Ejemplo:
  - Cuando entra al juego (client_putinserver)
*/
funcion_cargar(id)
{
    
/*Preparamos el vault para la obtención de los campos*/
    
if(!adv_vault_get_prepare(g_vault_g_pj[id]))
    {
        
/*No hay datos*/
        
return
    }

    
/*Obtenemos los datos de los campos ------------------------------------------------------------*/
    
g_ammopacks[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
    
g_level[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_LEVEL])
    
g_reset[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_RESET])
    
    
adv_vault_get_field(g_vaultg_campos[CAMPO_POINTS], g_points[id], sizeof g_points[])
    
adv_vault_get_field(g_vaultg_campos[CAMPO_KILLS], g_kills[id], sizeof g_kills[])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_HAB_H], g_habilidad[id][0], sizeof g_habilidad[][])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_HAB_Z], g_habilidad[id][1], sizeof g_habilidad[][])
    
    
adv_vault_get_field(g_vaultg_campos[CAMPO_PASSWORD], g_password[id], charsmax(g_password[]))
    
/*---------------------------------------------------------------------------------------------*/
}

/*
    Que tal?
    Le resulto mas fácil que usar parse,formatex y toda esa mierda que usan con vault/nvault/fvault/nfvault ?
*/ 

Otros tutoriales:
[TUT] Crear rank/top15 con Adv-Vault
[TUT] Búsquedas de datos en Adv-Vault
Responder
#2
tu vault vendria a ser como un mysql?

edito: es decir con columnas y todo eso?
Ingeniero agrónomo y desarrollador de Software.

tutoriales-allied
buscas un zp?

"La imitación es la forma más sincera de admiración con la que puede pagar la mediocridad a la grandeza"

Merci Alliedmodders pour m'introduire dans la programmation.
Responder
#3
(27/06/2014, 10:14 PM)roccoxx escribió: tu vault vendria a ser como un mysql?

edito: es decir con columnas y todo eso?
los campos serian algo similar a las columnas de mysql
Responder
#4
Hice copy & paste del code y no me funciono xD.

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#5
Pusiste el plugin de la API ?
Responder
#6
Guiño 
(28/06/2014, 02:02 PM)Destro escribió: Pusiste el plugin de la API ?

No D:.

Eso falta, pero que te pensas que la gente sabe todo T_t

Después me fijo .

Saludos,
cLAANS.-
Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#7
Este no lo habia visto nunca , gracias por aportar.

saludos
NUEVO ZOMBIE PLAGUE + LVLS!! UNETE A LA COMUNIDAD
[Imagen: b_350_20_ffad41_e98100_000000_591f11.png]


Responder
#8
no entendi bien esta parte que hay que ponerlo en plugin_init
Código PHP:
g_campos[CAMPO_AMMOPACKS]     = adv_vault_register_field(g_vault"ap")
    
g_campos[CAMPO_LEVEL]         = adv_vault_register_field(g_vault"level")
    
g_campos[CAMPO_RESET]         = adv_vault_register_field(g_vault"reset")
    
g_campos[CAMPO_POINTS]         = adv_vault_register_field(g_vault"points"DATATYPE_ARRAY2)
    
g_campos[CAMPO_KILLS]         = adv_vault_register_field(g_vault"kills"DATATYPE_ARRAY5)
    
g_campos[CAMPO_PASSWORD]     = adv_vault_register_field(g_vault"pw"DATATYPE_STRING20)
    
/*--------------------------------------------------------------------------------------------*/
    
    /*Iniciamos el vault*/
    
adv_vault_init(g_vault

nolo entendi y no me guarda los datos
Código PHP:
funcion_guardar(id)
{
    
/*Preparamos el vault para el guardado*/
    
adv_vault_set_start(g_vault)
    
    
/*Configuramos los campos ---------------------------------------------------------------------------------*/
    /*
       NOTA: Supongamos que hay tres campos guardados y solo configuramos uno,los otros dos campos quedan igual.
    */
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOPACKS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_LEVEL], g_level[id])
    
adv_vault_set_field(g_vaultg_campos[CAMPO_RESET], g_reset[id])
    
/*--------------------------------------------------------------------------------------------------------*/
    
    /*Guardamos los campos ----------------*/
    
adv_vault_set_end(g_vault0g_pj[id])
}

funcion_cargar(id)
{
    
/*Preparamos el vault para la obtención de los campos*/
    
if(!adv_vault_get_prepare(g_vault_g_pj[id]))
    {
        
/*No hay datos*/
        
return
    }
    
g_ammopacks[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
    
g_level[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_LEVEL])
    
g_reset[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_RESET])

y ya puse lo de guardar en client_disconnect y cargar en putinserver.
Responder
#9
Dejo este simple sistema de cuentas por nombre con tu API y guiándome con este tutorial Yao ming

PD: Excelente aporte Destro Gran sonrisa


Archivos adjuntos
.sma   Descargar AMXX / account_system.sma (Tamaño: 5.85 KB / Descargas: 417)
BB 6.5 + Clases de humano * Zombie Plague 4.3 Fix5a + Clases de humano * Sistema de cuentas (Advanced Vault)

Steam

(28/07/2014, 01:23 PM)Neeeeeeeeeel.- escribió:
(28/07/2014, 01:20 PM)Marito escribió: la fuerza de tu envidia es la velocidad de mi progreso y la garantía de mi prosperidad...
Osea que si nadie te envidia la velocidad de tu progreso es 0 y sin garantía Crab

01101101 escribió:me hago la paja pensando en l//
Responder
#10
(05/07/2014, 11:55 PM)LNATIC escribió: Dejo este simple sistema de cuentas por nombre con tu API y guiándome con este tutorial Yao ming

PD: Excelente aporte Destro Gran sonrisa

lo descarge lo use como plugin y luego lo adapte ami zp y no me guardo nada ni el password y en plugin si guarda -.- que pasa con mi zp es vercion 1.6.1
advance
Responder
#11
(07/07/2014, 10:08 AM)ivan escribió:
(05/07/2014, 11:55 PM)LNATIC escribió: Dejo este simple sistema de cuentas por nombre con tu API y guiándome con este tutorial Yao ming

PD: Excelente aporte Destro Gran sonrisa

lo descarge lo use como plugin y luego lo adapte ami zp y no me guardo nada ni el password y en plugin si guarda -.- que pasa con mi zp es vercion 1.6.1
advance

Seguro estas haciendo algo mal, yo lo uso en mi base de un deathrun y funciona de maravilla.
BB 6.5 + Clases de humano * Zombie Plague 4.3 Fix5a + Clases de humano * Sistema de cuentas (Advanced Vault)

Steam

(28/07/2014, 01:23 PM)Neeeeeeeeeel.- escribió:
(28/07/2014, 01:20 PM)Marito escribió: la fuerza de tu envidia es la velocidad de mi progreso y la garantía de mi prosperidad...
Osea que si nadie te envidia la velocidad de tu progreso es 0 y sin garantía Crab

01101101 escribió:me hago la paja pensando en l//
Responder
#12
No me Funciono Triste Entro al ZP y no me sale registro ni nada solo entra a jugar y copile sin errores. y nada
Nobato-Aprendiendo Nothingdohere 1%
Responder
#13
(14/07/2014, 11:01 PM)Savonis escribió: No me Funciono Triste Entro al ZP y no me sale registro ni nada solo entra a jugar y copile sin errores. y nada

no pusiste el
clcmd_changeteam(id)
y tenes que poner para que te puedas registrar :b
guiate con el sma es facil
Responder
#14
(15/07/2014, 10:58 AM)ivan escribió:
(14/07/2014, 11:01 PM)Savonis escribió: No me Funciono Triste Entro al ZP y no me sale registro ni nada solo entra a jugar y copile sin errores. y nada

no pusiste el
clcmd_changeteam(id)
y tenes que poner para que te puedas registrar :b
guiate con el sma es facil



No te endiendo nada >.< Soy nobato:c
Nobato-Aprendiendo Nothingdohere 1%
Responder
#15
(15/07/2014, 12:42 PM)Savonis escribió:
(15/07/2014, 10:58 AM)ivan escribió:
(14/07/2014, 11:01 PM)Savonis escribió: No me Funciono Triste Entro al ZP y no me sale registro ni nada solo entra a jugar y copile sin errores. y nada

no pusiste el
clcmd_changeteam(id)
y tenes que poner para que te puedas registrar :b
guiate con el sma es facil



No te endiendo nada >.< Soy nobato:c

te hago un Copy and Paste para Adaptar lo al zp recien lo adapte y me funciona de maravilla
Código PHP:
#include <adv_vault>

/*===================
PASSWORD
===================*/
new g_password[33][20],g_pj[33][32],bool:g_login[33],g_vault,g_msgvgui,g_msgshowmenu;
enum {
    
CAMPO_AMMOPACKS=0,
    
FIELD_PASSWORD,
    
MAX_FIELDS
}

new 
g_campos[MAX_FIELDS
eso va al prinsipio del zp y ahora vas a public plugin_init y agregas
Código PHP:
// SAPSSSDSA
    
g_vault adv_vault_open("datos_zp"false)
        
g_campos[CAMPO_AMMOPACKS]     = adv_vault_register_field(g_vault"ap")
        
g_campos[FIELD_PASSWORD]     = adv_vault_register_field(g_vault"pw"DATATYPE_STRING20)
        
adv_vault_init(g_vault)
    
register_plugin("Account System","0.1","LNATIC");
    
register_clcmd("Ingresar_Password""clcmd_log");
    
register_clcmd("Nueva_Password""clcmd_create");
    
register_menu("Account Menu"KEYSMENU"handler_menu");
    
g_msgvgui get_user_msgid("VGUIMenu");
    
g_msgshowmenu get_user_msgid("ShowMenu");
    
register_message(g_msgvgui"message_vguimenu");
    
register_message(g_msgshowmenu"message_vguimenu");
    
register_forward(FM_ClientUserInfoChanged"fw_clientinfo_changed"
Bien Ahora Vas a Client_putinserver o lo buscas asi "putin" sin las comillas y agregas
Código PHP:
g_login[id] = false;
    
get_user_name(idg_pj[id], 31); 
y ahora en client_disconnect agregas esto
para buscarlo esto anda mas abajo un poquito nada mas no tanto y bueno agregas
Código PHP:
funcion_guardar(id);
    
g_login[id] = false
y ahora al Final de tu zp Agregas esto
Código PHP:
funcion_guardar(id)
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOPACKS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[FIELD_PASSWORD], g_password[id])
    
adv_vault_set_end(g_vault0g_pj[id])
}

funcion_cargar(id)
{
    if(!
adv_vault_get_prepare(g_vault_g_pj[id]))
    {
        
g_ammopacks[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
        
adv_vault_get_field(g_vaultg_campos[FIELD_PASSWORD], g_password[id], charsmax(g_password[]))
        return
    }
    
g_ammopacks[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
adv_vault_get_field(g_vaultg_campos[FIELD_PASSWORD], g_password[id], charsmax(g_password[]))
}

public 
acc_menu(id){
    new 
menu[60],len 0;
    
len += formatex(menu[len], sizeof menu len"\r ZP level^nBienvenido \d%s^n^n"g_playername[id]);
    
len += formatex(menu[len], sizeof menu len"\r1. \y%s",!adv_vault_get_prepare(g_vault_g_pj[id])?"Registrarse":"Loguearse");
    
show_menu(idKEYSMENUmenu, -1"Account Menu");
    return 
1;
}
public 
handler_menu(id,key){
    if(
key == 0)    adv_vault_get_prepare(g_vault_g_pj[id]) ? client_cmd(id,"messagemode Ingresar_Password") : client_cmd(id,"messagemode Nueva_Password");
    return 
1;
}
public 
message_vguimenu(msgiddestid){
    switch(
g_login[id]){
        case 
0:acc_menu(id);
        case 
1:return 0;
    }
    return 
1;
}
public 
fw_clientinfo_changed(idbuffer){
    if(
is_user_connected(id)){
        if(
g_login[id]){
            static 
oldname[33];
            
engfunc(EngFunc_InfoKeyValuebuffer"name"oldnamesizeof oldname 1);
            if(
equaloldnameg_pjid ])) return FMRES_IGNORED;
            
set_user_info(id"name"g_pj[id]);
            
client_cmd(id"setinfo ^"name^" ^"%s^"",g_pj[id]);
        }
    }
    return 
FMRES_IGNORED;    
}
public 
clcmd_log(id){
    new 
buffer[40];
    
read_args(g_password[id],charsmax(g_password));
    
remove_quotes(g_password[id]); trim(g_password[id]);
    
adv_vault_get_prepare(g_vault_g_pj[id]);
    
adv_vault_get_field(g_vaultg_campos[FIELD_PASSWORD], buffercharsmax(buffer));
    if( 
equal(buffer,g_password[id]) ){
        
g_login[id] = true;
        
set_hudmessage(255255255, -1.0, -1.006.012.0);
        
show_hudmessage(id"Bienvenido de nuevo %s!",g_pj[id]);
        
funcion_guardar(id)
        
join(id);
    }
    else{
        
set_hudmessage(25500, -1.0, -1.006.012.0);
        
client_print(id,print_center,"Password incorrecta.");
    }
}
public 
clcmd_create(id){
    
read_args(g_password[id],charsmax(g_password));
    
remove_quotes(g_password[id]); trim(g_password[id]);
    if( 
equal(g_password[id],"") || contain(g_password[id]," ") != -)    return 1;
    else{
        
g_login[id] = true;
        
set_hudmessage(255255255, -1.0, -1.006.012.0);
        
show_hudmessage(id"Bienvenido %s!",g_pj[id]);
        
funcion_guardar(id)
        
join(id);
    }
    return 
1;
}
public 
join(id){
    
// Jointeam force by RauliTop
    
static teammsg_blockteammsg_block_vguirestorevgui;
    
restore get_pdata_int(id510);
    
vgui restore & (1<<0);
    if (
vguiset_pdata_int(id510restore & ~(1<<0));
    
teammsg_block get_msg_block(g_msgshowmenu);
    
teammsg_block_vgui get_msg_block(g_msgvgui);
    
set_msg_block(g_msgshowmenuBLOCK_ONCE);
    
set_msg_block(g_msgvguiBLOCK_ONCE);
    
engclient_cmd(id"jointeam""5");
    
engclient_cmd(id"joinclass""5");
    
set_msg_block(g_msgshowmenuteammsg_block);
    
set_msg_block(g_msgvguiteammsg_block_vgui);
    if (
vguiset_pdata_int(id510restore);

y listo fue facil espero que te sirva si tenes error decime.
Responder
#16
(15/07/2014, 06:04 PM)ivan escribió:
(15/07/2014, 12:42 PM)Savonis escribió:
(15/07/2014, 10:58 AM)ivan escribió:
(14/07/2014, 11:01 PM)Savonis escribió: No me Funciono Triste Entro al ZP y no me sale registro ni nada solo entra a jugar y copile sin errores. y nada

no pusiste el
clcmd_changeteam(id)
y tenes que poner para que te puedas registrar :b
guiate con el sma es facil



No te endiendo nada >.< Soy nobato:c

te hago un Copy and Paste para Adaptar lo al zp recien lo adapte y me funciona de maravilla
Código PHP:
#include <adv_vault>

/*===================
PASSWORD
===================*/
new g_password[33][20],g_pj[33][32],bool:g_login[33],g_vault,g_msgvgui,g_msgshowmenu;
enum {
    
CAMPO_AMMOPACKS=0,
    
FIELD_PASSWORD,
    
MAX_FIELDS
}

new 
g_campos[MAX_FIELDS
eso va al prinsipio del zp y ahora vas a public plugin_init y agregas
Código PHP:
// SAPSSSDSA
    
g_vault adv_vault_open("datos_zp"false)
        
g_campos[CAMPO_AMMOPACKS]     = adv_vault_register_field(g_vault"ap")
        
g_campos[FIELD_PASSWORD]     = adv_vault_register_field(g_vault"pw"DATATYPE_STRING20)
        
adv_vault_init(g_vault)
    
register_plugin("Account System","0.1","LNATIC");
    
register_clcmd("Ingresar_Password""clcmd_log");
    
register_clcmd("Nueva_Password""clcmd_create");
    
register_menu("Account Menu"KEYSMENU"handler_menu");
    
g_msgvgui get_user_msgid("VGUIMenu");
    
g_msgshowmenu get_user_msgid("ShowMenu");
    
register_message(g_msgvgui"message_vguimenu");
    
register_message(g_msgshowmenu"message_vguimenu");
    
register_forward(FM_ClientUserInfoChanged"fw_clientinfo_changed"
Bien Ahora Vas a Client_putinserver o lo buscas asi "putin" sin las comillas y agregas
Código PHP:
g_login[id] = false;
    
get_user_name(idg_pj[id], 31); 
y ahora en client_disconnect agregas esto
para buscarlo esto anda mas abajo un poquito nada mas no tanto y bueno agregas
Código PHP:
funcion_guardar(id);
    
g_login[id] = false
y ahora al Final de tu zp Agregas esto
Código PHP:
funcion_guardar(id)
{
    
adv_vault_set_start(g_vault)
    
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOPACKS], g_ammopacks[id])
    
adv_vault_set_field(g_vaultg_campos[FIELD_PASSWORD], g_password[id])
    
adv_vault_set_end(g_vault0g_pj[id])
}

funcion_cargar(id)
{
    if(!
adv_vault_get_prepare(g_vault_g_pj[id]))
    {
        
g_ammopacks[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
        
adv_vault_get_field(g_vaultg_campos[FIELD_PASSWORD], g_password[id], charsmax(g_password[]))
        return
    }
    
g_ammopacks[id]    = adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS])
adv_vault_get_field(g_vaultg_campos[FIELD_PASSWORD], g_password[id], charsmax(g_password[]))
}

public 
acc_menu(id){
    new 
menu[60],len 0;
    
len += formatex(menu[len], sizeof menu len"\r ZP level^nBienvenido \d%s^n^n"g_playername[id]);
    
len += formatex(menu[len], sizeof menu len"\r1. \y%s",!adv_vault_get_prepare(g_vault_g_pj[id])?"Registrarse":"Loguearse");
    
show_menu(idKEYSMENUmenu, -1"Account Menu");
    return 
1;
}
public 
handler_menu(id,key){
    if(
key == 0)    adv_vault_get_prepare(g_vault_g_pj[id]) ? client_cmd(id,"messagemode Ingresar_Password") : client_cmd(id,"messagemode Nueva_Password");
    return 
1;
}
public 
message_vguimenu(msgiddestid){
    switch(
g_login[id]){
        case 
0:acc_menu(id);
        case 
1:return 0;
    }
    return 
1;
}
public 
fw_clientinfo_changed(idbuffer){
    if(
is_user_connected(id)){
        if(
g_login[id]){
            static 
oldname[33];
            
engfunc(EngFunc_InfoKeyValuebuffer"name"oldnamesizeof oldname 1);
            if(
equaloldnameg_pjid ])) return FMRES_IGNORED;
            
set_user_info(id"name"g_pj[id]);
            
client_cmd(id"setinfo ^"name^" ^"%s^"",g_pj[id]);
        }
    }
    return 
FMRES_IGNORED;    
}
public 
clcmd_log(id){
    new 
buffer[40];
    
read_args(g_password[id],charsmax(g_password));
    
remove_quotes(g_password[id]); trim(g_password[id]);
    
adv_vault_get_prepare(g_vault_g_pj[id]);
    
adv_vault_get_field(g_vaultg_campos[FIELD_PASSWORD], buffercharsmax(buffer));
    if( 
equal(buffer,g_password[id]) ){
        
g_login[id] = true;
        
set_hudmessage(255255255, -1.0, -1.006.012.0);
        
show_hudmessage(id"Bienvenido de nuevo %s!",g_pj[id]);
        
funcion_guardar(id)
        
join(id);
    }
    else{
        
set_hudmessage(25500, -1.0, -1.006.012.0);
        
client_print(id,print_center,"Password incorrecta.");
    }
}
public 
clcmd_create(id){
    
read_args(g_password[id],charsmax(g_password));
    
remove_quotes(g_password[id]); trim(g_password[id]);
    if( 
equal(g_password[id],"") || contain(g_password[id]," ") != -)    return 1;
    else{
        
g_login[id] = true;
        
set_hudmessage(255255255, -1.0, -1.006.012.0);
        
show_hudmessage(id"Bienvenido %s!",g_pj[id]);
        
funcion_guardar(id)
        
join(id);
    }
    return 
1;
}
public 
join(id){
    
// Jointeam force by RauliTop
    
static teammsg_blockteammsg_block_vguirestorevgui;
    
restore get_pdata_int(id510);
    
vgui restore & (1<<0);
    if (
vguiset_pdata_int(id510restore & ~(1<<0));
    
teammsg_block get_msg_block(g_msgshowmenu);
    
teammsg_block_vgui get_msg_block(g_msgvgui);
    
set_msg_block(g_msgshowmenuBLOCK_ONCE);
    
set_msg_block(g_msgvguiBLOCK_ONCE);
    
engclient_cmd(id"jointeam""5");
    
engclient_cmd(id"joinclass""5");
    
set_msg_block(g_msgshowmenuteammsg_block);
    
set_msg_block(g_msgvguiteammsg_block_vgui);
    if (
vguiset_pdata_int(id510restore);

y listo fue facil espero que te sirva si tenes error decime.



Bro!! Agradesco tu tiempo en explicarme pero , el Client_putinserver no lo tengo en mi code , y tampoco el , client_disconnect, empeze con esto hace 2 dias llevo apenas y pues a aprendido solo un 10% y eso es poco pero igual te agradesco el tiempo que dedicaste en explicarme aunque no me a funcionado. xd
Nobato-Aprendiendo Nothingdohere 1%
Responder
#17
no creo que sea 10% pacman parace 2% pacman tenes que crearlo...

Código PHP:
public client_putinserver(id)
{
   
// code

(10/10/2014, 06:38 PM)RauliTop escribió:
(10/10/2014, 04:40 PM)ivan escribió: no sabía que se podia poner los iconos gestuales cuando das reputacion negativa/positiva.
ui, peligro...
pronto habrán reputaciones de ivan:
hace muy muy muii DafuqYao mingGenius buenos Thats what she saidtutoriales Proud me encataan Whatever
Responder
#18
en consola me tira este error pacman
L 07/16/2014 - 18:11:19: [AMXX] Module is not a valid library (file "cstrike\addons\amxmodx\modules\adv_vault_get_field_amxx.dll")
L 07/16/2014 - 18:11:19: [AMXX] Plugin "zombie_plague40.amxx" failed to load: Plugin uses an unknown function (name "adv_vault_get_field") - check your modules.in
Responder
#19
No se instala como módulo, lo instalas como un plugin normal.
Responder
#20
si ya me di cuenta
Responder
#21
:o Buen Aporte y buen Tutorial [Imagen: 18.gif]
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#22
Como se guardan floats?
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#23
(11/09/2014, 01:28 PM)kikizon2 escribió: Como se guardan floats?

Suponiendo que g_ammopacks[] es float
Código PHP:
new Float:g_ammopacks[33]


//Guardar
adv_vault_set_field(g_vaultg_campos[CAMPO_AMMOPACKS], _:g_ammopacks[id])

//Cargar
 
g_ammopacks[id] = Float:adv_vault_get_field(g_vaultg_campos[CAMPO_AMMOPACKS]) 
Responder
#24
Muchas Gracias^^

EDIT: para ponerlo dentro del ini? como lo registro?
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#25
Una pregunta, que le hace poner _: (guión bajo y dos puntos).

Código PHP:
_:g_ammopacks[id
Believe, be yourself and don't hold on to just one dream ❤

https://github.com/FEDERICOMB96
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)