Поиск join team

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
345
Реакции
77
Помог
14 раз(а)
Доброго времени суток.
Ищу адекватно работающий плагин join team.
Без встроенного автобаланса, без багов и с авто выбором внешности. Имеется такой?
Пример бага: После набранного определенного количества игроков ( по-моему 5 ) не было возможности зайти за какую-либо сторону. Вроде как это был join team от neygomon*a и в чем была проблема не понял.
Раньше использовал плагин баланса от радиуса со всеми выключенными функциями, за исключением "типа выбора команды". Если не найдется, что поделать, придется использовать радиуса. Жаль исходника нет...
 
Сообщения
584
Реакции
1,006
Помог
18 раз(а)
Код:
mp_auto_join_team 1
humans_join_team any
Заносит игрока за тиму без какого-либо выбора. Принцип выбора тимы не знаю.
 
Сообщения
72
Реакции
10
KOLOKOLb4UK, game.cfg:
Код:
// Автоматическое присоединение к команде.
// 0 - отключено
// 1 - включен (Используйте совместно с кваром humans_join_team any/SPEC/CT/T)
//
// Значение по умолчанию: "0"
mp_auto_join_team 1

// К какой команде автоматически присоеденятся.
//
// any     - любой
// SPEC - наблюдатели
// T     - терористы
// CT     - контр-тетористы
//
humans_join_team SPEC
 
Сообщения
345
Реакции
77
Помог
14 раз(а)
Со значением "any" он будет кидать рандомно, даже если есть разница в количестве игроков, верно? Если это так, тогда мне не подходит данный вариант. Какой плагин auto join*a, joinmenu посоветуете использовать, отталкиваясь от вашего опыта, чтобы не наткнуться на что-нибудь эдакое...
 
Сообщения
584
Реакции
1,006
Помог
18 раз(а)
KOLOKOLb4UK, есть mp_limitteams, если не будет работать, то писать в тему regamedll чтобы поправили.
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
на ксдм у меня так и стоит, все норм работает

mp_auto_join_team 1
humans_join_team any
mp_limitteams 1

идет автозаход за команду, где меньше игроков
 
Сообщения
345
Реакции
77
Помог
14 раз(а)
на ксдм у меня так и стоит, все норм работает

mp_auto_join_team 1
humans_join_team any
mp_limitteams 1

идет автозаход за команду, где меньше игроков
С автобалансом конфликта нет? Если вы вообще используете его. Был у меня опыт с одним плагином, все печально...
8 Окт 2018
А, еще такой нюанс. Я собственно по большей части зачем ищу joinmenu. У меня deathmatch и если зайти в спектора - ты там застреваешь ( "Сменить команду можно 1 раз за раунд" ), помогает только перезаход на сервер. Как быть?
 
Сообщения
187
Реакции
319
Помог
1 раз(а)
KOLOKOLb4UK, как-то переделывал под ДМ
Код:
// Copyright © 2016 Vaqtincha

/**
*    Credits:
*
*    - Adidasman - за подсказку
*    - wopox1337 - за поддержку топика
*
*    CVars:
*    atc_team_fast_switch =             1 = wihout kill & select class, 2 - +respawn after switch
*    atc_use_limit_type =             0 - no limit, 1 - round limit, 2 - time limit
*    atc_limit_seconds =             use with atc_use_limit_type == 2
*
*/

///■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//

// #define SHOW_TEAM_COUNT
// #define UNLIMITE_SWITCH_FLAG             ADMIN_KICK
// #define FIX_SPEC_SPAWN                 // fix spectator spawn

///■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

#define PL_VERSION        "0.1.0"

#include <amxmodx>
#include <reapi>


#define IsPlayerJoined(%1)             (get_member(%1, m_iJoiningState) == JOINED)

const MENU_KEY_BITS = (MENU_KEY_1|MENU_KEY_2|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_0)
const MENU_KEY_EXIT = 10
const MAX_MENU_TEXT_LEN = 512

new bool:g_bIsPlayerSpec[MAX_CLIENTS+1], bool:g_bIsPlayerBot[MAX_CLIENTS+1], g_iLastChangedTime[MAX_CLIENTS+1]
new g_pCVarLimitType, g_pCVarLimitSeconds

new const g_szMenuName[] = "TeamMenu"


public plugin_init()
{
    register_plugin("[ReAPI] Advanced Team Chooser", PL_VERSION, "Vaqtincha")

    register_clcmd("chooseteam", "ClCmd_chooseteam")
    register_clcmd("jointeam", "ClCmd_chooseteam")
    register_menucmd(register_menuid(g_szMenuName), MENU_KEY_BITS, "TeamMenuHandler")

    g_pCVarLimitType = register_cvar("atc_use_limit_type", "0")
    g_pCVarLimitSeconds = register_cvar("atc_limit_seconds", "10")

    RegisterHookChain(RG_ShowVGUIMenu, "ShowVGUIMenu", .post = false)

#if defined FIX_SPEC_SPAWN
    RegisterHookChain(RG_HandleMenu_ChooseAppearance, "HandleMenu_ChooseAppearance", .post = true)
#endif
}

public client_putinserver(pPlayer)
{
    g_iLastChangedTime[pPlayer] = 0
    g_bIsPlayerSpec[pPlayer] = false
    g_bIsPlayerBot[pPlayer] = bool:is_user_bot(pPlayer)
}

public ClCmd_chooseteam(pPlayer)
{
    if(!is_user_connected(pPlayer))
        return PLUGIN_CONTINUE

    g_bIsPlayerSpec[pPlayer] = bool:(get_member(pPlayer, m_iTeam) == TEAM_SPECTATOR)

#if defined UNLIMITE_SWITCH_FLAG
    if(get_user_flags(pPlayer) & UNLIMITE_SWITCH_FLAG)
    {
        g_iLastChangedTime[pPlayer] = 0
        set_member(pPlayer, m_bTeamChanged, false)
        return PLUGIN_CONTINUE
    }
#endif

    switch(get_pcvar_num(g_pCVarLimitType))
    {
        case 0: set_member(pPlayer, m_bTeamChanged, false)
        case 1: set_member(pPlayer, m_bTeamChanged, true)
        case 2: {
            new iSysTime = get_systime()
            if(g_iLastChangedTime[pPlayer] > iSysTime)
            {
                client_print(pPlayer, print_center, "* Это команда доступно после %d секунд! *", (g_iLastChangedTime[pPlayer] - iSysTime))
                return PLUGIN_HANDLED
            }

            g_iLastChangedTime[pPlayer] = get_systime() + get_pcvar_num(g_pCVarLimitSeconds)
            set_member(pPlayer, m_bTeamChanged, false)
        }
    }
    
    return PLUGIN_CONTINUE
}

public ShowVGUIMenu(const pPlayer, VGUIMenu:menuType, bitsSlots, const szOldMenu[], bool:bForceOldMenu)
{
    if(menuType == VGUI_Menu_Team && !g_bIsPlayerBot[pPlayer] /* potbot/yapb fix join team*/)
    {
        ShowTeamMenu(pPlayer)
        return HC_SUPERCEDE
    }

    return HC_CONTINUE
}

#if defined FIX_SPEC_SPAWN
public HandleMenu_ChooseAppearance(const pPlayer, const slot)
{
    if(g_bIsPlayerSpec[pPlayer] && is_user_connected(pPlayer) && !is_user_alive(pPlayer))
    {
        rg_round_respawn(pPlayer)
    }
}
#endif

ShowTeamMenu(const pPlayer)
{
    if(!is_user_connected(pPlayer))
        return PLUGIN_HANDLED

    new szMenu[MAX_MENU_TEXT_LEN], iKeys
    new iLen = formatex(szMenu, charsmax(szMenu), "\yМеню:^n^n")
/*
#if defined SHOW_TEAM_COUNT
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1\w. Террористы \r[\y%d\r]^n", get_member_game(m_iNumTerrorist))
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y2\w. Контр-террористы \r[\y%d\r]^n^n", get_member_game(m_iNumCT))
#else
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1\w. Террористы^n")
    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y2\w. Контр-террористы^n^n")
#endif
*/
    if(IsPlayerJoined(pPlayer))
    {
        if(g_bIsPlayerSpec[pPlayer])
        {
        }
    }   

    if(IsPlayerJoined(pPlayer))
    {
        if(g_bIsPlayerSpec[pPlayer])
        {
            iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y1\w. Зайти в игру^n^n")
            iKeys |= (MENU_KEY_1)
        }
        else
        {
            iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y6\w. Наблюдение^n^n")
            iKeys |= (MENU_KEY_6)
        }
        
    }
        
    formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\y0\w. \rВыход")
    iKeys |= MENU_KEY_0

    return show_menu(pPlayer, iKeys, szMenu, -1, g_szMenuName)
}

public TeamMenuHandler(const pPlayer, iKey)
{
    iKey += 1

    if(iKey == MENU_KEY_EXIT || !is_user_connected(pPlayer))
        return PLUGIN_HANDLED

    switch(iKey)
    {
        case 1: JoinTeam(pPlayer, "5")
        case 6: {   
            user_kill(pPlayer, 1)
            engclient_cmd(pPlayer, "jointeam", "6")
        }
    }

    return PLUGIN_HANDLED
}

JoinTeam(const pPlayer, szString[2])
{
    rg_set_user_team(pPlayer, szString[0] == '5' ? random_num(1, 2) : str_to_num(szString))
    rg_round_respawn(pPlayer)
}
 

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
KOLOKOLb4UK, автобаланс тоже не использую, я перебпробовал все что есть и понял, что mp_limitteams более чем достаточно, ибо игроки с автобалансом или перезаходят или обнуляют счет - те, кому надо - всравно его обойдут
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
ifx, все же я за автобаланс. Не редко встречал ситуации когда за одну команду переходят все сильные (им так удобней, ведь командно играют), а за другою новички сервера и игры в целом. Результат конешно предсказуем. Со слабой команды игрокы начинают уходить, матерится, кричать читеры и все в этом духе. В конечном итоге найдется 2 рыцяря которые перейдут. И тут два варианта либо начнут на себе тащить, либо сливать стату вместе с остальними. Чаще всего я видел второй вариант, ибо один в поле не воин. Так вот если учитывать не по фрагам, а по скилу например, то автобаланс нужная везь на сервере.
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Так вот если учитывать не по фрагам, а по чкилу например, то автобаланс нужная везь на сервере.
скилл тоже вещь ненадежная, учитывая потоки игроков с бустов всяких - при первом конекте он всегда 100 (условно) и в дальнейшем идет либо вверх, либо вниз. В итоге получаем что при 50% новых юзеров баланс будет не по заслугам.
9 Окт 2018
В принципе самый адекватный вариант - считать фраги/смерти плагином отдельно, чтоб не зависеть от /rs
 
  • Нравится
Реакции: ifx

ifx

Сообщения
331
Реакции
153
Помог
4 раз(а)
fantom, в моем королевстве рыцарей к сожалению нет))) были наоборот те, кто переходил за сильную команду и добавил в хлам оставшихся T_T
 
Сообщения
3,569
Реакции
1,560
Помог
133 раз(а)
ifx, давай я зайду за слабых :hunter::rofl:
Sonyx, а нельзя ли скилл выставить по умолчанию в 0-20? (сам не использую его на своем серве, не знаю)
 
Последнее редактирование:
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
sbelov020, бестолку - формула все равно будет либо прибавлять либо убавлять
 
Сообщения
3,569
Реакции
1,560
Помог
133 раз(а)
Sonyx, ну я имею в виду то, что при новых юзерах баланс будет считаться немного адекватнее, чем при 100 по умолчанию
 
Сообщения
144
Реакции
8
Nunf, здраствуйте а где находиться эта строка
humans_join_team SPEC
в game.cfg нашел только вот это
mp_auto_join_team 1
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу