[CS:GO] Block Team for MG course maps

Тема в разделе "Counter-Strike: Global Offensive", создана пользователем Denis Fypfyvr, 2 сен 2015.

  1. Denis Fypfyvr

    Denis Fypfyvr

    Сообщения:
    18
    Симпатии:
    0
    Настроить плагин/он не работает


    Этот плагин блокирует присоединиться к команде плохой, для которых игроки не должны играть на курсовой карте.

    Поддерживаемые игры:
    Counter-Strike: Global Offensive
    Установка:
    blockteam.smx в / аддоны / SourceMod / плагины /
    BlockTeam_MapConfig.cfg к / аддоны / SourceMod / конфиги /
    Настройте настройки в файле CFG


    Конфигурация:

    Написать Конечно только карты в конфигурации, игроки смогут играть за любую команду в других картах.
    GoodTeam - игроки будут играть только за эту команду на этой карте.​

    PHP:
    //Config
    // 2 - T , 3 - CT

    "BlockTeam_MapConfig"
    {
    "mg_metal_course_2"
    {
    "GoodTeam" "3"
    }

    "mg_your_map"
    {
    "GoodTeam" "2"
    }
    }


    Переменные (cvars):

    sm_block_team_version 1.0

    Требования:
    SourceMod 1.6.0+

    Список изменений:

    05.04.2015 (В1.0)

    * Первый выпуск.

    Посмотреть вложение blockteam.sp

    Посмотреть вложение BlockTeam_MapConfig.cfg
     
  2. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Ни чего, не понял. Описание убогое, как будто писал, 10 летний ребенок.
     
  3. DarklSide

    DarklSide

    Сообщения:
    679
    Симпатии:
    171
  4. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    По мне так бесполезный плагин... на course картах, и так запрещено заходить за ту команду за коротую нет спавн точек...
     
  5. Denis Fypfyvr

    Denis Fypfyvr

    Сообщения:
    18
    Симпатии:
    0
    DexKekcuk #13,
    а на других
     
  6. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    А на других картах это каких? PVP и MultiGames? Там стоят спавны и На КТ и на Т, там это зачем...
     
  7. Владимир Валентинов

    Владимир Валентинов Read Only

    Сообщения:
    116
    Симпатии:
    7
    Парни помогите , как настроить карту чтоб играли не только два игрока а заходили все скольстоит слотов.
     
  8. pashek71

    pashek71

    Сообщения:
    171
    Симпатии:
    18
    DexKekcuk #13, на некоторых картах(где должна быть только одна команда) можно зайти за обе. Но мне кажется, что лучшее решение для этой проблемы stripper
     
  9. Владимир Валентинов

    Владимир Валентинов Read Only

    Сообщения:
    116
    Симпатии:
    7
    а можно подробнее, плииз, а то не все понятно, как настроить сервер чтоб играли все , на сколько рассчитан по слотам , и если плагин есть то ссылку дайте плиииииззззз....
     
  10. Ozhent#.

    Ozhent#.

    Сообщения:
    47
    Симпатии:
    3
    Перепишите на новый sm 1.8)
     
  11. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    PHP:
    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>
    #include <cstrike>

    #pragma newdecls required

    #define VERSION "1.0newstyle"

    int GoodTeam = -1;
    int BadTeam = -1;

    public 
    Plugin myinfo =
    {
        
    name "Block Team for course maps",
        
    author "Graffiti",
        
    description "",
        
    version VERSION,
        
    url ""
    };


    public 
    void OnPluginStart()
    {
        
    CreateConVar("sm_block_team_version"VERSION"Block Team for course maps"FCVAR_SPONLY FCVAR_DONTRECORD FCVAR_NOTIFY);
        
        
    HookEvent("player_team",Event_PlayerTeamSwitch,EventHookMode_Pre);
        
    HookEvent("jointeam_failed"Event_JoinTeamFailedEventHookMode_Pre);
        
    AddCommandListener(Command_JoinTeam"jointeam");
    }

    public 
    void OnConfigsExecuted()
    {
        
    Parse_MapConfig();
    }

    public 
    Action Event_PlayerTeamSwitch(Event event, const char[] namebool dontBroadcast)
    {
        
    int NewTeam event.GetInt("team");
        
    int OldTeam event.GetInt("oldteam");
        
    int clientID GetClientOfUserId(event.GetInt("userid"));
        if (
    GoodTeam != -1
        {
           if ((
    OldTeam == CS_TEAM_NONE || OldTeam == CS_TEAM_SPECTATOR) && NewTeam == BadTeam)
           {
                
    CreateTimer(0.0Timer_SwapFirstJoinclientID);
                return 
    Plugin_Handled;
           }
           else if (
    OldTeam == GoodTeam && NewTeam == BadTeam)
           {
                return 
    Plugin_Handled;
           }
        }
        return 
    Plugin_Continue;
    }

    public 
    Action Event_JoinTeamFailed(Event event, const char[] namebool dontBroadcast)
    {
        if (
    GoodTeam != -1
        {
            
    int client GetClientOfUserId(event.GetInt("userid"));
            if(!
    client || !IsClientInGame(client))
                return 
    Plugin_Continue;

            
    ChangeClientTeam(clientGoodTeam);
            return 
    Plugin_Handled;
        }

        return 
    Plugin_Continue;
        
    }

    public 
    Action Command_JoinTeam(int client, const char[] commandint args)
    {
        if(!
    client || !IsClientInGame(client) || IsFakeClient(client))
        {
            return 
    Plugin_Continue;
        }
        if (
    GoodTeam != -1
        {
            
    // Get the target team
            
    char teamString[3];
            
    GetCmdArg(1teamStringsizeof(teamString));
            
    int Target_Team StringToInt(teamString);
            
    // Get the players current team
            
    int Current_Team GetClientTeam(client);
            
            if (
    Current_Team == Target_Team)
            {
                return 
    Plugin_Handled;
            }
            
            if (
    Current_Team == BadTeam && Target_Team == GoodTeam)
            {
                
    ForcePlayerSuicide(client);
                return 
    Plugin_Continue;
            }
            
            if (
    Current_Team == GoodTeam && Target_Team == BadTeam)
            {
                return 
    Plugin_Handled;
            }
            
            if (!((
    Target_Team == GoodTeam) || (Target_Team == BadTeam) || (Target_Team == CS_TEAM_SPECTATOR)))
            {    
                
    CS_SwitchTeam(clientGoodTeam);
                
    ForcePlayerSuicide(client);
                return 
    Plugin_Handled;    
            }
        }
        
        return 
    Plugin_Continue;

    }

    public 
    Action Timer_SwapFirstJoin(Handle timerany client)
    {
        if (
    client)
        {
            
    CS_SwitchTeam(clientGoodTeam);
            
    ForcePlayerSuicide(client);
        }
        return 
    Plugin_Stop;
    }

    void Parse_MapConfig()
    {
        
    KeyValues hConfig = new KeyValues("BlockTeam_MapConfig");
        
    char sConfig[PLATFORM_MAX_PATH];
        
    char sMapName[128];
        
    GetCurrentMap(sMapNamesizeof(sMapName));

        
    BuildPath(Path_SMsConfigsizeof(sConfig), "configs/BlockTeam_MapConfig.cfg");

        if (
    hConfig.ImportFromFile(sConfig))
        {
            if (
    hConfig.JumpToKey(sMapName))
            {
                
    GoodTeam hConfig.GetNum("GoodTeam", -1);
                if (
    GoodTeam == 2BadTeam=3;
                else if (
    GoodTeam == 3BadTeam=2;
                else 
    BadTeam = -1;
            }
            else
            {
                
    GoodTeam = -1;
            }
        }
        else
        {
            
    GoodTeam = -1;
        }
        
        
    delete hConfig;
    }
     
    Ozhent#. нравится это.