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

  #1  
Старый 15.08.2021, 15:45
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

похоже что это раздел только для меня, чувствую себя тупым, ну да ладно,

кароче я юзаю sampapi ирисую чамсы вот так:

C++:





Код:
if
(
m_bChams
&&
g
::
pDXDevice
)
{
DWORD dwCONSTANT
{
0
}
,
dwARG2
{
0
}
,
dwCULL
{
0
}
;
g
::
pDXDevice
->
GetRenderState
(
D3DRS_CULLMODE
,
&
dwCULL
)
;
g
::
pDXDevice
->
GetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
&
dwCONSTANT
)
;
g
::
pDXDevice
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
&
dwARG2
)
;
g
::
pDXDevice
->
SetRenderState
(
D3DRS_CULLMODE
,
D3DCULL_CW
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
0xFFFFFFFF
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
D3DTA_CONSTANT
)
;
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
*
(
void
*
*
*
)
pPlayer
->
m_pPed
->
m_pGameEntity
)
[
18
]
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;
g
::
pDXDevice
->
SetRenderState
(
D3DRS_CULLMODE
,
dwCULL
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
dwCONSTANT
)
;
g
::
pDXDevice
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
dwARG2
)
;
}
}


Перед этим проверка всего что можно для педа

C++:





Код:
(
player
&&
player
->
m_pPed
&&
player
->
DoesExist
(
)
&&
player
->
m_pPed
->
DoesExist
(
)
&&
player
->
m_pPed
->
m_pGamePed
&&
player
->
m_pPed
->
m_pGameEntity
)


выглядит как будто наговнокожено но всё равно вылетают exceptions на строке после

C++:





Код:
(
(
void
(
__thiscall
*
)
(
void
*
)
)
(
*
(
void
*
*
*
)
pPlayer
->
m_pPed
->
m_pGameEntity
)
[
18
]
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;


пример кода взят отсюда: https://github.com/Stickey21/Stealth-Remastered/blob/origin/Stealth Remastered/Features/Visuals.cpp#L269
CEntityRender:





Код:
using
CEntity__Render
=
void
(
__thiscall
*
)
(
::
CEntity
*
)
;
reinterpret_cast

(
0x59F180
)
(
player
.
pPlayer
->
m_pPed
->
m_pGameEntity
)
;


chams:





Код:
DWORD dwCONSTANT
,
dwARG0
,
dwARG1
,
dwARG2
;
struct
CPed
*
pPed
=
pSAMP
->
g_Players
->
m_pObject
[
i
]
->
m_pPlayer
->
m_pPed
->
m_pGamePed
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
&
dwCONSTANT
)
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG0
,
&
dwARG0
)
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG1
,
&
dwARG1
)
;
m_pDev
->
GetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
&
dwARG2
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
floatToHex
(
colors
->
PlayerChamsColor
)
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG0
,
D3DTA_CONSTANT
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG1
,
D3DTA_CONSTANT
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
D3DTA_CONSTANT
)
;
pPed
->
Render
(
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_CONSTANT
,
dwCONSTANT
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG0
,
dwARG0
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG1
,
dwARG1
)
;
m_pDev
->
SetTextureStageState
(
0
,
D3DTSS_COLORARG2
,
dwARG2
)
;
 
Ответить с цитированием

  #2  
Старый 15.08.2021, 15:52
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:

C:





Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}


C++:





Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast

(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast

(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
pPixelShader
)
;
}


C++:





Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;
 
Ответить с цитированием

  #3  
Старый 15.08.2021, 15:55
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

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

Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:

C:





Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}


C++:





Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast

(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast

(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
pPixelShader
)
;
}


C++:





Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;

а как понять что рисуется полигон из модели педа
 
Ответить с цитированием

  #4  
Старый 15.08.2021, 15:55
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

а как понять что рисуется полигон из модели педа
Адрес который я дал - вызов DrawIndexedPrimitive из пайплайна рендера педов
 
Ответить с цитированием

  #5  
Старый 16.08.2021, 17:23
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

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

Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:

C:





Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}


C++:





Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast

(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast

(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
pPixelShader
)
;
}


C++:





Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;

я сделал шейдер с расширение .hlsl как ресурс его вроде добавил

но код крашит

C++:





Код:
HRSRC hsrc
=
FindResourceW
(
g
::
instance
,
MAKEINTRESOURCEW
(
101
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
g
::
instance
,
hsrc
)
)
;
g
::
pDXDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
m_d3d9Shader
)
;


В дебугере hsrc = NULL shader тоже

ошибки ещё сыпит если шейдер в проекте в сборке
 
Ответить с цитированием

  #6  
Старый 16.08.2021, 17:34
kin4stat
Флудер
Регистрация: 06.11.2017
Сообщений: 2,759
С нами: 4483143

Репутация: 183


По умолчанию

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

я сделал шейдер с расширение .hlsl как ресурс его вроде добавил
но код крашит

C++:





Код:
HRSRC hsrc
=
FindResourceW
(
g
::
instance
,
MAKEINTRESOURCEW
(
101
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
g
::
instance
,
hsrc
)
)
;
g
::
pDXDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
m_d3d9Shader
)
;


В дебугере hsrc = NULL shader тоже
ошибки ещё сыпит если шейдер в проекте в сборке
PixelShader 2.0 ставь в настройках компилятора
 
Ответить с цитированием

  #7  
Старый 16.08.2021, 19:04
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

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

я сделал шейдер с расширение .hlsl как ресурс его вроде добавил
но код крашит

C++:





Код:
HRSRC hsrc
=
FindResourceW
(
g
::
instance
,
MAKEINTRESOURCEW
(
101
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
g
::
instance
,
hsrc
)
)
;
g
::
pDXDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
m_d3d9Shader
)
;


В дебугере hsrc = NULL shader тоже
ошибки ещё сыпит если шейдер в проекте в сборке
шейдер не компилиться, онлайн компилятором тоже
 
Ответить с цитированием

  #8  
Старый 16.08.2021, 19:13
Musaigen
Познавший АНТИЧАТ
Регистрация: 01.04.2018
Сообщений: 1,710
С нами: 4272230

Репутация: 183


По умолчанию

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

шейдер не компилиться, онлайн компилятором тоже
Какая ошибка?
 
Ответить с цитированием

  #9  
Старый 16.08.2021, 19:14
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

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

Какая ошибка?
в визуалке dxc.exe вернуло 1 в онлайн компиляторе



я не шарю игрался только с opengl шейдерами
 
Ответить с цитированием

  #10  
Старый 26.08.2021, 21:22
loganhackerdff
Постоянный
Регистрация: 24.07.2017
Сообщений: 867
С нами: 4633764

Репутация: 148


По умолчанию

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

Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:

C:





Код:
sampler2D tex0
:
register
(
s0
)
;
extern
float3 dy
:
register
(
c0
)
;
float4
main
(
float2 tc
:
TEXCOORD0
)
:
COLOR
{
return
tex2D
(
tex0
,
tc
)
*
float4
(
dy
[
0
]
,
dy
[
1
]
,
dy
[
2
]
,
1.0
)
;
}


C++:





Код:
{
HRSRC hsrc
=
FindResourceW
(
reinterpret_cast

(
hmdl
)
,
MAKEINTRESOURCEW
(
IDR_HLSL2
)
,
L
"HLSL"
)
;
PVOID shader
=
LockResource
(
LoadResource
(
reinterpret_cast

(
hmdl
)
,
hsrc
)
)
;
pDevice
->
CreatePixelShader
(
reinterpret_cast

(
shader
)
,
&
pPixelShader
)
;
}


C++:





Код:
pDevice
->
SetPixelShader
(
pPixelShader
)
;
// Rainbow lol
if
(
bTact
)
{
HSVtoRGB
(
RGB
[
0
]
,
RGB
[
1
]
,
RGB
[
2
]
,
color
[
0
]
,
color
[
1
]
,
color
[
2
]
)
;
color
[
0
]
+=
2.0f
;
if
(
color
[
0
]
>=
360.0f
)
color
[
0
]
-=
360.0f
;
bTact
=
false
;
}
pDevice
->
SetPixelShaderConstantF
(
0
,
RGB
,
1
)
;
fpHkDrawIndexedPrimitive
(
pDevice
,
Type
,
BaseVertexIndex
,
MinVertexIndex
,
NumVertices
,
startIndex
,
primCount
)
;
pDevice
->
SetPixelShader
(
nullptr
)
;
return
D3D_OK
;

а может знаешь пайплайн рендера авто?
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.