PHP- Kodu:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <nvault>
#define FLAG_LOAD ADMIN_CFG
#define MAX_FLAGS 33
new g_listen, g_custom_current, g_custom_others;
new prefix_count = 0, prefix_collect[MAX_FLAGS][33], flag_listen[2], flag_custom_current[2], flag_custom_others[2], flags_collect[MAX_FLAGS][2], client_prefix[33][33];
new g_saytxt, g_maxplayers, g_nvault;
new g_typed[192], g_message[192], g_name[32], typed_prefix[33];
public plugin_init()
{
register_plugin("Admin Prefixes", "1.0", "m0skVi4a ;]")
g_listen = register_cvar("ap_listen", "0")
g_custom_current = register_cvar("ap_custom_current", "1")
g_custom_others = register_cvar("ap_custom_others", "1")
g_saytxt = get_user_msgid ("SayText")
g_maxplayers = get_maxplayers()
g_nvault = nvault_open("CustomAdminPrefixes")
register_message(g_saytxt, "DuplicateMessage")
register_concmd("ap_reloadfile", "LoadFile")
register_concmd("ap_put", "SetPrefix")
register_concmd("ap_put_player", "SetPlayerPrefix")
register_clcmd("say", "HookSay")
register_clcmd("say_team", "HookSayTeam")
LoadFile(0)
}
public LoadFile(id)
{
if(!(get_user_flags(id) & FLAG_LOAD))
{
console_print(id, "[AdminPrefixes] You do not have the flag, needed for using this option!")
return PLUGIN_HANDLED
}
new config_dir[64], file[128], text[64], prefix[32], flags[2], length, line = 0;
prefix_count = 0
get_configsdir(config_dir, charsmax(config_dir))
formatex(file, charsmax(file), "%s/admin_prefixes.ini", config_dir)
if(!file_exists(file))
{
new error[256]
formatex(error, charsmax(error), "[AdminPrefixes] Admin Prefix file - %s not found!", file)
set_fail_state(error)
}
while(read_file(file, line , text, charsmax(text), length) && prefix_count <= MAX_FLAGS)
{
if(!text[0] || text[0] == '^n' || text[0] == ';')
{
line++
continue
}
parse(text, prefix, charsmax(prefix), flags, charsmax(flags))
if(!prefix[0] || !flags[0])
{
line++
continue
}
if(equal(prefix, "ADMIN_LISTEN"))
{
flag_listen = flags
line++
continue
}
if(equal(prefix, "CUSTOM_CURRENT"))
{
flag_custom_current = flags
line++
continue
}
if(equal(prefix, "CUSTOM_OTHERS"))
{
flag_custom_others = flags
line++
continue
}
replace_all(prefix, charsmax(prefix), "!g", "^x04")
replace_all(prefix, charsmax(prefix), "!t", "^x03")
replace_all(prefix, charsmax(prefix), "!n", "^x01")
prefix_count++
prefix_collect[prefix_count] = prefix
flags_collect[prefix_count] = flags
line++
}
if(flag_listen[0])
{
server_print("[AdminPrefixes] LOADED: Listen Option for players with Flag: %s", flag_listen)
}
if(flag_custom_current[0])
{
server_print("[AdminPrefixes] LOADED: Custom Prefix Option for players with Flag: %s", flag_custom_current)
}
if(flag_custom_others[0])
{
server_print("[AdminPrefixes] LOADED: Setting Custom Prefix Option for players with Flag: %s", flag_custom_others)
}
if(prefix_count > 0)
{
for(new i = 1; i <= prefix_count; i++)
{
server_print("[AdminPrefixes] LOADED: Prefix: %s for players with Flag: %s", prefix_collect[i], flags_collect[i])
}
}
else
{
server_print("[AdminPrefixes] No Prefixes were been found!")
}
get_user_name(id, g_name, charsmax(g_name))
server_print("[AdminPrefixes] Plugin's file was been loaded by %s", g_name)
console_print(id, "[AdminPrefixes] Plugin's file was been loaded!")
for(new i = 1; i <= g_maxplayers; i++)
{
PutClientPrefix(i)
}
return PLUGIN_HANDLED
}
public client_connect(id)
{
client_prefix[id] = ""
set_task(1.0, "PutClientPrefix", id)
}
public client_disconnect(id)
{
client_prefix[id] = ""
}
public PutClientPrefix(id)
{
new nvault_prefix[33];
get_user_name(id, g_name, charsmax(g_name))
new data = nvault_get(g_nvault, g_name, nvault_prefix, charsmax(nvault_prefix))
if(data && get_pcvar_num(g_custom_current) && flag_custom_current[0] && get_user_flags(id) & read_flags(flag_custom_current))
{
client_prefix[id] = nvault_prefix
}
else
{
for(new i = 1; i <= prefix_count; i++)
{
if(get_user_flags(id) & read_flags(flags_collect[i]))
{
client_prefix[id] = prefix_collect[i]
}
}
}
}
public DuplicateMessage(id)
{
return PLUGIN_HANDLED
}
public HookSay(id)
{
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)
if(equal(g_typed, ""))
return PLUGIN_CONTINUE
get_user_name(id, g_name, charsmax(g_name))
if(client_prefix[id][0])
{
if(is_user_alive(id))
{
formatex(g_message, charsmax(g_message), "^4%s^3 %s :^4 %s", client_prefix[id], g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1*DEAD*^4 %s^3 %s :^4 %s", client_prefix[id], g_name, g_typed)
}
}
else
{
if(is_user_alive(id))
{
formatex(g_message, charsmax(g_message), "^3%s :^1 %s", g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1*DEAD*^3 %s :^1 %s", g_name, g_typed)
}
}
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue;
if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && flag_listen[0] && get_user_flags(i) & read_flags(flag_listen))
{
message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
write_byte(id)
write_string(g_message)
message_end()
}
}
return PLUGIN_CONTINUE
}
public HookSayTeam(id)
{
new g_team[18];
read_args(g_typed, charsmax(g_typed))
remove_quotes(g_typed)
if(equal(g_typed, ""))
return PLUGIN_CONTINUE
get_user_name(id, g_name, charsmax(g_name))
switch(cs_get_user_team(id))
{
case CS_TEAM_T:
{
g_team = "Terrorist"
}
case CS_TEAM_CT:
{
g_team = "Counter-Terrorist"
}
default:
{
g_team = "Spectator"
}
}
if(client_prefix[id][0])
{
if(is_user_alive(id))
{
formatex(g_message, charsmax(g_message), "^1(%s)^4 %s^3 %s :^4 %s", g_team, client_prefix[id], g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1*DEAD* (%s)^4 %s^3 %s :^4 %s", g_team, client_prefix[id], g_name, g_typed)
}
}
else
{
if(is_user_alive(id))
{
formatex(g_message, charsmax(g_message), "^1(%s)^3 %s :^1 %s", g_team, g_name, g_typed)
}
else
{
formatex(g_message, charsmax(g_message), "^1*DEAD* (%s)^3 %s :^1 %s", g_team, g_name, g_typed)
}
}
for(new i = 1; i <= g_maxplayers; i++)
{
if(!is_user_connected(i))
continue
if(cs_get_user_team(id) == cs_get_user_team(i) || get_pcvar_num(g_listen) && flag_listen[0] && get_user_flags(i) & read_flags(flag_listen))
{
if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && flag_listen[0] && get_user_flags(i) & read_flags(flag_listen))
{
message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i)
write_byte(id)
write_string(g_message)
message_end()
}
}
}
return PLUGIN_CONTINUE
}
public SetPrefix(id)
{
if(!get_pcvar_num(g_custom_current) || !flag_custom_current[0])
{
console_print(id, "[AdminPrefixes] This option is currently disabled!")
return PLUGIN_HANDLED
}
if(!(get_user_flags(id) & read_flags(flag_custom_current)))
{
console_print(id, "[AdminPrefixes] You do not have the flag, needed for using this option!")
return PLUGIN_HANDLED
}
read_args(typed_prefix, charsmax(typed_prefix))
remove_quotes(typed_prefix)
get_user_name(id, g_name, charsmax(g_name))
if(equal(typed_prefix, ""))
{
nvault_remove(g_nvault, g_name)
console_print(id, "[AdminPrefix] You have successfully removed your prefix.")
server_print("[AdminPrefix] Player %s removed his prefix", g_name)
PutClientPrefix(id)
return PLUGIN_HANDLED
}
replace_all(typed_prefix, charsmax(typed_prefix), "!g", "^x04")
replace_all(typed_prefix, charsmax(typed_prefix), "!t", "^x03")
replace_all(typed_prefix, charsmax(typed_prefix), "!n", "^x01")
nvault_set(g_nvault, g_name, typed_prefix)
client_prefix[id] = typed_prefix
console_print(id, "[AdminPrefix] You have successfully changed your prefix to %s", typed_prefix)
server_print("[AdminPrefix] Player %s changed his prefix to %s", g_name, typed_prefix)
return PLUGIN_HANDLED
}
public SetPlayerPrefix(id)
{
if(!get_pcvar_num(g_custom_current) || !flag_custom_current[0] || !get_pcvar_num(g_custom_others) || !flag_custom_others[0])
{
console_print(id, "[AdminPrefixes] This option is currently disabled!")
return PLUGIN_HANDLED
}
if(!(get_user_flags(id) & read_flags(flag_custom_others)))
{
console_print(id, "[AdminPrefixes] You do not have the flag, needed for using this option!")
return PLUGIN_HANDLED
}
new name_tag[64], typed_name[32];
read_args(name_tag, charsmax(name_tag))
remove_quotes(name_tag)
parse(name_tag, typed_name, charsmax(typed_name), typed_prefix, charsmax(typed_prefix))
get_user_name(id, g_name, charsmax(g_name))
new target = cmd_target(id, typed_name, 1)
if(!target)
return PLUGIN_HANDLED
if(equal(typed_prefix, ""))
{
nvault_remove(g_nvault, typed_name)
console_print(id, "[AdminPrefixes] You have successfully removed ^"%s^"'s prefix.", typed_name)
server_print("[AdminPrefixes] Player %s removed ^"%s^"'s prefix", g_name, typed_name)
PutClientPrefix(target)
return PLUGIN_HANDLED
}
replace_all(typed_prefix, charsmax(typed_prefix), "!g", "^x04")
replace_all(typed_prefix, charsmax(typed_prefix), "!t", "^x03")
replace_all(typed_prefix, charsmax(typed_prefix), "!n", "^x01")
nvault_set(g_nvault, typed_name, typed_prefix)
client_prefix[target] = typed_prefix
console_print(id, "[AdminPrefixes] You have successfully changed ^"%s^"'s prefix to %s", typed_name, typed_prefix)
server_print("[AdminPrefixes] Player %s changed ^"%s^"'s prefix to %s", g_name, typed_name, typed_prefix)
return PLUGIN_HANDLED
}
admin_prefixes.ini