Хук DirectX, работают все функи, коме DrawLine. Спиздил ее отсюда:
https://github.com/BlastHackNet/mod_.../d3drender.cpp
Вот вызовы:
C++:
Код:
pD3DHook
->
pRender
->
DrawLine
(
v
[
0
]
,
v
[
1
]
,
0xffff0000
)
;
pD3DHook
->
pRender
->
DrawLine
(
xy
[
0
]
,
xy
[
1
]
,
0xff00ff00
)
;
где
v[2] и
xy[2] имеют тип
D3DXVECTOR3
v заполнил вручную
(1.0;1.0 ... 500.0, 500.0)
xy содержит 2д координаты (мои и таргета)
В результате должно быть две линии - красная(диагональ с левого верхнего угла экрана) и зеленая - от меня до цели.
Но нихуя. Рисует непонятно что (квадраты мои, на них внимание не обращайте):
Если целюсь в педа с другой стороны - рисует вообще в другом месте:
Сообщение от
Спойлер
Screenshot_5.pngp1cador · 5 Дек 2016 в 18:13' data-fancybox="lb-post-130875" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/6254/" style="cursor: pointer;" title="Screenshot_5.png">

Если стать по другому. То ее вообще не видно будет.
Прямо внутри функи CD3DRender:: DrawLine сделал вывод координат в чат, так же отрендерил доп. инфу (слева). Числа правильные. Почему зеленая линия рисуется вообще не там, где мне нужно, а красной вообще нет?
Вот функция из соба(из сурса, ссылка на который в начале сообщения), в ней абсолютно ничего не менял, только добавил вывод в чат
C++:
Код:
bool
CD3DRender
::
DrawLine
(
const
D3DXVECTOR3
&
a
,
const
D3DXVECTOR3
&
b
,
DWORD dwColor
)
{
if
(
FAILED
(
CD3DBaseRender
::
BeginRender
(
)
)
)
return
false
;
////////////////////////////////////////////////////
// Make sure we have a valid vertex buffer.
if
(
m_pD3Dbuf
==
NULL
)
{
return
false
;
}
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_COLOROP
,
D3DTOP_SELECTARG2
)
;
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_ALPHAOP
,
D3DTOP_SELECTARG2
)
;
//m_pD3Ddev->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
//m_pD3Ddev->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
m_pD3Ddev
->
SetRenderState
(
D3DRS_CLIPPING
,
false
)
;
m_pD3Ddev
->
SetRenderState
(
D3DRS_ZENABLE
,
false
)
;
//m_pD3Ddev->SetRenderState ( D3DRS_LIGHTING, false );
D3DLVERTEX lineList
[
2
]
;
//////////////////////////////////////////////////
// Lock the vertex buffer and copy in the verts.
m_pD3Dbuf
->
Lock
(
0
,
0
,
(
void
*
*
)
&
lineList
,
D3DLOCK_DISCARD
|
D3DLOCK_NOSYSLOCK
)
;
// flogs: D3DLOCK_NOSYSLOCK, D3DLOCK_DISCARD
{
lineList
[
0
]
.
x
=
a
.
x
;
lineList
[
0
]
.
y
=
a
.
y
;
lineList
[
0
]
.
z
=
a
.
z
;
lineList
[
0
]
.
color
=
dwColor
;
lineList
[
0
]
.
specular
=
dwColor
;
lineList
[
1
]
.
x
=
b
.
x
;
lineList
[
1
]
.
y
=
b
.
y
;
lineList
[
1
]
.
z
=
b
.
z
;
lineList
[
1
]
.
color
=
dwColor
;
lineList
[
1
]
.
specular
=
dwColor
;
}
m_pD3Dbuf
->
Unlock
(
)
;
// store FVF to restore original at the end of this function
DWORD fvf
;
m_pD3Ddev
->
GetFVF
(
&
fvf
)
;
m_pD3Ddev
->
SetFVF
(
D3DFVF_LVERTEX
)
;
//m_pD3Ddev->SetFVF( D3DFVF_PRIMITIVES );
////////////////////////////////////////////////////
// Draw!
p1c
->
addMessageToChat
(
0xFFe1e1e1
,
"1) %.1f %.1f %.1f %.1f | %x"
,
a
.
x
,
a
.
y
,
b
.
x
,
b
.
y
,
dwColor
)
;
p1c
->
addMessageToChat
(
0xFFc1c1c1
,
"2) %.1f %.1f %.1f %.1f | %x"
,
lineList
[
0
]
.
x
,
lineList
[
0
]
.
y
,
lineList
[
1
]
.
x
,
lineList
[
1
]
.
y
,
dwColor
)
;
m_pD3Ddev
->
DrawPrimitiveUP
(
D3DPT_LINESTRIP
,
1
,
lineList
,
sizeof
(
lineList
)
/
2
)
;
// reset states
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_COLOROP
,
D3DTOP_MODULATE
)
;
m_pD3Ddev
->
SetTextureStageState
(
0
,
D3DTSS_ALPHAOP
,
D3DTOP_MODULATE
)
;
m_pD3Ddev
->
SetRenderState
(
D3DRS_ZENABLE
,
true
)
;
m_pD3Ddev
->
SetRenderState
(
D3DRS_CLIPPING
,
true
)
;
// restore FVF
m_pD3Ddev
->
SetFVF
(
fvf
)
;
CD3DBaseRender
::
EndRender
(
)
;
return
true
;
}