public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
if(Aj[playerid] == false && GetPlayerSpecialAction(playerid) == 2) return SetPlayerHealth(playerid,0);
switch(weaponid)
{
case 24: amount = 32;
}
if(Morto[damagedid] == true) return 1;
if(Lagduel[damagedid] == true) return 1;
PlayerPlaySound(damagedid,6401,0,0,0);
new Float:Life, Float:Coleete, Float:Dano;
GetPlayerArmour(damagedid,Coleete);
GetPlayerHealth(damagedid,Life);
if(Coleete > 0)
{
if(amount > Coleete)
{
Dano = amount - Coleete;
Life = Life - Dano;
SetPlayerArmour(damagedid, 0.0);
SetPlayerHealth(damagedid, Life);
SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 2);
return 1;
}
SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 2);
Coleete = Coleete - amount;
SetPlayerArmour(damagedid, Coleete);
}
if(Coleete < 1)
{
Life = Life - amount;
SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 2);
SetPlayerHealth(damagedid, Life);
if(Life <= 0)
{
Morto[damagedid] = true;
SendDeathMessage(playerid,damagedid,weaponid);
DeadPlayer(damagedid,playerid,weaponid);
}
}
return 1;
}
O player sу receberб dano se a arma que for usada para atirar for a Desert Eagle (ID 24). Para que isso funcione para outras armas, vocк deve colocar na parte do "case 24: ...", embaixo, na ocasiгo de outras armas serem utilizadas Por exemplo, supondo para a Minigun: case 38: amount = 40; Assim por diante. |
public OnPlayerTakeDamage(playerid,issuerid,Float:amount, weaponid) { if(Lagduel[playerid] == false) return 1; if(weaponid == 24) amount = 20; SetPlayerScore(issuerid,GetPlayerScore(issuerid) + floatround(amount) / 10); PlayerPlaySound(playerid,6401,0,0,0); new Float:life; GetPlayerHealth(playerid,life); if((life - amount) <= 0) { Morto[playerid] = true; SendDeathMessage(issuerid,playerid,weaponid); DeadPlayer(playerid,issuerid,weaponid); } return 1; } public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid) { if(Aj[playerid] == false && GetPlayerSpecialAction(playerid) == 2) return SetPlayerHealth(playerid,0); switch(weaponid) { case 24: amount = 32; } if(Morto[damagedid] == true) return 1; if(Lagduel[damagedid] == true) return 1; PlayerPlaySound(damagedid,6401,0,0,0); new Float:Life, Float:Coleete, Floatano; GetPlayerArmour(damagedid,Coleete); GetPlayerHealth(damagedid,Life); if(Coleete > 0) { if(amount > Coleete) { Dano = amount - Coleete; Life = Life - Dano; SetPlayerArmour(damagedid, 0.0); SetPlayerHealth(damagedid, Life); SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 2); return 1; } SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 2); Coleete = Coleete - amount; SetPlayerArmour(damagedid, Coleete); } if(Coleete < 1) { Life = Life - amount; SetPlayerScore(playerid,GetPlayerScore(playerid) + floatround(amount) / 2); SetPlayerHealth(damagedid, Life); if(Life <= 0) { Morto[damagedid] = true; SendDeathMessage(playerid,damagedid,weaponid); DeadPlayer(damagedid,playerid,weaponid); } } return 1; } |
Nгo, o prуprio jogo possui esses valores prй-definidos, no caso do cуdigo dele, ele apenas alterou o dano da eagle para
32. |
Nгo sei se viu, mas o HelderPT deixou avisado no primeiro tуpico que retirando essa public por inteira, os players nгo levam dano. Isso deve ser algum script fora das linhas que ele mandou para nуs. Sendo assim, vocк tem razгo dizendo que o prуprio jogo possui valores prй-definidos, mas nessa GM esses valores foram descartados. |