Posts: 1,495
Threads: 20
Joined: Sep 2010
Reputation:
0
Меня терзают вопросы связанные с порядком обработки тех или иных Callback. Все мы знаем что sa-mp сервер работает в один поток, так каков же порядок Callback-ов - это раз.
Во вторых, идёт перебор игроков for(;; ), если произвести кик игрока то будет ли вызван OnPlayerDisconnect() во время перебора?(думаю что да)
В третьих, идёт перебор игроков for(;; ), может ли в этот промежуток времени выполниться OnPlayerConnect()?(думаю что нет)
Пока единственное что мне известно то, что OnPlayerEnterVehicle() игрока происходит до OnPlayerUpdate().
Хотелось бы узнать эту "структуру".
Posts: 5,763
Threads: 19
Joined: Jul 2008
Reputation:
0
Ты в курсе что такое один поток и очередь?
Posts: 5,763
Threads: 19
Joined: Jul 2008
Reputation:
0
Нет её, по мере поступления задач, ушел игрок с сервера в конец очереди встало OnPlayerDisconnect, в этот момент другой человек садится в машину, в конец встали OnPlayerKeyStateChange и OnPlayerEnterVehicle, сел в машину получили OnPlayerStateChange и все это разбавлено порядочной долей событий OnPlayerUpdate.
Нет и никогда не было четкого порядка, только в случае когда два события результат одного действия, например посадка в машину: OnPlayerKeyStateChange, OnPlayerEnterVehicle и OnPlayerUpdate. Правда в каком порядке точно не скажу, но OnPlayerUpdate 100% первая потому что сперва приходит пакет с информацией о том что человек садится в машину, и уже этот пакет вызывает два других события.
Posts: 1,495
Threads: 20
Joined: Sep 2010
Reputation:
0
Со вторым разобрался идёт вызов дисконекта.
OnPlayerEnterVehicle, OnPlayerKeyStateChange, OnPlayerUpdate.Потом идёт несколько OnPlayerUpdate(пока игрок сядет в машину) и выполняется OnPlayerStateChange.
- результат посадки в авто.
Posts: 5,763
Threads: 19
Joined: Jul 2008
Reputation:
0
Я так полагаю что ты отслеживаешь вызовы после того как будет вызвана OnPlayerEnterVehicle?
Posts: 1,495
Threads: 20
Joined: Sep 2010
Reputation:
0
наоборот, OnPlayerEnterVehicle, OnPlayerKeyStateChange, OnPlayerUpdate.
(пойду перепроверю...)