Code:
#include <amxmodx>
native set_utf8_name(index, uname[]);
#define PLUGIN_NAME "NewPlugin"
#define PLUGIN_VERSION "0.1"
#define PLUGIN_AUTHOR "LittleKu-Lv"
new username[33][32];
new Array:g_aname;
new Array:g_uname;
new line;
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
g_aname = ArrayCreate(32);
g_uname = ArrayCreate(32);
register_clcmd("say", "cmdsay");
}
public cmdsay(id)
{
new cmd[38]
new arg1[5], arg2[32]
read_args(cmd, 37)
remove_quotes(cmd)
if (parse(cmd, arg1, 4, arg2, 31) == 2)
{
if (equali(arg1, "name"))
{
set_utf8_name(id, arg2);
return PLUGIN_HANDLED;
}
}
return PLUGIN_CONTINUE
}
public client_putinserver(id)
{
get_user_name(id, username[id], charsmax(username[]))
set_task(5.0, "rename", id, _, _, "b")
}
public rename(id)
{
new aname[32], uname[32];
if (is_user_alive(id))
{
for(new i = 0; i < line; i++)
{
ArrayGetString(g_aname, i, aname, charsmax(aname));
ArrayGetString(g_uname, i, uname, charsmax(uname));
if (contain(username[id], aname))
{
replace_all(username[id], charsmax(username[]), aname, uname);
}
}
set_utf8_name(id, username[id]);
remove_task(id);
}
}
public client_disconnect(id)
{
username[id][0] = '^0';
}
public plugin_cfg()
{
new buffer[256], enname[32], cnname[32];
new fp = fopen("uname.txt", "rt")
if (!fp)
return ;
while (!feof(fp))
{
fgets(fp, buffer, charsmax(buffer))
trim(buffer)
if (buffer[0] == ';' || buffer[0] == '/' && buffer[1] == '/') continue
if (strlen(buffer) > 3 && buffer[0] == -17 && buffer[1] == -69 && buffer[2] == -65)//BOM
{
copy(buffer, charsmax(buffer), buffer[3])
}
parse(buffer, enname, charsmax(enname), cnname, charsmax(cnname))
ArrayPushString(g_aname, enname);
ArrayPushString(g_uname, cnname);
line++
}
fclose(fp);
}