/kill -
Lucas_HenryK - 17.02.2014
o problema e que esta matando o player mesmo que ele tenha se mexido ..
pawn Код:
new Float:PosAtual[MAX_PLAYERS];
forward KillPlayer(playerid);
public KillPlayer(playerid)
{
new PosDepois = GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
if(PosAtual[playerid] == PosDepois)
{
SetPlayerHealth(playerid,0.0);
SendClientMessage(playerid,cor_verde,"Info: Vocк foi morto.");
}
else
{
SendClientMessage(playerid,cor_vermelho,"Erro: Vocк nгo pode ser morto porque se mecheu!");
}
return 1;
}
CMD:kill(playerid,params[])
{
new
acstr[100]
;
PosAtual[playerid] = GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
SetTimerEx("KillPlayer",5000,false,"d",playerid);
SendClientMessage(playerid,cor_amarelo,"Atenзгo: Aguarda 5 segundos parada para ser morto.");
return 1;
}
Re: /kill -
ViniBorn - 17.02.2014
Use
KillTimer
No link hб um exemplo.
Re: /kill -
brunox - 17.02.2014
Link a funcionar:
KillTimer
Re: /kill -
Kmatsu - 17.02.2014
pawn Код:
new PosDepois = GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
Vocк nao deve comparar o "PosDepois" e sim o "pPos[0], pPos[1], pPos[2]"
._.
Re: /kill -
Lucas_HenryK - 17.02.2014
Nгo consegui revolver o problema com nenhuma de suas respostas.
Kmatsu , como eu compararia entгo ?
Re: /kill -
ViniBorn - 17.02.2014
Vocк tem que enviar as posiзхes coletadas no comando /kill X e Y para a funзгo KillPlayer.
Assim que ela for chamada pelo timer, vocк verifica novamente a posiзгo, e compara com a fornecida que citei acima
Ex:
A funзгo
pawn Код:
public KillPlayer(playerid)
Poderia ser
pawn Код:
public KillPlayer(playerid, Float:posX, Float: posY)
Re: /kill -
Lucas_HenryK - 17.02.2014
Olб ViniBorn, eu continuo nгo entendendo, se possнvel o sr poderia adaptar o cуdigo por favor?
Minha callback KillPlayer estб assim no momento:
pawn Код:
public KillPlayer(playerid)
{
new Float:pPos2[3];
new PosDepois = GetPlayerPos(playerid,Float:PosAgr[0],PosAgr[1],Float:PosAgr[2]);
if(PosAtual[playerid] == GetPlayerPos(playerid,PosDepois))
{
SetPlayerHealth(playerid,0.0);
SendClientMessage(playerid,cor_verde,"Info: Vocк foi morto.");
}
else
{
SendClientMessage(playerid,cor_vermelho,"Erro: Vocк nгo pode ser morto porque se mecheu!");
KillTimer(KillPlayer(playerid));
}
return 1;
}
Agradeзo.
Re: /kill -
ViniBorn - 17.02.2014
pawn Код:
forward KillPlayer(playerid, Float:OldPosX, Float:OldPosY);
public KillPlayer(playerid, Float:OldPosX, Float:OldPosY)
{
new Float:NewPos[3];
GetPlayerPos(playerid,NewPos[0],NewPos[1],NewPos[2]);
if(OldPosX == NewPos[0] && OldPosY == NewPos[1])
{
SetPlayerHealth(playerid,0.0);
SendClientMessage(playerid,cor_verde,"Info: Vocк foi morto.");
}
else SendClientMessage(playerid,cor_vermelho,"Erro: Vocк nгo pode ser morto porque se mecheu!");
return 1;
}
CMD:kill(playerid,params[])
{
new Float:pPos[3];
GetPlayerPos(playerid,pPos[0],pPos[1],pPos[2]);
SetTimerEx("KillPlayer",5000,false,"dff",playerid,pPos[0],pPos[1]);
SendClientMessage(playerid,cor_amarelo,"Atenзгo: Aguarda 5 segundos parada para ser morto.");
return 1;
}
Re: /kill -
Lucas_HenryK - 17.02.2014
Muito obrigado ViniBorn, rep+.