ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Полезные функции (https://forum.antichat.xyz/showthread.php?t=1310970)

By_Surse 01.01.2016 09:31

Пишем сюда полезные функции !

By_Surse 01.01.2016 14:50

Функция телепортирует игрока в машине

Использование: InCarDataSync(i,x,y,z); [I - Ид игрока, x,y,z - Координаты для телепортирования]

C++:





Код:

void
InCarDataSync
(
int
i
,
float
x1
,
float
y1
,
float
z1
)
{
int
icar
;
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
icar
=
pPlayer
->
pPlayerData
->
sVehicleID
;
if
(
!
icar
)
return
;
CVehicle
*
veh
=
PEDSELF
->
GetVehicle
(
)
;
if
(
!
veh
)
return
;
stInCarData sync
;
memset
(
&
sync
,
0
,
sizeof
(
stInCarData
)
)
;
sync
=
pPlayer
->
pPlayerData
->
inCarData
;
sync
.
fPosition
[
0
]
=
x1
;
sync
.
fPosition
[
1
]
=
y1
;
sync
.
fPosition
[
2
]
=
z1
;
BitStream CarSync
;
CarSync
.
Write
(
(
BYTE
)
ID_VEHICLE_SYNC
)
;
CarSync
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stInCarData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
CarSync
)
;
}



P.S. Функция сама проверяет существует игрок или нет

By_Surse 01.01.2016 14:52

Функция отправляет пулю в указанного игрока

Использование: BulletData(i); [I - Ид игрока]

C++:





Код:

void
BulletData
(
int
i
)
{
stRemotePlayer
*
pPlayer
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
i
]
;
if
(
!
pPlayer
)
return
;
stBulletData sync
;
ZeroMemory
(
&
sync
,
sizeof
(
stBulletData
)
)
;
sync
.
sTargetID
=
i
;
sync
.
fOrigin
[
0
]
=
PEDSELF
->
GetPosition
(
)
->
fX
;
sync
.
fOrigin
[
1
]
=
PEDSELF
->
GetPosition
(
)
->
fY
;
sync
.
fOrigin
[
2
]
=
PEDSELF
->
GetPosition
(
)
->
fZ
;
sync
.
fTarget
[
0
]
=
pPlayer
->
pPlayerData
->
fOnFootPos
[
0
]
;
sync
.
fTarget
[
1
]
=
pPlayer
->
pPlayerData
->
fOnFootPos
[
1
]
;
sync
.
fTarget
[
2
]
=
pPlayer
->
pPlayerData
->
fOnFootPos
[
2
]
;
sync
.
fCenter
[
0
]
=
0.0
;
sync
.
fCenter
[
1
]
=
0.0
;
sync
.
fCenter
[
2
]
=
0.5
;
sync
.
byteWeaponID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
byteCurrentWeapon
;
sync
.
byteType
=
1
;
BitStream BulletSync
;
BulletSync
.
Write
(
(
BYTE
)
PacketEnumeration
::
ID_BULLET_SYNC
)
;
BulletSync
.
Write
(
(
PCHAR
)
&
sync
,
sizeof
(
stBulletData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
BulletSync
)
;
}



P.S. Функция сама проверяет существует игрок или нет

By_Surse 08.01.2016 19:21

Функция отправляет фейк позицию игрока с помощью синхры

Использование: OnFootSync(X,Y,Z); [X,Y,Z - Координаты для отправки]

C++:





Код:

void
OnFootSync
(
float
CX
,
float
CY
,
float
CZ
)
{
stOnFootData OF
;
memset
(
&
OF
,
0
,
sizeof
(
stOnFootData
)
)
;
OF
.
fPosition
[
0
]
=
CX
;
OF
.
fPosition
[
1
]
=
CY
;
OF
.
fPosition
[
2
]
=
CZ
;
BitStream OFsync
;
OFsync
.
Write
(
(
BYTE
)
ID_PLAYER_SYNC
)
;
OFsync
.
Write
(
(
PCHAR
)
&
OF
,
sizeof
(
stOnFootData
)
)
;
SF
->
getRakNet
(
)
->
SendPacket
(
&
OFsync
)
;
}


Gabriel__ 09.01.2016 15:13

Функция телепортирует игрока в определенную точку.

Код:





Код:

void actor_teleport(float x, float y, float z)
{
    actor_info *self = SF->getGame()->actorInfoGet(ACTOR_SELF, ACTOR_ALIVE);
    self->base.matrix[4 * 3] = x;
    self->base.matrix[4 * 3 + 1] = y;
    self->base.matrix[4 * 3 + 2] = z;
}


itsLegend 10.01.2016 00:39

Цитата:

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

Функция телепортирует игрока в определенную точку.

Код:





Код:

void actor_teleport(float x, float y, float z)
{
    actor_info *self = SF->getGame()->actorInfoGet(ACTOR_SELF, ACTOR_ALIVE);
    self->base.matrix[4 * 3] = x;
    self->base.matrix[4 * 3 + 1] = y;
    self->base.matrix[4 * 3 + 2] = z;
}



C++:





Код:

#include "game_api\game_api.h"
PEDSELF
->
Teleport
(
x
,
y
,
z
)
;


SR_team 01.02.2016 19:29

Цитата:

Сообщение от Спойлер


C++:





Код:

bool
Driving
(
int
PlayerID
)
{
if
(
PlayerID
==
ACTOR_SELF
)
PlayerID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
sLocalPlayerID
;
int
state
;
if
(
PlayerID
==
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
sLocalPlayerID
)
state
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
state
;
else
state
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
PlayerID
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
state
;
if
(
state
==
50
)
return
true
;
else
return
false
;
}
;




Цитата:

Сообщение от Спойлер


C++:





Код:

bool
isDriver
(
int
PlayerID
)
{
if
(
PlayerID
==
ACTOR_SELF
)
PlayerID
=
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
sLocalPlayerID
;
if
(
PlayerID
==
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
sLocalPlayerID
)
{
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
state
==
50
)
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
->
vehicle
->
passengers
[
0
]
==
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pLocalPlayer
->
pSAMP_Actor
->
pGTA_Ped
)
return
true
;
}
else
{
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
PlayerID
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
state
==
50
)
if
(
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
PlayerID
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
->
vehicle
->
passengers
[
0
]
==
SF
->
getSAMP
(
)
->
getPlayers
(
)
->
pRemotePlayer
[
PlayerID
]
->
pPlayerData
->
pSAMP_Actor
->
pGTA_Ped
)
return
true
;
}
return
false
;
}
;




Цитата:

Сообщение от Спойлер


C++:





[CODE]
float
getSkill
(
int
weaponId
)
{
float
Skill
=
1000.0f
;
if
(
(
weaponId
>=
22
)
&&
(
weaponId




Цитата:

Сообщение от Спойлер


C++:





Код:

bool
IsOnScreen
(
DWORD OBJECT
)
{
DWORD dwFunc
=
FUNC_IsVisible
;
DWORD dwThis
=
(
DWORD
)
SF
->
getSAMP
(
)
->
getInfo
(
)
->
pPools
->
pObject
->
object
[
OBJECT
]
->
pGTAEntity
;
bool
bReturn
=
false
;
_asm
{
mov        ecx
,
dwThis
                call    dwFunc
                mov        bReturn
,
al
}
return
bReturn
;
}





By_Surse 06.02.2016 15:11

Телепортирует машину игрока

C++:





Код:

void
VehTP
(
float
x
,
float
y
,
float
z
)
{
actor_info
*
self
=
SF
->
getGame
(
)
->
actorInfoGet
(
VEHICLE_SELF
,
VEHICLE_ALIVE
)
;
self
->
vehicle
->
base
.
matrix
[
4
*
3
]
=
x
;
self
->
vehicle
->
base
.
matrix
[
4
*
3
+
1
]
=
y
;
self
->
vehicle
->
base
.
matrix
[
4
*
3
+
2
]
=
z
;
}


itsLegend 06.02.2016 15:26

Цитата:

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

Телепортирует машину игрока

C++:





Код:

void
VehTP
(
float
x
,
float
y
,
float
z
)
{
actor_info
*
self
=
SF
->
getGame
(
)
->
actorInfoGet
(
VEHICLE_SELF
,
VEHICLE_ALIVE
)
;
self
->
vehicle
->
base
.
matrix
[
4
*
3
]
=
x
;
self
->
vehicle
->
base
.
matrix
[
4
*
3
+
1
]
=
y
;
self
->
vehicle
->
base
.
matrix
[
4
*
3
+
2
]
=
z
;
}



PEDSELF->GetVehicle()->SetPosition(&CVector(0.0f, 0.0f, 0.0f));

PEDSELF->GetVehicle()->Teleport(0.0f, 0.0f, 0.0f);

By_Surse 29.02.2016 13:19

Телепорт по метке!

C++:





Код:

void
mapMenuTeleport
(
void
)
{
if
(
(
*
(
int
*
)
0xBA6774
!=
0
)
)
{
// ty to Racer_S for this
float
mapPos
[
3
]
;
for
(
int
i
=
0
;
i

GetWorld
(
)
->
FindGroundZForPosition
(
pos
[
0
]
,
pos
[
1
]
)
+
2.0f
;
PEDSELF
->
Teleport
(
mapPos
[
0
]
,
mapPos
[
1
]
,
mapPos
[
2
]
)
;
}
}
}
}



Время: 20:26