10-07-13, 20:35
ap_reloadfile yapman gerekiyor. Plugin sadece girişte yetkiye göre kalıcı tag veriyor. Bu yüzden bu plugini öneriyorum. Diğer pluginler her yazı yazışında kontrol ediyor. Bu da performansı boşa kullanması demektir. Nick değişince tagın kalmasının sebebi de bu. Ancak küçük bir değişiklik yaptım. Bunu kullanın.
Bu plugini öylece bulup atmadım. Kendi serverlarımda en az 5 ay kullandım. Ayrıca plugin hatalı değil. Bilmediğiniz, anlamadığınız konularda üç kuruşluk edit bilginizle boş boş konuşup laf kalabalığı yapmayın. Tabi ingilizce bilmediğiniz için o sitenin ne sitesi olduğunu da anlamamışsınızdır. Ayrıca, yanlış bilgilendirici mesajlar göndermek bu bölümde ceza alma sebebidir.[/i][/i][/i][/i]
PHP Code:
#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 client_infochanged(id) {
set_task(0.1,"UpdatePrefix",id)
}
public UpdatePrefix(id) {
client_prefix[id] = "";
PutClientPrefix(id)
}
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)
}
}
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))
{
client_prefix[id] = prefix_collect
}
}
}
}
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
}
kral0922 dateline='' Wrote: Yardimci olacagimda serverinizdeki oto slotu kapatirsanizda olur veya plugini editliyip vereyim.. Seçiminizi yapin vereyim
- - - - - - - - - -
Haci plugin hatali ilk kontrol et öyle ver bi daha sen ing sitelerden plugini bulmuşsun atmissin ama kodun içeriğinde adam kendi serverine ayarlamis
Bu plugini öylece bulup atmadım. Kendi serverlarımda en az 5 ay kullandım. Ayrıca plugin hatalı değil. Bilmediğiniz, anlamadığınız konularda üç kuruşluk edit bilginizle boş boş konuşup laf kalabalığı yapmayın. Tabi ingilizce bilmediğiniz için o sitenin ne sitesi olduğunu da anlamamışsınızdır. Ayrıca, yanlış bilgilendirici mesajlar göndermek bu bölümde ceza alma sebebidir.[/i][/i][/i][/i]
CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz: destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/


![[Image: amxxlarge.jpg]](https://www.amxmodx.org/images/amxxlarge.jpg)