Второе это типа «интерфейс» к первому, для более конкретного использования(в качестве клиента)Можно подробное различие RakPeer и RakClient. Где-то видел, что используя первое можно исполнять больше возможностей
RakClient это обёртка над RakPeer для клиента(в самповском ракнете есть также и RakServer, который уже обёртка для RakPeer на серверной стороне). Большинство действий (исходящие пакеты/РПЦ, входящие пакеты, входящие РПЦ тоже можно, но с ними надо подрочиться), которые тебе могут понадобиться ты сможешь реализовать через RakClient, RakPeer можно использовать в случае, если тебе надо хукать много разных РПЦ (в RakClient, как я понимаю надо создавать на каждый РПЦ свой обработчик) или тебе нужен тотальный контроль над всеми пакетами (допустим если кто-нибудь создаст свой RakClient, он всё равно скорее всего будет юзать RakPeer). Если коротко RakClient - класс, который является абстракцией над RakPeer, но RakPeer также не является самым низкоуровневым классом в ракнете, под ним есть другие классы. Скорее всего ты мало чего поймёшь, не попробовав это на практике, так что вот ссылка на ракнет, который +- такой-же, как в самом сампе: https://github.com/LoleroChitero/RakSAMP/tree/master/raknetМожно подробное различие RakPeer и RakClient. Где-то видел, что используя первое можно исполнять больше возможностей
можно получить его с, например, RakPeer::HandleRPCPacket (https://github.com/imring/RakHook/blob/master/src/RakHook/rakhook.cpp#L30)Хочу наклепать вмп хуков на интерфейс ракпира, есть у кого-то указатель на него? И стоит ли вообще ставить вмт хуки на интерфейс ракпира, а не джамп хуки на методы самого ракпира?
RakClientInterface - sizeof(RakPeer)Чет пробовал доставать его от туда и хукать 13 метод (Send), но шот не воркало, возможно я еблан и запутался в нумерации методов и хукал либо вообще не тот метод, либо тот, который идет без готового битстрима, поэтому завтра попробую ещё раз, спасибоможно получить его с, например, RakPeer::HandleRPCPacket
Прикол, что есть достаточное количесто пакетов, и(или) рпс, которые проходят через RakPeer::Send, но не через RakClient::Send, их просто нельзя словить в хуке RakClient::Send, в этом и печалька.RakClient это обёртка над RakPeer для клиента(в самповском ракнете есть также и RakServer, который уже обёртка для RakPeer на серверной стороне). Большинство действий (исходящие пакеты/РПЦ, входящие пакеты, входящие РПЦ тоже можно, но с ними надо подрочиться), которые тебе могут понадобиться ты сможешь реализовать через RakClient, RakPeer можно использовать в случае, если тебе надо хукать много разных РПЦ (в RakClient, как я понимаю надо создавать на каждый РПЦ свой обработчик) или тебе нужен тотальный контроль над всеми пакетами (допустим если кто-нибудь создаст свой RakClient, он всё равно скорее всего будет юзать RakPeer). Если коротко RakClient - класс, который является абстракцией над RakPeer, но RakPeer также не является самым низкоуровневым классом в ракнете, под ним есть другие классы. Скорее всего ты мало чего поймёшь, не попробовав это на практике, так что вот ссылка на ракнет, который +- такой-же, как в самом сампе: https://github.com/LoleroChitero/RakSAMP/tree/master/raknet
потому что в виде пакетов в сампе отправляется только синхра, все остальное это рпцПрикол, что есть достаточное количесто пакетов, и(или) рпс, которые проходят через RakPeer::Send, но не через RakClient::Send, их просто нельзя словить в хуке RakClient::Send, в этом и печалька.
я имел ввиду про вот эти пакеты, https://github.com/Brunoo16/samp-packet-list/wiki/Internal-Packet-Listпотому что в виде пакетов в сампе отправляется только синхра, все остальное это рпц
Наверное блять потому чтоя имел ввиду про вот эти пакеты, https://github.com/Brunoo16/samp-packet-list/wiki/Internal-Packet-List
их нельзя хукнуть через ракклиент, но можо через ракпир.
В препроцессор _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGSКак исправить данную ошибку при попытки сборки решения?
Посмотреть вложение 206957
Вот какие настройки у меня стоят:
Посмотреть вложение 206956
Посмотреть вложение 206958
CPed* pPed = SAMP::pSAMP->getPlayers()->GetCPedFromPlayerID(ID);
CPed* pPed = CPools::GetPed(pSAMP->getPlayers()->pRemotePlayer[ID]->pPlayerData->pSAMP_Actor->ulGTAEntityHandle);
Мужички ребята, пытаюсь получить CPed игрока по ID, используя plugin SDK + sampAPI, но игра крашиться, помогите пожалуйста, я риально слоупчан
Пробывал 2 варианта:
C++:CPed* pPed = SAMP::pSAMP->getPlayers()->GetCPedFromPlayerID(ID);
C++:CPed* pPed = CPools::GetPed(pSAMP->getPlayers()->pRemotePlayer[ID]->pPlayerData->pSAMP_Actor->ulGTAEntityHandle);
CPed* pPed = sampapi::v037r1::RefNetGame()->m_pPools->m_pPlayer->m_pObject[playerID]->m_pPlayer->m_pPed->m_pGamePed;
Если не сложно, подскажи как проверить находиться ли cped в зоне стримаТак же не стоит забывать про то, что требуется проверка на то, существует ли вообще пед под этим идом в зоне стримаC++:CPed* pPed = sampapi::v037r1::RefNetGame()->m_pPools->m_pPlayer->m_pObject[playerID]->m_pPlayer->m_pPed->m_pGamePed;
Указатель сущестует. Не nullptrЕсли не сложно, подскажи как проверить находиться ли cped в зоне стрима