 |
|

27.07.2024, 02:52
|
|
Познающий
Регистрация: 03.08.2022
Сообщений: 57
С нами:
1990627
Репутация:
8
|
|
Вопрос касающийся C++.
Разработал клиентский плагин, который отрисовывает неон для определённого автомобиля. (По её идентификатору)
Моя задача синхронизировать это дело с сервером, т.е. я вызываю свою нативную функцию и отправляется пакет, далее я на клиенте принимаю входящий пакет.
Вопрос следующий: Есть какая-то нормальная, в моём понимании "адекватная" библиотека для работы с сетевым движком (RakNet), чтобы я мог отслеживать входящие пакеты. (что-то типа UpdateNetwork)
Прошерстил интернет - такого не нашёл, везде какие-то недописанные ракнеты...
|
|
|

27.07.2024, 02:54
|
|
Новичок
Регистрация: 21.03.2006
Сообщений: 17
С нами:
10600540
Репутация:
7
|
|
Сообщение от daun.daunovich.01
Вопрос касающийся C++.
Разработал клиентский плагин, который отрисовывает неон для определённого автомобиля. (По её идентификатору)
Моя задача синхронизировать это дело с сервером, т.е. я вызываю свою нативную функцию и отправляется пакет, далее я на клиенте принимаю входящий пакет.
Вопрос следующий: Есть какая-то нормальная, в моём понимании "адекватная" библиотека для работы с сетевым движком (RakNet), чтобы я мог отслеживать входящие пакеты. (что-то типа UpdateNetwork)
Прошерстил интернет - такого не нашёл, везде какие-то недописанные ракнеты...
GitHub - imring/RakHook: RakNet events for SA:MP
RakNet events for SA:MP. Contribute to imring/RakHook development by creating an account on GitHub.
github.com
|
|
|

27.07.2024, 02:56
|
|
Познающий
Регистрация: 03.08.2022
Сообщений: 57
С нами:
1990627
Репутация:
8
|
|
Недавно это использовал, он реально работает?
Кстати, я просто все эти файлы гит клоннул (git clone) к себе в проект, так правильно вообще делать?
И к слову добавить хочу, там есть некоторые ошибки в классе main.cpp
UPD: [S]либа не собирается[/S] (всё гуд, собрал)
Я щас в ахуе.. Собрал либу, вст

роил в проект, ну как следует.
И мой проект компилируется, но я не вижу в компиляции, что подгружается rakhook
|
|
|

28.07.2024, 18:46
|
|
Познающий
Регистрация: 03.08.2022
Сообщений: 57
С нами:
1990627
Репутация:
8
|
|
Помогите пожалуйста.
Отправляю пакет с сервера, но на клиенте не могу принять..
PACKET_CUSTOM = 251
RPC_HELLOWORLD = 20 (на клиенте тоже самое)
server, send:
Код:
new BitStream: bitstream = BS_New();
BS_WriteValue(
bitstream,
PR_UINT8, PACKET_CUSTOM,
PR_UINT32, RPC_HELLOWORLD
);
PR_SendPacket(bitstream, playerid, PR_MEDIUM_PRIORITY, PR_RELIABLE);
BS_Delete(bitstream);
client-side:
Код:
rakhook::on_receive_packet += [](Packet* p) -> bool
{
RakNet::BitStream bs(p->data, p->length, false);
uint8_t packetID;
uint32_t rpcID;
bs.ResetReadPointer();
bs.Read(packetID);
bs.Read(rpcID);
if (packetID == 251)
{
if (rpcID == 20)
{
CVehicle* veh = CPools::ms_pVehiclePool->GetAt(1);
Neon.Install(veh, 134, 16, 194);
CMessages::AddMessageJumpQ((char*)"Ccc", 5000, 0, false);
}
}
return true;
};
|
|
|

28.07.2024, 20:58
|
|
Новичок
Регистрация: 28.07.2024
Сообщений: 2
С нами:
945939
Репутация:
1
|
|
1.Ваш вопрос Приветствую не могли бы подсказать с чего лучше начать изучать c++
|
|
|

06.08.2024, 13:21
|
|
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами:
2055431
Репутация:
3
|
|
Сообщение от !Sam#0235
Мне нужны адреса памяти, может они у кого-то есть, если поделитесь, было бы здорово:
C++:
Код:
SAMP_F1_KEYHANDLER
-
Нужный
0.3
.
7
-
R2
|
0.3
.
7
-
R4
|
0.3
.
7
-
R5
|
SAMP
0.3
DL
SAMP_ANTI_CRASHER
-
Нужный
0.3
.
7
-
R5
SAMP_FPS_UNLOCK
-
Нужный
0.3
.
7
-
R4
|
0.3
.
7
-
R5
sampPatch
[
]
=
"No connecting delay"
-
Нужный
0.3
.7
-
R2
|
0.3
.7
-
R3
|
0.3
.7
-
R4
я так понимаю эти адреса уже есть под R1 или какую-то еще версию, скинь их, не понятно, что именно нужно
|
|
|

07.08.2024, 07:57
|
|
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами:
2614229
Репутация:
33
|
|
Почему крючок не работает?
C++:
[CODE]
#include
#include
#include
#include
using
CTimer__UpdateSignature
=
void
(
__cdecl
*
)
(
)
;
using
WndProcSignature
=
HRESULT
(
__stdcall
*
)
(
HWND
,
UINT
,
WPARAM
,
LPARAM
)
;
using
InitGameInstance
=
HWND
(
__cdecl
*
)
(
HINSTANCE
)
;
kthook
::
kthook_simple
CTimerHook
{
}
;
kthook
::
kthook_signal
hookGameInstanceInit
{
0x745560
}
;
kthook
::
kthook_simple
WndProcHook
{
}
;
HWND gameHwnd
=
[
]
(
)
{
HWND
*
pHwnd
=
*
reinterpret_cast
(
0xC17054
)
;
if
(
pHwnd
!=
nullptr
)
{
return
*
pHwnd
;
}
else
{
hookGameInstanceInit
.
after
+=
[
]
(
const
auto
&
hook
,
HWND
&
returnValue
,
HINSTANCE inst
)
{
gameHwnd
=
returnValue
;
}
;
return
HWND
(
0
)
;
}
}
(
)
;
HRESULT
hWndProc
(
const
decltype
(
WndProcHook
)
&
hook
,
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
std
::
cout
|
|
|

07.08.2024, 09:31
|
|
Флудер
Регистрация: 02.02.2019
Сообщений: 5,070
С нами:
3831395
Репутация:
183
|
|
[QUOTE="!Sam#0235"]
Почему крючок не работает?
C++:
[CODE]
#include
#include
#include
#include
using
CTimer__UpdateSignature
=
void
(
__cdecl
*
)
(
)
;
using
WndProcSignature
=
HRESULT
(
__stdcall
*
)
(
HWND
,
UINT
,
WPARAM
,
LPARAM
)
;
using
InitGameInstance
=
HWND
(
__cdecl
*
)
(
HINSTANCE
)
;
kthook
::
kthook_simple
CTimerHook
{
}
;
kthook
::
kthook_signal
hookGameInstanceInit
{
0x745560
}
;
kthook
::
kthook_simple
WndProcHook
{
}
;
HWND gameHwnd
=
[
]
(
)
{
HWND
*
pHwnd
=
*
reinterpret_cast
(
0xC17054
)
;
if
(
pHwnd
!=
nullptr
)
{
return
*
pHwnd
;
}
else
{
hookGameInstanceInit
.
after
+=
[
]
(
const
auto
&
hook
,
HWND
&
returnValue
,
HINSTANCE inst
)
{
gameHwnd
=
returnValue
;
}
;
return
HWND
(
0
)
;
}
}
(
)
;
HRESULT
hWndProc
(
const
decltype
(
WndProcHook
)
&
hook
,
HWND hwnd
,
UINT uMsg
,
WPARAM wParam
,
LPARAM lParam
)
{
std
::
cout
|
|
|

07.08.2024, 10:02
|
|
Участник форума
Регистрация: 27.05.2021
Сообщений: 140
С нами:
2614229
Репутация:
33
|
|
Сообщение от ARMOR
Где установка хука CTimer::Update?
C++:
Код:
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD ul_reason_for_call
,
LPVOID lpReserved
)
{
switch
(
ul_reason_for_call
)
{
case
DLL_PROCESS_ATTACH
:
CTimerHook
.
set_dest
(
0x561B10
)
;
CTimerHook
.
set_cb
(
&
CTimer__Update
)
;
CTimerHook
.
install
(
)
;
break
;
case
DLL_PROCESS_DETACH
:
break
;
}
return
TRUE
;
}
|
|
|

10.08.2024, 22:36
|
|
Новичок
Регистрация: 31.07.2022
Сообщений: 7
С нами:
1994625
Репутация:
1
|
|
Как установить усталость игроку?
Т.е., установить stamina (выносливость) для игрока, у которого запущен данных SF скрипт.
И вопрос, при установке его скорость бега будет видна только ему, или всем игрокам? (быстро бежит/уставший)
Пробовал и через SF->getCleo->opcode, и через reinterpret_cast(0xB7CD84) = 0, и никак =(
если можно реализовать как то без участия SampFuncs, то, подтолкните в нужную сторону, пожалуйста
однако, установка усталости должна идти через мод (т.е. я передаю через ракнет пакет с пользовательской переменной Pawn, а на ее основе устанавливается стамина)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|