HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <cstrike>
  4. #include <nvault>
  5.  
  6. new const SaveKey[] = "mute_settings"
  7.  
  8. new MuteTeams[CsTeams]
  9.  
  10. new VarSave
  11.  
  12. public plugin_init()
  13. {
  14. register_plugin( "Csapat némitás", "1.2", "Wrecked" ) // :avast:
  15.  
  16. VarSave = register_cvar( "tvc_save", "1" )
  17.  
  18. register_clcmd( "say /vcontrol", "CmdMute" )
  19. register_clcmd( "say_team /vcontrol", "CmdMute" )
  20. register_clcmd( "/vcontrol", "CmdMute" )
  21.  
  22. register_forward( FM_Voice_SetClientListening, "MetaSetClientListeningPre", 0 )
  23.  
  24. if( get_pcvar_num( VarSave ) )
  25. {
  26. new t_muteval[2], ct_muteval[2]
  27. new Entry[4]
  28.  
  29. new vHandle = nvault_open( "tvm_vault" )
  30. nvault_get( vHandle, SaveKey, Entry, 3 )
  31. nvault_close( vHandle ) // since it's only being accessed in the beginning and end of the plugin, we don't need it to be open the entire time
  32.  
  33. parse( Entry, t_muteval, 1, ct_muteval, 1 )
  34. MuteTeams[CS_TEAM_T] = str_to_num( t_muteval )
  35. MuteTeams[CS_TEAM_CT] = str_to_num( ct_muteval )
  36. }
  37. }
  38.  
  39. public plugin_end()
  40. {
  41. if( get_pcvar_num( VarSave ) )
  42. {
  43. new vHandle = nvault_open( "tvm_vault" )
  44. new Entry[4]
  45. formatex( Entry, 3, "%i %i", MuteTeams[CS_TEAM_T], MuteTeams[CS_TEAM_CT] )
  46. nvault_set( vHandle, SaveKey, Entry )
  47. nvault_close( vHandle )
  48. }
  49. }
  50.  
  51. public MetaSetClientListeningPre( in, spk, bool:CanListen )
  52. {
  53. if( is_user_connected( spk ) && MuteTeams[cs_get_user_team( spk )] ) // getting runtime errors, needed the is_user_connected check
  54. {
  55. engfunc( EngFunc_SetClientListening, in, spk, false )
  56. forward_return( FMV_CELL, false )
  57.  
  58. return FMRES_SUPERCEDE;
  59. }
  60.  
  61. return FMRES_IGNORED;
  62. }
  63.  
  64. public CmdMute( id )
  65. {
  66. if( !( get_user_flags( id ) & ADMIN_BAN ) )
  67. {
  68. return PLUGIN_CONTINUE;
  69. }
  70.  
  71. new menu = menu_create( "Csapat beszéd státusz", "VoiceHandler" )
  72.  
  73. new TeamMuted[32]
  74. formatex( TeamMuted, 32, "Összes csapat némitása: \y%s", ( MuteTeams[CS_TEAM_T] && MuteTeams[CS_TEAM_CT] ) ? "Aktiválva[--Nincs beszéd, Bocsesz :D---]" : "Kikapcsolva[--Mondhatjátok..--]" )
  75. menu_additem( menu, TeamMuted, "0" )
  76.  
  77. formatex( TeamMuted, 32, "Terroristák némitása: \y%s", MuteTeams[CS_TEAM_T] ? "Aktív[--Nincs beszéd, Bocsesz :D---]" : "Kikapcsolva[--Mondhatjátok..--]" )
  78. menu_additem( menu, TeamMuted, "1" )
  79.  
  80. formatex( TeamMuted, 32, "Counter-Terroristák némitása: \y%s", MuteTeams[CS_TEAM_CT] ? "Aktív [--Nincs beszéd, Bocsesz :D---]" : "Kikapcsolva [--Mondhatjátok..--]" )
  81. menu_additem( menu, TeamMuted, "2" )
  82.  
  83. menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
  84. menu_display( id, menu, 0 )
  85.  
  86. return PLUGIN_HANDLED;
  87. }
  88.  
  89. public VoiceHandler( id, menu, item )
  90. {
  91. if( item == MENU_EXIT )
  92. {
  93. menu_destroy( menu )
  94.  
  95. return PLUGIN_HANDLED;
  96. }
  97.  
  98. new access, callback, data[6]
  99. menu_item_getinfo( menu, item, access, data, 5, _, _, callback )
  100.  
  101. new choice = str_to_num( data )
  102.  
  103. switch( choice )
  104. {
  105. case 1, 2:
  106. {
  107. MuteTeams[CsTeams:choice] = !MuteTeams[CsTeams:choice]
  108. }
  109.  
  110. default:
  111. {
  112. if( !MuteTeams[CS_TEAM_T] || !MuteTeams[CS_TEAM_CT] )
  113. {
  114. MuteTeams[CS_TEAM_T] = 1
  115. MuteTeams[CS_TEAM_CT] = 1
  116. }
  117.  
  118. else
  119. {
  120. MuteTeams[CS_TEAM_T] = 0
  121. MuteTeams[CS_TEAM_CT] = 0
  122. }
  123. }
  124. }
  125.  
  126. CmdMute( id )
  127.  
  128. return PLUGIN_HANDLED;
  129. }