Скриптер
Участник
Пользователь
- Сообщения
- 1,608
- Реакции
- 694
- Помог
- 5 раз(а)
Есть объект небольшая моделька с установленными mins maxs 15х15.
Задача следующая, через эту модель игрок должен проходить, а при попадании на прицел, должно высвечиваться описание предмета.
И так что я испробовал и какие проблемы это преподнесло.
1. find_ent_in_sphere в точке куда целится игрок
Не подходит совсем. Так как игрок не целится никогда в землю. А для этого способа игрок должен прицелится не в сущность, а в землю рядом с ней.
2. find_ent_in_sphere от игрока и до точки куда игрок целится.
Использовал в старой версии RUNEMOD. Не подходит. Так как потребуется огромное количество ресурсов и циклов что бы это сработало. Например если искать entity в сфере размером 30, то нужно в цикле добавлять +15 к дистанции, до конечной точки. Допустим игрок целится в даль на 2000 юнитов, Потребуется около 150 попыток поиска entity, и это только за 1 раз. Представим на секунду что это делают 32 игрока и например раз 10 в секунду. Расточительство :) К тому же это сбивает с толку когда игрок стоит рядом с другой сущностью но не целится в нее, т.к сфера срабатывает и на нее в первую очередь. А уменьшение размера сферы увеличивает количество циклов.
3. хук TraceLine и установка SOLID_TRIGGER когда игрок рядом
Использую сейчас в RUNEMOD но тоже не подходит. Дело в том что TraceLine срабатывает лишь 1 раз, и не ясно смотрит ли игрок на эту сущность. К тому же entity не проходимая при использовании SOLID SLIDEBOX/BBOX и приходится костылявить заставляя ее быть проходимой когда любой игрок находится рядом.
Вопрос в том как это сделать с меньшим количеством затрат, сейчас я использую 3 способ это работает и более ли менее мало ресурсов использует. Но костыль с переключением SOLID_BBOX->SOLID_TRIGGER и обратно слишком костыльный :)
Задача следующая, через эту модель игрок должен проходить, а при попадании на прицел, должно высвечиваться описание предмета.
И так что я испробовал и какие проблемы это преподнесло.
1. find_ent_in_sphere в точке куда целится игрок
Не подходит совсем. Так как игрок не целится никогда в землю. А для этого способа игрок должен прицелится не в сущность, а в землю рядом с ней.
2. find_ent_in_sphere от игрока и до точки куда игрок целится.
Использовал в старой версии RUNEMOD. Не подходит. Так как потребуется огромное количество ресурсов и циклов что бы это сработало. Например если искать entity в сфере размером 30, то нужно в цикле добавлять +15 к дистанции, до конечной точки. Допустим игрок целится в даль на 2000 юнитов, Потребуется около 150 попыток поиска entity, и это только за 1 раз. Представим на секунду что это делают 32 игрока и например раз 10 в секунду. Расточительство :) К тому же это сбивает с толку когда игрок стоит рядом с другой сущностью но не целится в нее, т.к сфера срабатывает и на нее в первую очередь. А уменьшение размера сферы увеличивает количество циклов.
3. хук TraceLine и установка SOLID_TRIGGER когда игрок рядом
Использую сейчас в RUNEMOD но тоже не подходит. Дело в том что TraceLine срабатывает лишь 1 раз, и не ясно смотрит ли игрок на эту сущность. К тому же entity не проходимая при использовании SOLID SLIDEBOX/BBOX и приходится костылявить заставляя ее быть проходимой когда любой игрок находится рядом.
Вопрос в том как это сделать с меньшим количеством затрат, сейчас я использую 3 способ это работает и более ли менее мало ресурсов использует. Но костыль с переключением SOLID_BBOX->SOLID_TRIGGER и обратно слишком костыльный :)