View Single Post
Nico1
Senior Member
Join Date: Oct 2010
Old 11-13-2010 , 19:12   Re: [ES] Una pregunta sobre guardado de SHMod
#6

Para la setinfo
Code:
#include < amxmodx > 
#include < fakemeta > 
#include < fvault > 
#include < cstrike > 

new SZ_Password[ 192 ] 
new SZ_Password_T[ 33 ][ 192 ] 

new Registrado[ 33 ] 
new BadPassword[ 33 ] 

new const Vault[] = "Superhero" 

public plugin_init( ) 
{ 
    register_plugin( "Superhero Setinfo", "1.0", "PH3N0M" ) 
     
    register_forward( FM_ClientUserInfoChanged, "FWClientUserInfoChanged" ) 

    register_clcmd( "say /registrarse", "CMDRegistrarse" ) 
    register_clcmd( "IntroducirContrasenia", "CMDIntroducirContrasenia" ) 
} 

public client_disconnect( Index ) 
    Save( Index ) 

public client_putinserver( Index ) 
{ 
    Registrado[ Index ] = 0 
    BadPassword[ Index ] = 0 
    Load( Index ) 
} 

public CMDRegistrarse( Index ) 
{ 
    if( Registrado[ Index ] || BadPassword[ Index ] ) 
        return PLUGIN_HANDLED; 
     
    client_cmd( Index, "messagemode IntroducirContrasenia" ) 
     
    return PLUGIN_CONTINUE; 
} 

public CMDIntroducirContrasenia( Index ) 
{ 
    read_args( SZ_Password, 191 ) 
    remove_quotes( SZ_Password ) 
    trim( SZ_Password ) 

    if( equal( SZ_Password, "" ) || contain( SZ_Password, " ") != -1) 
        return PLUGIN_HANDLED; 
    else 
    { 
        client_cmd( Index, "setinfo _wzsh ^"%s^"", SZ_Password ) 
         
         
        static SZ_Name[ 32 ], SZ_Data[ 512 ] 
        get_user_name( Index, SZ_Name, 31 ) 
         
        formatex( SZ_Data, charsmax( SZ_Data ), "%s", SZ_Password, ( Index ) ) 
             
        fvault_set_data( Vault, SZ_Name, SZ_Data ) 
         
        SZ_Password_T[ Index ] = SZ_Password 
         
        return PLUGIN_HANDLED; 
    } 
     
    return PLUGIN_CONTINUE; 
} 

public Save( Index ) 
{ 
    if( !Registrado[ Index ] || BadPassword[ Index ] ) 
        return PLUGIN_HANDLED; 
         
    static SZ_Data[ 512 ], SZ_Name[ 32 ] 
     
    formatex( SZ_Data, charsmax( SZ_Data ), "%s %d", SZ_Password_T[ Index ] ) 
    get_user_name( Index, SZ_Name, 31 ) 
     
    fvault_set_data( Vault, SZ_Name, SZ_Data ) 
     
    return PLUGIN_CONTINUE; 
} 

public Load( Index ) 
{ 
    static SZ_Data[ 512 ], SZ_Name[ 32 ], SETINFO_Password[ 191 ], VAULT_Password[ 191 ] 
     
    get_user_name( Index, SZ_Name, 31 ) 
    get_user_info( Index, "_wzsh", SETINFO_Password, 190 ) 
     
    if( !fvault_get_data( Vault, SZ_Name, SZ_Data, charsmax( SZ_Data ) ) ) 
        return 0; 
     
    Registrado[ Index ] = 1 
         
    parse( SZ_Data, VAULT_Password, 190 ) 
     
    if( equal( SETINFO_Password, VAULT_Password ) ) 
    { 
        SZ_Password_T[ Index ] = SETINFO_Password 
                         
        return 2; 
    } 
    else  
    { 
        BadPassword[ Index ] = 1 
        server_cmd( "kick #%d", get_user_userid( Index ) ) 
    } 
     
    return 1; 
} 

public FWClientUserInfoChanged( Index, Buffer ) 
{ 
    if( !is_user_connected( Index ) ) 
        return FMRES_IGNORED; 
     
    static NickName[32], NickOld[32]; get_user_name( Index, NickOld, 31 ) 
    engfunc( EngFunc_InfoKeyValue, Buffer, "name", NickName, 31 ) 
     
    if( equal( NickName, NickOld ) ) 
        return FMRES_IGNORED; 
     
    engfunc( EngFunc_SetClientKeyValue, Index, Buffer, "name", NickOld ) 
     
    client_cmd( Index, "name ^"%s^"; setinfo name ^"%s^"", NickOld, NickOld ) 
     
    return FMRES_SUPERCEDE; 
}  
Para el menu
Code:
#include < amxmodx > 
#include < fakemeta > 

public plugin_init() 
{ 
    register_plugin("Superhero Menu", "1.0", "PH3N0M") 
     
    register_clcmd("say /menu", "abrir_menu") 
} 

public abrir_menu(id) 
{ 
    new Menu = menu_create("\yWarped Zone Menu", "mostrar_menu") 
    menu_additem(Menu, "\wCrear Cuenta", "1", 0) 
    menu_additem(Menu, "\wHeroes", "2", 0) 
    menu_additem(Menu, "\wAyuda", "3", 0) 
    menu_additem(Menu, "\wContacto", "4", 0) 
    menu_additem(Menu, "\wDesconectarse", "5", 0) 
     
    menu_setprop(Menu,MPROP_EXITNAME,"Salir") 
    menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL) 
     
    menu_display(id, Menu, 0) 
} 

public mostrar_menu(id, Menu, item) 
{ 
    if (item == MENU_EXIT) 
    { 
        menu_destroy(Menu) 
        return PLUGIN_HANDLED 
    } 
     
    new iData[6]; 
    new iAccess; 
    new iCallback; 
    new iName[64]; 
    menu_item_getinfo(Menu, item, iAccess, iData, 5, iName, 63, iCallback) 
     
    switch (str_to_num(iData)) 
    { 
        case 1: // Crear Cuenta 
        { 
         client_cmd(id, "say /registrarse") 
        } 
        case 2: // Heroes 
        {     
        client_cmd(id, "say /herolist") 
        } 
        case 3: // Ayuda 
        { 
        client_cmd(id, "say /help") 
        } 
        case 4: // Contacto 
        { 
        show_motd(id, "motd.txt", "Warped Zone - Contacto") 
        } 
        case 5: // Desconectarse 
        { 
        client_cmd(id, "disconnect") 
        } 
}     
    return PLUGIN_HANDLED 
}  
Con no se borra nada
Tan dificil es buscar alguno ?
FUENTE: www.google.com

Last edited by Nico1; 11-13-2010 at 19:15.
Nico1 is offline