Просмотр полной версии : SAMPFUNCS | как найти здоровье локального игрока?
user337567
09.03.2021, 19:45
как найти здоровье локального игрока? и как вообще взаимодействовать с GameAPI
узнать здоровье -
PEDSELF->GetHealth()
PEDSELF - указатель на локального игрока (класс CPed).
GAME - указатель на класс CGame.
с СФ апи почти не знаком, но здоровье легко и без его использования:
C++:
float
health
=
*
(
float
*
)
(
(
*
(
DWORD
*
)
0xB6F5F0
)
+
0x540
)
;
float
armour
=
*
(
float
*
)
(
(
*
(
DWORD
*
)
0xB6F5F0
)
+
0x548
)
;
// а так же вот так броню
kin4stat
09.03.2021, 19:58
с СФ апи почти не знаком, но здоровье легко и без его использования:
C++:
float
health
=
*
(
float
*
)
(
(
*
(
DWORD
*
)
0xB6F5F0
)
+
0x540
)
;
float
armour
=
*
(
float
*
)
(
(
*
(
DWORD
*
)
0xB6F5F0
)
+
0x548
)
;
// а так же вот так броню
Вот тебе и "Преимущество" C-style кастов. Куча скобок и разбирай какая куда относится
А вообще красиво можно сделать вот так:
C++:
float
health
=
*
reinterpret_cast
(
0xB6F5F0
)
[
0x540
/
sizeof
(
float
)
]
;
float
armour
=
*
reinterpret_cast
(
0xB6F5F0
)
[
0x548
/
sizeof
(
float
)
]
;
Вот тебе и "Преимущество" C-style кастов. Куча скобок и разбирай какая куда относится
А вообще красиво можно сделать вот так:
C++:
float
health
=
*
reinterpret_cast
(
0xB6F5F0
)
[
0x540
/
4
]
;
float
armour
=
*
reinterpret_cast
(
0xB6F5F0
)
[
0x548
/
4
]
;
Верю, скобок много.
C++:
DWORD CPed
=
*
(
DWORD
*
)
0xB6F5F0
;
float
health
=
*
(
float
*
)
(
CPed
+
0x540
)
;
float
armour
=
*
(
float
*
)
(
Cped
+
0x548
)
;
Хотя твой вариант более элегантный, что ли.
float health = *reinterpret_cast(0xB6F5F0)[0x540 / sizeof(float)]; float armour = *reinterpret_cast(0xB6F5F0)[0x548 / sizeof(float)];
вообще-то так:
C++:
float
health
=
(
*
reinterpret_cast
(
0xB6F5F0
)
)
[
0x540
/
sizeof
(
float
)
]
;
float
armour
=
(
*
reinterpret_cast
(
0xB6F5F0
)
)
[
0x548
/
sizeof
(
float
)
]
;
kin4stat
12.03.2021, 15:56
вообще-то так:
C++:
float
health
=
(
*
reinterpret_cast
(
0xB6F5F0
)
)
[
0x540
/
sizeof
(
float
)
]
;
float
armour
=
(
*
reinterpret_cast
(
0xB6F5F0
)
)
[
0x548
/
sizeof
(
float
)
]
;
И чем же оно отличается? Лишними скобками?
Лишними скобками?
наборот, как раз таки, не лишними, без них игра крашит 🙂
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot