Как посчитать количество юнитов, которые загружены на транспорт?
Думал через кастом валуе, но нет события "юнит выгружен".
Условия подходящего тоже нет.
Можно ли еще как-нибудь это сделать?

Принятый ответ

Готово. В триггере "Unit Loaded" в условии "(Unit-type of (Transporting unit)) равно Ратуша"
замени ратушу на свой тип здания, в который должны загружаться юниты.
Отряд Массив LoadedGroupArray будет проинициализирован до такого индекса,
который указан в свойствах переменной в качестве "Раз.". А если попытаться работать с
отрядами с индексом массива больше, чем указано в "Раз.", ничего не выйдет. Поэтому я
триггерно инициализирую его по мере необходимости через "set udg_LoadedGroupArray[udg_TransportingIncrement] = CreateGroup()".
Смотри прикреплённые файлы ниже.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
29
9 лет назад
Отредактирован 16GB
0
проверь сработает ли входит в регион событие
попробуй поискать разницу в погруженном в транспорт юните и не погруженном, тогда будешь сохранять погруженных юнитов и проверять как-то
0
24
9 лет назад
0
Я это как-то делал, так что вполне возможно. Но это было больно, мучительно и на JASS. А еще это было очень давно, так что подробностей не помню уже. Возможно нужны какие-то ограничения на принципы работы транспорта или хаки вроде периодической проверки по каждому однажды загруженному в транспорт юниту.
0
17
9 лет назад
Отредактирован naxim
0
Когда юнит выгружается с дирижабля, он отдаёт приказ "stop" и это можно отследить. Конечно, юнит не получит приказ "stop" в том случае, если дирижабль умирает над поверхностью, по которой невозможно ходить. Такой юнит погибнет вместе с дирижаблем и отследить это можно событием смерти юнита.
Прикрепляю карту, на которой триггерно можно посчитать только количество всех загруженных в какой либо транспорт юнитов на карте. Или тебе нужно знать сколько конкретно в каждом транспорте юнитов?
сработает ли входит в регион событие
Не работает.
Загруженные файлы
0
23
9 лет назад
Отредактирован Obelick
0
naxim, да, нужно знать конкретно. Объясню, как все у меня работает. У здания есть способность "начать работу", это улучшение, которое запускается автоматически и повторяется, когда в здании присутствует 2 работника и если в предметах есть необходимый предмет.
0
17
9 лет назад
0
Obelick:
naxim, да, нужно знать конкретно. Объясню, как все у меня работает. У здания есть способность "начать работу", это улучшение, которое запускается автоматически и повторяется, когда в здании присутствует 2 работника и если в предметах есть необходимый предмет.
Если придётся воспользоваться custom value зданий, тебя устроит?
0
23
9 лет назад
0
naxim, да.
0
24
9 лет назад
0
А че, сказали же, через CV и событие "вошёл на карту". Проверяешь номерок вошедшего, и если он был ранее в транспорте то значит он высажен. Ещё можно делать проверку на приказ высадки, он то ли unload то ли "имя юнита" Отловить unload или отловить и проследить unload all
0
17
9 лет назад
Отредактирован naxim
0
через CV
Что такое CV? Custom value?
Melissa:
и событие "вошёл на карту"
Событие "вошёл на карту" не срабатывает.
Melissa:
Проверяешь номерок вошедшего
Как проверить номерок вошедшего? Или ты о custom value?
Melissa:
можно делать проверку на приказ высадки, он то ли unload то ли "имя юнита" Отловить unload или отловить и проследить unload all
Заскринь конкретный приказ, который работает.
0
24
9 лет назад
Отредактирован Melissa
0
Или ты о custom value?
именно.его самое оптимальное применение - нумерация~naxim:
naxim:
Событие "вошёл на карту" не срабатывает.
плохо если так. Это бы сильно всё упростило.
Заскринь конкретный приказ, который работает.
ну щас пошурудю


Так, вообщем при клике на юнита в транспорте для мгновенной высадки 1 юнита - приказ unload и при этом можно отловить цель приказа
Хотя на хрена нужна цель хз но тем не менее... Короче при приказе unload - это натурально означает что -1 короче в транспорте.

А вот если отдан приказ unload all немножко геморнее - надо поставить вейт который ждёт условия приказ транспорта = ничего и если до этого момента юнит отдаст другой приказ - значит он не дошёл то точки разгрузки(флаг ставить надо) а если другого приказа не отдавалось но мы дождались что приказ юнита стал "ничего" - то значит все юниты благополучно разгружены

При unload короче число становится меньше на 1, а при unload all - небольшой геморрок, после чего число юнитов становится либо 0, либо не меняется.

можно вообще запретить отдавать команду unloadall и всегда считать по 1.
2
17
9 лет назад
Отредактирован naxim
2
Готово. В триггере "Unit Loaded" в условии "(Unit-type of (Transporting unit)) равно Ратуша"
замени ратушу на свой тип здания, в который должны загружаться юниты.
Отряд Массив LoadedGroupArray будет проинициализирован до такого индекса,
который указан в свойствах переменной в качестве "Раз.". А если попытаться работать с
отрядами с индексом массива больше, чем указано в "Раз.", ничего не выйдет. Поэтому я
триггерно инициализирую его по мере необходимости через "set udg_LoadedGroupArray[udg_TransportingIncrement] = CreateGroup()".
Смотри прикреплённые файлы ниже.
Загруженные файлы
Принятый ответ
0
24
9 лет назад
0
Кстати да, выгруженный юнит отдаёт приказ стоп. Как альтернатива. Он же не отдаст приказ стоп пока над ним нет контроля, всё логично.
А вот зачем удалять юниты из группы в инициализации карты я хз
0
23
9 лет назад
0
naxim, спасибо, выручил
0
17
9 лет назад
0
Obelick:
naxim, спасибо, выручил
Всё работает как надо?
2
24
9 лет назад
2
Всё работает как надо?
нит
0
17
9 лет назад
0
Melissa:
Всё работает как надо?
нит
А что не так?
2
24
9 лет назад
2
naxim:
Всё работает как надо?
нит
А что не так?
ещё пофлудить можно было
Чтобы оставить комментарий, пожалуйста, войдите на сайт.