Changing the player name

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
27
Реакции
1
I want to change the name of the player I have determined as follows;
X Tag @ Name

In short, I want to add a tag to the beginning of the player's name.
I tried the following methods but failed;
1) set_entvar(id, var_netname, fmt("X Tag @ %n", i));
2) set_user_info(id, "name", fmt("X Tag @ %n", i));
3) server_cmd...

After changing the name of the player, he should not be able to make another name other than the name I have determined.
Thank you from now.
 
Сообщения
336
Реакции
414
Помог
7 раз(а)
Находясь на сервере, игроку можно плагином запретить смену ника, но вне сервера, вы не можете этого сделать, а если хотите запрещать заходить на сервер с измененным ником, то нужно запомнить по БД
 
Сообщения
27
Реакции
1
Находясь на сервере, игроку можно плагином запретить смену ника, но вне сервера, вы не можете этого сделать, а если хотите запрещать заходить на сервер с измененным ником, то нужно запомнить по БД
No no, I want the player to play with a specific tag while in the game. But you should never remove this tag from your name.
 
Сообщения
336
Реакции
414
Помог
7 раз(а)
Код:
#include <amxmodx>
#include <reapi>

// https://dev-cs.ru/resources/73/update/1899/
#if REAPI_VERSION < 59177
    #define ATYPE_BOOL ATYPE_INTEGER
#endif

public plugin_init()
{
    register_plugin("One Name", "0.0.1", "ConnorMcLeod & Albertio");

    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "SetClientUserInfoName_Pre", false);
}

public SetClientUserInfoName_Pre(id, const infobuffer[], const szNewName[])
{
    static szOldName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
    if(szOldName[0])
    {
        if(!equal(szOldName, szNewName))
        {
            set_user_info(id, "name", szOldName);
            SetHookChainReturn(ATYPE_BOOL, false);
            return HC_SUPERCEDE;
        }
    }
    return HC_CONTINUE;
}
p.s. подсказал BlackSignature
 
Последнее редактирование:
  • Нравится
Реакции: ssx
Сообщения
27
Реакции
1
Код:
#include <amxmodx>
#include <reapi>

// https://dev-cs.ru/resources/73/update/1899/
#if REAPI_VERSION < 59177
    #define ATYPE_BOOL ATYPE_INTEGER
#endif

public plugin_init()
{
    register_plugin("One Name", "0.0.1", "ConnorMcLeod & Albertio");

    RegisterHookChain(RG_CBasePlayer_SetClientUserInfoName, "SetClientUserInfoName_Pre", false);
}

public SetClientUserInfoName_Pre(id, const infobuffer[], const szNewName[])
{
    static szOldName[32];
    get_entvar(id, var_netname, szOldName, charsmax(szOldName));
    if(szOldName[0])
    {
        if(!equal(szOldName, szNewName))
        {
            set_user_info(id, "name", szOldName);
            SetHookChainReturn(ATYPE_BOOL, false);
            return HC_SUPERCEDE;
        }
    }
    return HC_CONTINUE;
}
p.s. подсказал BlackSignature
Firstly, thank you. But when is this process triggered? I think it becomes active when the player changes his name, but I want to change the player's name another time.
For example, when the player was born.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу