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

Hokear cambio de nick


  
 
 
Thread Tools Display Modes
Author Message
MexPower
Veteran Member
Join Date: Nov 2012
Old 06-13-2013 , 20:50   Hokear cambio de nick
#1

Hola bueno quiero hokear el cambio de nick
PHP Code:
public client_infochanged(id) return PLUGIN_HANDLED 
Nose porque no me funciona U.U o que me falta ?
__________________
Allied Modders En Español
MexPower is offline
TimooCS
Veteran Member
Join Date: Dec 2012
Location: Argentina
Old 06-13-2013 , 20:51   Re: Hokear cambio de nick
#2

fijate en el guardado de manu...
__________________
TimooCS is offline
Send a message via MSN to TimooCS Send a message via Skype™ to TimooCS
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 06-13-2013 , 21:45   Re: Hokear cambio de nick
#3

Quote:
Originally Posted by MexPower View Post
Hola bueno quiero hokear el cambio de nick
PHP Code:
public client_infochanged(id) return PLUGIN_HANDLED 
Nose porque no me funciona U.U o que me falta ?
Haciendo eso vas a cagar muchas cosas...
El client infochanged se llama para muchas otras cosas aparte del cambio de nombre.

Lo que pasa es lo siguiente, esa función es una de las que se llaman en el momento de que alguien cambia el nombre pero no quiere decir que bloqueandola el nombre no se cambie. Pero si guardás el nombre actual del jugador en una variable global vas a saber su nombre anterior. Entonces vos sabes que para cada cambio de nombre se va a llamar a client info changed, ahí es cuando le asignas el nombre anterior cada vez que lo intente cambiar y listo.

PD: Tené en cuenta que cuando vos le cambiás el nombre desde el código se vuelve a llamar a la misma forward, entonces si no verificás si el nombre que tenía no cambió antes de asignarle el viejo te expulsará por overflow.
__________________

Last edited by Neeeeeeeeeel.-; 06-13-2013 at 21:48.
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
MexPower
Veteran Member
Join Date: Nov 2012
Old 06-13-2013 , 23:49   Re: Hokear cambio de nick
#4

Si, ya lo tengo
PHP Code:
public client_infochanged(id)
{
    new 
szName[32], szOldName[32]
    
get_user_name(id,szOldName,31);get_user_info(id,"name",szName,31)
    
    if(
equal(szOldName,szName)) return PLUGIN_CONTINUE
        
    client_cmd
(id,"name %s",szOldName);set_user_info(id,"name",szOldName)
    
    return 
PLUGIN_HANDLED

Ahora tengo una duda, puedo quitar el mensaje de que
"Mexpower se cambio el nick a Lolaso"
Si es asi, como ?
__________________
Allied Modders En Español

Last edited by MexPower; 06-14-2013 at 00:40.
MexPower is offline
baneado
Veteran Member
Join Date: Dec 2012
Location: amxmodx-es.com
Old 06-14-2013 , 08:29   Re: Hokear cambio de nick
#5

sacado del Zombie Apocalypse, creo que al cambiarte el nombre sin estar logueado no te muestra el mensaje, pruébalo porque no me acuerdo...
PHP Code:
register_forward(FM_ClientUserInfoChanged"fw_ClientUserInfoChanged"// en plugin_init

// mucho code...

// Forward Client User Info Changed -prevent players from changing name-
public fw_ClientUserInfoChanged(id)
{
    
// Connected?
    
if (!g_isconnected[id]) return FMRES_IGNORED;
    
    
// Get client name
    
static newname[32], oldname[32]
    
get_user_name(idoldnamecharsmax(oldname))
    
get_user_info(id"name"newnamecharsmax(newname))
    
    
// Same name?
    
if (equal(newnameoldname)) return FMRES_IGNORED;
    
    
// Already logged (character selected)
    
if (g_status[id] >= ONLINE_SPEC)
    {
        
// Put old name
        
set_user_info(id"name"oldname)
        
zp_colored_print(id"^x04[ZA]^x01 No puedes cambiar el nombre estando logueado.")
        return 
FMRES_IGNORED;
    }
    
    
// Cache new player's name
    
copy(g_playername[id], charsmax(g_playername[]), newname)
        
    return 
FMRES_SUPERCEDE;


Last edited by baneado; 06-14-2013 at 08:32.
baneado is offline
MexPower
Veteran Member
Join Date: Nov 2012
Old 06-14-2013 , 14:42   Re: Hokear cambio de nick
#6

Okey, entonces quedaria asi ?
PHP Code:
public fw_ClientUserInfoChanged(id)
{
    if (!
g_isConnected[id]) return FMRES_IGNORED;
    
    static 
newname[32], oldname[32]
    
get_user_name(idoldnamecharsmax(oldname))
    
get_user_info(id"name"newnamecharsmax(newname))
    
    if (
equal(newnameoldname)) return FMRES_IGNORED;
    
        
set_user_info(id"name"oldname)
        
print_color(id"%s^x04 No puedes cambiarte el nick dentro del servidor."MODNAME)
        return 
FMRES_IGNORED;
        
    return 
FMRES_SUPERCEDE;

__________________
Allied Modders En Español
MexPower is offline
3MCy Daimont
Senior Member
Join Date: Oct 2012
Old 06-14-2013 , 16:03   Re: Hokear cambio de nick
#7

Mira este es el que uso yo en mi sistema de cuentas Y Funciona sin problemas.


PHP Code:

public plugin_init()
{
       
register_message(get_user_msgid("SayText"), "MessageNameChange")
       
register_forward(FM_ClientUserInfoChanged"fw_ClientInfoChanged")
}

public 
MessageNameChange(msgiddestreceiver)
{
    static 
info[64];
    
get_msg_arg_string(2infosizeof(info) - 1);
    
    if(!
equali(info"#Cstrike_Name_Change")) 
        return 
PLUGIN_CONTINUE;
    
    return 
PLUGIN_HANDLED;
}

public 
fw_ClientInfoChanged(idbuffer)
{
    if(
is_user_connected(id))
    {
        static 
szActualName[32], szNewName[32]
        
        
get_user_name(idszActualNamecharsmax(szActualName))
        
engfunc(EngFunc_InfoKeyValuebuffer"name"szNewNamecharsmax(szNewName))
        
        if(
equal(szNewNameszActualName))
            return 
FMRES_IGNORED
    
        engfunc
(EngFunc_SetClientKeyValueidbuffer"name"szActualName)
        
client_cmd(id"name ^"%s^""szActualName)
        
client_print(idprint_console"El cambio de nombre esta Prohibido, por Seguridad")
        
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED

__________________
Clases Humanas v2.0 Con/Sin Restriccion de Niveles
El premio de una buena accion, es haberla hecho...
Te Amo GokuX <3
I Love those believed.

Last edited by 3MCy Daimont; 06-14-2013 at 16:03.
3MCy Daimont is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 06-15-2013 , 00:25   Re: Hokear cambio de nick
#8

Quote:
Originally Posted by MexPower View Post
Si, ya lo tengo
PHP Code:
public client_infochanged(id)
{
    new 
szName[32], szOldName[32]
    
get_user_name(id,szOldName,31);get_user_info(id,"name",szName,31)
    
    if(
equal(szOldName,szName)) return PLUGIN_CONTINUE
        
    client_cmd
(id,"name %s",szOldName);set_user_info(id,"name",szOldName)
    
    return 
PLUGIN_HANDLED

Ahora tengo una duda, puedo quitar el mensaje de que
"Mexpower se cambio el nick a Lolaso"
Si es asi, como ?
Si fuera vos, no pondría un return PLUGIN_HANDLED ahí...
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
baneado
Veteran Member
Join Date: Dec 2012
Location: amxmodx-es.com
Old 06-15-2013 , 07:06   Re: Hokear cambio de nick
#9

Quote:
Originally Posted by MexPower View Post
Okey, entonces quedaria asi ?
PHP Code:
public fw_ClientUserInfoChanged(id)
{
    if (!
g_isConnected[id]) return FMRES_IGNORED;
    
    static 
newname[32], oldname[32]
    
get_user_name(idoldnamecharsmax(oldname))
    
get_user_info(id"name"newnamecharsmax(newname))
    
    if (
equal(newnameoldname)) return FMRES_IGNORED;
    
        
set_user_info(id"name"oldname)
        
print_color(id"%s^x04 No puedes cambiarte el nick dentro del servidor."MODNAME)
        return 
FMRES_IGNORED;
        
    return 
FMRES_SUPERCEDE;

quítale el supercede y prueba

Quote:
Originally Posted by 3MCy Daimont View Post
Mira este es el que uso yo en mi sistema de cuentas Y Funciona sin problemas.


PHP Code:

public plugin_init()
{
       
register_message(get_user_msgid("SayText"), "MessageNameChange")
       
register_forward(FM_ClientUserInfoChanged"fw_ClientInfoChanged")
}

public 
MessageNameChange(msgiddestreceiver)
{
    static 
info[64];
    
get_msg_arg_string(2infosizeof(info) - 1);
    
    if(!
equali(info"#Cstrike_Name_Change")) 
        return 
PLUGIN_CONTINUE;
    
    return 
PLUGIN_HANDLED;
}

public 
fw_ClientInfoChanged(idbuffer)
{
    if(
is_user_connected(id))
    {
        static 
szActualName[32], szNewName[32]
        
        
get_user_name(idszActualNamecharsmax(szActualName))
        
engfunc(EngFunc_InfoKeyValuebuffer"name"szNewNamecharsmax(szNewName))
        
        if(
equal(szNewNameszActualName))
            return 
FMRES_IGNORED
    
        engfunc
(EngFunc_SetClientKeyValueidbuffer"name"szActualName)
        
client_cmd(id"name ^"%s^""szActualName)
        
client_print(idprint_console"El cambio de nombre esta Prohibido, por Seguridad")
        
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_IGNORED

client_cmd... no se merece ser utilizado ahí, lo mismo digo del EngFunc_SetClientKeyValue

y no hace falta hacer un register_message para que no aparezca ese mensaje, con el FMRES_IGNORED creo que sobra.
baneado is offline
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 06-15-2013 , 09:22   Re: Hokear cambio de nick
#10

@baneado
Uno de los dos tiene que estar sí o sí, sino se cambiará el nombre. Leé lo que expliqué mas arriba.
__________________
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
 



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 20:29.


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