1. After changing the player's name, the admin core plugin reloads his access:
2.
Code:
public setTag(id)
{
/* Why do you remove the player's flags? */
remove_user_flags(id, -1)
new flags = get_user_flags(id), sflags[MAX_NAME_LENGTH]
get_flags(flags, sflags, charsmax(sflags))
log_amx("[1] My flags are now %s", sflags)
if(containi(g_szPlayerName[id], gCvars[VarClanPrefix]) != -1)
{
replace(g_szPlayerName[id], charsmax(g_szPlayerName), gCvars[VarClanPrefix], "")
set_user_info(id, "name", g_szPlayerName[id])
set_user_flags(id, ADMIN_USER)
}
else
{
new szFullName[MAX_NAME_LENGTH]
formatex(szFullName, charsmax(szFullName), "%s %s", gCvars[VarClanPrefix], g_szPlayerName[id])
copy(g_szPlayerName[id], charsmax(g_szPlayerName), szFullName)
set_user_info(id, "name", szFullName)
log_amx("[2] Read flags = %i", read_flags(gCvars[VarFlags]))
set_user_flags(id, read_flags(gCvars[VarFlags]))
log_amx("[3] Setting flags = %s", gCvars[VarFlags])
}
/* You still get the inital value of flags, you need to get them again */
flags = get_user_flags(id)
get_flags(flags, sflags, charsmax(sflags))
log_amx("[4] My flags are %s", sflags)
return PLUGIN_HANDLED
}