Сообщение от
ziggi
Более того, стример от инкогнито не проверяет позицию для всех 500 точек сразу, он делит всю карту на ячейки и проверяет только те точки, которые находятся в одной ячейке с игроком. Конечно, это можно реализовать и на Pawn, но, как правило, никто над этим не заморачивается (хотя есть библиотеки: y_areas или W_Points). Так что, используйте возможности этого плагина по полной, в производительности только выиграете.
W_Points заинтересовал, но результаты теста старые (6 лет). По тестам в офф.теме получается что стример работает медленнее, но быть может за 6 лет всё изменилось в обратную сторону? Допустим, у нас есть ворота которые должны открываться если к ним приблизился игрок, у какого из вариантов будет выше КПД?
1) Создаём чекпоинты с помощью стримера (CreateDynamicCP) с одной и с другой стороны ворот соответственно. И когда игрок встал на чекпоинт (OnPlayerEnterCheckPoint):
PHP код:
if(IsPlayerInRangeOfPoint(playerid,radius,x,y,z)) MoveObject(...);
2) Создаём сферу у ворот. И при вхождении игрока в сферу:
PHP код:
if(IsPlayerInRangeOfPoint(playerid,radius,x,y,z)) MoveObject(...);
И насколько велика разница? У меня реализован 1 вариант, в случае если 2 вариант не сильно уж и шустрее, то смысла как я понимаю "заморачиваться" мало.
Протестировал я W_Points, в итоге результаты теста показали что IsPlayerInRangeOfPoint работает в разы быстрее чем GetPlayerPoint.