- Исправлены ошибки уязвимости SA-MP серверов на Linux, удаленная атака могла прислать специально сформированный пакет, который вызывал отладку сетевого уровня SA-MP, что вызывало отключение сервера.
Новые функции: native GetPlayerCameraMode(playerid); - возвращает состояние камеры игрока. спасибо JernejL
Quote
camera 3: tram/train passenger entering camera (??!), tram/train driver camera - посадка в поезд/трамвай camera 4: normal onfoot chasing camera (several variable distances) - нормальная камера на земле (5,6 - её другие позиции) camera 7: sniper aiming mode - целимся из снайперки camera 8: rpg aiming mode - целимся из РПГ camera 16: front closeup camera attached on car (+skimmer+heli+airplane) - камера "на бампере" camera 18: normal car (+skimmer+helicopter+airplane) chase camera (several variable distances) - нормальная камера в машине (19,20,21 - её другие режимы) camera 22: normal boat chase camera (several variable distances) - камера на катере camera 15: chase cinematic camera (also spray garage camera) - кинематическая камера camera 46: picture-camera camera mode - режим при съемке фотоаппаратом camera 51: heatseeker aiming mode - как я понял режим когда нацелен на игрока camera 53: over-shoulder on-foot aiming with a weapon (any, including minigun) - целимся с любого другого оружия camera 55: passenger window-driveby mode - пассажир высунулся из окна машины camera 56: news-reporter style chase cinematic camera (wobbbling and zooming) - тоже какая-то кинематическая камера, сказано режим новостей.
native Float:GetPlayerDistanceFromPoint(playerid, Float:X, Float:Y, Float:Z); native Float:GetVehicleDistanceFromPoint(vehicleid, Float:X, Float:Y, Float:Z); возвращает расстояние от игрока/машины до точки, соответственно.
native GetPlayerSurfingObjectID(playerid); - возвращает ID объекта на котором стоит игрок, если игрок не на объекте вернет INVALID_OBJECT_ID.
Событие: forward OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat); событие происходит когда игрок меняет позицию транспортного средства в котором нет водителя, или игрок сидит в машине пассажиром(второе не совсем понял надо проверять!)
SA:MP 0.3c R4 Server: - Фикс уязвимости сервера, найденный в версии R3 - Исправлены проблемы с GetPlayerSurfingObjectID (), который возвращал неверный ид объекта. - Исправлены некоторые незначительные проблемы с format(). Новые функции:
Данный функции выводят информацию о сервере/игроке, которая выводится при нажатии F5. Включает в себя потерянные пакеты и т.п. Полезно при обнаружении проблем в сети конкретных игроков или самого сервера. Пример использования есть в архиве Windows Server в скрипте netstats.pwn
Давай, только я и так всё по порядку объяснил. Ещё более ясней... Твой код в том участке, был бы быстрей при условии что не пришлось бы использовать GetVehiclePos. А так GetVehicleDistanceFromPoint+GetVehiclePos+GetVehicleZAngle не быстрей чем GetDistanceBetweenPoints+GetVehiclePos+GetVehicleZAngle. Или по другому: GetVehicleDistanceFromPoint будет быстрей GetDistanceBetweenPoints+GetVehiclePos но это не означает что она быстрей GetVehicleDistanceFromPoint+GetVehiclePos.
Quote (stepmex)
GetDistanceBetweenPoints - замечу самопальная функция, т.е. медленная!
По моему не то слово подобрал. В pawn всё самопальное выходит. Она не медленная, медленный pawn. Если бы у тебя была встроенная GetDistanceBetweenPoints в Си, то это другой разговор. А так, как тебе всё равно приходится брать координаты транспорта, нет смысла в использовании GetVehicleDistanceFromPoint.
Вообще конечно со всем этим я могу быть не прав, для конструктивности надо бы сделать тест. А пока что твои слова, что мои не имеют особого веса.
Quote (stepmex)
if(floatcmp) - который почти в 2 раза быстрее обчыного сравнение float vs float
Ну тут ты конкретно переборщил, в какие 2 раза быстрей, когда оператор != это и есть floatcmp
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.
OnUnoccupiedVehicleUpdate вообще хрен знает, как работает. Казалось бы на теории, она должна вызываться в том случаи, если игрок на клиент стороне меняет позицию тачки, при этом не находясь за рулем. На практике мы видим, что она вызывается во всех случаях, когда тачка без водителя меняет местоположение, не зависимо от того, кто её поменял. Уже испробовал 3 алгоритма, все 3 на сервере с 120 игроками дают ложный вызов, например когда игрок падает с мотоцикла, здесь вообще цирк, если он упал, то значит он меняет свой статус на пеший, то есть ONFOOT, соответственно он должен обновить координаты тачки, а получается, что он каким-то странным образом, пишет предупреждение о том, что такой-то игрок тпшнул тачку с расстояния за 100 метров на дистанцию 3.7 метров по отношению к игроку. Или вообще, когда дает предупреждение о тачки за 400 метров, при это определяет, что якобы игрок тпшнул её по по отношению к себе на 3.6 метров, а на самом деле её возле него даже нет и не было.
Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru
Тсссс, тссс, отключите снисходительный тон. Помните: вас уже лишали права слова на этом форуме. Прошу прощения у всех кого я заебал или оскорбил (Кроме икварпа и чеза - вы ибланы). Великс ты красава.