Проблема с определением раунда и блокированием функции до определённого раунда

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

xopoIIIuu

Пользователь
Регистрация
17 Июл 2017
Сообщения
23
Симпатии
1
Пол
Мужской
Всем привет, может ли кто-то мне помочь?

1) Первый раунд не определяется. Исполнение функции идет со 2-го раунда.
2) Метка case '<' в операторе switch не работает должным образом. (Должно блокировать использование функции до определённого раунда)
Код:
bool:is_valid_round(const szRound[])
{
    if(!szRound[0] || szRound[0] == '0')
        return true
       
    new g_iCurrentRound = get_member_game(m_iTotalRoundsPlayed);
       
    if(contain(szRound, "-") != -1)
    {
        static szMin[4], szMax[4]
        strtok(szRound, szMin, charsmax(szMin), szMax, charsmax(szMax), '-')
        trim(szMin); trim(szMax)
        return str_to_num(szMin) <= g_iCurrentRound <= str_to_num(szMax)
    }
    else if(isdigit(szRound[0])) return g_iCurrentRound == str_to_num(szRound)
       
    static szNewRound[16], cOperator, iNum
    copy(szNewRound, charsmax(szNewRound), szRound)
    replace_all(szNewRound, charsmax(szNewRound), " ", "")
    cOperator = szRound[0]
    szNewRound[0] = ' '
   
    trim(szNewRound)
    iNum = str_to_num(szNewRound)
   
    switch(cOperator)
    {
        case '>': return g_iCurrentRound > iNum
        case '<': return g_iCurrentRound < iNum
    }
    return false
}
Использование в теле функции:
Код:
if(is_valid_round(g_aTest[ROUND]))
{
    //Код
}
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
Всем привет, может ли кто-то мне помочь?

1) Первый раунд не определяется. Исполнение функции идет со 2-го раунда.
2) Метка case '<' в операторе switch не работает должным образом. (Должно блокировать использование функции до определённого раунда)
Код:
bool:is_valid_round(const szRound[])
{
    if(!szRound[0] || szRound[0] == '0')
        return true
      
    new g_iCurrentRound = get_member_game(m_iTotalRoundsPlayed);
      
    if(contain(szRound, "-") != -1)
    {
        static szMin[4], szMax[4]
        strtok(szRound, szMin, charsmax(szMin), szMax, charsmax(szMax), '-')
        trim(szMin); trim(szMax)
        return str_to_num(szMin) <= g_iCurrentRound <= str_to_num(szMax)
    }
    else if(isdigit(szRound[0])) return g_iCurrentRound == str_to_num(szRound)
      
    static szNewRound[16], cOperator, iNum
    copy(szNewRound, charsmax(szNewRound), szRound)
    replace_all(szNewRound, charsmax(szNewRound), " ", "")
    cOperator = szRound[0]
    szNewRound[0] = ' '
  
    trim(szNewRound)
    iNum = str_to_num(szNewRound)
  
    switch(cOperator)
    {
        case '>': return g_iCurrentRound > iNum
        case '<': return g_iCurrentRound < iNum
    }
    return false
}
Использование в теле функции:
Код:
if(is_valid_round(g_aTest[ROUND]))
{
    //Код
}
а что так не сделать??
Код:
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("TextMsg","event_round_restart","a","2&#Game_C","2&#Game_w")

public event_round_start()
{
    g_Round ++;
}

public event_round_restart()
{
    g_Round = 0;
}
 

xopoIIIuu

Пользователь
Регистрация
17 Июл 2017
Сообщения
23
Симпатии
1
Пол
Мужской
а что так не сделать??
Код:
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("TextMsg","event_round_restart","a","2&#Game_C","2&#Game_w")

public event_round_start()
{
    g_Round ++;
}

public event_round_restart()
{
    g_Round = 0;
}
Спасибо, что-то я до этого не додумался... Да и переменные некоторые забыл обнулить при рестарте...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу