Raised This Month: $51 Target: $400
 12% 

[CON y SIN ZP] Crear Cuentas y guardado de Datos.


  
 
 
Thread Tools Display Modes
Author Message
Kiske
Veteran Member
Join Date: May 2009
Old 03-26-2010 , 07:59   [CON y SIN ZP] Crear Cuentas y guardado de Datos.
#1

ATENCIÓN: No doy más soporte a esto y probablemente esté desactualizado y genere errores!


Aprendizaje necesario: Básico sobre algunas Funciones.
Aprendizaje extra: Aprenderse el Include del FVault que está posteado en este Post.
Bueno, no hay nada mas que decir, esta todo explicado en el Codigo.

¡ Sin ZombiePlague !
PHP Code:
#include < amxmodx >
#include < fakemeta >
#include < fvault >
#include < cstrike >

// Creamos variables globales
new SZ_Password192 ]
new 
SZ_Password_T33 ][ 192 ]

new 
Registrado33 ]
new 
BadPassword33 ]

new const 
Vault[] = "_Datos" // Nombre del Archivo donde se guardaran los Datos.

public plugin_init( )
{
    
register_plugin"Tutorial""1.0""Kiske" )
    
    
register_forwardFM_ClientUserInfoChanged"FWClientUserInfoChanged" // Si no me equivoco esta forward se llama cuando el usuario cambia algo de su setinfo.

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

public 
client_disconnectIndex )
    
SaveIndex // Esta función ponganla en todos los lugares donde quieren que se guarden sus cosas.

public client_putinserverIndex )
{
    
RegistradoIndex ] = 0
    BadPassword
Index ] = 0
    Load
Index )
}

public 
CMDRegistrarseIndex )
{
    if( 
RegistradoIndex ] || BadPasswordIndex ] )
        return 
PLUGIN_HANDLED;
    
    
client_cmdIndex"messagemode IntroducirContrasenia" )
    
    return 
PLUGIN_CONTINUE;
}

public 
CMDIntroducirContraseniaIndex )
{
    
read_argsSZ_Password191 // Ponemos en la Variable SZ_Password lo que escribió como Contraseña
    
remove_quotesSZ_Password // Analiza lo que escribimos
    
trimSZ_Password // Esta opción es para remover los ESPACIOS ( si es que puso ) al principio y al final de lo que escribió

    
if( equalSZ_Password"" ) || containSZ_Password" ") != -1// En la primer parte, verificamos si lo que ingresó contiene algo......y en la segunda parte verificamos si lo que ingresó tiene espacios, si coincide alguna de las dos cosas, no se lo aceptamos.
        
return PLUGIN_HANDLED;
    else 
// Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios.
    
{
        
client_cmdIndex"setinfo _pass ^"%s^""SZ_Password // Creamos una Setinfo al jugador con el prefijo _pass y la contraseña que ingresó. Ustedes si quieren cambienle el prefijo.
        
RegistradoIndex ] = 1
        
        
// Guardamos el Nombre, ls Password y el Dinero actual
        
static SZ_Name32 ], SZ_Data512 ]
        
get_user_nameIndexSZ_Name31 )
        
        
// Si quieren agregar mas Datos solo vayan aumentando el Parametro y las Variables.
        
formatexSZ_DatacharsmaxSZ_Data ), "%s %d"SZ_Passwordcs_get_user_moneyIndex ) )
            
        
// Esta función del FVault sirve para setear datos ( Recomiendo: Que lean el Include del FVault que está posteado al final de este Post )
        
fvault_set_dataVaultSZ_NameSZ_Data )
        
        
// Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea.
        
SZ_Password_TIndex ] = SZ_Password
        
        
return PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}

public 
SaveIndex )
{
    if( !
RegistradoIndex ] || BadPasswordIndex ] ) // Si NO esta registrado, o si tiene la Contraseña Incorrecta, no le guardamos nada.
        
return PLUGIN_HANDLED;
    
    
// Voy a dar un Ejemplo en el caso de que quieran guardar Dinero o lo que sea.
    
    
static SZ_Data512 ], SZ_Name32 ]
    
    
formatexSZ_DatacharsmaxSZ_Data ), "%s %d"SZ_Password_TIndex ], cs_get_user_moneyIndex ) )
    
get_user_nameIndexSZ_Name31 )
    
    
fvault_set_dataVaultSZ_NameSZ_Data )
    
    return 
PLUGIN_CONTINUE;
}

public 
LoadIndex )
{
    static 
SZ_Data512 ], SZ_Name32 ], SETINFO_Password191 ], VAULT_Password191 ], Dinero11 ]
    
    
get_user_nameIndexSZ_Name31 )
    
get_user_infoIndex"_pass"SETINFO_Password190 // Seteamos en SETINFO_Password lo que tiene como Setinfo con el prefijo _pass
    
    
if( !fvault_get_dataVaultSZ_NameSZ_DatacharsmaxSZ_Data ) ) ) // Detectamos si NO existe su Nombre y Data en el Vault. En ese caso, les dejo a su Creatividad para que piensen.
        
return 0;
    
    
RegistradoIndex ] = 1
    
    
// El Nombre y la Password JAMÁS la cargen.
    // Voy a dar un Ejemplo en el caso de que quieran cargar Dinero o lo que sea.
    
    
parseSZ_DataVAULT_Password190Dinero10 // La función PARSE, separa los Datos 1 por 1. Si guardamos la Password primero, y el Dinero despues, entonces este Parse está bien, obviamente tiene que seguir el Orden en el que se guardó.
    
    
if( equalSETINFO_PasswordVAULT_Password ) ) // Si la Contraseña del Jugador coincide con la Registrada de su Nick, cargamos sus Datos.
    
{
        
// Fixeamos un Error para que no reemplaze la Password Registrada por alguna que puede llegar a cambiar el adentro del Server.
        
SZ_Password_TIndex ] = SETINFO_Password
        
        
// Cargamos el Dinero. ( Numero )
        
cs_set_user_moneyIndexstr_to_numDinero ) )
        
        
// Si cargan una Variable es así:
        // Money = str_to_num( Dinero )
        
        // Y si cargan una Native como en el caso de cs_set_user_money, bueno ya esta puesto arriba.
        
        // Ejemplo de: Cargar un Float
        // Variable_De_Float[ Index ] = str_to_float( Float )
        
        
return 2;
    }
    else 
// Si la Contraseña del Jugador NO coincide con la Registrada de su Nick, podemos Kickearlo, mandarlo a Spect, un menú, les dejo su creatividad...
    
{
        
BadPasswordIndex ] = 1
        
//....
    
}
    
    return 
1;
}

public 
FWClientUserInfoChangedIndexBuffer )
{
    if( !
is_user_connectedIndex ) )
        return 
FMRES_IGNORED;
    
    static 
NickName[32], NickOld[32]; get_user_nameIndexNickOld31 )
    
engfuncEngFunc_InfoKeyValueBuffer"name"NickName31 // Si tampoco me confundo, esto obtiene el valor "name" de su setinfo.
    
    
if( equalNickNameNickOld ) )
        return 
FMRES_IGNORED;
    
    
engfuncEngFunc_SetClientKeyValueIndexBuffer"name"NickOld // Le volvemos a poner el nick viejo para que no se lo pueda cambiar.
    
    
client_cmdIndex"name ^"%s^"; setinfo name ^"%s^""NickOldNickOld )
    
    return 
FMRES_SUPERCEDE;

Datos Extras:
  • Una vez que te Registraste, no te podes volver a Registrar CON el mismo NICK.
  • Si tenes la Password incorrecta, les dejo a su creatividad lo que quieran hacer, ahi ya dice donde es que le da la Password incorrecta, obviamente no te podes volver a Registrar.
  • Cuando se te guardan los Datos por primera vez es algo asi: "Kiske" "PendejoAlcahuete 800"
  • Cuando me desconecte, que se guardan los Datos, se me guardaron así: "Kiske" "PendejoAlcahuete 4600", obviamente porque gane Dinero.
  • Testee todos los Bugs posibles, y 0 errores.





¡ Con ZombiePlague y con Menú de Registro y Logeo !
PHP Code:
#include < fvault >

// Creamos variables globales
new SZ_Password33 ][ 192 ]
new 
SZ_Password_T33 ][ 192 ]

new 
Registrado33 ]
new 
BadPassword33 ]

new const 
Vault[] = "_Datos" // Nombre del Archivo donde se guardaran los Datos.

public plugin_init( )
{
    
register_clcmd"say /registrarse""CMDRegistrarse" )
    
register_clcmd"IntroducirContrasenia""CMDIntroducirContrasenia" )
}

public 
client_disconnectIndex )
    
SaveIndex // Esta función ponganla en todos los lugares donde quieren que se guarden sus cosas.

public client_putinserverIndex )
{
    
RegistradoIndex ] = 0
    BadPassword
Index ] = 0
   
    set_task
0.1"clcmd_changeteam"Index // Les va a aparecer el Menú igual por más que tengan MOTD y esas mierdas.
   
    // Esta función ponganla abajo del reset_vars y abajo del statssave.
    
LoadIndex )
}

// ATENCIÓN ACA !!:
// En la Función que se llama: clcmd_changeteam(id) van a reemplazar todo lo que tengan por esto, a continuacion les explico:
public clcmd_changeteamIndex )
{
    static 
TeamTeam get_user_teamIndex )
   
    if( ( 
Team == || Team == ) && !BadPasswordIndex ] && RegistradoIndex ] ) // Si esta en el Team UNNASIGNED o SPECTATOR, si tiene bien la Password y si está Registrado...
        
return PLUGIN_CONTINUE// ... le muestra el Menú de Teams.
    
else if( !RegistradoIndex ] || BadPasswordIndex ] ) // Si no está Registrado o tiene mal la Password, le mostramos el Menú de Registro y Login.
    
{
        static 
MenuSZ_Items32 ]
        
Menu menu_create"\yTitulo""MenuBadPassword" )
        
formatexSZ_Items31"%s", !RegistradoIndex ] ? "Registrar nueva Cuenta" "Ingresar Contraseña" )
       
        
menu_additemMenuSZ_Items"1" //* Si no está Registrado la Opción esta será: "Registrar nueva Cuenta", de lo contrario será: "Ingresar Contraseña".
       
        
menu_setpropMenuMPROP_EXITNAME"Salir" )
        
menu_displayIndexMenu)
       
        return 
PLUGIN_HANDLED;
    }
    else
        
show_menu_gameIndex // Si le cambiaron el nombre a esta función, también deben cambiarselo acá.
       
    
return PLUGIN_HANDLED;
}

public 
CMDRegistrarseIndex )
{
    if( 
RegistradoIndex ] || BadPasswordIndex ] )
        return 
PLUGIN_HANDLED;
   
    
client_cmdIndex"messagemode IntroducirContrasenia" )
   
    return 
PLUGIN_CONTINUE;
}

public 
CMDIntroducirContraseniaIndex )
{
    
read_argsSZ_PasswordIndex ], charsmaxSZ_Password[ ] ) ) // Ponemos en la Variable SZ_Password lo que escribió como Contraseña
    
remove_quotesSZ_PasswordIndex ] ) // Analiza lo que escribimos
    
trimSZ_PasswordIndex ] ) // Esta opción es para remover los ESPACIOS ( si es que puso ) al principio y al final de lo que escribió

    
if( equalSZ_PasswordIndex ], "" ) || containSZ_PasswordIndex ], " ") != -1// En la primer parte, verificamos si lo que ingresó contiene algo......y en la segunda parte verificamos si lo que ingresó tiene espacios, si coincide alguna de las dos cosas, no se lo aceptamos.
        
return PLUGIN_HANDLED;
    else if( 
BadPasswordIndex ] ) // Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios, pero también quiere decir que está Introduciendo la Contraseña para Logearse.
    
{
        static 
SZ_Data512 ], SZ_Name32 ], VAULT_Password191 ]
        
get_user_nameIndexSZ_Name31 )
        
        if( !
fvault_get_dataVaultSZ_NameSZ_DatacharsmaxSZ_Data ) ) )
            return 
0;
        
        
parseSZ_DataVAULT_Password190 )
        
        if( 
equalSZ_PasswordIndex ], VAULT_Password ) ) // Si lo que Ingreso coincide con la Password Registrada, lo mandamos a la Selección de Teams.
        
{
            
client_cmdIndex"setinfo _pass ^"%s^""SZ_PasswordIndex ] )
            
BadPasswordIndex ] = 0
            
            Load
Index )
            
            
// Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea.
            
SZ_Password_TIndex ] = SZ_PasswordIndex ]
            
            return 
PLUGIN_HANDLED;
        }
        
        return 
PLUGIN_HANDLED;
    }
    else 
// Si se llama esta parte, quiere decir que lo que ingresó contiene algo y no tiene espacios.
    
{
        
client_cmdIndex"setinfo _pass ^"%s^""SZ_PasswordIndex ] ) // Creamos una Setinfo al jugador con el prefijo _pass y la contraseña que ingresó. Ustedes si quieren cambienle el prefijo.
        
RegistradoIndex ] = 1
       
        
// Guardamos el Nombre, ls Password y los AmmoPacks actuales
        
static SZ_Name32 ], SZ_Data512 ]
        
get_user_nameIndexSZ_Name31 )
       
        
// Si quieren agregar mas Datos solo vayan aumentando los parametros con su respectiva variable.
        
formatexSZ_DatacharsmaxSZ_Data ), "%s %d"SZ_PasswordIndex ], g_ammopacks[Index] )
       
        
// Esta función del FVault sirve para setear datos ( Recomiendo: Que lean el Include del FVault que está posteado al final de este Post )
        
fvault_set_dataVaultSZ_NameSZ_Data )
       
        
// Fixeamos un Error ya que si es la Primera vez que se registra, cuando llame al Save no aparecerá ninguna Password, esto lo Fixea.
        
SZ_Password_TIndex ] = SZ_PasswordIndex ]
       
        return 
PLUGIN_HANDLED;
    }
   
    return 
PLUGIN_CONTINUE;
}

public 
SaveIndex )
{
    if( !
RegistradoIndex ] || BadPasswordIndex ] ) // Si NO esta registrado, o si tiene la Contraseña Incorrecta, no le guardamos nada.
        
return PLUGIN_HANDLED;
   
    static 
SZ_Data512 ], SZ_Name32 ]
   
    
// Guardamos la Data.
    
formatexSZ_DatacharsmaxSZ_Data ), "%s %d"SZ_Password_TIndex ], g_ammopacks[Index] )
    
get_user_nameIndexSZ_Name31 )
   
    
fvault_set_dataVaultSZ_NameSZ_Data )
   
    return 
PLUGIN_CONTINUE;
}

LoadIndex )
{
    static 
SZ_Data512 ], SZ_Name32 ], SETINFO_Password191 ], VAULT_Password191 ], APs11 ]
   
    
get_user_nameIndexSZ_Name31 )
    
get_user_infoIndex"_pass"SETINFO_Password190 // Seteamos en SETINFO_Password lo que tiene como Setinfo con el prefijo _pass
   
    
if( !fvault_get_dataVaultSZ_NameSZ_DatacharsmaxSZ_Data ) ) ) // Detectamos si NO existe su Nombre y Data en el Vault. En ese caso, yo puse que lo mande al Menu de Teams ( Donde le pusimos que se Registre ).
    
{
        
set_task0.1"clcmd_changeteam"Index // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2
        
return 0;
    }  
 
    
RegistradoIndex ] = 1
   
    
// El Nombre y la Password JAMÁS la cargen.
   
    
parseSZ_DataVAULT_Password190APs10 // La función PARSE, separa los Datos 1 por 1. Si guardamos la Password primero, y los AmmoPacks despues, entonces este Parse está bien, obviamente tiene que seguir el Orden en el que se guardó.
   
    
if( equalSETINFO_PasswordVAULT_Password ) ) // Si la Contraseña del Jugador coincide con la Registrada de su Nick, cargamos sus Datos.
    
{
        
// Fixeamos un Error para que no reemplaze la Password Registrada por alguna que puede llegar a cambiar el adentro del Server.
        
SZ_Password_TIndex ] = SETINFO_Password
       
        
// Cargamos los AmmoPacks. ( Numero )
        
g_ammopacks[Index] = str_to_numAPs )
        
        
set_task0.1"clcmd_changeteam"Index // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2
       
        // Ejemplo de: Cargar un Float
        // Variable_De_Float[Index] = str_to_float( Float )
       
        
return 2;
    }
    else 
// Si la Contraseña del Jugador NO coincide con la Registrada de su Nick, podemos Kickearlo, mandarlo a Spect, un menú, etc..
    
{
        
BadPasswordIndex ] = 1
        
// Yo le voy a poner que si tiene mal la Password lo mande a Spect y el Menú de Ingresar la Password.
        
set_task0.1"clcmd_changeteam"Index // Si le cambiaron el nombre a esta función, también deben cambiarselo acá. Si no les aparece el Menú de Teams cuando hacen esto, usen set_task de 0.2.
        //....
    
}
   
    return 
1;
}

public 
MenuBadPasswordIndexMenuItem )
{
    if( 
Item == MENU_EXIT )
    {
        
menu_destroyMenu )
        return 
PLUGIN_HANDLED;
    }
    
    static 
AccessData[6], iName[64], CallBack
    menu_item_getinfo
MenuItemAccessData5iName63CallBack )
    switch( 
str_to_numData ) )
    {
        case 
1:
        {
            if( !
RegistradoIndex ] )
                
CMDRegistrarseIndex )
            else
                
client_cmdIndex"messagemode IntroducirContrasenia" )
        }
    }
    
    
menu_destroyMenu )
    return 
PLUGIN_HANDLED;

Datos Extras:
  • Una vez que te Registraste, no te podes volver a Registrar CON el mismo NICK.
  • Si tenes la Password incorrecta, los manda a un Menú de Logeo.
  • Cuando se te guardan los Datos por primera vez es algo asi: "Kiske" "PendejoAlcahuete 800"
  • Cuando me desconecte, que se guardan los Datos, se me guardaron así: "Kiske" "PendejoAlcahuete 4600", obviamente porque gane AmmoPacks.
  • No testee nada asi que si encuentran algún POSIBLE Bug, me lo hacen saber.
  • Algo que también quiero aclarar, es que para prohibir el CAMBIO de NICK, se fijen la primera parte SIN ZombiePlague, y fijense la Forward: register_forward( FM_ClientUserInfoChanged, "FWClientUserInfoChanged" ) que les va a servir para que no causen Bugs con los Nicks.

Bugs Encontrados:
  • Cuando te aparece el Menu de Registro / Login, si entras a otro Menú, se bugea y te deja entrar de CT y / o TT.
  • SOLUCIÓN: La única que logré hacer yo y efectiva, es bloqueando que entre a otros Menúes si Registrado[ Index ] era igual a 0 y / o si BadPassword[ Index ] era igual a 1.
¿ Como bloquear un Menú para que no pueda acceder a el si esas Variables están mal. ?
Todos los Menúes accesibles por SAY y / o CONSOLA, van a hacer que se bugeen, la solución es poner donde se llama la Función que se crea el MENÚ, el siguiente código:
PHP Code:
if( !RegistradoIndex ] || BadPasswordIndex] )
    return; 
Este pequeño cógido, deben ponerlo en todos los Menúes que se pueda acceder a traves de SAY y / o CONSOLA.
Attached Files
File Type: inc fvault.inc (7.9 KB, 2203 views)
__________________


Last edited by Kiske; 03-02-2014 at 09:02.
Kiske is offline
Send a message via Skype™ to Kiske
Old 03-26-2010, 08:59
ElViejo
This message has been deleted by ElViejo. Reason: remove_quotes, era para analizarlo, gracias
Old 03-26-2010, 09:50
Kiske
This message has been deleted by Kiske. Reason: Lee el Final del Post
Ditoo!
Member
Join Date: Mar 2010
Old 03-26-2010 , 10:03   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#2

Muy bueno... !!!. Gracias Kiske.
Ditoo! is offline
<-----(MATIAS)----->
Senior Member
Join Date: Aug 2009
Location: Argentina - Entre Rios
Old 03-26-2010 , 10:32   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#3

Muchas gracias Kiske ahora lo leo, lo necesitaba!!!

Y para que guarde ammo packs en ves de dinero, cambio cs_get_user_money por zp_get_user_ammopacks?
__________________
Zombie Assassin video:
Models:
IP: 201.212.2.13:27016

Last edited by <-----(MATIAS)----->; 03-26-2010 at 10:51.
<-----(MATIAS)-----> is offline
Send a message via MSN to <-----(MATIAS)----->
Old 03-26-2010, 10:59
Ditoo!
This message has been deleted by Ditoo!.
S34Qu4K3
Veteran Member
Join Date: Jan 2010
Location: Galicia
Old 03-26-2010 , 11:04   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#4

Pero por q no podes crear otra cuenta?
SI te cambias de nick puedes?
__________________

- ASM2SMA: Experimental AMXX Assembly encoder

- Defuse Bar Fix

Quote:
Originally Posted by Arkshine
I DON'T WANT TO SEE NOOOOOOOOOOOOOOO AHHHHH. MY EYES ARE ALREADY HURT.
S34Qu4K3 is offline
Darkete
Veteran Member
Join Date: Oct 2008
Location: Buenos Aires, Argentina
Old 03-26-2010 , 11:35   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#5

por el setinfo ?.. o quiza no con ese nombre

Edit: Buen tuto... gracias
__________________
Eh volvecido !!!
Darkete is offline
Send a message via MSN to Darkete Send a message via Skype™ to Darkete
Niiqo
Veteran Member
Join Date: Feb 2010
Location: Bs As, Argentina
Old 03-26-2010 , 11:40   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#6

Quote:
Originally Posted by <-----(MATIAS)-----> View Post
Muchas gracias Kiske ahora lo leo, lo necesitaba!!!

Y para que guarde ammo packs en ves de dinero, cambio cs_get_user_money por zp_get_user_ammopacks?
eso mismo iba a preguntar.-
Niiqo is offline
lucas_7_94
Leche Loco
Join Date: Mar 2009
Location: Argentina
Old 03-26-2010 , 11:42   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#7

Si matias.
__________________
ATWWMH - MiniDuels
Madness is like gravity, just need a little push.
lucas_7_94 is offline
Send a message via Skype™ to lucas_7_94
Ditoo!
Member
Join Date: Mar 2010
Old 03-26-2010 , 11:43   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#8

Ami no me kickea esta bien puesto? :S

PHP Code:
    }
    else
    {
        
BadPasswordIndex ] = 1
        server_cmd
("kick #%d ^"Password Incorrecta (setinfo _pass TUPASSWORD)^""get_user_useridIndex ) ) 
    }
    
    return 
1;

Ditoo! is offline
Old 03-26-2010, 12:16
vazmar
This message has been deleted by vazmar. Reason: B U E N O
lucas_7_94
Leche Loco
Join Date: Mar 2009
Location: Argentina
Old 03-26-2010 , 12:31   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#9

Quote:
Originally Posted by vazmar View Post
Creo que get_user_userid solo funciona con steam, sera por eso , nose
nah , sirve , no tiene nada que ver , authid usa steam.
__________________
ATWWMH - MiniDuels
Madness is like gravity, just need a little push.
lucas_7_94 is offline
Send a message via Skype™ to lucas_7_94
Ditoo!
Member
Join Date: Mar 2010
Old 03-26-2010 , 12:47   Re: [ES][TUT] Crear Cuentas y guardado de Datos.
#10

PHP Code:
        message_beginMSG_ONESVC_DISCONNECT_Index );
        
write_string"Password incorrecto" );
        
message_end( ); 
Corta la hise -.-
Ditoo! is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:50.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode