Русское сообщество по скриптингу

Аналог get_players  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Аналог get_players

Сообщение Nixon133 » 01 июл 2014, 16:18

Многие говорят, что функция get_players баганая, есть ли аналоги её? Или же вместо неё, делать тот же цикл, со своими условиями?
скуйп - legaalize
Аватара пользователя
Nixon133
 
Сообщения: 476
Зарегистрирован: 13 ноя 2012, 12:20
Благодарил (а): 107 раз.
Поблагодарили: 56 раз.
Опыт программирования: Больше трех лет
Языки программирования: C, Pawn

Re: Аналог get_players

Сообщение EvilCoder » 01 июл 2014, 16:32

Не знаю, в каких местах он там багнутый, работает нормально.
Лучший аналог = цикл.
Не забывайте, что у вас есть возможность отправлять жалобы на сообщения, присланные вам от других пользователей в ЛС.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Принимаются заявки на вступление в группу Скриптеры
Аватара пользователя
EvilCoder
Администратор
 
Сообщения: 1960
Зарегистрирован: 20 апр 2010, 12:11
Благодарил (а): 40 раз.
Поблагодарили: 659 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Аналог get_players  [Решено]

Сообщение Safety1st » 01 июл 2014, 23:10

EvilCoder писал(а):Не знаю, в каких местах он там багнутый, работает нормально.

Неверно может отработать с флагом 'e' в AMXX ниже 1.8.2 (релизной): вернуть id'ники игроков, чья команда была изменена после смерти (например, игрок перешёл в спектат). Подробнее Вы должны зарегистрироваться, чтобы видеть ссылки.. Если получать игроков без фильтра по тиме - проблем не будет.

EvilCoder писал(а):Лучший аналог = цикл.

В принципе странно от тебя наблюдать рекомендацию без учёта конкретной ситуации. Разово применять без учёта тимы - без разницы: что get_players(), что цикл. Если применять часто, например, в информере, очевидно, что готовый список от модуля с точки зрения ресурсов будет выгоднее, чем множество вызовов натив из набора is_user_connected/is_user_alive/get_user_team/cs_get_user_team. Ну, это всё легко увидеть профилированием.
Если применять совсем часто, то разумнее будет кэшировать состояния connected/alive и брать из памяти. Если извратиться - то и тиму можно)

В общем, я всё к тому, что 'лучший' - часто неуниверсальное понятие.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1961
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 931 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Аналог get_players

Сообщение Nixon133 » 01 июл 2014, 23:18

Т.е. можно спокойно использовать get_players свыше 1.8.2(включительно)!? :zzz:
Использование, да часто)
скуйп - legaalize
Аватара пользователя
Nixon133
 
Сообщения: 476
Зарегистрирован: 13 ноя 2012, 12:20
Благодарил (а): 107 раз.
Поблагодарили: 56 раз.
Опыт программирования: Больше трех лет
Языки программирования: C, Pawn

Re: Аналог get_players

Сообщение Safety1st » 01 июл 2014, 23:36

Можно спокойно использовать, верно.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1961
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 931 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Аналог get_players

Сообщение Valer4 » 25 дек 2017, 19:09

Никогда не нужно кешировать состояния жив, мёртв, приконнекчен или нет и т.д., события не надёжные - будут ошибки. Нагрузка всё равно мизерная, процессор обрабатывает 3 000 000 000 операций в секунду, нагрузка от этих функций ни о чём.
Аватара пользователя
Valer4
 
Сообщения: 48
Зарегистрирован: 07 окт 2010, 14:12
Откуда: Байконур
Благодарил (а): 5 раз.
Поблагодарили: 5 раз.

Re: Аналог get_players

Сообщение Subb98 » 01 янв 2018, 15:54

Valer4 писал(а):Никогда не нужно кешировать состояния жив, мёртв, приконнекчен или нет и т.д., события не надёжные - будут ошибки.

Как уже заметили выше, всё зависит от ситуации. Если вы считаете, что кэшировать не нужно, например, даже при работе с кадрами, то это очень печально.

Valer4 писал(а):Нагрузка всё равно мизерная, процессор обрабатывает 3 000 000 000 операций в секунду, нагрузка от этих функций ни о чём.

  • Низкоуровневых операций. Посчитайте, сколько на каждую высокоуровневую функцию приходится низкоуровневых операций, сложите их вместе.
  • Процессоры бывают разные, начиная от тактовой частоты и заканчивая архитектурой. Вы привели, можно сказать, цифру "с потолка", не рассматривая конкретные случаи, когда чаще всего сервер размещается на VDS и имеет на физическом сервере ещё множество HLDS серверов. И виртуализация может быть, например, OpenVZ. Кроме того, совсем не исключено, что хостер будет оверселлить. Поэтому часто в интересах администратора снизить нагрузку на процессор, чтобы сберечь вычислительные мощности для более комфортной игры.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5018
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1285 раз.
Поблагодарили: 2229 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1