Добрый день. Можно ли сделать скорость изучения улучшения(не здания) в зависимости от кол-ва построек определенного типа например?
Наподобие скорости постройки с помощью UnitSetConstructionProgress
Наподобие скорости постройки с помощью UnitSetConstructionProgress
Принятый ответ
Есть костыльный вариант с установкой прогресса вручную. Берёшь улучшение и ставишь ему длительность на 999999... При старте улучшения записываешь того кто его начал (юнит), и стартовый процент прогресса на 0.00 , ну и таймер периодический (можно раз в секунду, можно чаще).
По таймеру делаешь подсчёт нужных зданий и получаешь некое число (например их 5).
Далее множишь его на некий бонус ускорения (за каждое здание, например 0.02).
В итоге получаешь число равное текущей суммарной скорости (5 * 0.02 = 0.1).
И добавляешь это число в текущему значению прогресса. После рассчётов приравнивай текущий прогресс улучшения к этому значению.
Далее множишь его на некий бонус ускорения (за каждое здание, например 0.02).
В итоге получаешь число равное текущей суммарной скорости (5 * 0.02 = 0.1).
И добавляешь это число в текущему значению прогресса. После рассчётов приравнивай текущий прогресс улучшения к этому значению.
В конце проверяешь достиг ли прогресс числа 1.00 (если там НЕ реальные, или в другом объёме, то просто подгоняйте по смыслу). И если достигло - то прекращаешь подсчёты и убираешь работу таймера. Исследование по достижению своих 100% прогресса должно завершиться.
Я так с постройкой юнитов делал. Всё работало.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Далее множишь его на некий бонус ускорения (за каждое здание, например 0.02).
В итоге получаешь число равное текущей суммарной скорости (5 * 0.02 = 0.1).
И добавляешь это число в текущему значению прогресса. После рассчётов приравнивай текущий прогресс улучшения к этому значению.
Почему он костыльный? И будет ли это нормально работать при большом кол-ве игроков?
Оно же продолжает само по себе стремиться к завершению, т.к. его реальное время мы не морозим (но ему понадобится ~1,(6) минуты на продвижение на 0,01%).
В голову кроме указанного выше сразу приходят два тоже муторных варианта: