 |
|

22.11.2016, 16:12
|
|
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами:
6395080
Репутация:
128
|
|
@BlackKnigga, название массива(str) это адрес его первого элемента.
Передай их в соответствующую функцию/напиши сам
|
|
|

22.11.2016, 20:33
|
|
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами:
6921957
Репутация:
183
|
|
|
|
|

26.11.2016, 16:38
|
|
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами:
6603505
Репутация:
183
|
|
Сообщение от BlackKnigga
Есть две строки, одна указатель, другая массив:
C++:
Код:
char
*
pstr
=
"string"
,
str
[
]
=
"string"
;
Как их сравнить?
strcmp
|
|
|

26.11.2016, 17:32
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от SR_team
strcmp
Разобрался уже. Оказалось что если строки равны, strcmp вернет NULL:monkey:
|
|
|

26.11.2016, 18:23
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от BlackKnigga
Разобрался уже. Оказалось что если строки равны, strcmp вернет NULL:monkey:
Оказалось или это в документации написано?
|
|
|

29.11.2016, 01:33
|
|
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами:
6395080
Репутация:
128
|
|
Ковырял свой .asi, смотрел сурсы соба и сф сдк, нашел в actor_info такую штукенцию:
C++:
Код:
void
*
pNeck
;
/* 1164 - void* pNeck
(pChest?)
- 4 unknown
- float height
- float front/back
- float left/right
- void* pObject
(same struct for the following body-part-pointers [except pLeft/RightArm])
*/
void
*
pHead
;
/* 1168 */
void
*
pLeftArm
;
/* 1172 */
void
*
pRightArm
;
/* 1176 */
void
*
pLeftLowArm
;
/* 1180 */
void
*
pRightLowArm
;
/* 1184 */
void
*
pLeftLeg
;
/* 1188 */
void
*
pRightLeg
;
/* 1192 */
void
*
pLeftLowLeg
;
/* 1196 */
void
*
pRightLowLeg
;
/* 1200 */
void
*
pRightMidLeg
;
/* 1204 */
void
*
pLeftMidLeg
;
/* 1208 */
void
*
pLeftMidArm
;
/* 1212 */
void
*
pRightMidArm
;
/* 1216 */
void
*
pLeftShoulder
;
/* 1220 */
void
*
pRightShoulder
;
/* 1224 */
void
*
pChest
;
/* 1228 */
void
*
pMouth
;
/* 1232 */
Указатели на некоторыечасти тела. Если создать соотв. стр-ру
C++:
Код:
struct
stBodyPart
{
BYTE bIgnore
[
0x10
]
;
CObject
*
pObject
;
}
;
то через pObject можно будет получить инфу о конкретных частях тела игрока, хранящуюся в полях структур CPhysical, CEntity, CPlaceable (т.к. наследование), включая позицию костей, без использования функи? И какая это будет позиция, настоящия, или это какие-то дефолтные оффсеты, необходимые для построения модели? Или я вообще не правильно это понял? Поясните крч плз
|
|
|

29.11.2016, 01:52
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от Picador
то через pObject можно будет получить инфу о конкретных частях тела игрока, хранящуюся в полях структур CPhysical, CEntity, CPlaceable (т.к. наследование), включая позицию костей, без использования функи? И какая это будет позиция, настоящия, или это какие-то дефолтные оффсеты, необходимые для построения модели? Или я вообще не правильно это понял? Поясните крч плз
Скорей всего нет, там другая структура для костей:
#pragma pack(push, 4)
class PLUGIN_API AnimBlendFrameData
{
public:
unsigned __int8 m_nFlags;
CVector m_vOffset;
class IFrame *m_pIFrame;
unsigned __int32 m_dwNodeId;
};
#pragma pack(pop)
Лучше не выебыватся и юзать функу (ну я думаю функа считает позицию игрока в мире + оффсет для кости, так что в теории ты можешь считать вручную)
|
|
|

01.12.2016, 14:55
|
|
Познающий
Регистрация: 03.11.2014
Сообщений: 43
С нами:
6065807
Репутация:
0
|
|
[S]как задать путь до файла, который не имеет расширения?
получается так, что он принимает файл без расширения за папку.
strcat_s(path, "\\тут какой то путь\\файл");[/S]
решил данную проблему путём копирования файла и изменения его названия.
не знаю насколько это хорошо, мб кто то подскажет.
|
|
|

02.12.2016, 13:32
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 402
С нами:
5744580
Репутация:
28
|
|
Сообщение от Skadi
[S]как задать путь до файла, который не имеет расширения?
получается так, что он принимает файл без расширения за папку.
strcat_s(path, "\\тут какой то путь\\файл");[/S]
решил данную проблему путём копирования файла и изменения его названия.
не знаю насколько это хорошо, мб кто то подскажет.
А что ты с ним собрался делать то?
|
|
|

05.12.2016, 19:13
|
|
Участник форума
Регистрация: 19.03.2014
Сообщений: 222
С нами:
6395080
Репутация:
128
|
|
Хук 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
;
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|