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

  #11  
Старый 19.11.2018, 00:53
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

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

Почему меня телепортирует на "спавн сампа" (центр карты вроде как), вместо тп на метку?
Код нахождения координат метки и функцию нахождения координаты z брал из собейта.
Честно говоря, я не разбираюсь в ассемблере, поэтому даже не знаю с чем это связано.
Цитата:
Сообщение от Спойлер  


C++:





[CODE]
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0
#define FUNC_FindGroundZForCoord 0x569660
void
AddMessageJumpQ
(
PCHAR text
,
UINT time
,
USHORT flag
,
bool
bPreviousBrief
)
// Функция показа сообщения на экране.
{
(
(
void
(
__cdecl
*
)
(
PCHAR
,
UINT
,
USHORT
,
bool
)
)
FUNC_CMessages__AddMessageJumpQ
)
(
text
,
time
,
flag
,
bPreviousBrief
)
;
}
float
FindGroundZForPosition
(
float
fX
,
float
fY
)
{
//DEBUG_TRACE("FLOAT CWorldSA::FindGroundZForPosition(FLOAT fX, FLOAT fY)");
DWORD dwFunc
=
FUNC_FindGroundZForCoord
;
FLOAT fReturn
=
0
;
_asm
{
push fY
push fX
call dwFunc
fstp fReturn
add esp
,
8
}
return
fReturn
;
}
void
teleport
(
float
posX
,
float
posY
,
float
posZ
)
{
float
*
position
=
(
*
(
DWORD
*
)
0xB6F5F0
)
?
(
float
*
)
(
*
(
DWORD
*
)
(
*
(
DWORD
*
)
0xB6F5F0
+
0x14
)
+
0x30
)
:
nullptr
;
position
[
0
]
=
posX
;
position
[
1
]
=
posY
;
position
[
2
]
=
posZ
;
}
void
teleport_target_blip
(
)
{
if
(
(
*
(
int
*
)
0xBA6774
!=
0
)
)
{
float
mapPos
[
3
]
;
for
(
int
i
=
0
;
i



Да там и не нужен ассемблер, просто разраб соба выебывался. Всю функцию можно заменить вот таким вот вызовом в одну строку:

C++:





Код:
float
fZ
=
(
(
float
(
__cdecl
*
)
(
float
,
float
)
)
FUNC_FindGroundZForCoord
)
(
fX
,
fY
)
;
 
Ответить с цитированием
 





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

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

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

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

×

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

Сумма USDT:

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

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