HLSS ir HLDJ block
Posted: 2012 Jul 31 17:37
Noriu užblokuot leidimą per hlss ar hldj, radau kodą, biškeli pakoregavau, bet neveikia taip kaip reikia.
Jame yra naudojame query_client_cvar, tai prieš naudojant šitas komandas noriu patikrint ar žaidėjas 47 proto, jei true, jų nevygtyti ir stabdyti pluginą, jei false - tęsti.
Šitas kodas neveikia, meta iš serverio vistiek, jei su 47 proto prisijungi.
Jame yra naudojame query_client_cvar, tai prieš naudojant šitas komandas noriu patikrint ar žaidėjas 47 proto, jei true, jų nevygtyti ir stabdyti pluginą, jei false - tęsti.
Code: Select all
#include <amxmodx> #define VERSION "0.1" new p_enabled, pcv_dp_r_protocol;new bool:g_is_old_cl[33]; public plugin_init( ){ register_plugin( "HLSS Blocker", VERSION, "Ian Cammarata" ); register_cvar( "HLSS Blocker", VERSION, FCVAR_SERVER ); p_enabled = register_cvar( "amx_block_hlss", "1" ); pcv_dp_r_protocol = get_cvar_pointer ("dp_r_protocol"); set_task( 1.0, "hlss_query",_,_,_,"b" ); return PLUGIN_CONTINUE;} public client_putinserver(id){ if (!pcv_dp_r_protocol) { log_amx ("Nerastas dp_r_protocol cvar."); return PLUGIN_HANDLED; } server_cmd("dp_clientinfo %d", id); server_exec(); new proto = get_pcvar_num(pcv_dp_r_protocol); if(proto == 47) g_is_old_cl[id] = true; return PLUGIN_CONTINUE;} public client_disconnect(id) g_is_old_cl[id] = false; public hlss_query(id){ if(g_is_old_cl[id]) return PLUGIN_HANDLED; if( get_pcvar_num( p_enabled ) ) { new clnt[32], num; get_players( clnt, num, "c" ); for( new i = 0; i < num; i++ ) { query_client_cvar( clnt[i], "voice_inputfromfile", "hlss_block" ); query_client_cvar( clnt[i], "voice_forcemicrecord", "hlss_block" ); } } return PLUGIN_HANDLED;} public hlss_block( id, cvar[], value[] ){ if( get_pcvar_num( p_enabled ) > 0 ) { new bool:p_InPut[33], bool:p_ForceMic[33]; new intval = str_to_num( value ); if( equal( cvar, "voice_inputfromfile" ) && intval != 0 ) { client_cmd( id, "voice_inputfromfile 0" ); client_cmd( id, "-voicerecord" ); p_InPut[id] = true } if( equal( cvar, "voice_forcemicrecord" ) && intval != 1 ) { client_cmd( id, "voice_forcemicrecord 1" ); client_cmd( id, "-voicerecord" ); p_ForceMic[id] = true } if(p_InPut[id] || p_ForceMic[id]) { client_print(id, print_chat, "[AMX] Siame serveryje yra drauziama leisti muzika per HLSS ar HLDJ!"); if(p_InPut[id]) p_InPut[id] = false; if(p_ForceMic[id]) p_ForceMic[id] = false; } } return PLUGIN_HANDLED;}