В команде нет мест

Tomich

Участник
Сообщения
177
Реакции
46
Доброго, помогите пожалуйста не могу понять почему, значит есть такие карты на прохождение в мини геймах, так вот там есть карта пила, там 64 спавна для тероров, сервер из 20 человек пытается зайти за тероров, но пишет что В команде нет мест, и если нажать на команду теров то тебя кикнет в гл меню, использовал этот плагин [CS:GO] Team Limit Bypass - AlliedModders , но он не работает хотя установлен и eror не создает. Прошу помочь как решить данную проблему.
Yqd0k-LQ9HM.jpg

UT7aHONtCNc.jpg

9RTh_lH_QuA.jpg

DNJyMlt_4hA.jpg
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Попробуй лучше этот фикс:
 

Вложения

  • CSGOJoinTeamFix.sp
    913 байт · Просмотры: 57

Someone

Участник
Сообщения
1,933
Реакции
1,653
Просто закидываешь и если все ровно, то не будет появляться сообщение "В команде нет мест".
 

Tomich

Участник
Сообщения
177
Реакции
46
Все работает.
 
Последнее редактирование:

Kolya

Участник
Сообщения
75
Реакции
17
Просто закидываешь и если все ровно, то не будет появляться сообщение "В команде нет мест".
Все ок, но смотри, в Spawntools все выставлено на Т, ни единого места за КТ. Но почему то на изи можно зайти за КТ и раунд сбивается.
Чем можно помочь, как вылечить эту проблему?
(Все слоты за Т только выставлены)
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Все ок, но смотри, в Spawntools все выставлено на Т, ни единого места за КТ. Но почему то на изи можно зайти за КТ и раунд сбивается.
Чем можно помочь, как вылечить эту проблему?
(Все слоты за Т только выставлены)

Хм, может вот так ?
Зайти можно будет только за Т.

PHP:
#pragma semicolon 1

#include <sourcemod>

public Action:OnJoinTeam(client, const String:command[], argc)
{
    if (!IsClientInGame(client))
    {
        return Plugin_Continue;
    }
 
    int iTeam = GetClientTeam(client);
 
    if (iTeam > 1)
    {
        return Plugin_Continue;
    }
 
    decl String:arg1[255];
    GetCmdArg(1, arg1, sizeof(arg1));
 
    int desiredteam = StringToInt(arg1);
    if (desiredteam <= 1 || desiredteam > 2 )
    {
        return Plugin_Continue;
    }
 
    ChangeClientTeam(client, desiredteam);
    return Plugin_Continue;
}

Оффтоп
 

Kolya

Участник
Сообщения
75
Реакции
17
Хм, может вот так ?
Зайти можно будет только за Т.

PHP:
#pragma semicolon 1

#include <sourcemod>

public Action:OnJoinTeam(client, const String:command[], argc)
{
    if (!IsClientInGame(client))
    {
        return Plugin_Continue;
    }

    int iTeam = GetClientTeam(client);

    if (iTeam > 1)
    {
        return Plugin_Continue;
    }

    decl String:arg1[255];
    GetCmdArg(1, arg1, sizeof(arg1));

    int desiredteam = StringToInt(arg1);
    if (desiredteam <= 1 || desiredteam > 2 )
    {
        return Plugin_Continue;
    }

    ChangeClientTeam(client, desiredteam);
    return Plugin_Continue;
}

Оффтоп
Спасибо, попробую :air_kiss:
 

ludanik

Участник
Сообщения
146
Реакции
20
@Someone, тут можно упростить
C-подобный:
    if (!IsClientInGame(client))
    {
        return Plugin_Continue;
    }
    int iTeam = GetClientTeam(client);
    if (iTeam > 1)
    {
        return Plugin_Continue;
    }
заменяешь на это
C-подобный:
if (!IsClientInGame(client) || GetClientTeam(client) > 1) return Plugin_Continue;
и
C-подобный:
    if (desiredteam <= 1 || desiredteam > 2 )
    {
        return Plugin_Continue;
    }
заменяешь на это
C-подобный:
if (desiredteam < 2 || desiredteam > 2) return Plugin_Continue;

Слишком большой массив decl String:arg1[255]; > decl String:arg1[5];
Ты не зарегистрировал команду OnJoinTeam

Тем самым получится меньше коду.
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,558
Реакции
5,060
заменяешь на это
C-подобный:
 if (desiredteam < 2 || desiredteam > 2) return Plugin_Continue;
Вообще-то лучше тогда if(desiredteam != 2) return Plugin_Continue;
Ты не зарегистрировал команду OnJoinTeam
Тогда уж сразу так сделать:
PHP:
#pragma semicolon 1

#include <sourcemod>

public OnPluginStart()
{
    AddCommandListener(OnJoinTeam, "jointeam");
}

public Action:OnJoinTeam(client, const String:command[], argc)
{
    if (!client || !IsClientInGame(client))
        return Plugin_Continue;

    ChangeClientTeam(client, 2);

    return Plugin_Continue;
}
Так при выборе любой команды будет кидать за теров
 
Последнее редактирование:

Someone

Участник
Сообщения
1,933
Реакции
1,653
Так при выборе любой команды будет кидать за теров

Когда-то делал подобное. У меня так игроков в команду не пускало, а после вообще не давало выбрать ее. Могу ошибаться.
 

ludanik

Участник
Сообщения
146
Реакции
20
if(desiredteam != 2) return Plugin_Continue;
можно и так, но я писал в его случае.

Мой вариант:
C-подобный:
#pragma semicolon 1

public OnPluginStart() {
    AddCommandListener(ChooseTeam, "jointeam");
}

public Action:ChooseTeam(client, const String:command[], args) {
    if (!client || !IsClientInGame(client)) return Plugin_Handled;
 
    new String:text[5];
 
    GetCmdArgString(text, sizeof(text));
    StripQuotes(text); TrimString(text);
    if (StringToInt(text) > 1) {
        ChangeClientTeam(client, 2);
        return Plugin_Handled;
    }
 
    return Plugin_Continue;
}
При выборе любой команды (кроме наблюдателей), будет кидать за Террористов.
 
Последнее редактирование:

Kolya

Участник
Сообщения
75
Реакции
17
можно и так, но я писал в его случае.

Мой вариант:
C-подобный:
#pragma semicolon 1

public OnPluginStart() {
    AddCommandListener(ChooseTeam, "jointeam");
}

public Action:ChooseTeam(client, const String:command[], args) {
    if (!client || !IsClientInGame(client)) return Plugin_Handled;

    new String:text[5];

    GetCmdArgString(text, sizeof(text));
    StripQuotes(text); TrimString(text);
    if (StringToInt(text) > 1) {
        ChangeClientTeam(client, 2);
        return Plugin_Handled;
    }

    return Plugin_Continue;
}
При выборе любой команды (кроме наблюдателей), будет кидать за Террористов.
Спасибо ребята. Люблю вас :*
 
Сверху Снизу