Перейти к содержимому


Фотография

подсчёт игроков возле маркера


Лучший Ответ Schatten , 13 February 2017 - 18:42

Нужно код внутри фигурных скобок записать как условие, с использованием логических операций И, ИЛИ, НЕ:

(isPlayer _x) and {(side _x) == BLUFOR} and {(_x distance2D (getMarkerPos "City")) <= 200}

+ в конце точку с запятой не ставить.

P. S.
А вообще, есть команда inArea.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 OFFLINE   barbosa

barbosa

    Ефрейтор

  • Пользователи
  • 99 сообщений

Отправлено 13 February 2017 - 18:36

Решил посчитать игроков в радиусе маркера

coblu = 
{
isPlayer _x;
side _x == BLUFOR;
(_x distance2D getMarkerPos "City") <= 200;
} count playableUnits;

cored = 
{
isPlayer _x;
side _x == OPFOR;
(_x distance2D getMarkerPos "City") <= 200;
} count playableUnits;

cogreen = 
{
isPlayer _x;
side _x == Independent;
(_x distance2D getMarkerPos "City") <= 200;
} count playableUnits;

Но есть проблема, условие проверки принадлежности к стороне скрипт не видит, 

переменные coblu, cored, cogreen отображают один результат.

 

Подскажите как правильно выполнить подсчёт сторон в определённом радиусе.

Буду очень благодарен.


  • 0

#2 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 сообщений

Отправлено 13 February 2017 - 18:42   Лучший Ответ

Нужно код внутри фигурных скобок записать как условие, с использованием логических операций И, ИЛИ, НЕ:

(isPlayer _x) and {(side _x) == BLUFOR} and {(_x distance2D (getMarkerPos "City")) <= 200}

+ в конце точку с запятой не ставить.

P. S.
А вообще, есть команда

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.


Сообщение отредактировал Schatten: 13 February 2017 - 18:45

  • 0

#3 OFFLINE   barbosa

barbosa

    Ефрейтор

  • Пользователи
  • 99 сообщений

Отправлено 13 February 2017 - 19:48

Нужно код внутри фигурных скобок записать как условие, с использованием логических операций И, ИЛИ, НЕ:

(isPlayer _x) and {(side _x) == BLUFOR} and {(_x distance2D (getMarkerPos "City")) <= 200}

+ в конце точку с запятой не ставить.

P. S.
А вообще, есть команда

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

.

Спасибо большое !!! всё заработало, только скобки я по другому поставил {(isPlayer _x) and (side _x == OPFOR) and (_x distance2D getMarkerPos "City") <= 200}


  • 0

#4 OFFLINE   A2012V

A2012V

    Ефрейтор

  • Пользователи
  • 80 сообщений

Отправлено 13 February 2017 - 20:56

только скобки я по другому поставил


Почему Вы их поставили по другому?

Вам написали наиболее оптимальную
функцию IF с учетом оператора and
применив ленивые условия проверки,
а вы их поломали.
  • 1

#5 OFFLINE   barbosa

barbosa

    Ефрейтор

  • Пользователи
  • 99 сообщений

Отправлено 14 February 2017 - 00:17

только скобки я по другому поставил

Почему Вы их поставили по другому?Вам написали наиболее оптимальнуюфункцию IF с учетом оператора andприменив ленивые условия проверки,а вы их поломали.
Полностью скрипт выглядит так:
coblu =
{
(isPlayer _x) and
(side _x == BLUFOR) and
(_x distance2D getMarkerPos "City") <= 200
} count playableUnits;

Происходит подсчёт игроков с условием в фигурных скобках.
Я думал это и есть ленивая проверка.
Работает отлично.

Или я что то не так понял ?
  • 0

#6 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 сообщений

Отправлено 14 February 2017 - 00:23

Работает отлично.

Важно не только то, что работает, но и то, как работает.
 

Или я что то не так понял ?

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


 
Плюс, как я указывал, рекомендую использовать команду inArea.


Сообщение отредактировал Schatten: 14 February 2017 - 00:23

  • 0

#7 OFFLINE   barbosa

barbosa

    Ефрейтор

  • Пользователи
  • 99 сообщений

Отправлено 14 February 2017 - 01:36

Работает отлично.

Важно не только то, что работает, но и то, как работает.
 

Или я что то не так понял ?

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


 
Плюс, как я указывал, рекомендую использовать команду inArea.
Спасибо за подсказки, теперь я понял чем отличается.
  • 0




Яндекс.Метрика