Поиск Авторестарт после N колва побед

Статус
В этой теме нельзя размещать новые ответы.

D1esel

Пользователь
Регистрация
12 Июн 2017
Сообщения
12
Симпатии
0
Пол
Мужской
Доброго времени суток.
Ищу плагин, который сможет делать рестарт в случае если одна из команд раньше чем другая набрала N количество побед (к примеру 50)
 

hooligan***

Пользователь
Регистрация
9 Июн 2017
Сообщения
377
Симпатии
105
Пол
Мужской
Посмотри все параметры в файле server.cfg
 

D1esel

Пользователь
Регистрация
12 Июн 2017
Сообщения
12
Симпатии
0
Пол
Мужской

FIELD LINE

Администратор
Регистрация
11 Июн 2017
Сообщения
73
Симпатии
69
Пол
Мужской
Именно рестарт? Или запуск голосования на смену карты?
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
C++:
#include <amxmodx>

public plugin_init()
{
    register_event("TeamScore", "EventTeamScore", "a", "2=50"); //50 - кол-во побед
}

public EventTeamScore()
{
    set_cvar_float("sv_restart", 3.0);
}
 

D1esel

Пользователь
Регистрация
12 Июн 2017
Сообщения
12
Симпатии
0
Пол
Мужской
georgeml,
подскажите плз, как сделать changelevel de_dust2 или restart (имеется ввиду не sv_restart)
аналогично скрипту выше, после 50 побед одной из команд
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
685
Симпатии
195
Пол
Мужской
ВКонтакте
e1337ace
georgeml,
подскажите плз, как сделать changelevel de_dust2 или restart (имеется ввиду не sv_restart)
аналогично скрипту выше, после 50 побед одной из команд
наверно так)
Код:
#if AMXX_VERSION_NUM < 183
    #define engine_changelevel(%0) server_cmd("changelevel %s", %0)
#endif

engine_changelevel("de_dust2_2x2")
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
685
Симпатии
195
Пол
Мужской
ВКонтакте
e1337ace
C++:
#include <amxmodx>

public plugin_init()
{
    register_event("TeamScore", "EventTeamScore", "a", "2=50"); //50 - кол-во побед
}

public EventTeamScore()
{
    set_cvar_float("sv_restart", 3.0);
}
а как сделать тоже самое но рестарт после N количества побед одной из команд??
 

StockX

Скриптер
Регистрация
8 Июн 2017
Сообщения
168
Симпатии
132
Пол
Мужской
а как сделать тоже самое но рестарт после N количества побед одной из команд??
C:
#include <amxmodx>
#include <reapi>

#define WIN_FOR_CT 10
#define WIN_FOR_TE 10

new win_ct_num;
new win_te_num;

public plugin_init()
{
    RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", 1);
}

public RG_RoundEnd_Post(WinStatus:status)
{
    switch(status)
    {
        case WINSTATUS_CTS: win_ct_num++;
        case WINSTATUS_TERRORISTS: win_te_num++;
    }

    if(win_ct_num >= WIN_FOR_CT)
    {
        win_ct_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }

    if(win_te_num >= WIN_FOR_TE)
    {
        win_te_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }
}
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
685
Симпатии
195
Пол
Мужской
ВКонтакте
e1337ace
C:
#include <amxmodx>
#include <reapi>

#define WIN_FOR_CT 10
#define WIN_FOR_TE 10

new win_ct_num;
new win_te_num;

public plugin_init()
{
    RegisterHookChain(RG_RoundEnd, "RG_RoundEnd_Post", 1);
}

public RG_RoundEnd_Post(WinStatus:status)
{
    switch(status)
    {
        case WINSTATUS_CTS: win_ct_num++;
        case WINSTATUS_TERRORISTS: win_te_num++;
    }

    if(win_ct_num >= WIN_FOR_CT)
    {
        win_ct_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }

    if(win_te_num >= WIN_FOR_TE)
    {
        win_te_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }
}
огонь но мне бы без re! типа под все платформы)
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
963
Симпатии
685
Пол
Мужской
StockX, юзай m_iNumCTWins, m_iNumTerroristWins
 

StockX

Скриптер
Регистрация
8 Июн 2017
Сообщения
168
Симпатии
132
Пол
Мужской
огонь но мне бы без re! типа под все платформы)
C:
#include <amxmodx>

#define WIN_FOR_CT 10
#define WIN_FOR_TE 10

new win_ct_num;
new win_te_num;

public plugin_init()
{
    register_logevent("LogEvent_CT_Win", 6, "3=CTs_Win");
    register_logevent("LogEvent_TE_Win" , 6, "3=Terrorists_Win");
}

public LogEvent_CT_Win()
{
    win_ct_num++;

    if(win_ct_num >= WIN_FOR_CT)
    {
        win_ct_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }
}

public LogEvent_TE_Win()
{
    win_te_num++;

    if(win_te_num >= WIN_FOR_TE)
    {
        win_ct_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }
}
[DOUBLEPOST=1558169782][/DOUBLEPOST]
StockX, юзай m_iNumCTWins, m_iNumTerroristWins
Да-да, я просто быстренько накидал
 

d3m37r4

Скриптер
Постоялец
Регистрация
8 Июн 2017
Сообщения
741
Симпатии
393
Пол
Мужской
Telegram
@dmitry_isakow
Анатолий, отлавливай мессагу "SendAudio" и там в ней лови terwin и ctwin, ну или "TextMsg" и в нем #Terrorists_Win и #CTs_Win. Или по отдельности через регистер евент:
Код:
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
685
Симпатии
195
Пол
Мужской
ВКонтакте
e1337ace
Анатолий, отлавливай мессагу "SendAudio" и там в ней лови terwin и ctwin, ну или "TextMsg" и в нем #Terrorists_Win и #CTs_Win. Или по отдельности через регистер евент:
Код:
register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
я просто тестил это
Код:
#include <amxmodx>

#define MAX_WINS 10        // Максимальное количество побед той или иной команды
#define EXEC_CMD "amx_rtv"    // Команда, посылаемая серверу для запуска голосования за следующую карту

public plugin_init()
{
    register_plugin("VoteMap After Round Limit", "1.0", "neygomon")
    register_event("TextMsg", "eTerroristWin", "a", "2=#Terrorists_Win")
    register_event("TextMsg", "eCtWin", "a", "2=#CTs_Win")
}

public eTerroristWin()
    Counter(1)

public eCtWin()
    Counter(2)

Counter(team)
{
    static num[3]
    if(++num[team] == MAX_WINS)
        server_cmd("%s", EXEC_CMD)
}
за место server_cmd("%s", EXEC_CMD) я сделал свап команд но чет криво пашет) эт же ваня)) я у него не видел ниодного плагина без бага! либо -раунд либо +раунд почему то здесь получается)
 

d3m37r4

Скриптер
Постоялец
Регистрация
8 Июн 2017
Сообщения
741
Симпатии
393
Пол
Мужской
Telegram
@dmitry_isakow
georgeml, ничем, все, что выше было предложено, включая твой вариант - стандартное вроде, или не так, никаких новых велосипедов, просто были приведены примеры разной реализации.
P.S.
Код:
        register_event("TeamScore", "Terrorists_Score", "a", "1=TERRORIST")
        register_event("TeamScore", "Cts_Score", "a", "1=CT")
 

Vaqtincha

aggressive
Разработчик
Скриптер
Регистрация
28 Янв 2018
Сообщения
963
Симпатии
685
Пол
Мужской
georgeml, перестань вести себя как быдло. мы то знаем что ты знаешь слишком "много" (!бесполезного)
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
685
Симпатии
195
Пол
Мужской
ВКонтакте
e1337ace
georgeml, перестань вести себя как быдло. мы то знаем что ты знаешь слишком "много" (!бесполезного)
как пример)
Код:
Залепить остаток времени випки под gamecms api.
В gamecms_stocks.inl нужно сделать

stock StIsEqualFlags(flags1[], flags2[])
{
    new iFlagsBit = read_flags(flags1);
    return (iFlagsBit & read_flags(flags2)/* == iFlagsBit*/);
}

Его код)

    else
    {
        iLen = formatex( szMenu, charsmax(szMenu), "\y%L\R%L^n", LANG_SERVER,"WEAPONS_MENU", LANG_SERVER,"ROUND")
       
        new szDate[32];
        cmsapi_service_timeleft(id, szDate, charsmax(szDate), g_szFlagAccess);
       
        if (equali(szDate, "0000", 4))  
            format(szDate, 31, "Никогда :)");
       
        iLen += formatex( szMenu[iLen], charsmax(szMenu) - iLen, "Дата окончания ВИП: \w%s^t^n", szDate);
    }
C:
#include <amxmodx>

#define WIN_FOR_CT 10
#define WIN_FOR_TE 10

new win_ct_num;
new win_te_num;

public plugin_init()
{
    register_logevent("LogEvent_CT_Win", 6, "3=CTs_Win");
    register_logevent("LogEvent_TE_Win" , 6, "3=Terrorists_Win");
}

public LogEvent_CT_Win()
{
    win_ct_num++;

    if(win_ct_num >= WIN_FOR_CT)
    {
        win_ct_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }
}

public LogEvent_TE_Win()
{
    win_te_num++;

    if(win_te_num >= WIN_FOR_TE)
    {
        win_ct_num = win_te_num = 0;
        set_cvar_float("sv_restart", 3.0);
    }
}
[DOUBLEPOST=1558169782][/DOUBLEPOST]
Да-да, я просто быстренько накидал
ОФФ ТОП!
Я конечно же не скриптер а дно) учусь типа еще) много чего не знаю! но чем этот варик отличается от RE?? не кодом а скорость работы плагина неизменна?? я думаю что погрешность в 000001 типа сек) не больше) тогда смысл делать изи плагин на RE? когда кроссплатформенность лучше же) и удобнее!) ну эт лично мое мнение и не более того! если я не прав то растолкуйте!) мне лично интересно и полезно знать) хотя бы для своего развития)
 

d3m37r4

Скриптер
Постоялец
Регистрация
8 Июн 2017
Сообщения
741
Симпатии
393
Пол
Мужской
Telegram
@dmitry_isakow
Анатолий, кому с каким бубном удобней плясать, тот с тем и пляшет. Ничего критичного в использовании разных вариантов нет. Супер мегаоптимизаций нигде не получишь.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу