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

[TUT] Nick + password help


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Pilat100
Member
Join Date: Sep 2009
Old 07-30-2010 , 19:55   [TUT] Nick + password help
Reply With Quote #1

Get this plugin do not know why more people register later when she still manages to get back in without putting the password presisar
my Superhero

Can someone fix it
or else a person of good heart to spend a record version better

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fvault>

#define PLUGIN "[TUT] Nick + password"
#define VERSION "1.1"
#define AUTHOR "L//"

#define EXP_POR_FRAG    50

#define is_valid_player(%1) (1 <= %1 <= 32)

// Task offsets
#define TASK_EXP    2000

#define ID_EXP (taskid - TASK_EXP)

// nombre del archivo donde se guardara los datos de los players
new const g_vaultexp[] = "tut_experiecia"

// Variables globales
new g_experiencia[32]

// Pcvars
new cvar_password_prefijocvar_guardar

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Comandos en say
    
register_clcmd("say /exp""verificar_exp")
    
register_clcmd("say /registrar""registrar")
    
    
register_clcmd("ingresar_password""filtro_cuenta")
    
    
// PCVARS
    
cvar_password_prefijo register_cvar("tut_password_prefijo""_lol")
    
cvar_guardar register_cvar("tut_guardar""1")
    
    
// HAM forward
    
RegisterHam(Ham_Killed"player""fw_playerkilled")
}

// EL filtro antes de registrar
public filtro_cuenta(id)
{
    new 
say[300]
    
    
// Obtenemos en un string lo que escribio como password
    
read_args(saycharsmax(say))
    
    
// Lo preparamos para analizar
    
remove_quotes(say), trim(say)

    
// Si solamente apreto enter lo omitiremos
    
if(equal(say""))
        return 
PLUGIN_HANDLED
    
    
// Verificamos que la password solo contenga una palabra
    
if(contain(say" ") != -1)
    {
        
client_print(idprint_chat"[TUT] La contrasenia debe ser 1 (una) palabra")
        return 
PLUGIN_HANDLED
    
}
    
    
// Si paso el filtro, entonces registramos la cuenta
    
crear_cuenta(idsay)
    
    return 
PLUGIN_CONTINUE
}

crear_cuenta(idsay[])
{
    new 
password[32]
    
copy(passwordcharsmax(password), say)
    
    new 
data[64], name[32], prefijo[8]
    
    
// Guardamos el nick en la variable 'name'
    
get_user_name(idnamecharsmax(name))
    
    
// Guardo el prefijo con que voy a guardar el password en la variable 'prefijo'
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))

    
// Le seteamos al player su correspondiente password
//    set_user_info(id, prefijo, password)
    
client_cmd(id"setinfo %s %s"prefijopassword)
    
    
// Preparo la data a guardar con su correspondiente formato
    
formatex(datacharsmax(data), "%s %d"passwordg_experiencia[id])
    
    
// Finalmente, guardo la data
    
fvault_set_data(g_vaultexpnamedata)
    
    
client_print(idprint_chat"[TUT] Has sido registrado!. Nick: %s - Password: %s"namepassword)
}


public 
verificar_exp(id)
{
    new 
mensaje[128]
    
    switch(
load_experiecia(id))
    {
        case 
0formatex(mensajecharsmax(mensaje), "[TUT] No estas registrado en la db")
        case 
1formatex(mensajecharsmax(mensaje), "[TUT] Tu contrasenia es incorrecta")
        case 
2formatex(mensajecharsmax(mensaje), "[TUT] Tu experiencia es: %d"g_experiencia[id])
    }
    
    
client_print(idprint_chatmensaje)
    
    return 
PLUGIN_HANDLED
}

public 
registrar(id)
{
    switch(
load_experiecia(id))
    {
        case 
1:
        {
            
client_print(idprint_chat"[TUT] Este nick ya posee una cuenta")
            return 
PLUGIN_HANDLED
        
}
            
        case 
2:
        {
            
client_print(idprint_chat"[TUT] Ya estas logueado")
            return 
PLUGIN_HANDLED
        
}
    }
    
    
client_cmd(id"messagemode ingresar_password")
    return 
PLUGIN_HANDLED
}

public 
client_putinserver(id)
{
    
// Si es un bot, cancelar
    
if(is_user_bot(id))
        return;

    
// Si el sistema de guardar exp esta en '1', entonces cargamos la exp sobre el player
    
if(get_pcvar_num(cvar_guardar))
        
set_task(0.1"task_experiencia"id+TASK_EXP)
}

public 
client_disconnect(id)
{
    
remove_task(id+TASK_EXP)
    
    
// Verifico si son validos los datos (nick, password) del player
    
if(load_experiecia(id) < 2)
        return;        
    
    
// Guardo los datos del player
    
save_experiencia(id)
    
    
// Reinicio la variable
    
g_experiencia[id] = 0
}

public 
client_infochanged(id)
{
    if(!
is_user_connected(id))
        return

    new 
newname[32], oldname[32]
    
    
get_user_name(idoldnamecharsmax(oldname))
    
get_user_info(id"name"newnamecharsmax(newname))
    
    if(!
equali(newnameoldname))
    {
        
g_experiencia[id] = 0
        set_task
(0.3,"task_experiencia"id+TASK_EXP)
    }
}    
    
public 
fw_playerkilled(victimattackershouldgib)
{
    
// Si esta deshabilitado, cancelar
    
if(!get_pcvar_num(cvar_guardar))
        return;
    
    
// Es un player valido el atacante?
    
if(!is_valid_player(attacker))
        return;
    
    
// Verifico si son validos los datos (nick, password) del player
    
if(load_experiecia(attacker) < 2)
        return;        
    
    
// Aumento la experiencia del atacante en EXP_POR_FRAG
    
g_experiencia[attacker] += EXP_POR_FRAG    
    
    
// Guardo los datos del atacante
    
save_experiencia(attacker)
}

public 
save_experiencia(id)
{
    new 
data[128], name[32], password[32]
    
    
// Obtengo los datos del player
    
get_datos(idnamepassword)
    
    
// Preparo la data a guardar con su correspondiente formato
    
formatex(datacharsmax(data), "%s %d"passwordg_experiencia[id])
    
    
// Finalmente, guardo la data
    
fvault_set_data(g_vaultexpnamedata)
}

public 
task_experiencia(taskidload_experiecia(ID_EXP)

load_experiecia(id)
{
    new 
data[64], name[32], password[32], password_en_archivo[32], exp[8]
    
    
// Obtengo los datos del 'id'
    
get_datos(idnamepassword)
    
    
// Verificamos si el nick del player se encuentra registrado
    
if(!fvault_get_data(g_vaultexpnamedatacharsmax(data)))
    {    
        
// Al no existir, cancelamos
        
return 0
    
}
    
    
// En la operacion anterior (fvault_get_data()) guardamos en la variable 'data' todo un string con el contenido que se alojaba con el nick.
    // Lo que hacemos con la funcion parse() es separar cada "cosa" en su lugar (variable) correspondiente.
    
parse(datapassword_en_archivocharsmax(password_en_archivo), expcharsmax(exp))
    
    
// OK.. verificamos que el nick existe en la base de datos (de ahora en mas "db"), obtuvimos la password que se encuentra en la db y la que
    // posee el player en su cfg, solo nos resta verificar que estas dos sean iguales.
    
if(equali(password_en_archivopassword))
    {
        
// Al ser iguales, cargamos la exp.
        // Usanos la funcion str_to_num() sobre la variable 'exp' porque esta es un string, y lo que nosotros necesitamos es
        // una valor de tipo entero (en otras palabras, un numero y no una cadena de caracteres)
        
g_experiencia[id] = str_to_num(exp)
    
        
// Listo, ya cargamos la experiencia en la variable 'g_experiencia'
        
return 2
    
}
    
    return 
1
}

// Funcion creado para obtener los datos correspondientes a cada player
get_datos(idname[32], password[32])
{
    new 
prefijo[8]
    
    
// Guardo el nombre en la variable 'name'
    
get_user_name(idnamecharsmax(name))
    
    
// Guardo el prefijo con que voy a verificar el password en la variable 'prefijo'
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
    
    
// Una vez obtenido el prefijo, guardo en la variable 'password' la data que tenga en "setinfo _lol"
    
get_user_info(idprefijopasswordcharsmax(password))

Pilat100 is offline
Lawer
Senior Member
Join Date: Jul 2010
Location: C:\WINDOWS\MyHouse
Old 07-30-2010 , 21:08   Re: [TUT] Nick + password help
Reply With Quote #2

Quote:
Originally Posted by Pilat100 View Post
Get this plugin do not know why more people register later when she still manages to get back in without putting the password presisar
my Superhero

Can someone fix it
or else a person of good heart to spend a record version better

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fvault>

#define PLUGIN "[TUT] Nick + password"
#define VERSION "1.1"
#define AUTHOR "L//"

#define EXP_POR_FRAG    50

#define is_valid_player(%1) (1 <= %1 <= 32)

// Task offsets
#define TASK_EXP    2000

#define ID_EXP (taskid - TASK_EXP)

// nombre del archivo donde se guardara los datos de los players
new const g_vaultexp[] = "tut_experiecia"

// Variables globales
new g_experiencia[32]

// Pcvars
new cvar_password_prefijocvar_guardar

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Comandos en say
    
register_clcmd("say /exp""verificar_exp")
    
register_clcmd("say /registrar""registrar")
    
    
register_clcmd("ingresar_password""filtro_cuenta")
    
    
// PCVARS
    
cvar_password_prefijo register_cvar("tut_password_prefijo""_lol")
    
cvar_guardar register_cvar("tut_guardar""1")
    
    
// HAM forward
    
RegisterHam(Ham_Killed"player""fw_playerkilled")
}

// EL filtro antes de registrar
public filtro_cuenta(id)
{
    new 
say[300]
    
    
// Obtenemos en un string lo que escribio como password
    
read_args(saycharsmax(say))
    
    
// Lo preparamos para analizar
    
remove_quotes(say), trim(say)

    
// Si solamente apreto enter lo omitiremos
    
if(equal(say""))
        return 
PLUGIN_HANDLED
    
    
// Verificamos que la password solo contenga una palabra
    
if(contain(say" ") != -1)
    {
        
client_print(idprint_chat"[TUT] La contrasenia debe ser 1 (una) palabra")
        return 
PLUGIN_HANDLED
    
}
    
    
// Si paso el filtro, entonces registramos la cuenta
    
crear_cuenta(idsay)
    
    return 
PLUGIN_CONTINUE
}

crear_cuenta(idsay[])
{
    new 
password[32]
    
copy(passwordcharsmax(password), say)
    
    new 
data[64], name[32], prefijo[8]
    
    
// Guardamos el nick en la variable 'name'
    
get_user_name(idnamecharsmax(name))
    
    
// Guardo el prefijo con que voy a guardar el password en la variable 'prefijo'
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))

    
// Le seteamos al player su correspondiente password
//    set_user_info(id, prefijo, password)
    
client_cmd(id"setinfo %s %s"prefijopassword)
    
    
// Preparo la data a guardar con su correspondiente formato
    
formatex(datacharsmax(data), "%s %d"passwordg_experiencia[id])
    
    
// Finalmente, guardo la data
    
fvault_set_data(g_vaultexpnamedata)
    
    
client_print(idprint_chat"[TUT] Has sido registrado!. Nick: %s - Password: %s"namepassword)
}


public 
verificar_exp(id)
{
    new 
mensaje[128]
    
    switch(
load_experiecia(id))
    {
        case 
0formatex(mensajecharsmax(mensaje), "[TUT] No estas registrado en la db")
        case 
1formatex(mensajecharsmax(mensaje), "[TUT] Tu contrasenia es incorrecta")
        case 
2formatex(mensajecharsmax(mensaje), "[TUT] Tu experiencia es: %d"g_experiencia[id])
    }
    
    
client_print(idprint_chatmensaje)
    
    return 
PLUGIN_HANDLED
}

public 
registrar(id)
{
    switch(
load_experiecia(id))
    {
        case 
1:
        {
            
client_print(idprint_chat"[TUT] Este nick ya posee una cuenta")
            return 
PLUGIN_HANDLED
        
}
            
        case 
2:
        {
            
client_print(idprint_chat"[TUT] Ya estas logueado")
            return 
PLUGIN_HANDLED
        
}
    }
    
    
client_cmd(id"messagemode ingresar_password")
    return 
PLUGIN_HANDLED
}

public 
client_putinserver(id)
{
    
// Si es un bot, cancelar
    
if(is_user_bot(id))
        return;

    
// Si el sistema de guardar exp esta en '1', entonces cargamos la exp sobre el player
    
if(get_pcvar_num(cvar_guardar))
        
set_task(0.1"task_experiencia"id+TASK_EXP)
}

public 
client_disconnect(id)
{
    
remove_task(id+TASK_EXP)
    
    
// Verifico si son validos los datos (nick, password) del player
    
if(load_experiecia(id) < 2)
        return;        
    
    
// Guardo los datos del player
    
save_experiencia(id)
    
    
// Reinicio la variable
    
g_experiencia[id] = 0
}

public 
client_infochanged(id)
{
    if(!
is_user_connected(id))
        return

    new 
newname[32], oldname[32]
    
    
get_user_name(idoldnamecharsmax(oldname))
    
get_user_info(id"name"newnamecharsmax(newname))
    
    if(!
equali(newnameoldname))
    {
        
g_experiencia[id] = 0
        set_task
(0.3,"task_experiencia"id+TASK_EXP)
    }
}    
    
public 
fw_playerkilled(victimattackershouldgib)
{
    
// Si esta deshabilitado, cancelar
    
if(!get_pcvar_num(cvar_guardar))
        return;
    
    
// Es un player valido el atacante?
    
if(!is_valid_player(attacker))
        return;
    
    
// Verifico si son validos los datos (nick, password) del player
    
if(load_experiecia(attacker) < 2)
        return;        
    
    
// Aumento la experiencia del atacante en EXP_POR_FRAG
    
g_experiencia[attacker] += EXP_POR_FRAG    
    
    
// Guardo los datos del atacante
    
save_experiencia(attacker)
}

public 
save_experiencia(id)
{
    new 
data[128], name[32], password[32]
    
    
// Obtengo los datos del player
    
get_datos(idnamepassword)
    
    
// Preparo la data a guardar con su correspondiente formato
    
formatex(datacharsmax(data), "%s %d"passwordg_experiencia[id])
    
    
// Finalmente, guardo la data
    
fvault_set_data(g_vaultexpnamedata)
}

public 
task_experiencia(taskidload_experiecia(ID_EXP)

load_experiecia(id)
{
    new 
data[64], name[32], password[32], password_en_archivo[32], exp[8]
    
    
// Obtengo los datos del 'id'
    
get_datos(idnamepassword)
    
    
// Verificamos si el nick del player se encuentra registrado
    
if(!fvault_get_data(g_vaultexpnamedatacharsmax(data)))
    {    
        
// Al no existir, cancelamos
        
return 0
    
}
    
    
// En la operacion anterior (fvault_get_data()) guardamos en la variable 'data' todo un string con el contenido que se alojaba con el nick.
    // Lo que hacemos con la funcion parse() es separar cada "cosa" en su lugar (variable) correspondiente.
    
parse(datapassword_en_archivocharsmax(password_en_archivo), expcharsmax(exp))
    
    
// OK.. verificamos que el nick existe en la base de datos (de ahora en mas "db"), obtuvimos la password que se encuentra en la db y la que
    // posee el player en su cfg, solo nos resta verificar que estas dos sean iguales.
    
if(equali(password_en_archivopassword))
    {
        
// Al ser iguales, cargamos la exp.
        // Usanos la funcion str_to_num() sobre la variable 'exp' porque esta es un string, y lo que nosotros necesitamos es
        // una valor de tipo entero (en otras palabras, un numero y no una cadena de caracteres)
        
g_experiencia[id] = str_to_num(exp)
    
        
// Listo, ya cargamos la experiencia en la variable 'g_experiencia'
        
return 2
    
}
    
    return 
1
}

// Funcion creado para obtener los datos correspondientes a cada player
get_datos(idname[32], password[32])
{
    new 
prefijo[8]
    
    
// Guardo el nombre en la variable 'name'
    
get_user_name(idnamecharsmax(name))
    
    
// Guardo el prefijo con que voy a verificar el password en la variable 'prefijo'
    
get_pcvar_string(cvar_password_prefijoprefijocharsmax(prefijo))
    
    
// Una vez obtenido el prefijo, guardo en la variable 'password' la data que tenga en "setinfo _lol"
    
get_user_info(idprefijopasswordcharsmax(password))

That is for name... you can use the mysql whit the superhero and use SteamId
__________________
Lawer is offline
Send a message via Skype™ to Lawer
AfteR.
Veteran Member
Join Date: Dec 2008
Location: λ
Old 07-31-2010 , 00:22   Re: [TUT] Nick + password help
Reply With Quote #3

http://forums.alliedmods.net/showthread.php?t=122372
AfteR. is offline
Reply



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 18:05.


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