Anti-drive-by
sistema simples
público usado quando os jogadores matam uns aos outros.
- Código:
public OnPlayerDeath(playerid, killerid, reason)
/*
playerid = Acusado
killerid = Vнtima
*/
Obtém o ID do veículo que o acusado ocupa.
PHP como:- Código:
GetPlayerVehicleID(playerid)
Aqui será definido o ID das aeronaves.
PHP como:- Código:
IsAAviao(carid)
IsAHelicoptero(carid)
Nossa string definida com o valor dela.
PHP como:- Código:
new string[256]
Nossa nova definição, irá definir o nome do acusado e da vítima.
PHP como:- Código:
new acusado[MAX_PLAYER_NAME], vitima[MAX_PLAYER_NAME];
Obtém o nome do acusado e da vítima.
PHP como:- Código:
GetPlayerName(killerid, acusado, MAX_PLAYER_NAME);
GetPlayerName(playerid, vitima, MAX_PLAYER_NAME);
Verifique se o assassino está em um veículo.
PHP como:- Código:
GetPlayerState(killerid) == PLAYER_STATE_DRIVER
Manda a mensagem para todos online no servidor e assim desmascarando o acusado.
PHP como:- Código:
format(string, sizeof(string), "[Anti drive-by]: %s cometeu drive-by em %s e serб punido por um admin.", acusado, vitima);
SendClientMessageToAll(0xE60000FF, string);
Para que os jogadores em aeronaves não sejam acusados, adicione o seguinte estoque em seu gamemode!
PHP como:- Código:
stock IsAHelicoptero(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 563 || modelid == 548 || modelid == 497 || modelid == 488 || modelid == 487)
{
return 1;
}
if(modelid == 425 || modelid == 417 || modelid == 447 || modelid == 469)
{
return 1;
}
return 0;
}
stock IsAAviao(carid)
{
new modelid = GetVehicleModel(carid);
if(modelid == 460 || modelid == 476 || modelid == 511 || modelid == 512)
{
return 1;
}
if(modelid == 513 || modelid == 519 || modelid == 520 || modelid == 553)
{
return 1;
}
if(modelid == 577 || modelid == 592 || modelid == 593)
{
return 1;
}
return 0;
}
Nosso anti-drive by foi feito com sucesso, adicionado em seu OnPlayerDeath, e adicionado também as duas ações seguintes, IsAAVIAO e IsAHelicoptero em seu gamemode.
- Código:
public OnPlayerDeath(playerid, killerid, reason){
if (GetPlayerState(killerid) == PLAYER_STATE_DRIVER){
if(IsAHelicoptero(GetPlayerVehicleID(killerid)) || IsAAviao(GetPlayerVehicleID(killerid))) return 1;
new string[256], acusado[MAX_PLAYER_NAME], vitima[MAX_PLAYER_NAME];
GetPlayerName(killerid, acusado, MAX_PLAYER_NAME);
GetPlayerName(playerid, vitima, MAX_PLAYER_NAME);
format(string, sizeof(string), "[Anti drive-by]: %s cometeu drive-by em %s e serб punido por um admin.", acusado, vitima);
SendClientMessageToAll(0xE60000FF, string);
}
return 1;
}
Creditos: Pablo098