Dimon UA сказал(а) 05 Май 2015 - 19:26:
Sa-Matra сказал(а) 05 Май 2015 - 19:19:
Dimon UA сказал(а) 05 Май 2015 - 17:42:
setdamage 1 будет работать на них?
Проще тогда сразу удалять, однако для получения списка всех кроликов и змей придется вызывать команду entities, которая не такая и быстрая.
Нее, ну я понимаю... нужно смотреть какая именно задача стоит, какая частота респа змей и т.д. Но как вариант допустим для радиуса в 1000м, если вся миссия сведена к определенной точке может и подойти... нужно отталкиваться от реальной ситуации.
Например я столкнулся с таким геммором, когда поваленные деревья поднимал: пришлось свести радиус к 1000 м (условия миссии позволяли) и привязать работу кода к определенным событиям, которые не так часто срабатывали, чтобы как то оптимизировать работу скрипта.
С животными все проще, они появляются только вокруг игрока (вокруг камеры?) в определенном радиусе и в отличии от А2 всегда локальны игроку (не синхронизируются по сети, каждый игрок видит свою картину). На самом деле прогонять поиск через near* команды не нужно, лучше проходить по списку entities, ибо животные в нем содержатся, но еще лучше пользоваться командой sizeOf, она полезна для определения есть ли объекты такого-то типа в мире. Сама команда очень древняя и считает длину объекта по неведомой формуле, но если объекта в мире не существует, то она возвращает 0, команда *очень* быстрая, всего ~0.007 миллисекунд и ее спокойно можно вызывать постоянно, т.е. можно переписать скрипт ниже для работы в незапланированной среде каждый кадр фактически без потери фпс.
Скриптовое решение, вызывать один раз в начале игры на каждом клиенте:
- Более удачное решение смотрите ниже -
Сообщение отредактировал Sa-Matra: 06 May 2015 - 18:38