Плагин mute,votekick

To improve servers/Для улучшения серверов
Аватар пользователя

Автор темы
zucco
Сообщений: 2
Зарегистрирован: 24 мар 2016, 07:36
STEAM_ID:

Плагин mute,votekick

Сообщение zucco » 24 мар 2016, 08:02

Есть пару предложений, почему бы не установить плагин mute c голосованием для игроков, а то парой
люди просто бесят когда бес столку болтают и мешают играть.

Код: Выбрать все

 #include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN     "mute menu"
#define VERSION "1.0"
#define AUTHOR     "cheap_suit"

#define MAX_PLAYERS 32

new bool:g_mute[MAX_PLAYERS+1][MAX_PLAYERS+1]
new g_menuposition[MAX_PLAYERS+1]
new g_menuplayers[MAX_PLAYERS+1][32]
new g_menuplayersnum[MAX_PLAYERS+1]

new cvar_alltalk
new g_maxclients

public plugin_init
()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar(PLUGIN, VERSION, FCVAR_SPONLY|FCVAR_SERVER)

    register_clcmd("say", "clcmd_say")
    register_clcmd("say_team", "clcmd_say")

    register_forward(FM_Voice_SetClientListening, "fwd_voice_setclientlistening")
    register_menucmd(register_menuid("mute menu"), 1023, "action_mutemenu")
    
    cvar_alltalk 
= get_cvar_pointer("sv_alltalk")
    g_maxclients = global_get(glb_maxClients)
}

public client_putinserver(id)
    clear_list(id)
    
public client_disconnect
(id)
    clear_list(id)

clear_list(id)
{
    for(new i = 0; i <= g_maxclients; ++i) 
        g_mute
[id][i] = false
}

public clcmd_say(id)
{
    static say_args[10]
    read_args(say_args, 9)
    remove_quotes(say_args)
    
    if
(say_args[0] == '/' && containi(say_args, "mute") != -1)
    {
        display_mutemenu(id, g_menuposition[id] = 0)
        return PLUGIN_HANDLED_MAIN
    
}
    return PLUGIN_CONTINUE
}

public fwd_voice_setclientlistening(receiver, sender, listen) 
{
    if(receiver == sender)
        return FMRES_IGNORED
        
    if
(g_mute[receiver][sender])
    {
        engfunc(EngFunc_SetClientListening, receiver, sender, 0)
        return FMRES_SUPERCEDE
    
}
    return FMRES_IGNORED
}

display_mutemenu(id, pos) 
{
    if(pos < 0)  
        return
        
    static team
[11]
    get_user_team(id, team, 10)
    
    new at 
= get_pcvar_num(cvar_alltalk)
    get_players(g_menuplayers[id], g_menuplayersnum[id], 
    at 
? "c" : "ce", at ? "" : team)

      new start = pos * 8
      if
(start >= g_menuplayersnum[id])
            start = pos = g_menuposition[id]

      new end = start + 8
    if
(end > g_menuplayersnum[id])
            end = g_menuplayersnum[id]
    
    static menubody
[512]    
      new len 
= format(menubody, 511, "\wMute Menu^n^n")

    static name[32]
    
    new b 
= 0, i
    new keys 
= MENU_KEY_0
    
      for
(new a = start; a < end; ++a)
    {
            i = g_menuplayers[id][a]
            get_user_name(i, name, 31)
        
        if
(== id)
        {
            ++b
            len 
+= format(menubody[len], 511 - len, "\d#  %s %s\w^n", name, g_mute[id][i] ? "(Muted)" : "")
        }
        else
        
{
            keys |= (1<<b)
            len += format(menubody[len], 511 - len, "%s%d. %s %s\w^n", g_mute[id][i] ? "\y" : "\w", ++b, name, g_mute[id][i] ? "(Muted)" : "")
        }
    }

      if(end != g_menuplayersnum[id]) 
    
{
            format(menubody[len], 511 - len, "^n9. %s...^n0. %s", "More", pos ? "Back" : "Exit")
            keys |= MENU_KEY_9
      
}
      else
        format
(menubody[len], 511-len, "^n0. %s", pos ? "Back" : "Exit")
    
      show_menu
(id, keys, menubody, -1, "mute menu")
}


public action_mutemenu(id, key)
{
    switch(key) 
    
{
            case 8: display_mutemenu(id, ++g_menuposition[id])
        case 9: display_mutemenu(id, --g_menuposition[id])
            default: 
        
{
            new player = g_menuplayers[id][g_menuposition[id] * 8 + key]
            
            g_mute
[id][player] = g_mute[id][player] ? false : true
            display_mutemenu
(id, g_menuposition[id])
            
            static name
[32]
            get_user_name(player, name, 31)
            client_print(id, print_chat, "You have %smuted %s", g_mute[id][player] ? "" : "un", name)
            }
      }
    return PLUGIN_HANDLED
}
  

Или лучше установить плагин votekick

Аватар пользователя

Longipongeoos
Администраторы
Администраторы
Сообщений: 853
Зарегистрирован: 22 янв 2015, 13:26
Откуда: Москва/Moscow
Gender: Boy
Game nick: Longipongeoos
STEAM_ID: STEAM_0:1:46523040
Благодарил (а): 27 раза
Поблагодарили: 179 раза
Контактная информация:

Re: Плагин mute,votekick

Сообщение Longipongeoos » 24 мар 2016, 09:42

Доброе утро zucco. Плагин mute достаточно давно установлен на серверах. На данный момент выключен в конфигурации плагинов. Необходимо провести голосование по поставленному Вами вопросу если большинство проголосует заданный плагин, то работа плагина будет восстановлена.
По поводу плагина votekick вы можете смело пользоваться командой voteban данная команда и плагин существуют не только для блокировки нарушителей которые используют чит программы и постороннее П.О но и для неадекватных игроков или для тех игроков которые мешают игровому процессу.


Вернуться в «Proposal/Предложения»

Кто сейчас на форуме

Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 7 гостей