IRawPacket:20(playerid, BitStream:bs) // 20 = ID_RPC
{
new
PacketID,
RPC_ID,
NumberOfBitsOfData
;
BS_ReadValue(bs, PR_UINT8, PacketID, PR_UINT8, RPC_ID, PR_CUINT32, NumberOfBitsOfData);
printf("IRawPacket -> ID_RPC: playerid: %d, RPC_ID: %d, NumberOfBitsOfData: %d", playerid, RPC_ID, NumberOfBitsOfData);
if (PacketID == 40 || (NumberOfBitsOfData >= 0x1FFFFF || NumberOfBitsOfData <= 0x80000000 || NumberOfBitsOfData < 0))
{
new blockIp[32];
GetPlayerIp(playerid, blockIp, sizeof blockIp);
printf("[FIX CRASHER] RPCID: %d, NumberOfBitsOfData: %d", RPC_ID, NumberOfBitsOfData);
BlockIpAddress(blockIp, 60 * 1000 * 2);
return false;
}
return true;
}