Это будет двойной вопрос, потому что темы связаны между собой.
На карте массово используется Change ownership(смена владельца юнита) на всех юнитах на карте, из-за этого возникает ряд проблем.
  1. При смене владельца, каким-то фигом отменяются все приказы юнита, что приводит и к отмене производств у зданий, и к отмене вообще всего движения на карте (что делает эту карту совершенно неиграбельной)
  2. Рабочие бунтуют, иначе это не назовёшь. ВСЕ вообще юниты нормально заменяются и не происходит проблем с определением владельца, исключение только рабочие, с каким-то непонятным шансом они решают что не хотят менять свою сторону, от чего все рабочие "меняют цвет" а один уникум этого не хочет делать.
Причём нужно значение для подмены юниту выдаётся, я проверял, но почему-то сама подмена владельца не происходит
Юниты выбираются путём Pick every unit in the map, я пробовал и отслеживать приказы рабочего, думая что дело только в том таинственном исчезновении юнита из пространства-и-времени когда он попадает в шахту, однако это же происходит и со светлячками что добывают дерево (но не с теми, что находятся внутри шахты, с ними проблем никогда нет, как и с послушниками).
Чаще всего в этот момент рабочий носил золото на себе, но это же происходит и когда у рабочего "нет золота".
По части отлова приказов, я даже находил тут сделанную кем-то функцию для этого, но на моей версии она просто не работает.
Если кто знает какая функция сможет поменять владельца без отмены приказа, буду очень благодарен

Рабочие останавливаются, потому что сначала меняет владельца рабочий, а уже потом ратуша. Сначала менять владельца у строений, потом у всех остальных.
Сделал карту-пример. пара заметок:
  1. При смене владельца приказы тренировки и исследования будут сбрасываться. Это никак не починить. Они также могут не выполнится вовсе, если недостаточно ресурсов и пищи.
  2. В хеш можно сразу структуру сохранять, однако нужно помнить, что у структур лимит 8190 объектов на тип струтуры.
Стоит добавить, что приказы, поставленные в очередь, тоже теряются.
Дополнил карту-пример, добавил авто очистку хеша при смерти юнита. Также нужно вызывать ClearLatestOrder перед удалением юнита.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Да вроде всё просто.
Для каждого юнита отслеживаем получение приказов через события и сохраняем последний в хеш.
Выбираем всех юнитов ИГРОКА, для каждого юнита берём последний запомненный приказ. Меняем игрока. Отдаём приказ снова.
Впрочем, тут могут быть некоторые нюансы с уже выполненными приказами.
12
Да вроде всё просто.
Для каждого юнита отслеживаем получение приказов через события и сохраняем последний в хеш.
Выбираем всех юнитов ИГРОКА, для каждого юнита берём последний запомненный приказ. Меняем игрока. Отдаём приказ снова.
Впрочем, тут могут быть некоторые нюансы с уже выполненными приказами.
Хешом ни разу не пользовался, но попробую.
А у меня через выбор юнитов игрока начисляется custom value юнита, и все юниты игрока добавляются в массив юнитов для каждого игрока.
А уже после всем юнитам в зависимости от числа меняется команда.
Попробую и так сделать, но не кажется что сильно поменяется что-то

Да вроде всё просто.
Для каждого юнита отслеживаем получение приказов через события и сохраняем последний в хеш.
Выбираем всех юнитов ИГРОКА, для каждого юнита берём последний запомненный приказ. Меняем игрока. Отдаём приказ снова.
Впрочем, тут могут быть некоторые нюансы с уже выполненными приказами.
Я как-то не понял, как мне отдать сохранённый в хеше приказ юниту
28
Рабочие останавливаются, потому что сначала меняет владельца рабочий, а уже потом ратуша. Сначала менять владельца у строений, потом у всех остальных.
Сделал карту пример. пара заметок:
  1. При смене владельца приказы тренировки и исследования будут сбрасываться. Это никак не починить. Они также могут не выполнится вовсе, если недостаточно ресурсов и пищи.
  2. В хеш можно сразу структуру сохранять, однако нужно помнить, что у структур лимит 8190 объектов на тип струтуры.
Загруженные файлы
12
Рабочие останавливаются, потому что сначала меняет владельца рабочий, а уже потом ратуша. Сначала менять владельца у строений, потом у всех остальных.
Сделал карту пример. пара заметок:
  1. При смене владельца приказы тренировки и исследования будут сбрасываться. Это никак не починить. Они также могут не выполнится вовсе, если недостаточно ресурсов и пищи.
  2. В хеш можно сразу структуру сохранять, однако нужно помнить, что у структур лимит 8190 объектов на тип струтуры.
Cпасибо за скрипт, правда мне сложно в нём будет разобраться(я привык всё на gui делать), но хотя бы 1-ю проблему он частично решает

Ещё я заметил, что когда просто добавляю любой триггер, то выдаёт синтаксическую ошибку связанную с чем-то global, и я уже не могу после этого запустить карту
Загруженные файлы
28
Рабочие останавливаются, потому что сначала меняет владельца рабочий, а уже потом ратуша. Сначала менять владельца у строений, потом у всех остальных.
Сделал карту-пример. пара заметок:
  1. При смене владельца приказы тренировки и исследования будут сбрасываться. Это никак не починить. Они также могут не выполнится вовсе, если недостаточно ресурсов и пищи.
  2. В хеш можно сразу структуру сохранять, однако нужно помнить, что у структур лимит 8190 объектов на тип струтуры.
Стоит добавить, что приказы, поставленные в очередь, тоже теряются.
Дополнил карту-пример, добавил авто очистку хеша при смерти юнита. Также нужно вызывать ClearLatestOrder перед удалением юнита.
Загруженные файлы
Принятый ответ
28
A.W.K., обновил карту ещё раз, добавил вывод, кто именно не смог приказ выполнить.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.