Проверки в РеАпи

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

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
Добрый вечер!

Сделал вот таким образом проверку

Код:
if(Float:get_entvar(a, var_frags) != 0.0 && get_member(a, m_iDeaths) !=  0)
{
  new TeamName:team = any:get_member(a, m_iTeam);
  if(team == TEAM_SPECTATOR || team == TEAM_UNASSIGNED)
  {
 
  }
}
a это через цикл по игрокам

Уже на if(Float:get_entvar(a, var_frags) != 0.0 && get_member(a, m_iDeaths) != 0) код не пропускает дальше, видимо неправильно написана проверка(хотя, вроде всё ок)
Подскажите в чем проблема?
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
Ну сам цикл работает, всё ок.
А так, вот, конечно!

Код:
    new iPlayers[32], iCount, l, a
    get_players(iPlayers, iCount, "c")
    for(l = 0; l < iCount; l++)
    {
        a = iPlayers[l]
       
        if(g_blabla[a])
        {
            if(!g_blabla2[a])
           {
                      if(Float:get_entvar(a, var_frags) != 0.0 && get_member(a, m_iDeaths) !=  0) 
                      {
                                 new TeamName:team = any:get_member(a, m_iTeam);
                                 if(team == TEAM_SPECTATOR || team == TEAM_UNASSIGNED)
                                 {

                                 }

                      }
           }

       }
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
ДЕЛ
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
Прошу подождать пока, ничего не отвечать в теме, проведу тесты под другим алгоритмом...

UPD
В общем должны быть таким образом условия составлены, для моей идеи, так правильно будет?

Код:
new TeamName:team = any:get_member(a, m_iTeam);
if(Float:get_entvar(a, var_frags) != 0.0 && get_member(a, m_iDeaths) !=  0 && team != TEAM_SPECTATOR || team != TEAM_UNASSIGNED)
                      {
                       }
 

StockX

Скриптер
Регистрация
8 Июн 2017
Сообщения
168
Симпатии
132
Пол
Мужской
BeasT, попробуй так:
PHP:
new players[32], players_num;
get_players(players, players_num, "c");

for(new i, player_id; i < players_num; i++) {
    player_id = players[i];

    if(bla[player_id] && !bla_2[player_id]) {
        if(Float:get_entvar(player_id, var_frags) > 0.0 && get_member(player_id, m_iDeaths) > 0) {

            new TeamName:team = get_member(player_id, m_iTeam);

            if(team == TEAM_SPECTATOR || team == TEAM_UNASSIGNED) {
                ...
            }
        }
    }
}
Ну или просто в своём прошлом условии проверяй не на !=, а на >. Ну или <, в зависимости от твоих целей.
 

sonyx

Заблокированные
Регистрация
8 Июн 2017
Сообщения
473
Симпатии
235
можно и так:
C++:
TEAM_UNASSIGNED < team < TEAM_SPECTATOR
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
проверил сейчас, не проходит проверка
Код:
new TeamName:team = any:get_member(a, m_iTeam);
if(Float:get_entvar(a, var_frags) != 0.0 && get_member(a, m_iDeaths) !=  0 && team != TEAM_SPECTATOR || team != TEAM_UNASSIGNED)
Уверен, что ступор на проверке с фрагами и киллами(но не точно)
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
BeasT, попробуй так:
PHP:
new players[32], players_num;
get_players(players, players_num, "c");

for(new i, player_id; i < players_num; i++) {
    player_id = players[i];

    if(bla[player_id] && !bla_2[player_id]) {
        if(Float:get_entvar(player_id, var_frags) > 0.0 && get_member(player_id, m_iDeaths) > 0) {

            new TeamName:team = get_member(player_id, m_iTeam);

            if(team == TEAM_SPECTATOR || team == TEAM_UNASSIGNED) {
                ...
            }
        }
    }
}
Ну или просто в своём прошлом условии проверяй не на !=, а на >. Ну или <, в зависимости от твоих целей.
попробую, если это имеет смысл

UPD
if(Float:get_entvar(a, var_frags) > 0.0 && get_member(a, m_iDeaths) > 0 && team != TEAM_SPECTATOR || team != TEAM_UNASSIGNED)
P.S. проверять часто нет ни какой возможности..
 

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
232
Симпатии
133
Пол
Мужской
BeasT, Не знаю на кой оно тебе столько проблем, но на, учитывая подсказки для тебя выше код рабочий ошибок там нет.
C++:
new iPlayers[MAX_CLIENTS], iCount;
    get_players(iPlayers, iCount, "c");

    for(new i, id; i < iCount; i++)
    {
        id = iPlayers[i];
        if(!g_blabla[id] && g_blabla2[id]) continue;

        new TeamName:team = get_member(id, m_iTeam);
        if(TEAM_UNASSIGNED < team < TEAM_SPECTATOR && Float:get_entvar(id, var_frags) > 0.0 && get_member(id, m_iDeaths) > 0)
        {
            // your code
        }
    }
А еще к примеру не знаю почему там у вас возможности нет но если время то увы, а если нет то маленький лайфхак
К примеру у нас есть некоторая n-я функция которая содержит в себе ваш код.
C++:
public funcTest(id) {
    new iPlayers[MAX_CLIENTS], iCount;
    get_players(iPlayers, iCount, "c");

    for(new i, id; i < iCount; i++)
    {
        id = iPlayers[i];
        if(!g_blabla[id] && g_blabla2[id]) continue;

        new TeamName:team = get_member(id, m_iTeam);
        if(TEAM_UNASSIGNED < team < TEAM_SPECTATOR && Float:get_entvar(id, var_frags) > 0.0 && get_member(id, m_iDeaths) > 0)
        {
            // your code
        }
    }
}
Можно зарегистрировать команду в plugin_init
C++:
register_clcmd("say /test_cmd", "funcTest");
Только учтите переменные которые функция должна передавать, т.к. вызов командой передает только ваше ид... А если у вас будет несколько таки к примеру public funcTest (Attacker, Victim) лайфхак потеряет смысл, нужно будет думать как тогда достать вторую переменную.
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
там цикл не зря, ид большое колво, не 1 и не 2)
Часто проверять нет возможности потому, что данная функция включается в определенное время.
И, дабы избежать дальнейшего "убери проверку на время" и т.д. - не вариант. :)

П.С. проверяю...
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
чуть больше бы инфы
а то ребус какой-то
три раза тему перечитал
 
  • Мне нравится
Симпатии: sonyx

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
232
Симпатии
133
Пол
Мужской
BeasT, Вы меня не поняли. цикл можно запустить командой в чат либо таском как вам угодно, но ждать не обязательно.
BalbuR, Перечитав тему можно увидеть сначала один алгоритм потом второй, и несколько вариаций ответов на разные темы. Если бы автор скинул полный код и ТЗ было бы значительно проще но видимо автор хочет иметь оригинальную идею и сам ее мусолит т.к. в третьем посте четко видно что алгоритм не закончен да и кусок кода вырван из контекста :)
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
да, в целом сам изначально неправильно продумал алгоритм, отсюда и пошло поехало, сейчас вроде ок(но не точно)

но видимо автор хочет иметь оригинальную идею
не хочет, а делает и, соответственно весь код я не могу показать)
 

BalbuR

Пользователь
Регистрация
26 Июл 2017
Сообщения
131
Симпатии
25
Пол
Мужской
там цикл не зря, ид большое колво, не 1 и не 2)
Часто проверять нет возможности потому, что данная функция включается в определенное время.
И, дабы избежать дальнейшего "убери проверку на время" и т.д. - не вариант. :)

П.С. проверяю...
ну если там в определенное время, можно воткнуть таск на старте карты или раунда и не парить себе мозг . ничего страшного в этом нет
или же если в меню проверка, то втыкать на селекте айтема
 

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
232
Симпатии
133
Пол
Мужской
BeasT, "супер-приват" хД, говорю зачем же мозг себе пудрить, обратитесь к автору че вам, 100 рублей зажали или 150 гора :)
 

fantom

Разработчик
Регистрация
11 Июн 2017
Сообщения
426
Симпатии
293
Пол
Мужской
del
 
Последнее редактирование:

neygomon

Его Темнейшество :j
Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
804
Симпатии
382
Пол
Мужской
fantom, ты flags не отличаешь от frags???))))
 

BeasT

Anubis
Пользователь
Регистрация
26 Июн 2017
Сообщения
390
Симпатии
53
Пол
Мужской
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу