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

  #7531  
Старый 11.05.2025, 10:49
thelupa1488
Новичок
Регистрация: 16.12.2020
Сообщений: 13
С нами: 2846858

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

Здравствуйте, сделал хук "0x33BA0" (Внешний) отправки пакета серверу, но не пойму, как прочитать агрумент с bitstream

Чтобы его потом передать классу BitStream

1746946221822.pngthelupa1488 · 11 Май 2025 в 09:49' data-fancybox="lb-post-1606281" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/270028/" style="cursor: pointer;" title="1746946221822.png">
 
Ответить с цитированием

  #7532  
Старый 11.05.2025, 10:57
moreveal
Постоянный
Регистрация: 01.08.2020
Сообщений: 988
С нами: 3043831

Репутация: 163


По умолчанию

Цитата:
Сообщение от thelupa1488  

Здравствуйте, сделал хук "0x33BA0" (Внешний) отправки пакета серверу, но не пойму, как прочитать агрумент с bitstream
C++:





Код:
struct
BitStream
{
int
numberOfBitsUsed
;
int
numberOfBitsAllocated
;
int
readOffset
;
uint8_t
*
data
;
bool
copyData
;
uint8_t
stackData
[
256
]
;
}
;


кастишь к указателю на эту структуру и работаешь с ней:

C++:





Код:
// int pBitStream - аргумент с твоей функции
auto
bitStream
=
reinterpret_cast

(
pBitStream
)
;


(боюсь спросить почему у тебя это внутри фрейма имгуи)
 
Ответить с цитированием

  #7533  
Старый 11.05.2025, 11:01
thelupa1488
Новичок
Регистрация: 16.12.2020
Сообщений: 13
С нами: 2846858

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

Цитата:
Сообщение от moreveal  

C++:





Код:
struct
BitStream
{
int
numberOfBitsUsed
;
int
numberOfBitsAllocated
;
int
readOffset
;
uint8_t
*
data
;
bool
copyData
;
uint8_t
stackData
[
256
]
;
}
;


кастишь к указателю на эту структуру и работаешь с ней:

C++:





Код:
// int pBitStream - аргумент с твоей функции
auto
bitStream
=
reinterpret_cast

(
pBitStream
)
;


(боюсь спросить почему у тебя это внутри фрейма имгуи)
Спасибо большое, только ты написал под internal, но попробую её на external

А на счёт ImGui, это вывод для внешнего окна, не самого меню (Просто для теста, чтобы рядом было )

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

  #7534  
Старый 14.05.2025, 00:36
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

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

Цитата:
Сообщение от tanksoftik  

как можно реализовать функцию convertScreenCoordsToWorld3D с луа на плюсы
чат гпт выдовал такой код

Цитата:
Сообщение от Спойлер  


C++:





Код:
#include 
#include 
#include 
#include 
bool
ConvertScreenCoordsToWorld3D
(
float
screenX
,
float
screenY
,
float
&
outX
,
float
&
outY
,
float
&
outZ
)
{
auto
viewMatrix
=
*
(
RwMatrix
*
)
0xB6FA2C
;
CCamera
*
cam
=
TheCamera
;
float
screenW
=
static_cast

(
*
reinterpret_cast

(
0xC17044
)
)
;
float
screenH
=
static_cast

(
*
reinterpret_cast

(
0xC17048
)
)
;
float
nx
=
(
2.0f
*
screenX
/
screenW
)
-
1.0f
;
float
ny
=
1.0f
-
(
2.0f
*
screenY
/
screenH
)
;
// перевёрнутый Y
CVector
forward
(
viewMatrix
.
at
.
x
,
viewMatrix
.
at
.
y
,
viewMatrix
.
at
.
z
)
;
CVector
right
(
viewMatrix
.
right
.
x
,
viewMatrix
.
right
.
y
,
viewMatrix
.
right
.
z
)
;
CVector
up
(
viewMatrix
.
up
.
x
,
viewMatrix
.
up
.
y
,
viewMatrix
.
up
.
z
)
;
float
fov
=
cam
->
m_fFOV
;
float
aspect
=
screenW
/
screenH
;
float
fovRad
=
fov
*
3.14159f
/
180.0f
;
float
tanFov
=
tanf
(
fovRad
/
2.0f
)
;
CVector rayDir
=
forward
+
right
*
nx
*
aspect
*
tanFov
+
up
*
ny
*
tanFov
;
rayDir
.
Normalise
(
)
;
CVector camPos
=
*
cam
->
GetGameCamPosition
(
)
;
CVector rayEnd
=
camPos
+
rayDir
*
3000.0f
;
// дальность луча
CColPoint col
;
CEntity
*
pHitEntity
=
nullptr
;
// трассировка с фильтрацией воды и прочего
if
(
CWorld
::
ProcessLineOfSight
(
camPos
,
rayEnd
,
col
,
pHitEntity
,
true
,
true
,
true
,
true
,
false
,
true
,
false
)
)
{
outX
=
col
.
m_vecPoint
.
x
;
outY
=
col
.
m_vecPoint
.
y
;
outZ
=
col
.
m_vecPoint
.
z
;
return
true
;
}
return
false
;
}


но он работает очень плохо и неправильно
plugin-sdk/shared/extensions/FontPrint.cpp at 262a9b5099d59e57bf9f2d2b2a6e1ff19e5209f3 · DK22Pac/plugin-sdk

An SDK for developing ASI/CLEO plugins for GTA San Andreas, GTA Vice City and GTA III - DK22Pac/plugin-sdk

github.com


либо самопальная хуета, которую я отрыл когда-то очень давно

C++:





Код:
void
CalcScreenCoors
(
CVector
*
vecWorld
,
CVector
*
vecScreen
)
{
D3DXMATRIX
m
(
(
float
*
)
(
0xB6FA2C
)
)
;
DWORD
*
dwLenX
=
(
DWORD
*
)
(
0xC17044
)
;
DWORD
*
dwLenY
=
(
DWORD
*
)
(
0xC17048
)
;
vecScreen
->
x
=
(
vecWorld
->
z
*
m
.
_31
)
+
(
vecWorld
->
y
*
m
.
_21
)
+
(
vecWorld
->
x
*
m
.
_11
)
+
m
.
_41
;
vecScreen
->
y
=
(
vecWorld
->
z
*
m
.
_32
)
+
(
vecWorld
->
y
*
m
.
_22
)
+
(
vecWorld
->
x
*
m
.
_12
)
+
m
.
_42
;
vecScreen
->
z
=
(
vecWorld
->
z
*
m
.
_33
)
+
(
vecWorld
->
y
*
m
.
_23
)
+
(
vecWorld
->
x
*
m
.
_13
)
+
m
.
_43
;
double
fRecip
=
(
double
)
1.0
/
vecScreen
->
z
;
vecScreen
->
x
*=
(
float
)
(
fRecip
*
(
*
dwLenX
)
)
;
vecScreen
->
y
*=
(
float
)
(
fRecip
*
(
*
dwLenY
)
)
;
}
void
CalcWorldCoors
(
CVector
*
vecScreen
,
CVector
*
vecWorld
)
{
D3DXMATRIXA16
m
(
(
float
*
)
(
0xB6FA2C
)
)
;
D3DXMATRIXA16 minv
;
memset
(
&
minv
,
0
,
sizeof
(
D3DXMATRIXA16
)
)
;
m
.
_44
=
1.0f
;
D3DXMatrixInverse
(
&
minv
,
NULL
,
&
m
)
;
DWORD
*
dwLenX
=
(
DWORD
*
)
(
0xC17044
)
;
DWORD
*
dwLenY
=
(
DWORD
*
)
(
0xC17048
)
;
float
fRecip
=
1.0f
/
vecScreen
->
z
;
vecScreen
->
x
/=
fRecip
*
(
*
dwLenX
)
;
vecScreen
->
y
/=
fRecip
*
(
*
dwLenY
)
;
vecWorld
->
x
=
vecScreen
->
z
*
minv
.
_31
+
vecScreen
->
y
*
minv
.
_21
+
vecScreen
->
x
*
minv
.
_11
+
minv
.
_41
;
vecWorld
->
y
=
vecScreen
->
z
*
minv
.
_32
+
vecScreen
->
y
*
minv
.
_22
+
vecScreen
->
x
*
minv
.
_12
+
minv
.
_42
;
vecWorld
->
z
=
vecScreen
->
z
*
minv
.
_33
+
vecScreen
->
y
*
minv
.
_23
+
vecScreen
->
x
*
minv
.
_13
+
minv
.
_43
;
}
 
Ответить с цитированием

  #7535  
Старый 14.05.2025, 01:28
moreveal
Постоянный
Регистрация: 01.08.2020
Сообщений: 988
С нами: 3043831

Репутация: 163


По умолчанию

Цитата:
Сообщение от tanksoftik  

как можно реализовать функцию convertScreenCoordsToWorld3D с луа на плюсы
чат гпт выдовал такой код

Цитата:
Сообщение от Спойлер  


C++:





Код:
#include 
#include 
#include 
#include 
bool
ConvertScreenCoordsToWorld3D
(
float
screenX
,
float
screenY
,
float
&
outX
,
float
&
outY
,
float
&
outZ
)
{
auto
viewMatrix
=
*
(
RwMatrix
*
)
0xB6FA2C
;
CCamera
*
cam
=
TheCamera
;
float
screenW
=
static_cast

(
*
reinterpret_cast

(
0xC17044
)
)
;
float
screenH
=
static_cast

(
*
reinterpret_cast

(
0xC17048
)
)
;
float
nx
=
(
2.0f
*
screenX
/
screenW
)
-
1.0f
;
float
ny
=
1.0f
-
(
2.0f
*
screenY
/
screenH
)
;
// перевёрнутый Y
CVector
forward
(
viewMatrix
.
at
.
x
,
viewMatrix
.
at
.
y
,
viewMatrix
.
at
.
z
)
;
CVector
right
(
viewMatrix
.
right
.
x
,
viewMatrix
.
right
.
y
,
viewMatrix
.
right
.
z
)
;
CVector
up
(
viewMatrix
.
up
.
x
,
viewMatrix
.
up
.
y
,
viewMatrix
.
up
.
z
)
;
float
fov
=
cam
->
m_fFOV
;
float
aspect
=
screenW
/
screenH
;
float
fovRad
=
fov
*
3.14159f
/
180.0f
;
float
tanFov
=
tanf
(
fovRad
/
2.0f
)
;
CVector rayDir
=
forward
+
right
*
nx
*
aspect
*
tanFov
+
up
*
ny
*
tanFov
;
rayDir
.
Normalise
(
)
;
CVector camPos
=
*
cam
->
GetGameCamPosition
(
)
;
CVector rayEnd
=
camPos
+
rayDir
*
3000.0f
;
// дальность луча
CColPoint col
;
CEntity
*
pHitEntity
=
nullptr
;
// трассировка с фильтрацией воды и прочего
if
(
CWorld
::
ProcessLineOfSight
(
camPos
,
rayEnd
,
col
,
pHitEntity
,
true
,
true
,
true
,
true
,
false
,
true
,
false
)
)
{
outX
=
col
.
m_vecPoint
.
x
;
outY
=
col
.
m_vecPoint
.
y
;
outZ
=
col
.
m_vecPoint
.
z
;
return
true
;
}
return
false
;
}


но он работает очень плохо и неправильно
напрямую с мунлодера [S]спиздил[/S] взял, пусть тебе и скинули уже ответ, но зато оно идентично луашному convertScreenCoordsToWorld3D:

C++:





Код:
#include 
#include 
void
convertScreenCoordsToWorld3D
(
float
screenX
,
float
screenY
,
float
depth
,
float
*
outX
,
float
*
outY
,
float
*
outZ
)
{
static
const
uintptr_t pGameCamera
=
0x0B6F028
;
static
const
uintptr_t pRsGlobal
=
0x0C17040
;
D3DXMATRIX cameraMatrix
;
std
::
memcpy
(
&
cameraMatrix
,
reinterpret_cast

(
pGameCamera
+
0xA04
)
,
sizeof
(
D3DXMATRIX
)
)
;
cameraMatrix
.
_44
=
1.0f
;
D3DXMATRIX inverseMatrix
;
if
(
!
D3DXMatrixInverse
(
&
inverseMatrix
,
nullptr
,
&
cameraMatrix
)
)
return
;
int
screenWidth
=
*
reinterpret_cast

(
pRsGlobal
+
4
)
;
int
screenHeight
=
*
reinterpret_cast

(
pRsGlobal
+
8
)
;
if
(
screenWidth

(
depth
)
;
double
normX
=
static_cast

(
screenX
)
/
(
screenWidth
*
invDepth
)
;
double
normY
=
static_cast

(
screenY
)
/
(
screenHeight
*
invDepth
)
;
auto
dx
=
static_cast

(
normX
)
;
auto
dy
=
static_cast

(
normY
)
;
auto
dz
=
depth
;
*
outX
=
inverseMatrix
.
_11
*
dx
+
inverseMatrix
.
_21
*
dy
+
inverseMatrix
.
_31
*
dz
+
inverseMatrix
.
_41
;
*
outY
=
inverseMatrix
.
_12
*
dx
+
inverseMatrix
.
_22
*
dy
+
inverseMatrix
.
_32
*
dz
+
inverseMatrix
.
_42
;
*
outZ
=
inverseMatrix
.
_13
*
dx
+
inverseMatrix
.
_23
*
dy
+
inverseMatrix
.
_33
*
dz
+
inverseMatrix
.
_43
;
}
 
Ответить с цитированием

  #7536  
Старый 16.05.2025, 00:16
0xff65
Познающий
Регистрация: 23.01.2022
Сообщений: 36
С нами: 2267665

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

Приветствую, пытаюсь собрать plugin-sdk. Возникает такая проблема -

Код:





Код:
1>CCoronas.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCover.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCoverPoint.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCredits.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected:


Сборка выполняется на Visual Studio 19
 
Ответить с цитированием

  #7537  
Старый 17.05.2025, 03:46
san0
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами: 6530249

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

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

Приветствую, пытаюсь собрать plugin-sdk. Возникает такая проблема -

Код:





Код:
1>CCoronas.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCover.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCoverPoint.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected: No such file or directory,
1>CCredits.cpp
1>D:\plugin-sdk-master\safetyhook\safetyhook.hpp(38,10): fatal error C1083: Не удается открыть файл включение: expected:


Сборка выполняется на Visual Studio 19
Код:
std::expected
это часть редакции стандарта C++23 (https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p0323r12.html).

В MSVC(CL) он доступен начиная с Visual Studio 2022 17.3 (_MSC_VER >= 1933) (https://github.com/microsoft/STL/com...0304223308ac8b).

Сам проект должен быть настроен с использованием
Код:
/std:c++23preview
или
Код:
/std:c++latest
(https://learn.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version). А для проверке на этапе сборки можно воспользоваться макросом
Код:
__cpp_lib_expected
(https://en.cppreference.com/w/cpp/feature_test#cpp_lib_expected).

Если такая функциональность нужна в том окружении, где последние реализации недоступны, то можно воспользоваться похожими абстракциями из популярных библиотек типа StatusOr из abseil или checked из Boost.Outcome. И кстати не стоит забывать за возможность поставить относительно портабельный и легковесный mingw (https://www.mingw-w64.org/, https://github.com/mstorsjo/llvm-mingw/releases), хотя думаю там также могут быть понадобиться модификации кода.

В Вашем случае полагаю проще будет или поставить любой бекпорт:

GitHub - TartanLlama/expected: C++11/14/17 std::expected with functional-style extensions

C++11/14/17 std::expected with functional-style extensions - TartanLlama/expected

github.com


Либо просто взять старую версию plugin-sdk:

История изменений => https://github.com/DK22Pac/plugin-sd...safetyhook.cpp

Предыдущий коммит до добавления safetyhook => https://github.com/DK22Pac/plugin-sd...b151308dd85b53

И конечно можно еще сделать git revert (https://git-scm.com/docs/git-revert) в master ветке, отменив кокретно добавление этой библиотеки, но это требует небольшого знания системы контроля версий, а также потребует некоторых изменений в коде, тем более что Вы не указали контекст использования (например, safetyhook - осознанный выбор в связи с поддержкой 64 битной трилогии которая unreal engine)
 
Ответить с цитированием

  #7538  
Старый 24.05.2025, 21:13
TokyoQq
Новичок
Регистрация: 14.01.2024
Сообщений: 20
С нами: 1228197

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

как получить cped гташки через sampapi по id
 
Ответить с цитированием

  #7539  
Старый 25.05.2025, 17:05
Wowisky
Новичок
Регистрация: 03.03.2025
Сообщений: 3
С нами: 632211

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

Цитата:
Сообщение от TokyoQq  

how to get gta cped via sampapi by id
Код:





Код:
auto* playerPool = samp::RefNetGame()->GetPlayerPool();
    playerPool->GetAt(ID)->m_pPlayer->m_pPed; //samp CPed
    playerPool->GetAt(ID)->m_pPlayer->m_pPed->m_pGamePed; //GTA CPed
 
Ответить с цитированием

  #7540  
Старый 27.05.2025, 18:49
вайега52
Флудер
Регистрация: 19.06.2022
Сообщений: 2,997
С нами: 2055431

Репутация: 3


По умолчанию

Цитата:
Сообщение от tanksoftik  

проблема есть я через RpGeometryForAllMaterials(atomic->geometry, material_callback, veh); крашу текстуру и все норм типо material->color нормально применяется, а если делать material->texture = texture; то в таком случае получается так что применяется на модель, а не на cvehicle и еще оно применяется только при спавне машины после спавна нельзя изменить текстуру. Как это можно исправить?
Нужно в каллбеке перед вызовом функции рендера изменять текстурой, а в каллбеке после вызова функции возвращать старую текстуру
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.