HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #7331  
Старый 27.07.2024, 02:52
swlm
Познающий
Регистрация: 03.08.2022
Сообщений: 57
С нами: 1990627

Репутация: 8
По умолчанию

Вопрос касающийся C++.

Разработал клиентский плагин, который отрисовывает неон для определённого автомобиля. (По её идентификатору)

Моя задача синхронизировать это дело с сервером, т.е. я вызываю свою нативную функцию и отправляется пакет, далее я на клиенте принимаю входящий пакет.

Вопрос следующий: Есть какая-то нормальная, в моём понимании "адекватная" библиотека для работы с сетевым движком (RakNet), чтобы я мог отслеживать входящие пакеты. (что-то типа UpdateNetwork)

Прошерстил интернет - такого не нашёл, везде какие-то недописанные ракнеты...
 
Ответить с цитированием

  #7332  
Старый 27.07.2024, 02:54
0xff
Новичок
Регистрация: 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
 
Ответить с цитированием

  #7333  
Старый 27.07.2024, 02:56
swlm
Познающий
Регистрация: 03.08.2022
Сообщений: 57
С нами: 1990627

Репутация: 8
По умолчанию

Цитата:
Сообщение от 0xFF  

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

Недавно это использовал, он реально работает?

Цитата:
Сообщение от 0xFF  

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

Кстати, я просто все эти файлы гит клоннул (git clone) к себе в проект, так правильно вообще делать?

И к слову добавить хочу, там есть некоторые ошибки в классе main.cpp

UPD: [S]либа не собирается[/S] (всё гуд, собрал)

Я щас в ахуе.. Собрал либу, вст






роил в проект, ну как следует.

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

  #7334  
Старый 28.07.2024, 18:46
swlm
Познающий
Регистрация: 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;
};
 
Ответить с цитированием

  #7335  
Старый 28.07.2024, 20:58
zxc_paranoik
Новичок
Регистрация: 28.07.2024
Сообщений: 2
С нами: 945939

Репутация: 1
По умолчанию

1.Ваш вопрос Приветствую не могли бы подсказать с чего лучше начать изучать c++
 
Ответить с цитированием

  #7336  
Старый 06.08.2024, 13:21
вайега52
Флудер
Регистрация: 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 или какую-то еще версию, скинь их, не понятно, что именно нужно
 
Ответить с цитированием

  #7337  
Старый 07.08.2024, 07:57
0x73616D
Участник форума
Регистрация: 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

 
Ответить с цитированием

  #7338  
Старый 07.08.2024, 09:31
ARMOR
Флудер
Регистрация: 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
 
Ответить с цитированием

  #7339  
Старый 07.08.2024, 10:02
0x73616D
Участник форума
Регистрация: 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
;
}
 
Ответить с цитированием

  #7340  
Старый 10.08.2024, 22:36
walkerdev
Новичок
Регистрация: 31.07.2022
Сообщений: 7
С нами: 1994625

Репутация: 1
По умолчанию

Как установить усталость игроку?

Т.е., установить stamina (выносливость) для игрока, у которого запущен данных SF скрипт.

И вопрос, при установке его скорость бега будет видна только ему, или всем игрокам? (быстро бежит/уставший)

Пробовал и через SF->getCleo->opcode, и через reinterpret_cast(0xB7CD84) = 0, и никак =(

если можно реализовать как то без участия SampFuncs, то, подтолкните в нужную сторону, пожалуйста

однако, установка усталости должна идти через мод (т.е. я передаю через ракнет пакет с пользовательской переменной Pawn, а на ее основе устанавливается стамина)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...