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

  #1  
Старый 11.08.2022, 04:13
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

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

Почему этот код не работает? Пакеты не эмулируются, не коннектится к серверу.

C++:





Код:
bool
CALLBACK
incomingPacket
(
stRakNetHookParams
*
data
)
{
SF
->
getRakNet
(
)
->
emulateRecvPacket
(
data
->
packetId
,
data
->
bitStream
)
;
return
false
;
}


Аналогичная функция в Мунлоадере работает как часы и пользуется спросом, но если вбить эту же функу из СФ в поиск по форуму, то не найдётся ни одного её упоминания. Отсюда можно сделать вывод, что одна из самых важных функций во всей либе неработоспособна, либо работает неочевидным образом и никто так и не понял как её использовать. Вопрос к разработчику @FYP

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

  #2  
Старый 22.11.2023, 20:19
01EG
Постоянный
Регистрация: 10.04.2013
Сообщений: 783
С нами: 6888753

Репутация: 133


По умолчанию

Цитата:
Сообщение от Ya Zaregalsya  

Почему этот код не работает? Пакеты не эмулируются, не коннектится к серверу.

C++:





Код:
bool
CALLBACK
incomingPacket
(
stRakNetHookParams
*
data
)
{
SF
->
getRakNet
(
)
->
emulateRecvPacket
(
data
->
packetId
,
data
->
bitStream
)
;
return
false
;
}


Аналогичная функция в Мунлоадере работает как часы и пользуется спросом, но если вбить эту же функу из СФ в поиск по форуму, то не найдётся ни одного её упоминания. Отсюда можно сделать вывод, что одна из самых важных функций во всей либе неработоспособна, либо работает неочевидным образом и никто так и не понял как её использовать. Вопрос к разработчику @FYP

😐
эммм

собственно соизволю ответить

1) так а с каким пакетом, то работаешь ? у тебя входящий пакет приходит попадает в блок кода в котором возвращает ничего(ложное) - отмену, типа ничо и не должно работать

2) у тебя всё пустые значения, что битстрим, что параметры к нему

3) if( params->packetId == PacketEnumeration::TytPacketNyjniy )

4) типа_пример вот как должно было идти примерно, я так понимаю тебе нужно для примера, чтоб когда соединение с сервером устанавливалось, то сразу разрывалось ?

C++:





Код:
bool
CALLBACK
incomingPacket
(
stRakNetHookParams
*
data
)
{
// PACKET_CONNECTION_COOKIE = 26
if
(
params
->
packetId
==
PacketEnumeration
::
26
)
{
{
SF
->
getRakNet
(
)
->
emulateRecvPacket
(
data
->
packetId
,
data
->
bitStream
)
;
return
false
;
}
}


мало писал на сф, по идеи идом можно вставить пакет,

п.с. не бейте тапками, что апнул старую тему, не сдержался, триггернулся на этом, https://www.blast.hk/threads/151147/page-2#post-1155924 , еще давно видел эту тему, странно, что осталась без внимания, такая критика СФ и такой мастер как @Dark_Knight не пояснил еще здесь...
 
Ответить с цитированием

  #3  
Старый 22.11.2023, 23:27
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

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

Цитата:
Сообщение от 01EG.  

эммм
собственно соизволю ответить

1) так а с каким пакетом, то работаешь ? у тебя входящий пакет приходит попадает в блок кода в котором возвращает ничего(ложное) - отмену, типа ничо и не должно работать
2) у тебя всё пустые значения, что битстрим, что параметры к нему
3) if( params->packetId == PacketEnumeration::TytPacketNyjniy )

4) типа_пример вот как должно было идти примерно, я так понимаю тебе нужно для примера, чтоб когда соединение с сервером устанавливалось, то сразу разрывалось ?

C++:





Код:
bool
CALLBACK
incomingPacket
(
stRakNetHookParams
*
data
)
{
// PACKET_CONNECTION_COOKIE = 26
if
(
params
->
packetId
==
PacketEnumeration
::
26
)
{
{
SF
->
getRakNet
(
)
->
emulateRecvPacket
(
data
->
packetId
,
data
->
bitStream
)
;
return
false
;
}
}


мало писал на сф, по идеи идом можно вставить пакет,

п.с. не бейте тапками, что апнул старую тему, не сдержался, триггернулся на этом, https://www.blast.hk/threads/151147/page-2#post-1155924 , еще давно видел эту тему, странно, что осталась без внимания, такая критика СФ и такой мастер как @Dark_Knight не пояснил еще здесь...
Спасибо чел что пытаешься помочь, но ты совсем нихера не понял что такое эмуляция. Если бы она работала в СФ, то код выше вообще никак не влиял бы на игровой процесс. Код выше чисто демонстрационный, пока ни у кого на этом форуме не получилось эмулировать пакет при помощи СФ. Если таковые есть, то пусть покажут свой пример. Я пытался сделать самыми разными способами и нифига не получилось.
 
Ответить с цитированием

  #4  
Старый 23.11.2023, 03:33
01EG
Постоянный
Регистрация: 10.04.2013
Сообщений: 783
С нами: 6888753

Репутация: 133


По умолчанию

Цитата:
Сообщение от Ya Zaregalsya  

Спасибо чел что пытаешься помочь, но ты совсем нихера не понял что такое эмуляция. Если бы она работала в СФ, то код выше вообще никак не влиял бы на игровой процесс. Код выше чисто демонстрационный, пока ни у кого на этом форуме не получилось эмулировать пакет при помощи СФ. Если таковые есть, то пусть покажут свой пример. Я пытался сделать самыми разными способами и нифига не получилось.
эмулировать пакет не равно заполнить структуру и отправить ? это единственный способ в сф
 
Ответить с цитированием

  #5  
Старый 23.11.2023, 13:21
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

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

Цитата:
Сообщение от 01EG.  

эмулировать пакет не равно заполнить структуру и отправить ? это единственный способ в сф
Это называется отправить пакет. А эмулировать это когда ты принудительно заставляешь самп обработать твой собственный пакет, как будто он пришёл от сервера.
 
Ответить с цитированием

  #6  
Старый 31.01.2024, 12:17
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

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

Вроде что-то получилось.

C++:





Код:
struct
stOnFootData
{
uint16_t
sLeftRightKeys
;
uint16_t
sUpDownKeys
;
union
{
uint16_t
sKeys
;
struct
stSAMPKeys
stSampKeys
;
}
;
float
fPosition
[
3
]
;
float
fQuaternion
[
4
]
;
uint8_t
byteHealth
;
uint8_t
byteArmor
;
uint8_t
byteCurrentWeapon
;
uint8_t
byteSpecialAction
;
float
fMoveSpeed
[
3
]
;
float
fSurfingOffsets
[
3
]
;
uint16_t
sSurfingVehicleID
;
union
{
struct
{
uint16_t
id
;
uint8_t
frameDelta
;
union
{
struct
{
bool
loop
:
1
;
bool
lockX
:
1
;
bool
lockY
:
1
;
bool
freeze
:
1
;
uint8_t
time
:
2
;
uint8_t
_unused
:
1
;
bool
regular
:
1
;
}
;
uint8_t
value
;
}
flags
;
}
animation
;
struct
{
uint16_t
sCurrentAnimationID
;
uint16_t
sAnimFlags
;
}
;
}
;
}
;
void
emulOnFootData
(
int
sampPlayerId
,
stOnFootData onFootData
)
{
bool
bHasLeftRightKeys
=
onFootData
.
sLeftRightKeys
!=
0
?
true
:
false
;
bool
bHasUpDownKeys
=
onFootData
.
sUpDownKeys
!=
0
?
true
:
false
;
bool
bHasSurfInfo
=
onFootData
.
sSurfingVehicleID
!=
0
?
true
:
false
;
bool
bAnimation
=
onFootData
.
sCurrentAnimationID
!=
0
?
true
:
false
;
BitStream bs
;
bs
.
Write
(
(
unsigned
short
)
sampPlayerId
)
;
bs
.
Write
(
bHasLeftRightKeys
)
;
if
(
bHasLeftRightKeys
)
{
bs
.
Write
(
(
WORD
)
onFootData
.
sLeftRightKeys
)
;
}
bs
.
Write
(
bHasUpDownKeys
)
;
if
(
bHasUpDownKeys
)
{
bs
.
Write
(
(
WORD
)
onFootData
.
sUpDownKeys
)
;
}
bs
.
Write
(
onFootData
.
sKeys
)
;
// bs.WriteVector(onFootData.fPosition[0], onFootData.fPosition[1], onFootData.fPosition[2]);
bs
.
Write
(
onFootData
.
fPosition
[
0
]
)
;
bs
.
Write
(
onFootData
.
fPosition
[
1
]
)
;
bs
.
Write
(
onFootData
.
fPosition
[
2
]
)
;
bs
.
WriteNormQuat
(
onFootData
.
fQuaternion
[
0
]
,
onFootData
.
fQuaternion
[
1
]
,
onFootData
.
fQuaternion
[
2
]
,
onFootData
.
fQuaternion
[
3
]
)
;
BYTE byteHealthArmor
=
(
onFootData
.
byteHealth

getRakNet
(
)
->
emulateRecvPacket
(
207
,
&
bs
)
;
}
void
test
(
int
playerId
)
{
stOnFootData onFootData
;
onFootData
.
sLeftRightKeys
=
0
;
onFootData
.
sUpDownKeys
=
0
;
onFootData
.
sKeys
=
0
;
onFootData
.
fPosition
[
0
]
=
PEDSELF
->
GetPosition
(
)
->
fX
+
1.0
;
onFootData
.
fPosition
[
1
]
=
PEDSELF
->
GetPosition
(
)
->
fY
;
onFootData
.
fPosition
[
2
]
=
PEDSELF
->
GetPosition
(
)
->
fZ
;
onFootData
.
fQuaternion
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
0
]
;
onFootData
.
fQuaternion
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
1
]
;
onFootData
.
fQuaternion
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
2
]
;
onFootData
.
fQuaternion
[
3
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fQuaternion
[
3
]
;
onFootData
.
byteHealth
=
50
;
onFootData
.
byteArmor
=
100
;
onFootData
.
byteCurrentWeapon
=
24
;
onFootData
.
byteSpecialAction
=
68
;
onFootData
.
fMoveSpeed
[
0
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
0
]
;
onFootData
.
fMoveSpeed
[
1
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
1
]
;
onFootData
.
fMoveSpeed
[
2
]
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
onFootData
.
fMoveSpeed
[
2
]
;
bool
bHasSurfInfo
=
false
;
onFootData
.
fSurfingOffsets
[
0
]
=
0.0
;
onFootData
.
fSurfingOffsets
[
1
]
=
0.0
;
onFootData
.
fSurfingOffsets
[
2
]
=
0.0
;
onFootData
.
sSurfingVehicleID
=
0
;
bool
bAnimation
=
true
;
/*
    onFootData.animation.id = 1224;
    onFootData.animation.frameDelta = 1.0;
    onFootData.animation.flags.lockX = false;
    onFootData.animation.flags.lockY = false;
    onFootData.animation.flags.freeze = false;
    onFootData.animation.flags.time = false;
    onFootData.animation.flags._unused = false;
    onFootData.animation.flags.regular = false;*/
onFootData
.
sCurrentAnimationID
=
984
;
onFootData
.
sAnimFlags
=
4356
;
emulOnFootData
(
playerId
,
onFootData
)
;
}


Недостающие функции битстрима можно скопипастить отсюда.

UPD: исправил фатальные опечатки.
 
Ответить с цитированием

  #7  
Старый 03.06.2024, 17:41
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

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

Цитата:
Сообщение от Ya Zaregalsya  

Почему этот код не работает? Пакеты не эмулируются, не коннектится к серверу.

C++:





Код:
bool
CALLBACK
incomingPacket
(
stRakNetHookParams
*
data
)
{
SF
->
getRakNet
(
)
->
emulateRecvPacket
(
data
->
packetId
,
data
->
bitStream
)
;
return
false
;
}


Аналогичная функция в Мунлоадере работает как часы и пользуется спросом, но если вбить эту же функу из СФ в поиск по форуму, то не найдётся ни одного её упоминания. Отсюда можно сделать вывод, что одна из самых важных функций во всей либе неработоспособна, либо работает неочевидным образом и никто так и не понял как её использовать. Вопрос к разработчику @FYP

😐
А этот код не работал из-за того, что в СФ ид пакета идёт в куче данных с самим пакетом, но при эмуляции ожидает получить сам пакет без этого ид. С РПС таких проблем нет.
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

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

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

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

Сумма USDT:

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

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

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

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

×

Мои сделки

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

Сделка


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