Posts: 123
Threads: 7
Joined: May 2017
23.10.2017, 18:05
(
Last edited by DimaShift; 23/10/2017 at 06:45 PM.
)
Quote:
Originally Posted by Konstantinos
It's from OverLight v3; Fly (the bmx animations):
pawn Code:
const PLAYER_SYNC = 207;
public OnIncomingPacket(playerid, packetid, BitStream: bs) { switch (packetid) { case PLAYER_SYNC: { new onFootData[PR_OnFootSync];
BS_IgnoreBits(bs, 8); BS_ReadOnFootSync(bs, onFootData);
switch (onFootData[PR_animationId]) { case 157, 159, 161: { if (!IsPlayerInAnyVehicle(playerid)) { onFootData[PR_animationId] = 1189; onFootData[PR_velocity][0] = onFootData[PR_velocity][1] = onFootData[PR_velocity][2] = 0.0; BS_SetWriteOffset(bs, 8); BS_WriteOnFootSync(bs, onFootData); } } } } } return 1; }
It sets the animation to the default standing one, but velocity doesn't make the player to stop. I think re-writing the old PR_position, everyone will see them standing in a place but the cheater can still fly to his client.
So my question is can we make the cheater unable to use them (make him to stop moving etc)?
EDIT: Setting PR_position to old position stored does indeed show to everyone the player standing but in cheater's screen still riding.
|
this cheat (OverLight v3) is also created by RakNet packet and is hard to catch in given cases
test this!
Code:
const PLAYER_SYNC = 207;
public OnIncomingPacket(playerid, packetid, BitStream: bs)
{
switch (packetid)
{
case PLAYER_SYNC:
{
new onFootData[PR_OnFootSync];
BS_IgnoreBits(bs, 8);
BS_ReadOnFootSync(bs, onFootData);
if onFootData[PR_velocity][0] > 0.0 && onFootData[PR_animationId] == 1189) return Kick(playerid);
}
}
return true;
}