ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   краш игры (https://forum.antichat.xyz/showthread.php?t=1515110)

yoonost 01.07.2024 11:53

В чем проблема? Во время прорисовки радара крашит игру, пробовал сделать многое но результат один. В коде сейчас стандартный код gta_sa.exe но даже при этом происходит краш

https://forum.antichat.xyz/attachments/28514403/

https://forum.antichat.xyz/attachments/28514403/

fuflexxxx 01.07.2024 21:19

Цитата:

Сообщение от yoonost

В чем проблема? Во время прорисовки радара крашит игру, пробовал сделать многое но результат один. В коде сейчас стандартный код gta_sa.exe но даже при этом происходит краш

https://forum.antichat.xyz/attachments/28514652/

https://forum.antichat.xyz/attachments/28514652/

1. Перепроверь соглашение о вызове.

2. Пробовал ли отладчик подключать?

3. А что ты сделать то хочешь?

yoonost 01.07.2024 21:20

Цитата:

Сообщение от fuflexxxx

1. Перепроверь соглашение о вызове.
2. Пробовал ли отладчик подключать?
3. А что ты сделать то хочешь?

Все ок

Да

Размер карты изменить

fuflexxxx 01.07.2024 22:33

Цитата:

Сообщение от yoonost

Все ок
Да
Размер карты изменить

1. Надеюсь проверял по асм коду.

2. Что отлалчик показал?

С таким кодом в одиночной игре всё работает. Соглашение cdecl, функция ничего не возвращает.

https://forum.antichat.xyz/attachments/28514687/

rebuild_TransformRadarPointToScreenSpace:





Код:

void
CRadar
::
TransformRadarPointToScreenSpace
(
CVector2D
&
screenPt
,
const
CVector2D
&
radarPt
)
{
if
(
FrontEndMenuManager
.
m_bDrawingMap
)
{
screenPt
.
x
=
FrontEndMenuManager
.
m_fMapZoom
*
radarPt
.
x
+
FrontEndMenuManager
.
m_vMapOrigin
.
x
;
screenPt
.
y
=
FrontEndMenuManager
.
m_fMapZoom
*
radarPt
.
y
+
FrontEndMenuManager
.
m_vMapOrigin
.
y
;
}
else
{
screenPt
.
x
=
0.5
*
(
94.0
*
(
(
double
)
RsGlobal
.
maximumWidth
*
0.0015625
)
)
+
(
double
)
RsGlobal
.
maximumWidth
*
0.0015625
*
40.0
+
94.0
*
(
(
double
)
RsGlobal
.
maximumWidth
*
0.0015625
)
*
radarPt
.
x
*
0.5
;
screenPt
.
y
=
(
double
)
RsGlobal
.
maximumHeight
-
0.002232143
*
(
double
)
RsGlobal
.
maximumHeight
*
104.0
+
76.0
*
(
0.002232143
*
(
double
)
RsGlobal
.
maximumHeight
)
*
0.5
-
76.0
*
(
0.002232143
*
(
double
)
RsGlobal
.
maximumHeight
)
*
radarPt
.
y
*
0.5
;
}
}



Код ниже написан лучше, но это, если в твоём сдк есть такие inline функции.

rebuild_TransformRadarPointToScreenSpace:





Код:

void
CRadar
::
TransformRadarPointToScreenSpace
(
CVector2D
&
screenPt
,
const
CVector2D
&
radarPt
)
{
//patch::Call(screenPt, radarPt);
if
(
FrontEndMenuManager
.
m_bDrawingMap
)
{
screenPt
.
x
=
FrontEndMenuManager
.
m_fMapZoom
*
radarPt
.
x
+
FrontEndMenuManager
.
m_vMapOrigin
.
x
;
screenPt
.
y
=
FrontEndMenuManager
.
m_fMapZoom
*
radarPt
.
y
+
FrontEndMenuManager
.
m_vMapOrigin
.
y
;
}
else
{
screenPt
.
x
=
SCREEN_STRETCH_X
(
94.0f
)
/
2.0f
+
SCREEN_STRETCH_X
(
40.0f
)
+
SCREEN_STRETCH_X
(
94.0f
*
radarPt
.
x
)
/
2.0f
;
screenPt
.
y
=
SCREEN_STRETCH_FROM_BOTTOM
(
104.0f
)
+
SCREEN_STRETCH_Y
(
76.0f
)
/
2.0f
-
SCREEN_STRETCH_Y
(
76.0f
*
radarPt
.
y
)
/
2.0f
;
}
}



Если крашить всё-равно будет, то покажи место, куда хук ставишь и как хук ставишь.


Время: 04:25