Ограничение чата

Тема в разделе "Запросы", создана пользователем HooLIGUN, 6 янв 2015.

  1. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Здравствуйте.
    Просьба к скриптерам,если тут таковые остались написать простенький плагин
    Суть плагина
    1.)Отключение чат общения между живыми Т и КТ (say)
    2.)Включение чат общения мертвых игроков и живых в 1 команде (say_team) (т.е. живые Т видят чат мертвых Т, и так же живые КТ видят чат своих убитых игроков)
    3.) чтобы этот плагин можно было включать и отключать переменной (напр. sm_say_enable 1)

    Сможет кто нибудь написать данный скриптик?
    Спасибо!
     
    Последнее редактирование: 7 янв 2015
  2. s0kz

    s0kz

    Сообщения:
    0
    Симпатии:
    0
    Если я не ошибаюсь, то это можно сделать в server.cfg
    Следующие квары:
    sv_alltalk
     
  3. TWRP

    TWRP Read Only

    Сообщения:
    317
    Симпатии:
    45
    Оффтоп
     
  4. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.725
    Симпатии:
    461
    sm_deadtalk?
     
  5. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    Не то
     
  6. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    892
    Симпатии:
    659
    v3
    PHP:
    #include <sourcemod>
    #include <cstrike>

    public OnPluginStart()
    {
        new 
    Handle:hCvar CreateConVar("sm_say_enable""1");
        
    HookConVarChange(hCvarOnCvarChange);

        
    decl String:var[8];
        
    GetConVarString(hCvar, var, 8);
        
    OnCvarChange(hCvar"0", var);
    }

    public 
    OnCvarChange(Handle:cvar, const String:oldVal[], const String:newVal[])
    {
        if (
    strcmp(newVal"0"false) == 0)
        {
            
    RemoveCommandListener(ACL_Say,        "say")
            
    RemoveCommandListener(ACL_SayTeam,    "say_team");
        }
        else
        {
            
    AddCommandListener(ACL_Say,        "say");
            
    AddCommandListener(ACL_SayTeam,    "say_team");
        }
    }

    public 
    Action:ACL_Say(client, const String:message[], args)
    {
        if (
    client 0)
        {
            
    decl String:messages[256];
            
    GetCmdArgString(messages256);
            
    TrimString(messages);
            
    StripQuotes(messages);

            new 
    client_team GetClientTeam(client);
            if (
    client_team 1)
            {
                if (!
    IsPlayerAlive(client))
                {
                    
    decl i_team;
                    for (new 
    1<= MaxClientsi++)
                    {
                        if (
    IsClientInGame(i))
                        {
                            
    i_team GetClientTeam(i);
                            if ((
    client_team == i_team) ||(client_team != i_team && !IsPlayerAlive(i)))
                            {
                                
    SayText2(iclient"\x01\x03%N\x01: %s"clientmessages);
                            }
                        }
                    }
                }
            }
            else
            {
                for (new 
    1<= MaxClientsi++)
                {
                    if (
    IsClientInGame(i))
                    {
                        if (
    GetClientTeam(i) < 2)
                        {
                            
    SayText2(iclient"\x01\x03%N\x01: %s"clientmessages);
                        }
                    }
                }
            }
        }

        return 
    Plugin_Handled;
    }

    public 
    Action:ACL_SayTeam(client, const String:message[], args)
    {
        if (
    client 0)
        {
            
    decl String:messages[256];
            
    GetCmdArgString(messages256);
            
    TrimString(messages);
            
    StripQuotes(messages);

            new 
    team GetClientTeam(client);
            for (new 
    1<= MaxClientsi++)
            {
                if (
    IsClientInGame(i))
                {
                    if (
    team == GetClientTeam(i))
                    {
                        
    SayText2(iclient"\x01\x03%N\x01: %s"clientmessages);
                    }
                }
            }
        }

        return 
    Plugin_Handled;
    }

    public 
    SayText2(tofrom, const String:format[], any:...)
    {
        
    decl String:message[256];
        
    VFormat(message,sizeof(message),format,4);
        
        new 
    Handle:hBf StartMessageOne("SayText2"to);
        
    BfWriteByte(hBffrom);
        
    BfWriteByte(hBftrue);
        
    BfWriteString(hBfmessage);
        
        
    EndMessage();
    }
     
    Последнее редактирование: 7 янв 2015
    HooLIGUN и Серый™ нравится это.