|
Member
Join Date: Sep 2015
Location: Sofia, Bulgaria
|

09-08-2015
, 07:13
Re: [Help Req] VIP Commands
|
#9
|
This is the mute plugin, fix it if possible and please if you can, underline what you've done so I can learn and do it myself next time. Thanks again guys!
PHP Code:
#include <amxmodx> #include <amxmisc> #include <fakemeta>
#define PLUGIN_NAME "AdvancedMute" #define PLUGIN_VERSION "1.0" #define PLUGIN_AUTHOR "OciXCrom"
#define sMute "buttons/blip1.wav" #define sUnmute "buttons/button9.wav"
new const szPrefix[] = "^4[^3FrontLineD2^4]"
new cvar_adminflag, cvar_mutemic, cvar_reopen, cvar_sounds new bool:muted[33][33]
public plugin_init() { register_plugin("AdvancedMute", "1.0", "OciXCrom") register_cvar("AdvancedMute", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED) register_clcmd("amx_mute", "cmd_mute", -1, "<nick|#userid>") register_clcmd("amx_chatmute", "cmd_mute", -1, "<nick|#userid>") register_clcmd("amx_mutemenu", "menu_mute") register_clcmd("amx_chatmutemenu", "menu_mute") register_clcmd("say /mute", "menu_mute") register_clcmd("say /mutemenu", "menu_mute") register_clcmd("say /chatmute", "menu_mute") register_clcmd("say /chatmutemenu", "menu_mute") cvar_adminflag = register_cvar("advmute_adminflag", "b") cvar_mutemic = register_cvar("advmute_mutemic", "1") cvar_reopen = register_cvar("advmute_reopen", "1") cvar_sounds = register_cvar("advmute_sounds", "1") register_message(get_user_msgid("SayText"), "player_message") register_forward(FM_Voice_SetClientListening, "player_talk") }
public player_message(iMsgid, iDest, receiver) { static sender sender = get_msg_arg_int(1) return get_mute(receiver, sender) ? PLUGIN_HANDLED : PLUGIN_CONTINUE }
public player_talk(receiver, sender, listen) { if(get_pcvar_num(cvar_mutemic) == 0 || receiver == sender) return FMRES_IGNORED if(get_mute(receiver, sender)) { engfunc(EngFunc_SetClientListening, receiver, sender, 0) return FMRES_SUPERCEDE } return FMRES_IGNORED }
public cmd_mute(id) { new arg[32] read_argv(1, arg, charsmax(arg)) new player = cmd_target(id, arg, 0) if(!player) { client_print(id, print_console, "%s Command Usage: amx_(chat)mute <nick|#userid>", szPrefix) return PLUGIN_HANDLED } if(user_has_flag(player, cvar_adminflag)) { immune(id) return PLUGIN_HANDLED } switch_mute(id, player) mute_msg(id, player) return PLUGIN_HANDLED }
public menu_mute(id) { if( !( get_user_flags( id ) & /*VIP_FLAGS*/ ) ) {
new title[200] formatex(title, charsmax(title), "Choose the player or players you want to mute:") new mutemenu = menu_create(title, "mutemenu_handler") new text[64], players[32], pnum, tempid new name[32], userid[32] menu_additem(mutemenu, "Mute all players", "", 0) menu_additem(mutemenu, "Unmute all players", "", 0) get_players(players, pnum) for(new i; i<pnum; i++) { tempid = players[i] new bool:admin = false new bool:mute = false if(user_has_flag(tempid, cvar_adminflag)) admin = true if(get_mute(id, tempid)) mute = true get_user_name(tempid, name, charsmax(name)) formatex(userid, charsmax(userid), "%d", get_user_userid(tempid)) formatex(text, charsmax(text), "%s%s", admin ? "[ADMIN/VIP]" : mute ? "r" : "", name) menu_additem(mutemenu, text, userid, 0) } menu_setprop(mutemenu, MPROP_BACKNAME, "Next page") menu_setprop(mutemenu, MPROP_NEXTNAME, "Previous page") menu_setprop(mutemenu, MPROP_EXITNAME, "Close the Mute Menu") menu_display(id, mutemenu, 0) } else { ClientPrintColor(id, "%s^1You should have ^4[^3VIP^4/^3ADMIN^4] ^1privileges to use ^4[^3/mute^4]^1.", szPrefix) } return PLUGIN_HANDLED }
public mutemenu_handler(id, mutemenu, item) { if(item == MENU_EXIT) { menu_destroy(mutemenu) return PLUGIN_HANDLED } new data[6], name[64] new item_access, item_callback menu_item_getinfo(mutemenu, item, item_access, data, charsmax(data), name, charsmax(name), item_callback) new userid = str_to_num(data) new players[32], pnum, tempid get_players(players, pnum) new name2[32] get_user_name(id, name2, 31) if(item == 0 || item == 1) { new bool:mute = false if(item == 0) mute = true for(new i; i<pnum; i++) { tempid = players[i] if(!user_has_flag(tempid, cvar_adminflag)) set_mute(id, tempid, mute ? true : false) } ClientPrintColor(id, "%s^1You have ^4[^3%smuted^4] ^1all players!", szPrefix, mute ? "" : "un") if(get_pcvar_num(cvar_sounds) == 1) user_spksound(id, mute ? sMute : sUnmute) } else { new player = find_player("k", userid) if(player) { if(!user_has_flag(player, cvar_adminflag)) { switch_mute(id, player) mute_msg(id, player) } else immune(id) } } menu_destroy(mutemenu) if(get_pcvar_num(cvar_reopen) == 1) menu_mute(id) return PLUGIN_HANDLED }
public immune(id) { ClientPrintColor(id, "%s^1You can't ^4mute ^1player who has ^4[^3VIP^4/^3ADMIN^4] ^1privileges.", szPrefix) user_spksound(id, sUnmute) }
public mute_msg(id, player) { new name[32], name2[32] get_user_name(id, name, charsmax(name)) get_user_name(player, name2, charsmax(name2)) new mute = get_mute(id, player) ClientPrintColor(id, "%s^1You have ^4[^3%smuted^4] ^1player ^3%s^1.", szPrefix, mute ? "" : "un", name2) log_amx("Player %s %smuted %s", name, mute ? "" : "un", name2) if(get_pcvar_num(cvar_sounds) == 1) user_spksound(id, mute ? sMute : sUnmute) }
stock set_mute(id, player, bool:mute) muted[id][player] = mute ? true : false
stock get_mute(id, player) return muted[id][player] ? true : false
stock switch_mute(id, player) set_mute(id, player, get_mute(id, player) ? false : true) stock user_has_flag(id, cvar) { new flags[32] get_flags(get_user_flags(id), flags, charsmax(flags)) new vip_flag[2] get_pcvar_string(cvar, vip_flag, charsmax(vip_flag)) return (contain(flags, vip_flag) != -1) ? true : false }
stock user_spksound(id, sound[]) client_cmd(id, "spk %s", sound)
public plugin_precache() { precache_sound(sMute) precache_sound(sUnmute) }
ClientPrintColor( id, String[ ], any:... ){ new szMsg[ 190 ]; vformat( szMsg, charsmax( szMsg ), String, 3 ); replace_all( szMsg, charsmax( szMsg ), "!n", "^1" ); replace_all( szMsg, charsmax( szMsg ), "!t", "^3" ); replace_all( szMsg, charsmax( szMsg ), "!g", "^4" ); static msgSayText = 0; static fake_user; if( !msgSayText ) { msgSayText = get_user_msgid( "SayText" ); fake_user = get_maxplayers( ) + 1; } message_begin( id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, _, id ); write_byte( id ? id : fake_user ); write_string( szMsg ); message_end( ); }
__________________
Mess with the best, die like the rest!
Quote:
Originally Posted by aron9forever
You're trying to run 11 servers on each core?
You're bringing the word retard to a new level.
|
Last edited by DeathOrAlive; 09-08-2015 at 07:14.
|
|