ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   SF | Способ передачи данных по сети (https://forum.antichat.xyz/showthread.php?t=1384147)

ANZR 09.04.2021 17:22

Хаюшки

Это вопрос для шарющих.

Те, кто интересовался работой сокетов на c++ и знают, что это такое

У меня к вам вопрос

Как можно передать данные между игроками/пользователями через интернет, т.к либ для работы с сокетом я не нашел в SF, а методы, что работают в обычном проекте тут не прокатывают.

memir 09.04.2021 18:54

Все там прокатывает... Опиши конкретнее, в чем ошибка

ANZR 09.04.2021 19:07

Цитата:

Сообщение от memir

Все там прокатывает... Опиши конкретнее, в чем ошибка

Крч, подключаю либу с сокетом

Вроде пишет, что она есть, даже ее открывает, но при создании той же самой структуры, говорит, что она не объявлена

memir 09.04.2021 19:46

Цитата:

Сообщение от ANZR

Крч, подключаю либу с сокетом
Вроде пишет, что она есть, даже ее открывает, но при создании той же самой структуры, говорит, что она не объявлена

покажи код и что пишет студия

ANZR 09.04.2021 19:52

https://i.imgur.com/iJTOyTk.png

Vintik 09.04.2021 23:39

А можно в виде кода, а не скриншота?

ANZR 10.04.2021 01:05

Цитата:

Сообщение от AdCKuY_DpO4uLa

Сокеты к проекту так же подключал?

C++:





Код:

#include
#include
#pragma comment(lib, "WS2_32.lib")



Да, точно также

Я же сказал, что они вроде-бы определились но выводят такую ошибку

ANZR 10.04.2021 01:05

Цитата:

Сообщение от Vintik

А можно в виде кода, а не скриншота?

Окс

с++:





Код:

#include
#include "main.h"
#pragma comment(lib, "ws2_32.lib")
#include
#include
#include
#pragma warning(disable: 4996)
SOCKET Connection
;
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
// определение callback-функции, которая будет вызвана при отправке какого либо пакета
{
if
(
params
->
packetId
==
93
)
{
UINT32 dColor
;
UINT32 messageLen
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
dColor
)
;
params
->
bitStream
->
Read
(
messageLen
)
;
char
*
msg
=
new
char
[
messageLen
]
;
params
->
bitStream
->
Read
(
msg
,
messageLen
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
msg
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
}
return
true
;
// успешно завершаем отправку пакета
}
;
void
__stdcall
mainloop
(
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
outcomingData
)
;
// регистрируем RakNet callback
WSAData wsaData
;
WORD DLLVersion
=
MAKEWORD
(
2
,
1
)
;
if
(
WSAStartup
(
DLLVersion
,
&
wsaData
)
!=
0
)
{
std
::
cout

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Error connected to server!"
)
;
}
else
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Connected!"
)
;
}
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}


ALF 10.04.2021 01:30

Цитата:

Сообщение от ANZR

Окс

с++:





Код:

#include
#include "main.h"
#pragma comment(lib, "ws2_32.lib")
#include
#include
#include
#pragma warning(disable: 4996)
SOCKET Connection
;
SAMPFUNCS
*
SF
=
new
SAMPFUNCS
(
)
;
bool
CALLBACK
outcomingData
(
stRakNetHookParams
*
params
)
// определение callback-функции, которая будет вызвана при отправке какого либо пакета
{
if
(
params
->
packetId
==
93
)
{
UINT32 dColor
;
UINT32 messageLen
;
params
->
bitStream
->
ResetReadPointer
(
)
;
params
->
bitStream
->
Read
(
dColor
)
;
params
->
bitStream
->
Read
(
messageLen
)
;
char
*
msg
=
new
char
[
messageLen
]
;
params
->
bitStream
->
Read
(
msg
,
messageLen
)
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
msg
)
;
params
->
bitStream
->
ResetReadPointer
(
)
;
}
return
true
;
// успешно завершаем отправку пакета
}
;
void
__stdcall
mainloop
(
)
{
static
bool
initialized
=
false
;
if
(
!
initialized
)
{
if
(
GAME
&&
GAME
->
GetSystemState
(
)
==
eSystemState
::
GS_PLAYING_GAME
&&
SF
->
getSAMP
(
)
->
IsInitialized
(
)
)
{
initialized
=
true
;
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"SAMPFUNCS Plugin loaded."
)
;
SF
->
getRakNet
(
)
->
registerRakNetCallback
(
RakNetScriptHookType
::
RAKHOOK_TYPE_INCOMING_RPC
,
outcomingData
)
;
// регистрируем RakNet callback
WSAData wsaData
;
WORD DLLVersion
=
MAKEWORD
(
2
,
1
)
;
if
(
WSAStartup
(
DLLVersion
,
&
wsaData
)
!=
0
)
{
std
::
cout

getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Error connected to server!"
)
;
}
else
{
SF
->
getSAMP
(
)
->
getChat
(
)
->
AddChatMessage
(
D3DCOLOR_XRGB
(
0
,
0xAA
,
0
)
,
"Connected!"
)
;
}
}
}
}
BOOL APIENTRY
DllMain
(
HMODULE hModule
,
DWORD dwReasonForCall
,
LPVOID lpReserved
)
{
if
(
dwReasonForCall
==
DLL_PROCESS_ATTACH
)
SF
->
initPlugin
(
mainloop
,
hModule
)
;
return
TRUE
;
}



#include - удали

#include "main.h" - после всех инклюдов

ANZR 10.04.2021 01:31

Цитата:

Сообщение от ALF

#include - удали
#include "main.h" - после всех инклюдов

Спасибо, а с чем это связано


Время: 00:29