[Ajuda] Bug OnPlayerGiveDamage "Dano Tiro" -
Sergiosousa - 04.03.2012
Estou com um problema com este script!
Quando tiro vida a alguem eu morro, exemplo, pego numa arma e dou um tiro alguem, ele fica vivo, e eu por ter dado o tiro morro
pawn Код:
forward Descongelar(playerid);
public Descongelar(playerid)
{
TogglePlayerControllable(playerid,1);
return 1;
}
public OnPlayerGiveDamage(playerid,damagedid,Float:amount,weaponid)
{
new Float:LIFE;
GetPlayerHealth(damagedid,LIFE);
if(weaponid >= 1 || weaponid <= 54)
{
if(LIFE <= 100)
{
SendClientMessage(damagedid,-1,"Levou um TIRO!");
SetPlayerHealth(playerid,GetPlayerHealth(playerid,LIFE)-20);
TogglePlayerControllable(damagedid,0);
SetTimerEx("Descongelar",2000,0,"i",damagedid);
return 1;
}
if(LIFE <= 80)
{
SendClientMessage(damagedid,-1,"Levou um TIRO!");
SetPlayerHealth(playerid,GetPlayerHealth(playerid,LIFE)-20);
TogglePlayerControllable(damagedid,0);
SetTimerEx("Descongelar",2000,0,"i",damagedid);
return 1;
}
if(LIFE <= 60)
{
SendClientMessage(damagedid,-1,"Levou um TIRO!");
SetPlayerHealth(playerid,GetPlayerHealth(playerid,LIFE)-20);
TogglePlayerControllable(damagedid,0);
SetTimerEx("Descongelar",2000,0,"i",damagedid);
return 1;
}
if(LIFE <= 40)
{
SendClientMessage(damagedid,-1,"Levou um TIRO!");
SetPlayerHealth(playerid,GetPlayerHealth(playerid,LIFE)-20);
TogglePlayerControllable(damagedid,0);
SetTimerEx("Descongelar",2000,0,"i",damagedid);
return 1;
}
if(LIFE <= 20)
{
SendClientMessage(damagedid,-1,"FOI MORTO!");
SetPlayerHealth(playerid,0);
return 1;
}
return 1;
}
return 1;
}
http://pastebin.com/CuqjgwVZ
Re: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
ApeloForum - 04.03.2012
Tente trocar damageid por playerid '-' Sу pode ser isto! ( Eu acho )
Respuesta: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
Sergiosousa - 04.03.2012
ja tentei e acontece a mesma a morte
Re: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
telmo_ferreira - 04.03.2012
no fim do codigo quando й para o player que recebe o dano morrer tens :
Код:
if(LIFE <= 20)
{
SendClientMessage(damagedid,-1,"FOI MORTO!");
SetPlayerHealth(playerid,0);
return 1;
}
Traduzindo
se a health for inferior ou igual a 20
envia mensagem para quem recebeu dano !
reduz a health de quem causou dano a 0!
ou seja isso esta trocado .
tens que meter assim:
Код:
if(LIFE <= 20)
{
SendClientMessage(playerid,-1,"FOI MORTO!");
SetPlayerHealth(damagedid,0);
return 1;
}
agora envia mensagem para quem disparou e retira vida a quem recebeu o tiro!!!!
Respuesta: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
Sergiosousa - 04.03.2012
Jб meti no script e sу falta testar, exemplo, se o player que esta levando com as balas ser atingido e quando tiver 10 de vida cair no chao "anim a morrer" serб possivel fazer?
Anim:
pawn Код:
ApplyAnimation(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0);
Da se meter?
pawn Код:
SendClientMessage(playerid,-1,"GRAVEMENTE FERIDO!");
SetPlayerHealth(damagedid,20);
ApplyAnimation(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0);
TogglePlayerControllable(damagedid, 0);
Re: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
telmo_ferreira - 04.03.2012
sim se a anim for essa!
ApplyAnimation(
damagedid,"PED","KO_skid_front",4.1,0,1,1,1,
1);
Respuesta: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
Sergiosousa - 04.03.2012
assim?
pawn Код:
if(LIFE <= 20)
{
SendClientMessage(playerid,-1,"GRAVEMENTE FERIDO!");
SetPlayerHealth(damagedid,20);
ApplyAnimation(damagedid,"PED","KO_skid_front",4.1,0,1,1,1,0);
TogglePlayerControllable(damagedid, 0);
return 1;
}
Respuesta: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
Sergiosousa - 04.03.2012
Problema:
Ao bateres em um player basta dares um tiro ou soco a ele e quem morre e quem da o dano e nao a quem o recebe!
Alguem me ajuda por favor
Respuesta: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
Sergiosousa - 05.03.2012
Alguem pode ajudar por favor? Dou todo respeito
Re: [Duvida] Bug OnPlayerGiveDamage "Dano Tiro" -
telmo_ferreira - 05.03.2012
estive a ver isso com mais atenзao agora , ele morre so com o soco porque tens
if(weaponid >= 1 || weaponid <= 54) e deverias ter if(weaponid >= 1 && weaponid <= 54).
outra coisa se tens
if(LIFE <= 100) porque metes a seguir if(LIFE <= 80) se nao vai fazer efeito nenhum.
usa o codigo assim desta forma:
Код:
public OnPlayerGiveDamage(playerid,damagedid,Float:amount,weaponid)
{
new Float:LIFE;
GetPlayerHealth(damagedid,LIFE);
if(GetPlayerWeapon(playerid) >= 1 && GetPlayerWeapon(playerid) <= 40)
{
if(LIFE >= 21 && LIFE <= 100)
{
SendClientMessage(playerid,-1,"Levou um TIRO!");
SetPlayerHealth(damagedid,LIFE-20);
TogglePlayerControllable(damagedid,0);
SetTimerEx("Descongelar",2000,0,"i",damagedid);
return 1;
}
if(LIFE <= 20)
{
SendClientMessage(playerid,-1,"FOI MORTO!");
SetPlayerHealth(damagedid,0);
return 1;
}
return 1;
}
return 1;
}