11/12/2021 01:21
Agora eu vi que corrigiu.
Tente dessa forma:
O player ainda chamará a public duas vezes. Porém, na segunda vez, a if irá barra o texto de ser enviado novamente em função da hasHS ter se tornado falsa.
Tente dessa forma:
Código:
new bool:hasHS[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
hasHS[playerid] = 0;
}
if(bodypart == 9)
{
if(!hasHS[damagedid])
{
hasHS[damagedid] = true;
SetTimerEx("HeadshotSys", 1200, false, "ii", playerid, damagedid);
}
}
forward HeadshotSys(playerid, damagedid);
public HeadshotSys(playerid, damagedid)
{
if(hasHS[damagedid])
{
new string[128];
format(string, sizeof(string), "** ~> {FFF000}%s{A9A9A9} Deu um {FF0000}headshot {A9A9A9}no jogador {FFF000}%s{A9A9A9}.", Nome(playerid), Nome(damagedid), playerid);
SendClientMessageToAll(0xb9eec0AA, string);
SetPlayerHealth(damagedid, 0.0);
SetPlayerArmour(damagedid, 0);
hasHS[damagedid] = false;
}
}
O player ainda chamará a public duas vezes. Porém, na segunda vez, a if irá barra o texto de ser enviado novamente em função da hasHS ter se tornado falsa.
Discente de Sistemas de Informação no Centro Federal de Ensino Tecnológico(CEFET/RJ)
Programador SA-MP desde 2012
Programador SA-MP desde 2012
Não envie dúvidas por inbox, crie um tópico. Sua dúvida pode ser a dúvida de outro alguém, e seu tópico ajudará outras pessoas no futuro.