24.09.2019, 16:06
Anti Team Tire Popping
Este cуdigo, usando Pawn.Raknet, impede motoristas de receberem tiros de aliados (SetPlayerTeam), evitando que os pneus do veнculo sejam perfurados.
Por que nгo apenas retornar 0 na OnPlayerWeaponShot? Porque, se houver um jogador de outra equipe no banco do passageiro, este tambйm nгo receberб os tiros e nгo poderб ser morto. Claro, vocк poderia impedir jogadores de equipes diferentes estarem no mesmo veнculo, mas hб casos em que isso nгo й viбvel.
Este cуdigo, usando Pawn.Raknet, impede motoristas de receberem tiros de aliados (SetPlayerTeam), evitando que os pneus do veнculo sejam perfurados.
Por que nгo apenas retornar 0 na OnPlayerWeaponShot? Porque, se houver um jogador de outra equipe no banco do passageiro, este tambйm nгo receberб os tiros e nгo poderб ser morto. Claro, vocк poderia impedir jogadores de equipes diferentes estarem no mesmo veнculo, mas hб casos em que isso nгo й viбvel.
PHP Code:
const BULLET_SYNC = 206;
OPacket:BULLET_SYNC(playerid, BitStream:bs)
{
if(GetPlayerTeam(playerid) != NO_TEAM && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
static from, hittype, hitid;
BS_IgnoreBits(bs, 8);
BS_ReadValue(
bs,
PR_UINT16, from,
PR_UINT8, hittype,
PR_UINT16, hitid
);
//BS_SetReadOffset(bs, 0); //se houver outra filtragem do mesmo pacote
if(hittype == BULLET_HIT_TYPE_VEHICLE && hitid == GetPlayerVehicleID(playerid))
{
if(GetPlayerTeam(playerid) == GetPlayerTeam(from))
{
return 0;
}
}
}
return 1;
}