me ayuda a poner el prefijo en la sma. - alexbomjovem - 04/11/2018
me ayuda a poner el prefijo en la sma. para admin Flag no rango csgo
Código PHP: "" "y" "[DONO]" "" "r" "[SUPREMO]" "" "q" "[ADM]" "" "p" "[VIP GIRLS]" "" "o" "[VIP]" "" "w" "[RECRUTA]"
o pone sma AdminPrefixes.amxx junto
las sma rango csgo com prefijo del foum tan todo con error porfavor edita mi sma ella no tiene error
mi sma
Código PHP: /* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3
Version Con Guardado NFVAULT ------------------------------- */
#include <amxmisc> #include <fakemeta> #include <nfvault>
new const PLUGIN[] = "Patent clan brasilia" #define VERSION "1.0" new const AUTHOR[] = "kikizon"
/* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web[] = " _\|/_ BEM VINDOS_\|/_" // Se Muestra en HUD new const Prefijo[] = "!g[rank]!y" // Prefijo en say new const Sonido[] = "clan_brasilia/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _:DATA { NOMBRE[30], FRAGS } new const Rangos[][DATA] = { { "Sem Patentes", 100 }, { "Prata I", 250 }, { "Prata II", 750 }, { "Prata III", 1000 }, { "Prata IV", 1500 }, { "Prata Elite", 2000 }, { "Prata Elite Master", 2500 }, { "Gold Nova I", 3000 }, { "Gold Nova II", 3500 }, { "Gold Nova III", 4000 }, { "Gold Nova Master", 4500 }, { "Master Guardian I",5000 }, { "Master Guardian II", 5500 }, { "Master Guardian Elite", 6000 }, { "Distinguished Master Guardian", 6500 }, { "Legendary Eagle", 7000 }, { "Legendary Eagle Master", 7500 }, { "Supreme Master First Class", 8000 }, { "The Global Elite", 9000 } }
/* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/
/* ==================================== *[VARIABLES]* =====================================*/ new g_rango[33], g_frags[33] new SyncHUD, g_maxplayers, g_msgTeamInfo, g_msgSayText, g_playername[33][32]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) #define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id) new VaultRango[128], szRangos[180], szKey[30]
/* ==================================== *[Cvars]* =====================================*/ new cvar_Hud, cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "Event_DeathMsg", "a") register_logevent("logevent_round_end", 2, "1=Round_End") register_clcmd("say", "message_saytext") register_clcmd("say_team", "message_sayteam") /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar("rangos_hud", "1") // 1 - Mostrar HUD | 0 - No Mostrar // cvar_knifex2 = register_cvar("rangos_knifex2", "1") // 1 - x2 frags con knife | 0 - ÑO :v cvar_hsx2 = register_cvar("rangos_hsx2", "1") // 1 - x2 frags de HeadShot | 0 - ÑO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj() g_maxplayers = get_maxplayers() g_msgTeamInfo = get_user_msgid("TeamInfo") g_msgSayText = get_user_msgid("SayText") nfv_file("Ranguitos", VaultRango, charsmax(VaultRango)) } /* ==================================== *[PRECACHE]* =====================================*/ public plugin_precache() precache_sound(Sonido) /* =================================== *[HUD]* =====================================*/ public HUD(taskid) { new id = ID_HUD if (!is_user_alive(id)) { id = pev(id, pev_iuser2) if (!is_user_alive(id)) return; } if(id != ID_HUD) { set_hudmessage(127, 255, 255, 0.60, 0.67, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "Frags: %d || OBS: %s", g_frags[id], Rangos[g_rango[id]][NOMBRE]) } else { set_hudmessage(0, 255, 0, 0.0, 0.20, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "_\|/_ ClaN=Brasilia _\|/_^nFrags: %d^nOBS: %s^n=======================^nProx. Patente: %s^nFrags Restantes: %d^n=======================^n%s", g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] - g_frags[id], Web) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver(id) { get_user_name( id, g_playername[ id ], charsmax( g_playername[ ] ) ); g_rango[id] = 0 g_frags[id] = 0 Cargar(id) if(get_pcvar_num(cvar_Hud)) set_task(1.0, "HUD", id+TASK_HUD, _, _, "b") } /* ================================== [DISCONNECT] ===================================*/ public client_disconnect(id) { if(XD) Guardar(id); remove_task(id+TASK_HUD) }
/* ================================== [ROUND END] ===================================*/ public logevent_round_end() { for(new id = 1; id <= g_maxplayers; id++) { if(XD) Guardar(id); } } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg() { new attacker = read_data(1) new victim = read_data(2) new hs = read_data(3) if(victim == attacker) return; if(is_user_alive(attacker)) { g_frags[attacker]++ if(get_pcvar_num(cvar_hsx2)) { if(hs) g_frags[attacker]++ } AumentarRango(attacker) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango(id) { new Aumento = false while(g_frags[id] >= Rangos[g_rango[id]][FRAGS]) { Aumento = true g_rango[id]++ } if(Aumento) { chatcolor(id, "%s Felicidade subiu de rank: !g[ %s ]", Prefijo, Rangos[g_rango[id]][NOMBRE]) client_cmd(id, "spk %s", Sonido) Aumento = false } } /*===================================== *[SAY]* =====================================*/ public message_saytext(id) { static said[192] read_args(said, charsmax(said)) remove_quotes(said) if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, "")) return PLUGIN_HANDLED
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE; static color[11], name[32], alive[11] get_user_team(id,color,charsmax(color)) get_user_name(id,name,charsmax(name))
if (is_user_alive (id)) { alive = "" } else { alive = "[Morto]" }
if (is_user_admin(id)) { if (get_user_flags(id) & ADMIN_KICK) format(said, charsmax(said), "^x01%s^x04%s ^x03%s ^x04: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said) } else { format(said, charsmax(said), "^x01%s^04%s ^x03%s ^x01: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said) } static i, team[11] for (i = 1; i <= g_maxplayers; i++) { if (!is_user_connected(i)) continue get_user_name(id,name,charsmax(name)) if (is_user_admin(i) || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) { get_user_team(i, team, charsmax(team)) changeTeamInfo(i, color) writeMessage(i, said) changeTeamInfo(i, team) } } return PLUGIN_HANDLED_MAIN; }
public message_sayteam(id) { static said[192] read_args(said, charsmax(said)) remove_quotes(said) if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, "")) return PLUGIN_HANDLED
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE; static playerTeam, playerTeamName[19] playerTeam = get_user_team(id) switch (playerTeam) { case 1: copy (playerTeamName, 6, "TE") case 2: copy (playerTeamName, 8, "CT") default: copy (playerTeamName, 11, "SPEC") }
static color[11], name[32], alive[11] get_user_team(id,color,charsmax(color)) get_user_name(id,name,charsmax(name))
if (is_user_alive (id)) { alive = "" } else { alive = "[MUERTO]" }
if (is_user_admin(id)) { if (get_user_flags(id) & ADMIN_RCON) format(said, charsmax(said), "^4%s^4[^4%s^4] ^4%s^3 %s^1 :^4 %s", alive, playerTeam, Rangos[g_rango[id]], name, said) } else { format(said, charsmax(said), "^1%s^4[^4%s^4]^3 %s^1 : %s", alive, playerTeam, Rangos[g_rango[id]],name, said) }
static i, team[11] for (i = 1; i <= g_maxplayers; i++) { if (!is_user_connected(i)) continue; get_user_name(id,name,charsmax(name)) if (get_user_team(i) == playerTeam || is_user_admin(i)) { if (is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) { get_user_team(i, team, charsmax(team)) changeTeamInfo(i, color) writeMessage(i, said) changeTeamInfo(i, team) } } } return PLUGIN_HANDLED_MAIN; } public changeTeamInfo(player, team[]) { message_begin(MSG_ONE, g_msgTeamInfo, _, player) write_byte(player) write_string(team) message_end() }
public writeMessage(player, message[]) { message_begin(MSG_ONE, g_msgSayText, {0, 0, 0}, player) write_byte(player) write_string(message) message_end() } /* =================================== *[GUARDADO]* =====================================*/ Guardar(id) { formatex(szKey, charsmax(szKey), "data_rangos") formatex(szRangos, charsmax(szRangos), "%d %d", g_frags[id], g_rango[id]) nfv_set_data(VaultRango, szKey, g_playername[id], szRangos) }
Cargar(id) { new g_load_c1[25], g_load_c2[25] formatex(szKey, charsmax(szKey), "data_rangos") if(!nfv_get_data(VaultRango, szKey, g_playername[id], szRangos, sizeof(szRangos) - 1)) return; parse(szRangos, g_load_c1, charsmax(g_load_c1), g_load_c2, charsmax(g_load_c2)) g_frags[id] = str_to_num(g_load_c1) g_rango[id] = str_to_num(g_load_c2) } /* =================================== *[STOCKS]* =====================================*/ // stock de chatcolor stock chatcolor(id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); // Verde replace_all(msg, 190, "!y", "^1"); // Default replace_all(msg, 190, "!t", "^3"); // Color del Equipo if (id) players[0] = id; else get_players(players, count, "ch"); { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } // Stock para Saber Si el mensaje es valido stock ValidMessage(text[], maxcount) { static len, i, count len = strlen(text) count = 0 if (!len) return false; for (i = 0; i < len; i++) { if (text[i] != ' ') { count++ if (count >= maxcount) return true; } } return false; }
sma AdminPrefixes.amxx
Código PHP: #include <amxmodx> #include <amxmisc> #include <celltrie> #include <cstrike>
#define VERSION "4.0" #define FLAG_LOAD ADMIN_CFG #define MAX_PREFIXES 33 #define MAX_BAD_PREFIXES 100
new g_bad_prefix, g_listen, g_listen_flag, g_custom, g_custom_flag, g_say_characters, g_prefix_characters; new pre_ips_count = 0, pre_names_count = 0, pre_steamids_count, pre_flags_count = 0, bad_prefix_count = 0, i, temp_cvar[2]; new configs_dir[64], file_prefixes[128], file_bad_prefixes[128], text[128], prefix[32], type[2], key[32], length, line = 0, error[256]; new g_saytxt, g_maxplayers, CsTeams:g_team; new g_typed[192], g_message[192], g_name[32]; new Trie:pre_ips_collect, Trie:pre_names_collect, Trie:pre_steamids_collect, Trie:pre_flags_collect, Trie:bad_prefixes_collect, Trie:client_prefix; new str_id[16], temp_key[35], temp_prefix[32], temp_value; new bool:g_toggle[33];
new const say_team_info[2][CsTeams][] = { {"*SPEC* ", "*DEAD* ", "*DEAD* ", "*SPEC* "}, {"", "", "", ""} }
new const sayteam_team_info[2][CsTeams][] = { {"(Spectator) ", "*DEAD*(Terrorist) ", "*DEAD*(Counter-Terrorist) ", "(Spectator) "}, {"(Spectator) ", "(Terrorist) ", "(Counter-Terrorist) ", "(Spectator) "} }
new const forbidden_say_symbols[] = { "/", "!", "%", "$" }
new const forbidden_prefixes_symbols[] = { "/", "\", "%", "$", ".", ":", "?", "!", "@", "#", "%" }
new const separator[] = "************************************************" new const in_prefix[] = "[AdminPrefixes]"
public plugin_init() { register_plugin("Admin Prefixes", VERSION, "m0skVi4a ;]")
g_bad_prefix = register_cvar("ap_bad_prefixes", "1") g_listen = register_cvar("ap_listen", "1") g_listen_flag = register_cvar("ap_listen_flag", "a") g_custom = register_cvar("ap_custom_current", "1") g_custom_flag = register_cvar("ap_custom_current_flag", "b") g_say_characters = register_cvar("ap_say_characters", "1") g_prefix_characters = register_cvar("ap_prefix_characters", "1")
g_saytxt = get_user_msgid ("SayText") g_maxplayers = get_maxplayers()
register_concmd("ap_reload_prefixes", "LoadPrefixes") register_concmd("ap_reload_badprefixes", "LoadBadPrefixes") register_concmd("ap_put", "SetPlayerPrefix") register_clcmd("say", "HookSay") register_clcmd("say_team", "HookSayTeam")
pre_ips_collect = TrieCreate() pre_names_collect = TrieCreate() pre_steamids_collect = TrieCreate() pre_flags_collect = TrieCreate() bad_prefixes_collect = TrieCreate() client_prefix = TrieCreate()
register_dictionary("admin_prefixes.txt")
get_configsdir(configs_dir, charsmax(configs_dir)) formatex(file_prefixes, charsmax(file_prefixes), "%s/ap_prefixes.ini", configs_dir) formatex(file_bad_prefixes, charsmax(file_bad_prefixes), "%s/ap_bad_prefixes.ini", configs_dir)
LoadPrefixes(0) LoadBadPrefixes(0) } public LoadPrefixes(id) { if(!(get_user_flags(id) & FLAG_LOAD)) { console_print(id, "%L", LANG_SERVER, "PREFIX_PERMISSION", in_prefix) return PLUGIN_HANDLED }
TrieClear(pre_ips_collect) TrieClear(pre_names_collect) TrieClear(pre_steamids_collect) TrieClear(pre_flags_collect)
line = 0, length = 0, pre_flags_count = 0, pre_ips_count = 0, pre_names_count = 0;
if(!file_exists(file_prefixes)) { formatex(error, charsmax(error), "%L", LANG_SERVER, "PREFIX_NOT_FOUND", in_prefix, file_prefixes) set_fail_state(error) }
server_print(separator)
while(read_file(file_prefixes, line++ , text, charsmax(text), length) && (pre_ips_count + pre_names_count + pre_steamids_count + pre_flags_count) <= MAX_PREFIXES) { if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/')) continue
parse(text, type, charsmax(type), key, charsmax(key), prefix, charsmax(prefix)) trim(prefix)
if(!type[0] || !prefix[0] || !key[0]) continue
replace_all(prefix, charsmax(prefix), "!g", "^x04") replace_all(prefix, charsmax(prefix), "!t", "^x03") replace_all(prefix, charsmax(prefix), "!n", "^x01")
switch(type[0]) { case 'f': { pre_flags_count++ TrieSetString(pre_flags_collect, key, prefix) server_print("%L", LANG_SERVER, "PREFIX_LOAD_FLAG", in_prefix, prefix, key[0]) } case 'i': { pre_ips_count++ TrieSetString(pre_ips_collect, key, prefix) server_print("%L", LANG_SERVER, "PREFIX_LOAD_IP", in_prefix, prefix, key) } case 's': { pre_steamids_count++ TrieSetString(pre_steamids_collect, key, prefix) server_print("%L", LANG_SERVER, "PREFIX_LOAD_STEAMID", in_prefix, prefix, key) } case 'n': { pre_names_count++ TrieSetString(pre_names_collect, key, prefix) server_print("%L", LANG_SERVER, "PREFIX_LOAD_NAME", in_prefix, prefix, key) } default: { continue } } }
if(pre_flags_count <= 0 && pre_ips_count <= 0 && pre_steamids_count <= 0 && pre_names_count <= 0) { server_print("%L", LANG_SERVER, "PREFIX_NO", in_prefix) }
get_user_name(id, g_name, charsmax(g_name)) server_print("%L", LANG_SERVER, "PREFIX_LOADED_BY", in_prefix, g_name) console_print(id, "%L", LANG_SERVER, "PREFIX_LOADED", in_prefix)
server_print(separator)
for(new i = 1; i <= g_maxplayers; i++) { num_to_str(i, str_id, charsmax(str_id)) TrieDeleteKey(client_prefix, str_id) PutPrefix(i) }
return PLUGIN_HANDLED }
public LoadBadPrefixes(id) { if(!get_pcvar_num(g_bad_prefix)) { console_print(id, "%L", LANG_SERVER, "BADP_OFF", in_prefix) return PLUGIN_HANDLED }
if(!(get_user_flags(id) & FLAG_LOAD)) { console_print(id, "%L", LANG_SERVER, "BADP_PERMISSION", in_prefix) return PLUGIN_HANDLED }
TrieClear(bad_prefixes_collect)
line = 0, length = 0, bad_prefix_count = 0;
if(!file_exists(file_bad_prefixes)) { console_print(id, "%L", LANG_SERVER, "BADP_NOT_FOUND", in_prefix, file_bad_prefixes) return PLUGIN_HANDLED }
server_print(separator)
while(read_file(file_bad_prefixes, line++ , text, charsmax(text), length) && bad_prefix_count <= MAX_BAD_PREFIXES) { if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/')) continue
parse(text, prefix, charsmax(prefix))
if(!prefix[0]) continue
bad_prefix_count++ TrieSetCell(bad_prefixes_collect, prefix, 1) server_print("%L", LANG_SERVER, "BADP_LOAD", in_prefix, prefix) }
if(bad_prefix_count <= 0) { server_print("%L", LANG_SERVER, "BADP_NO", in_prefix) }
get_user_name(id, g_name, charsmax(g_name)) server_print("%L", LANG_SERVER, "BADP_LOADED_BY", in_prefix, g_name) console_print(id, "%L", LANG_SERVER, "BADP_LOADED", in_prefix)
server_print(separator)
return PLUGIN_HANDLED }
public client_putinserver(id) { g_toggle[id] = true num_to_str(id, str_id, charsmax(str_id)) TrieSetString(client_prefix, str_id, "") PutPrefix(id) }
public HookSay(id) { read_args(g_typed, charsmax(g_typed)) remove_quotes(g_typed)
trim(g_typed)
if(equal(g_typed, "") || !is_user_connected(id)) return PLUGIN_HANDLED_MAIN
if(equal(g_typed, "/prefix")) { if(g_toggle[id]) { g_toggle[id] = false client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_OFF", in_prefix) } else { g_toggle[id] = true client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_ON", in_prefix) }
return PLUGIN_HANDLED_MAIN }
if(!g_toggle[id]) return PLUGIN_CONTINUE
num_to_str(id, str_id, charsmax(str_id))
if((TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3) { if(check_say_characters(g_typed)) return PLUGIN_HANDLED_MAIN }
get_user_name(id, g_name, charsmax(g_name))
g_team = cs_get_user_team(id)
if(temp_prefix[0]) { formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", say_team_info[is_user_alive(id)][g_team], temp_prefix, g_name, g_typed) } else { formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", say_team_info[is_user_alive(id)][g_team], g_name, g_typed) }
get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))
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) && get_user_flags(i) & read_flags(temp_cvar)) { send_message(g_message, id, i) } }
return PLUGIN_HANDLED_MAIN }
public HookSayTeam(id) { read_args(g_typed, charsmax(g_typed)) remove_quotes(g_typed)
trim(g_typed)
if(equal(g_typed, "") || !is_user_connected(id)) return PLUGIN_HANDLED_MAIN
if(equal(g_typed, "/prefix")) { if(g_toggle[id]) { g_toggle[id] = false client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_OFF", in_prefix) } else { g_toggle[id] = true client_print(id, print_chat, "%L", LANG_SERVER, "PREFIX_ON", in_prefix) }
return PLUGIN_HANDLED_MAIN }
if(!g_toggle[id]) return PLUGIN_CONTINUE
num_to_str(id, str_id, charsmax(str_id))
if((TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 1) || (!TrieGetString(client_prefix, str_id, temp_prefix, charsmax(temp_prefix)) && get_pcvar_num(g_say_characters) == 2) || get_pcvar_num(g_say_characters) == 3) { if(check_say_characters(g_typed)) return PLUGIN_HANDLED_MAIN }
get_user_name(id, g_name, charsmax(g_name))
g_team = cs_get_user_team(id)
if(temp_prefix[0]) { formatex(g_message, charsmax(g_message), "^1%s^4%s^3 %s :^4 %s", sayteam_team_info[is_user_alive(id)][g_team], temp_prefix, g_name, g_typed) } else { formatex(g_message, charsmax(g_message), "^1%s^3%s :^1 %s", sayteam_team_info[is_user_alive(id)][g_team], g_name, g_typed) }
get_pcvar_string(g_listen_flag, temp_cvar, charsmax(temp_cvar))
for(new i = 1; i <= g_maxplayers; i++) { if(!is_user_connected(i)) continue
if(get_user_team(id) == get_user_team(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar)) { if(is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i) || get_pcvar_num(g_listen) && get_user_flags(i) & read_flags(temp_cvar)) { send_message(g_message, id, i) } } }
return PLUGIN_HANDLED_MAIN }
public SetPlayerPrefix(id) { if(!get_pcvar_num(g_custom) || !get_pcvar_string(g_custom_flag, temp_cvar, charsmax(temp_cvar))) { console_print(id, "%L", LANG_SERVER, "CUSTOM_OFF", in_prefix) return PLUGIN_HANDLED }
if(!(get_user_flags(id) & read_flags(temp_cvar))) { console_print(id, "%L", LANG_SERVER, "CUSTOM_PERMISSION", in_prefix) return PLUGIN_HANDLED }
new input[128], target; new arg_type[2], arg_prefix[32], arg_key[35]; new temp_str[16];
read_args(input, charsmax(input)) remove_quotes(input) parse(input, arg_type, charsmax(arg_type), arg_key, charsmax(arg_key), arg_prefix, charsmax(arg_prefix)) trim(arg_prefix)
if(get_pcvar_num(g_bad_prefix) && is_bad_prefix(arg_prefix) && !equali(arg_prefix, "")) { console_print(id, "%L", LANG_SERVER, "CUSTOM_FORBIDDEN", in_prefix, arg_prefix) return PLUGIN_HANDLED }
if(get_pcvar_num(g_prefix_characters) && check_prefix_characters(arg_prefix)) { console_print(id, "%L", LANG_SERVER, "CUSTOM_SYMBOL", in_prefix, arg_prefix, forbidden_prefixes_symbols[i]) return PLUGIN_HANDLED }
switch(arg_type[0]) { case 'f': { target = 0 temp_str = "Flag" } case 'i': { target = find_player("d", arg_key) temp_str = "IP" } case 's': { target = find_player("c", arg_key) temp_str = "SteamID" } case 'n': { target = find_player("a", arg_key) temp_str = "Name" } default: { console_print(id, "%L", LANG_SERVER, "CUSTOM_INVALID", in_prefix, arg_type) return PLUGIN_HANDLED } }
get_user_name(id, g_name, charsmax(g_name))
if(equali(arg_prefix, "")) { find_and_delete(arg_type, arg_key)
if(target) { PutPrefix(target) } console_print(id, "%L", LANG_SERVER, "CUSTOM_REMOVE", in_prefix, temp_str, arg_key) server_print("%L", LANG_SERVER, "CUSTOM_REMOVE_INFO", in_prefix, g_name, temp_str, arg_key) return PLUGIN_HANDLED }
find_and_delete(arg_type, arg_key)
formatex(text, charsmax(text), "^"%s^" ^"%s^" ^"%s^"", arg_type, arg_key, arg_prefix) write_file(file_prefixes, text, -1)
switch(arg_type[0]) { case 'f': { TrieSetString(pre_flags_collect, arg_key, arg_prefix) } case 'i': { TrieSetString(pre_ips_collect, arg_key, arg_prefix) } case 's': { TrieSetString(pre_steamids_collect, arg_key, arg_prefix) } case 'n': { TrieSetString(pre_names_collect, arg_key, arg_prefix) } }
if(target) { num_to_str(target, str_id, charsmax(str_id)) TrieSetString(client_prefix, str_id, arg_prefix) }
console_print(id, "%L", LANG_SERVER, "CUSTOM_CHANGE", in_prefix, temp_str, arg_key, arg_prefix) server_print("%L", LANG_SERVER, "CUSTOM_CHANGE_INFO", in_prefix, g_name, temp_str, arg_key, arg_prefix)
return PLUGIN_HANDLED }
public client_infochanged(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE
new g_old_name[32];
get_user_info(id, "name", g_name, charsmax(g_name)) get_user_name(id, g_old_name, charsmax(g_old_name))
if(!equal(g_name, g_old_name)) { num_to_str(id, str_id, charsmax(str_id)) TrieSetString(client_prefix, str_id, "") set_task(0.5, "PutPrefix", id) return PLUGIN_HANDLED }
return PLUGIN_CONTINUE }
public PutPrefix(id) { num_to_str(id, str_id, charsmax(str_id)) TrieSetString(client_prefix, str_id, "")
new sflags[32], temp_flag[2]; get_flags(get_user_flags(id), sflags, charsmax(sflags))
for(new i = 0; i <= charsmax(sflags); i++) { formatex(temp_flag, charsmax(temp_flag), "%c", sflags[i])
if(TrieGetString(pre_flags_collect, temp_flag, temp_prefix, charsmax(temp_prefix))) { TrieSetString(client_prefix, str_id, temp_prefix) } }
get_user_ip(id, temp_key, charsmax(temp_key), 1)
if(TrieGetString(pre_ips_collect, temp_key, temp_prefix, charsmax(temp_prefix))) { TrieSetString(client_prefix, str_id, temp_prefix) }
get_user_authid(id, temp_key, charsmax(temp_key))
if(TrieGetString(pre_steamids_collect, temp_key, temp_prefix, charsmax(temp_prefix))) { TrieSetString(client_prefix, str_id, temp_prefix) }
get_user_name(id, temp_key, charsmax(temp_key))
if(TrieGetString(pre_names_collect, temp_key, temp_prefix, charsmax(temp_prefix))) { TrieSetString(client_prefix, str_id, temp_prefix) }
return PLUGIN_HANDLED }
send_message(const message[], const id, const i) { message_begin(MSG_ONE, g_saytxt, {0, 0, 0}, i) write_byte(id) write_string(message) message_end() }
bool:check_say_characters(const check_message[]) { for(new i = 0; i < charsmax(forbidden_say_symbols); i++) { if(check_message[0] == forbidden_say_symbols[i]) { return true } } return false }
bool:check_prefix_characters(const check_prefix[]) { for(i = 0; i < charsmax(forbidden_prefixes_symbols); i++) { if(containi(check_prefix, forbidden_prefixes_symbols[i]) != -1) { return true } } return false }
bool:is_bad_prefix(const check_prefix[]) { if(TrieGetCell(bad_prefixes_collect, check_prefix, temp_value)) { return true } return false }
find_and_delete(const arg_type[], const arg_key[]) { line = 0, length = 0;
while(read_file(file_prefixes, line++ , text, charsmax(text), length)) { if(!text[0] || text[0] == '^n' || text[0] == ';' || (text[0] == '/' && text[1] == '/')) continue
parse(text, type, charsmax(type), key, charsmax(key), prefix, charsmax(prefix)) trim(prefix)
if(!type[0] || !prefix[0] || !key[0]) continue if(!equal(arg_type, type) || !equal(arg_key, key)) continue write_file(file_prefixes, "", line - 1) } switch(arg_type[0]) { case 'f': { TrieDeleteKey(pre_flags_collect, arg_key) } case 'i': { TrieDeleteKey(pre_ips_collect, arg_key) } case 's': { TrieDeleteKey(pre_steamids_collect, arg_key) } case 'n': { TrieDeleteKey(pre_names_collect, arg_key) } } }
por favor no envía sma del foro de rango csgo con AdminPrefixes todas las con error e bugs edita esta mi SMA
RE: me ayuda a poner el prefijo en la sma. - Frnc - 08/11/2018
Código PHP: /* ----------------------------------------- Creditos: Solo para Raulitop, por el hook say :3
Version Con Guardado NFVAULT ------------------------------- */
/* Prefijos By Frnc */
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <nfvault>
new const PLUGIN[] = "Patent clan brasilia" #define VERSION "1.0" new const AUTHOR[] = "kikizon"
/* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ /* ==================================== *[CONSTANTES]* =====================================*/ new const Web[] = " _\|/_ BEM VINDOS_\|/_" // Se Muestra en HUD new const Prefijo[] = "!g[rank]!y" // Prefijo en say new const Sonido[] = "clan_brasilia/up.wav" // Sonido Rango UP /* ==================================== *[CONST NOMBRES DE RANGOS]* =====================================*/ enum _:DATA { NOMBRE[30], FRAGS } new const Rangos[][DATA] = { { "Sem Patentes", 100 }, { "Prata I", 250 }, { "Prata II", 750 }, { "Prata III", 1000 }, { "Prata IV", 1500 }, { "Prata Elite", 2000 }, { "Prata Elite Master", 2500 }, { "Gold Nova I", 3000 }, { "Gold Nova II", 3500 }, { "Gold Nova III", 4000 }, { "Gold Nova Master", 4500 }, { "Master Guardian I",5000 }, { "Master Guardian II", 5500 }, { "Master Guardian Elite", 6000 }, { "Distinguished Master Guardian", 6500 }, { "Legendary Eagle", 7000 }, { "Legendary Eagle Master", 7500 }, { "Supreme Master First Class", 8000 }, { "The Global Elite", 9000 } }
/* PREFIJOS POR TIPO DE ADMINISTRADOR */
new g_AdminTag[33][16]
enum _:Data2 { TAG[20], FLAG }
new const AdminsTags[][Data2] = { { "[VIP]", ADMIN_LEVEL_C }, // LETRA "o" { "[VIP GIRLS]", ADMIN_LEVEL_D }, // LETRA "p" { "[ADM]", ADMIN_LEVEL_E }, // LETRA "q" { "[SUPREMO]", ADMIN_LEVEL_F }, // LETRA "r" { "[DONO]", ADMIN_LEVEL_G }, // LETRA "s" { "[RECLUTA]", ADMIN_LEVEL_H } // LETRA "t" }
/* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/
/* ==================================== *[VARIABLES]* =====================================*/ new g_rango[33], g_frags[33] new SyncHUD, g_maxplayers, g_msgTeamInfo, g_msgSayText, g_playername[33][32]; #define TASK_HUD 2100 #define ID_HUD (taskid - TASK_HUD) #define XD is_user_connected(id) || !is_user_bot(id) || !is_user_hltv(id) new VaultRango[128], szRangos[180], szKey[30]
/* ==================================== *[Cvars]* =====================================*/ new cvar_Hud, cvar_hsx2 /* ==================================== *[INIT]* =====================================*/ public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "Event_DeathMsg", "a") register_logevent("logevent_round_end", 2, "1=Round_End") register_clcmd("say", "message_saytext") register_clcmd("say_team", "message_sayteam") /* ============================================= |= [EMPIEZA SECCION MODIFICABLE] =| ==============================================*/ cvar_Hud = register_cvar("rangos_hud", "1") // 1 - Mostrar HUD | 0 - No Mostrar // cvar_knifex2 = register_cvar("rangos_knifex2", "1") // 1 - x2 frags con knife | 0 - ÑO :v cvar_hsx2 = register_cvar("rangos_hsx2", "1") // 1 - x2 frags de HeadShot | 0 - ÑO :v /* ============================================= |= [TERMINA SECCION MODIFICABLE] =| ==============================================*/ SyncHUD = CreateHudSyncObj() g_maxplayers = get_maxplayers() g_msgTeamInfo = get_user_msgid("TeamInfo") g_msgSayText = get_user_msgid("SayText") nfv_file("Ranguitos", VaultRango, charsmax(VaultRango)) } /* ==================================== *[PRECACHE]* =====================================*/ public plugin_precache() precache_sound(Sonido) /* =================================== *[HUD]* =====================================*/ public HUD(taskid) { new id = ID_HUD if (!is_user_alive(id)) { id = pev(id, pev_iuser2) if (!is_user_alive(id)) return; } if(id != ID_HUD) { set_hudmessage(127, 255, 255, 0.60, 0.67, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "Frags: %d || OBS: %s", g_frags[id], Rangos[g_rango[id]][NOMBRE]) } else { set_hudmessage(0, 255, 0, 0.0, 0.20, 1, 6.0, 1.0) ShowSyncHudMsg(ID_HUD, SyncHUD, "_\|/_ ClaN=Brasilia _\|/_^nFrags: %d^nOBS: %s^n=======================^nProx. Patente: %s^nFrags Restantes: %d^n=======================^n%s", g_frags[id], Rangos[g_rango[id]][NOMBRE], Rangos[g_rango[id]+1][NOMBRE], Rangos[g_rango[id]][FRAGS] - g_frags[id], Web) } } /* ================================== [PUTINSERVER] ===================================*/ public client_putinserver(id) { get_user_name( id, g_playername[ id ], charsmax( g_playername[ ] ) ); g_rango[id] = 0 g_frags[id] = 0 Cargar(id) if(get_pcvar_num(cvar_Hud)) set_task(1.0, "HUD", id+TASK_HUD, _, _, "b") /* Determinar el prefijo del admin */ if(!is_user_admin(id)) { copy(g_AdminTag[id], charsmax(g_AdminTag[]), "") return } new Flags = get_user_flags(id) for(new i; i < sizeof AdminsTags; i++) { if(Flags & AdminsTags[i][FLAG]) { copy(g_AdminTag[id], charsmax(g_AdminTag[]), AdminsTags[i][TAG]) break; } } } /* ================================== [DISCONNECT] ===================================*/ public client_disconnect(id) { if(XD) Guardar(id); remove_task(id+TASK_HUD) }
/* ================================== [ROUND END] ===================================*/ public logevent_round_end() { for(new id = 1; id <= g_maxplayers; id++) { if(XD) Guardar(id); } } /* ================================== [DEATHMSG] ===================================*/ public Event_DeathMsg() { new attacker = read_data(1) new victim = read_data(2) new hs = read_data(3) if(victim == attacker) return; if(is_user_alive(attacker)) { g_frags[attacker]++ if(get_pcvar_num(cvar_hsx2)) { if(hs) g_frags[attacker]++ } AumentarRango(attacker) } } /* ================================ [UPDATE RANGO] =================================*/ AumentarRango(id) { new Aumento = false while(g_frags[id] >= Rangos[g_rango[id]][FRAGS]) { Aumento = true g_rango[id]++ } if(Aumento) { chatcolor(id, "%s Felicidade subiu de rank: !g[ %s ]", Prefijo, Rangos[g_rango[id]][NOMBRE]) client_cmd(id, "spk %s", Sonido) Aumento = false } } /*===================================== *[SAY]* =====================================*/ public message_saytext(id) { static said[192] read_args(said, charsmax(said)) remove_quotes(said) if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, "")) return PLUGIN_HANDLED
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE; static color[11], name[32], alive[11] get_user_team(id,color,charsmax(color)) get_user_name(id,name,charsmax(name))
if (is_user_alive (id)) { alive = "" } else { alive = "[Morto]" }
if (is_user_admin(id)) { // if (get_user_flags(id) & ADMIN_KICK) << ya esto no se usar format(said, charsmax(said), "^x01%s^x04%s ^x03%s ^x04: %s", alive, Rangos[g_rango[id]][NOMBRE],g_AdminTag[id], name, said) } else { format(said, charsmax(said), "^x01%s^04%s ^x03%s ^x01: %s", alive, Rangos[g_rango[id]][NOMBRE], name, said) } static i, team[11] for (i = 1; i <= g_maxplayers; i++) { if (!is_user_connected(i)) continue get_user_name(id,name,charsmax(name)) if (is_user_admin(i) || is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) { get_user_team(i, team, charsmax(team)) changeTeamInfo(i, color) writeMessage(i, said) changeTeamInfo(i, team) } } return PLUGIN_HANDLED_MAIN; }
public message_sayteam(id) { static said[192] read_args(said, charsmax(said)) remove_quotes(said) if (said[0] == '@' || said[0] == '%' || said[0] == '/' || said[0] == '.' || said[0] == '!' || equal (said, "")) return PLUGIN_HANDLED
if (!ValidMessage(said, 1)) return PLUGIN_CONTINUE; static playerTeam, playerTeamName[19] playerTeam = get_user_team(id) switch (playerTeam) { case 1: copy (playerTeamName, 6, "TE") case 2: copy (playerTeamName, 8, "CT") default: copy (playerTeamName, 11, "SPEC") }
static color[11], name[32], alive[11] get_user_team(id,color,charsmax(color)) get_user_name(id,name,charsmax(name))
if (is_user_alive (id)) { alive = "" } else { alive = "[MUERTO]" }
if (is_user_admin(id)) { if (get_user_flags(id) & ADMIN_RCON) format(said, charsmax(said), "^4%s^4[^4%s^4] ^4%s^3 %s^1 :^4 %s", alive, playerTeam, Rangos[g_rango[id]], name, said) } else { format(said, charsmax(said), "^1%s^4[^4%s^4]^3 %s^1 : %s", alive, playerTeam, Rangos[g_rango[id]],name, said) }
static i, team[11] for (i = 1; i <= g_maxplayers; i++) { if (!is_user_connected(i)) continue; get_user_name(id,name,charsmax(name)) if (get_user_team(i) == playerTeam || is_user_admin(i)) { if (is_user_alive(id) && is_user_alive(i) || !is_user_alive(id) && !is_user_alive(i)) { get_user_team(i, team, charsmax(team)) changeTeamInfo(i, color) writeMessage(i, said) changeTeamInfo(i, team) } } } return PLUGIN_HANDLED_MAIN; } public changeTeamInfo(player, team[]) { message_begin(MSG_ONE, g_msgTeamInfo, _, player) write_byte(player) write_string(team) message_end() }
public writeMessage(player, message[]) { message_begin(MSG_ONE, g_msgSayText, {0, 0, 0}, player) write_byte(player) write_string(message) message_end() } /* =================================== *[GUARDADO]* =====================================*/ Guardar(id) { formatex(szKey, charsmax(szKey), "data_rangos") formatex(szRangos, charsmax(szRangos), "%d %d", g_frags[id], g_rango[id]) nfv_set_data(VaultRango, szKey, g_playername[id], szRangos) }
Cargar(id) { new g_load_c1[25], g_load_c2[25] formatex(szKey, charsmax(szKey), "data_rangos") if(!nfv_get_data(VaultRango, szKey, g_playername[id], szRangos, sizeof(szRangos) - 1)) return; parse(szRangos, g_load_c1, charsmax(g_load_c1), g_load_c2, charsmax(g_load_c2)) g_frags[id] = str_to_num(g_load_c1) g_rango[id] = str_to_num(g_load_c2) } /* =================================== *[STOCKS]* =====================================*/ // stock de chatcolor stock chatcolor(id, const input[], any:...) { new count = 1, players[32]; static msg[191]; vformat(msg, 190, input, 3); replace_all(msg, 190, "!g", "^4"); // Verde replace_all(msg, 190, "!y", "^1"); // Default replace_all(msg, 190, "!t", "^3"); // Color del Equipo if (id) players[0] = id; else get_players(players, count, "ch"); { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]); write_byte(players[i]); write_string(msg); message_end(); } } } } // Stock para Saber Si el mensaje es valido stock ValidMessage(text[], maxcount) { static len, i, count len = strlen(text) count = 0 if (!len) return false; for (i = 0; i < len; i++) { if (text[i] != ' ') { count++ if (count >= maxcount) return true; } } return false; }
asi los uso yo!! pruebalo a ver
aqui una chuleta de los niveles de admin y sus letras
Código: ; Access flags:
a - ADMIN_IMMUNITY
b - ADMIN_RESERVATION
c - ADMIN_KICK
d - ADMIN_BAN
e - ADMIN_SLAY
f - ADMIN_MAP
g - ADMIN_CVAR
h - ADMIN_CFG
i - ADMIN_CHAT
j - ADMIN_VOTE
k - ADMIN_PASSWORD
l - ADMIN_RCON
m - ADMIN_LEVEL_A
n - ADMIN_LEVEL_B
o - ADMIN_LEVEL_C
p - ADMIN_LEVEL_D
q - ADMIN_LEVEL_E
r - ADMIN_LEVEL_F
s - ADMIN_LEVEL_G
t - ADMIN_LEVEL_H
u - ADMIN_MENU
z - ADMIN_USER < NO ADMIN
RE: me ayuda a poner el prefijo en la sma. - alexbomjovem - 11/11/2018
muchas gracias amigo dios te bendiga hoy y siempre! ♡
|