13/12/2021 18:58
boa noite. estou procurando a função dentro da include(eu paguei ela não fiz)
tem três classes no servidor policial,ladrão e motovlog
no momento a classe policial não pode matar outro policial oque é o certo..
porém.. eu queria que a classe ladrão pudesse se matar entre si e a classe motovlog não se matasse entre si.. mas não consegui achar a função pra modificar isso.. outro porém o hs pega se policial da hs em policial mata ele mas conta como suicidio teria como bloquear isso no sistema de hs tb??
ONPLAYERGIVEDAMAGE
ONPLAYERTAKEDAMAGE
tem três classes no servidor policial,ladrão e motovlog
no momento a classe policial não pode matar outro policial oque é o certo..
porém.. eu queria que a classe ladrão pudesse se matar entre si e a classe motovlog não se matasse entre si.. mas não consegui achar a função pra modificar isso.. outro porém o hs pega se policial da hs em policial mata ele mas conta como suicidio teria como bloquear isso no sistema de hs tb??
ONPLAYERGIVEDAMAGE
Código PHP:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
{
if(!IsPlayerPaused(damagedid)) //verifica se o jogador que levou dano não está de esc
{
if(bodypart == 9)
{
if(hasHS[damagedid] == 0)
{
if(weaponid >= 0 && weaponid <= 18) return 0;
new string[128];
format(string, sizeof(string), "** ~> {FFF000}%s{A9A9A9} Você deu um {FF0000}headshot {A9A9A9}no jogador {FFF000}%s{A9A9A9}.", Nome(playerid), Nome(damagedid), playerid);
SendClientMessage(playerid, 0xb9eec0AA, string);
SetPlayerHealth(damagedid, 0.0);
SetPlayerArmour(damagedid, 0);
hasHS[damagedid] = true;
}
}
}
if(IsPlayerPaused(damagedid)) return 0;
if(!IsPlayerAutorized_(playerid))
return 0;
if(GetPlayerTeam(playerid) == TEAM_JAIL && GetPlayerTeam(damagedid) == TEAM_JAIL)
return 0;
#if defined police_OnPlayerGiveDamage
police_OnPlayerGiveDamage(playerid, gamagedid, amount, weaponid, bodypart);
#else
if(damagedid != INVALID_PLAYER_ID && !playerDeath[playerid] && !IsPlayerPaused(damagedid))
{
if(!((IsPlayerPolice(playerid) && IsPlayerPCC(damagedid)) || (IsPlayerPolice(damagedid) && IsPlayerPCC(playerid))))
{
new team = random(NO_TEAM);
while(team == TEAM_POLICE || team == TEAM_PCC || team == TEAM_JAIL)
{
team = random(NO_TEAM);
}
playerTakedDamage[damagedid] = playerid;
playerTeam[damagedid] = GetPlayerTeam(damagedid);
playerTeam[playerid] = GetPlayerTeam(playerid);
SetPlayerTeam(playerid, team);
SetPlayerTeam(damagedid, team);
}
}
return 1;
}
ONPLAYERTAKEDAMAGE
Código PHP:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid,bodypart)
{
/*if( GetTeamOfPlayer(playerid) != TEAM_PCC || GetTeamOfPlayer(playerid) != TEAM_POLICE )
return 0;
*/
if(!IsPlayerAutorized_(playerid))
return 0;
if(GetPlayerTeam(playerid) == TEAM_JAIL && GetPlayerTeam(issuerid) == TEAM_JAIL)
return 0;
#if defined police_OnPlayerTakeDamage
police_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid);
#endif
/// <summary>
/// Nesta callback:
/// * se o emissor do damage não é um jogador inválido e o jogador
/// atingido não está morto, então:
/// - faz validação se o damage não é maior que a vida do jogador;
/// - mata o jogador caso esteja gravemente ferído;
/// - registra damage do emissor.
/// </summary>
if(issuerid != INVALID_PLAYER_ID && !playerDeath[playerid])
{
if(playerTakedDamage[playerid] == issuerid)
{
if(GetPlayerVirtualWorld(playerid) != VIRTUAL_WORLD_ALLOWED && GetPlayerVirtualWorld(issuerid) != VIRTUAL_WORLD_ALLOWED)
goto set;
if(!PlayersClassAutorizedForKill(playerid, issuerid))
goto end;
set:
new Float:health, Float:armour;
GetPlayerHealth(playerid, health);
GetPlayerArmour(playerid, armour);
if(armour >= amount)
{
print("OnPlayerTakeDamage condição");
SetPlayerArmour(playerid, armour - amount);
goto end;
}
else
{
SetPlayerArmour(playerid, 0.0);
amount = amount-armour;
}
if(amount >= health)
{
if(!playerDeathByPoliceSystem[playerid])
{
playerDeathByPoliceSystem[playerid] = true;
SendDeathMessage(issuerid, playerid, weaponid);
}
}
else
SetPlayerHealth(playerid, health - amount);
end:
playerTakedDamage[playerid] = INVALID_PLAYER_ID;
playerTakedDamage[issuerid] = INVALID_PLAYER_ID;
SetPlayerTeam(playerid, playerTeam[playerid]);
SetPlayerTeam(issuerid, playerTeam[issuerid]);
}
}
return 1;
}