Enviar respuesta 
[GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
Autor Mensaje
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,710
Registro en: Jan 2014
Reputación: 63
Mensaje: #1
[GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
Bueno me pidieron lo siguiente:

"Adaptar Este Sistema de Niveles a Este Sistema de Cuentas, y al mismo tiempo que quede todo dentro del ZP" pacman


Yo usare el zp 4.3 + human classes que hay en este foro...


Ya teniendo adaptado el sistema de niveles a nuestro zp siguiendo el respectivo tutorial procederemos a adaptar el sistema de cuentas y a guardar nuestros datos...


Paso 1:

Agregamos la libreria (*.inc) Adv_vault debajo de las demas...

-->

Código PHP:
#include <adv_vault> 


Paso 2:

Creamos Variables y Constantes...

-->

Código PHP:
new g_contra[33][20], g_contra2[33][20], g_cuenta[33][32];

new 
g_vault,g_MsgVguig_MsgShowMenu;
new 
g_Estado[33], g_Can[33], g_Fecha[33][32];

enum {
    
EXP,
    
NIVEL,
    
FECHA,
    
PASSWORD,
    
DATA_M
};
enum {
    
NOREGISTRADO 0,
    
REGISTRADO,
    
LOGUEADO,
    
ESTADOS
};
new const 
Estado[ESTADOS][] = { "Sin Registrar""Registrado""Logueado" };
new 
g_campo[DATA_M]; 



Paso 3:

Nos vamos al init...

PD: Al final de la funcion antes de "}"

-->

Código PHP:
register_clcmd("INGRESAR_PASSWORD""Contra");
    
register_clcmd("say /cuenta""ShowLogMenu");
    
    
g_MsgVgui get_user_msgid("VGUIMenu");
    
g_MsgShowMenu get_user_msgid("ShowMenu");
    
register_message(g_MsgVgui"message_VGUImenu");
    
register_message(g_MsgShowMenu"message_VGUImenu");
    
    
g_vault adv_vault_open("CuentasZP"false);
    
g_campo[EXP] = adv_vault_register_field(g_vault"EXP")
    
g_campo[NIVEL] = adv_vault_register_field(g_vault"NIVEL")
    
g_campo[FECHA] = adv_vault_register_field(g_vault"FECHA"DATATYPE_STRING32);
    
g_campo[PASSWORD] = adv_vault_register_field(g_vault"PW"DATATYPE_STRING20);
    
adv_vault_init(g_vault); 



Paso 4:

Nos vamos al final del plugin y agregamos los nuevos menús y funciones...

-->

Código PHP:
/* MENUS */
public ShowLogMenu(id) {
    new 
Tit[128];
    
formatex(Titcharsmax(Tit), "Sistema de cuentas by \dkikizon^n\wBienvenido \r%s^n\wESTADO: \r%s^n\wTu ultima visita fue: \r%s"g_cuenta[id], Estado[g_Estado[id]], g_Fecha[id]);
    
    new 
menu menu_create(Tit,"menu_log");
    
    
menu_additem(menu, (g_Estado[id] == REGISTRADO && adv_vault_get_prepare(g_vault_g_cuenta[id]))?"Loguearse":"\dLoguearse""1");
    
menu_additem(menu, (g_Estado[id] == NOREGISTRADO && !adv_vault_get_prepare(g_vault_g_cuenta[id]))?"Registrarse^n":"\dRegistrarse^n""2");
    
menu_additem(menu, (g_Estado[id] == LOGUEADO && !g_Can[id])?"Cambiar Contra":"\dCambiar Contra""3");
    
    
menu_display(idmenu0);
}
public 
menu_log(idmenuitem) {
    if(
item == MENU_EXIT) {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    switch(
item) {
        case 
0: {
            if(
g_Estado[id] == REGISTRADO && adv_vault_get_prepare(g_vault_g_cuenta[id])) {
                
client_print(idprint_center"Ingresa tu PASSWORD para entrar a tu cuenta");
                
client_cmd(id,"messagemode INGRESAR_PASSWORD");
            } else {
                
client_print(idprint_center"No puedes elegir esta opcion");
                return 
PLUGIN_HANDLED;
            }
        }
        case 
1: {
            if(
g_Estado[id] == NOREGISTRADO && !adv_vault_get_prepare(g_vault_g_cuenta[id])) {
                
client_print(idprint_center"Ingresa una PASSWORD para crear una cuenta");
                
client_cmd(id,"messagemode INGRESAR_PASSWORD");
            } else {
                
client_print(idprint_center"No puedes elegir esta opcion");
                return 
PLUGIN_HANDLED;
            }    
        }
        case 
2: {
            if(
g_Estado[id] == LOGUEADO && !g_Can[id]) {
                
client_print(idprint_center"Ingresa tu nueva PASSWORD");
                
client_cmd(id,"messagemode INGRESAR_PASSWORD");
            } else {
                
client_print(idprint_center"No estas logueado o ya cambiaste tu password durante el mapa");
                return 
PLUGIN_HANDLED;
            }
        }
    }
    return 
PLUGIN_HANDLED;
}

public 
Confirmar(id) {
    new 
Tit[128];
    
formatex(Titcharsmax(Tit),"La password sera \r%s^n^n\yConfirmar?"g_contra2[id]);
    
    new 
menu menu_create(Tit,"menu_confirmar");
    
    
menu_additem(menu,"\rSi\w, confirmar","1");
    
menu_additem(menu,"\rNo\w, deseo reescribirla","2");
    
    
menu_setprop(menuMPROP_EXITMEXIT_NEVER);
    
    
menu_display(idmenu0);
}
public 
menu_confirmar(idmenuitem) {
    switch(
item) {
        case 
0: {
            switch(
g_Estado[id]) {
                case 
LOGUEADO: {
                    
copy(g_contra[id], 19 ,g_contra2[id]);
                    
Guardar(id);
                    
client_print(idprint_center"Tu password ha sido cambiada satisfactoriamente");
                    
g_Can[id] = 1;
                }
                case 
NOREGISTRADO: {    
                    
client_print(idprint_center"Tu cuenta ha sido creada satisfactoriamente");
                    
copy(g_contra[id], 31g_contra2[id]);
                    
Guardar(id);
                    
jTeam(id);
                }
            }
        }
        case 
1: {
            
menu_destroy(menu);
            
client_cmd(id,"messagemode INGRESAR_PASSWORD");
            if(
g_Estado[id] == LOGUEADO)
                
client_print(idprint_center"Ingresa tu nueva PASSWORD");
            else
                
client_print(idprint_center"Ingresa la PASSWORD para tu nueva cuenta");
        }
    }
    return 
PLUGIN_HANDLED;
}
public 
Guardar(id) {
    if(!
is_user_connected(id)) return;
    
    
adv_vault_set_start(g_vault);
    
adv_vault_set_field(g_vaultg_campo[EXP], kExp[id])
    
adv_vault_set_field(g_vaultg_campo[NIVEL], kNivel[id])
    
adv_vault_set_field(g_vaultg_campo[FECHA], g_Fecha[id]);
    
adv_vault_set_field(g_vaultg_campo[PASSWORD], g_contra[id]);
    
adv_vault_set_end(g_vault0g_cuenta[id]);
}
public 
Cargar(id) {
    if(!
adv_vault_get_prepare(g_vault_g_cuenta[id])) {
        
g_Estado[id] = NOREGISTRADO;
        return;
    } else {
        
g_Estado[id] = REGISTRADO;
        
kExp[id] = adv_vault_get_field(g_vaultg_campo[EXP]);
        
kNivel[id] = adv_vault_get_field(g_vaultg_campo[NIVEL]);
        
adv_vault_get_field(g_vaultg_campo[FECHA], g_Fecha[id], charsmax(g_Fecha[]));
        
adv_vault_get_field(g_vaultg_campo[PASSWORD], g_contra[id], charsmax(g_contra[]));
    }
    
}
public 
Contra(id) {
    
read_args(g_contra[id], charsmax(g_contra));
    
remove_quotes(g_contra[id]);trim(g_contra[id]);
    
    if(
equal(g_contra[id],"") || containi(g_contra[id]," ") != -) {
        
client_print(idprint_center"Tu password contiene errores");
        return 
1;
    }
    
    switch(
g_Estado[id]) {
        case 
NOREGISTRADO: {
            
client_print(idprint_center"Confirma tu password para proseguir");
            
copy(g_contra2[id], 19g_contra[id]);
            
Confirmar(id);
        }
        case 
REGISTRADO: {
            new 
buffer[40];
            
adv_vault_get_prepare(g_vault_g_cuenta[id]);
            
adv_vault_get_field(g_vaultg_campo[PASSWORD], buffercharsmax(buffer));
            
            if(
equal(bufferg_contra[id])) {
                
Guardar(id);
                
client_print(idprint_center"Te logueaste satisfactoriamente en tu cuenta");
                
jTeam(id);
            } else {
                
ShowLogMenu(id);
                
client_print(idprint_center"Password Incorrecta.");
            }
        }
        case 
LOGUEADO: {
            if(
g_Can[id]) {
                
client_print(idprint_center"Ya cambiaste tu contra en este mapa");
                return 
PLUGIN_HANDLED;
            }
            
client_print(idprint_center"Confirma tu password para cambiarla...");
            
copy(g_contra2[id], 19g_contra[id]);
            
Confirmar(id);
        }
    }
    return 
PLUGIN_HANDLED;
}
public 
message_VGUImenu(msgiddestid) {
    if(
g_Estado[id] != LOGUEADO)
        
ShowLogMenu(id);

    return 
1;
}
public 
jTeam(id){
    static 
teammsg_blockteammsg_block_vguirestorevgui;
    
    
restore get_pdata_int(id510);
    
vgui restore & (1<<0);
    
    if (
vgui)
        
set_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 (
vgui
        
set_pdata_int(id510restore);
        
    
g_Estado[id] = LOGUEADO;




Paso 5:

Editamos algunas funciones que ya existen en el zp...

-->

1.- client_putinserver()

PD: al final de la función antes de "}"

Código PHP:
get_user_name(idg_cuenta[id], 31);
get_time("%c"g_Fecha[id], 31);
g_contra[id][0] = '^0';
g_Estado[id] = NOREGISTRADO;
    
g_Can[id] = 0;
    
Cargar(id); 

2.- Creamos esta funcion:

Código PHP:
public client_disconnect(id)
    
Guardar(id); 

3.- Editamos esto: fw_ClientUserInfoChanged(id) por fw_ClientUserInfoChanged(id, buffer)

Ahora dentro de la función agregamos:

PD: Al final de la función antes de "}"
Código PHP:
    if(is_user_connected(id)) {
        if(
g_Estado[id] == LOGUEADO) {
            static 
OldName[33];
            
            
engfunc(EngFunc_InfoKeyValuebuffer"name"OldNamesizeof OldName 1);
            
            if(
equal(OldNameg_cuenta[id])) 
                return 
FMRES_IGNORED;
            
            
set_user_info(id"name"g_cuenta[id]);
            
client_cmd(id"setinfo ^"name^" ^"%s^""g_cuenta[id]);
        }
    }
    return 
FMRES_IGNORED

4.- clcmd_changeteam(id)

Reemplazamos el contenido de la funcion por esto:
Código PHP:
static team
    team 
fm_cs_get_user_team(id)
    
    if(
g_Estado[id] != LOGUEADO && team == FM_CS_TEAM_SPECTATOR || g_Estado[id] != LOGUEADO && team == FM_CS_TEAM_UNASSIGNED) {
        
ShowLogMenu(id)
        return 
PLUGIN_HANDLED;
    } else if(
g_Estado[id] == LOGUEADO && team == FM_CS_TEAM_SPECTATOR || g_Estado[id] == LOGUEADO && team == FM_CS_TEAM_UNASSIGNED)
        return 
PLUGIN_CONTINUE;
    
    
show_menu_game(id)
    return 
PLUGIN_HANDLED



y por si no pueden pacman (casi imposible solo es C&P)

Les dejo el sma...


zombie_plague40.sma (Descargar compilado / Tamaño: 353.39 KB / Descargas: 396)


NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
(Este mensaje fue modificado por última vez en: 28/11/2014 02:33 PM por kikizon2.)
28/11/2014 12:58 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Shady313 Ausente
Miembro


Mensajes: 121
Registro en: Oct 2014
Reputación: 3
Mensaje: #2
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
Lo hice y también con el que dejaste y con los dos se me pone el Cs Normal Lol

Cereal "What's your favorite Pink Floyd song?"
Better "Oh I really like dark side of the moon"
Poker face "yea.. kill yourself"
28/11/2014 02:15 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,710
Registro en: Jan 2014
Reputación: 63
Mensaje: #3
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
(28/11/2014 02:15 PM)Shady313 escribió:  Lo hice y también con el que dejaste y con los dos se me pone el Cs Normal Lol

sorry me equivoque ahi arreglo


NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
28/11/2014 02:30 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
elpapimejor Sin conexión
Miembro Sr.


Trebol verde
Mensajes: 704
Registro en: Oct 2014
Reputación: 5
Mensaje: #4
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
Te amo kiki TE AMOOOOOOOOO
HAY LOVIU!!!!!!!!!!

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team

Warning: Loose indentation on line 1566
Warning: Loose indentation on line 2154
Warning: Loose indentation on line 2159
Warning: Loose indentation on line 2185
Warning: Loose indentation on line 2189
Warning: Loose indentation on line 2194
Warning: Loose indentation on line 2530
Warning: Loose indentation on line 2531
Warning: Loose indentation on line 2699
Error: Undefined symbol "buffer" on line 2703
Warning: Expression has no effect on line 2703
Warning: Expression has no effect on line 2703
Warning: Expression has no effect on line 2703
Error: Expected token: ";", but found ")" on line 2703
Error: Invalid expression, assumed zero on line 2703
Error: Too many error messages on one line on line 2703

Compilation aborted.
4 Errors.
Could not locate output file C:\Users\Solo_Estudio&Trabajo\Desktop\zpsambukiki.amx (compile failed).

Q hago???
Borre el buffer pero me dio problemas en el cs!!

(03/08/2018 03:13 PM)Skylar escribió:  Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
(Este mensaje fue modificado por última vez en: 28/11/2014 03:02 PM por elpapimejor.)
28/11/2014 02:54 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,710
Registro en: Jan 2014
Reputación: 63
Mensaje: #5
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
lee bien la guia o descarga el sma


NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
28/11/2014 03:05 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
elpapimejor Sin conexión
Miembro Sr.


Trebol verde
Mensajes: 704
Registro en: Oct 2014
Reputación: 5
Mensaje: #6
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
Como hago para resolver el "Reliable Channel Overflowed"????

(03/08/2018 03:13 PM)Skylar escribió:  Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
28/11/2014 03:34 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,710
Registro en: Jan 2014
Reputación: 63
Mensaje: #7
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
(28/11/2014 03:34 PM)elpapimejor escribió:  Como hago para resolver el "Reliable Channel Overflowed"????

Haz un thread nuevo, no desvirtues...


NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
28/11/2014 03:49 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
elpapimejor Sin conexión
Miembro Sr.


Trebol verde
Mensajes: 704
Registro en: Oct 2014
Reputación: 5
Mensaje: #8
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
Como asi no entiendo?? no desvirtues?

(03/08/2018 03:13 PM)Skylar escribió:  Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
28/11/2014 03:53 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
kikizon2 Sin conexión
Miembro Héroe


Plugin developer Donador Regalo Beta Tester Trebol purpura 1k Plugin popular
Mensajes: 3,710
Registro en: Jan 2014
Reputación: 63
Mensaje: #9
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
(28/11/2014 03:53 PM)elpapimejor escribió:  Como asi no entiendo?? no desvirtues?

Reliable Chanel Overflow no tiene nada que ver con este tema ¬¬


NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
28/11/2014 04:12 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
elpapimejor Sin conexión
Miembro Sr.


Trebol verde
Mensajes: 704
Registro en: Oct 2014
Reputación: 5
Mensaje: #10
RE: [GUIA] Adaptar Niveles a Sis. de Cuentas, y Sis. de Cuentas a ZP
mira we
te paso el screen

Image

lo estoy haciendo con este zp: fdlnigga.esy.es/zpsambukiki.sma

Disculpen el tamanio
ya lo hago mas pequenio

(03/08/2018 03:13 PM)Skylar escribió:  Está bien que pidas ayudas, pero no para que crees 20 post todos los días mogolico de mierda, me tenes re podrido ya, contraté 10000 sicarios para que te busquen y te maten toda la familia, y a vos que te revienten con una bazooka.
(Este mensaje fue modificado por última vez en: 28/11/2014 04:31 PM por elpapimejor.)
28/11/2014 04:30 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS