Информация Реконнект для SRP

Статус
В этой теме нельзя размещать новые ответы.

SR_team

like pancake
Автор темы
BH Team
4,720
6,369
Сегодня меня угораздило попасть на SRP, и конечно же, через некоторое время я получил кик. Но реконнект не помог - сервер не отвечал. По разбиравшись узнал, что теперь на samp RP можно зайти только предварительно его пропинговав (кликнув по строчке с сервером в samp.exe). Исходя из этого я предполагаю следующее решение (предполагаю, а не предлагаю, потому что не проверял, и проверять не собираюсь).
Перед тем как подключиться к серверу, его нужно пропинговать. Функции пинга есть в RakClientInterface, для соба это g_RakClient->GetInterface()->, для SF это SF->getRakNet()->getRakClient()->. Пинговать можно как текущий сервер, так и любой другой, для этого есть метод PingServer, для пинга сервера к которому вы не подключены (для реконнекта вероятно именно он понадобится), необходимо иметь ip сервера, port сервера, port своего ПК. Есть еще 4й параметр, но его название говорит за себя "onlyReplyOnAcceptingConnections".
И так единственная проблема это открытый порт на вашем ПК. Как его узнать? Да очень просто! Это реализуется методом GetPlayerID(), который возвращает структуру PlayerID, в этой структуре хранится ваш ip адрес (в бинарном вмде) и порт, с которым устанавливалось соединение.
Вот собственно и все. Пингуем сервер, а потом подключаемся, подключиться можно через тот же RakClientInterface, указав порт.
 
  • Нравится
Реакции: 4el0ve4ik и mac

FYP

Известный
Администратор
1,758
5,722
не хочу тебя разочаровывать, но придётся. эти функции ракнета к query-системе сампа никакого отношения не имеют. пропинговка в ракнете нужна лишь для поддержания статуса активности соединения, т.к. используется UDP, и чтобы пинговать сервер из клиента в него нужно запиливать эту функциональность самому.
 

Maddy

Известный
34
11
https://sampwiki.blast.hk/wiki/Query_Mechanism

На адвансе и даймонде тоже стоит такая же система, на адвансе требует запрос -r, на остальных серверах не проверял
 
Статус
В этой теме нельзя размещать новые ответы.