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

  #2931  
Старый 29.10.2018, 19:37
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

Репутация: 68
По умолчанию

как получить координату определенной кости игрока?
 
Ответить с цитированием

  #2932  
Старый 29.10.2018, 19:55
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

Репутация: 0
По умолчанию

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

как получить координату определенной кости игрока?
C++:





Код:
actor_info
*
actorInfo
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
идИгрока
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
;
if
(
actorInfo
==
nullptr
)
return
;
CPed
*
Ped
=
GAME
->
GetPools
(
)
->
GetPed
(
(
DWORD
*
)
actorInfo
)
;
if
(
Ped
==
nullptr
)
return
;
CVector bonePos
;
Ped
->
GetTransformedBonePosition
(
BONE_RIGHTWRIST
,
&
bonePos
)
;
 
Ответить с цитированием

  #2933  
Старый 30.10.2018, 13:25
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

Репутация: 68
По умолчанию

в общем, узнал что на сервере такое условие

если камера смотрит больше чем на два метра от точки попадания пули, то кик

так вот, как мне направить камеру именно в те координаты куда должна попасть пуля

C++:





Код:
void
AimVectorToPlayer
(
WORD player
)
{
stAimData aim
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
aimData
;
actor_info
*
actorInfo
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
player
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
;
float
matched_pos
[
3
]
,
AimVector
[
3
]
;
vect3_copy
(
actorInfo
->
base
.
matrix
+
12
,
matched_pos
)
;
float
*
fPos
=
actorInfo
->
base
.
matrix
+
12
;
for
(
int
i
=
0
;
i

getRakNet
(
)
->
SendPacket
(
&
bs
)
;
}
void
SendFakeDamage
(
int
id
)
{
float
TargetPos
[
3
]
,
Spread
[
3
]
;
switch
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
id
]
->
pPlayerData
->
bytePlayerState
)
{
case
PLAYER_STATE_ONFOOT
:
for
(
short
x
=
0
;
x

getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
id
]
->
pPlayerData
->
fOnFootPos
[
x
]
;
break
;
case
PLAYER_STATE_DRIVER
:
for
(
short
x
=
0
;
x

getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
id
]
->
pPlayerData
->
inCarData
.
fPosition
[
x
]
;
break
;
case
PLAYER_STATE_PASSENGER
:
for
(
short
x
=
0
;
x

getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
id
]
->
pPlayerData
->
passengerData
.
fPosition
[
x
]
;
break
;
}
byte BodyPart
=
CalculateSpreadOffset
(
id
,
TargetPos
,
Spread
)
;
AimVectorToPlayer
(
id
)
;
BulletData
(
TargetPos
,
Spread
,
1
,
id
)
;
SendTakeDamageRPC
(
id
,
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
,
16.0
,
BodyPart
)
;
}
 
Ответить с цитированием

  #2934  
Старый 30.10.2018, 13:50
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

Репутация: 213
По умолчанию

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

в общем, узнал что на сервере такое условие
если камера смотрит больше чем на два метра от точки попадания пули, то кик
так вот, как мне направить камеру именно в те координаты куда должна попасть пуля

C++:





Код:
void
AimVectorToPlayer
(
WORD player
)
{
stAimData aim
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
aimData
;
actor_info
*
actorInfo
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
player
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
;
float
matched_pos
[
3
]
,
AimVector
[
3
]
;
vect3_copy
(
actorInfo
->
base
.
matrix
+
12
,
matched_pos
)
;
float
*
fPos
=
actorInfo
->
base
.
matrix
+
12
;
for
(
int
i
=
0
;
i

getRakNet
(
)
->
SendPacket
(
&
bs
)
;
}

Функция AimVectorToPlayer направляет синхру прицеливания в сторону игрока, по другому сервер не может проверять, так что этого достаточно
 
Ответить с цитированием

  #2935  
Старый 30.10.2018, 14:38
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

Репутация: 68
По умолчанию

я отправляю синхру на координаты игрока, а не на те координаты куда попадет пуля, поэтому меня кикает, потому что условие в античите такое

просто мне нужно узнать в какие координаты попадет пуля
 
Ответить с цитированием

  #2936  
Старый 30.10.2018, 19:13
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

Репутация: 0
По умолчанию

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

я отправляю синхру на координаты игрока, а не на те координаты куда попадет пуля, поэтому меня кикает, потому что условие в античите такое
просто мне нужно узнать в какие координаты попадет пуля
Ну так возьми координаты кости к которой у тебя высчитывает разброс
 
Ответить с цитированием

  #2937  
Старый 30.10.2018, 20:48
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

Репутация: 68
По умолчанию

так я получу кординаты кости относительно игрока, и как мне их реализовать в аим синхре?
 
Ответить с цитированием

  #2938  
Старый 30.10.2018, 20:52
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

Репутация: 0
По умолчанию

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

так я получу кординаты кости относительно игрока, и как мне их реализовать в аим синхре?
У тебя есть функа для отправки вектора, просто вместо координат педа поставь туда от кости
 
Ответить с цитированием

  #2939  
Старый 31.10.2018, 17:21
-raymond-
Участник форума
Регистрация: 17.12.2017
Сообщений: 110
С нами: 4423953

Репутация: 68
По умолчанию

как установить метку на карте по координатам
 
Ответить с цитированием

  #2940  
Старый 31.10.2018, 17:49
ЯedЯuM
Участник форума
Регистрация: 13.03.2016
Сообщений: 242
С нами: 5351007

Репутация: 0
По умолчанию

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

как установить метку на карте по координатам
C++:





[CODE]
if
(
(
*
(
int
*
)
0xBA6774
!=
0
)
)
{
for
(
int
i
=
0
;
i

 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.