28.09.2015, 19:10
Eu fiz um sistema onde que o jogador receber um dano maior que 10 ele comeзar a sangrar, ou seja um Tempo de 5 segundos e vai removendo -1 do do HP do Jogador, o problema й que quando o Jogador morre eu coloquei pra parar o tempo e o jogador parar de sangrar, sу que mesmo assim o Jogador continua perdendo vida eo timer nгo para sendo que eu coloquei um KillTimer e coloquei a variavel que checa se o jogador esta sangrando para false
PHP код:
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
new Lib[32], Name[32];
GetAnimationName(GetPlayerAnimationIndex(playerid), Lib, 32, Name, 32);
if(amount > 15 && strcmp("FALL_FALL", Name, true) == 0) pInfo[playerid][pBrokenBone] = true;
else if(issuerid != INVALID_PLAYER_ID && bodypart == 7) pInfo[playerid][pBrokenBone] = true;
else if(issuerid != INVALID_PLAYER_ID && bodypart == 8) pInfo[playerid][pBrokenBone] = true;
if(amount > 10) // Dano maior que 10
{
pInfo[playerid][pBleeding] = true; // Comeзa a sangrar
return false;
}
return 1;
}
PHP код:
public OnPlayerUpdate(playerid)
{
if(pInfo[playerid][pLogged] == true)
{
if(pInfo[playerid][pBrokenBone] == true)
{
new Lib[32], Name[32];
GetAnimationName(GetPlayerAnimationIndex(playerid), Lib, 32, Name, 32);
if(strcmp("JUMP_GLIDE", Name, true) == 0) ApplyAnimation(playerid, "GYMNASIUM", "gym_jog_falloff",4.1,0,1,1,0,0);
}
if(pInfo[playerid][pBleeding] == true) BloodTimer[playerid] = SetTimerEx("RemoveHP", 5000, 1, "i", playerid); // se estiver true o tempo de 5 segundos vai comeзar e tirar o HP do jogador atй que ele morra ou encontre um item de cura
else KillTimer(BloodTimer[playerid]); // Aqui se o jogador nгo estiver sangrando ele Para o tempo que remove o HP
}
return 1;
}

