17.07.2017, 14:16
Se o COLETE do jogador for ABAIXO DE 100%, um timer de 10 segundos serб criado, caso o player ficar parado os 10 segundos ele ganha o colete, caso ele se mexa o timer serб cancelado.
isso й apenas um exemplo simples, deve haver um limite de colete por vida entre outras coisas por causa o player nгo ficar abusando do sistema, mas tipo cara da uma estudada no wiki samp
PHP код:
#define Mensagem SendClientMessage
new parado[MAX_PLAYERS];//verificar se ele estб parado
new Float:Colete;//pegar o colete
new TimerArmour//irб guardar o settimer
forward GanhandoColete(playerid); //public criada para dar o colete
public OnPlayerUpdate(playerid)//callback que atualiza
{
if(parado[playerid]==1)//caso ele estiver recebendo o colete
{
if(Velocidade(playerid)> 1)// se ele NГO estiver parado irб cancelar tudo
KillTimer(TimerArmour);//cancelando
parado[playerid]=0;//dizemos que ele NГO estб parado
Mensagem(playerid, -1, "Vocк se mexeu e o sistema foi cancelado");
}
if(parado[playerid]==0)
{
GetPlayerArmour(playerid, Colete);//pegar o colete do jogador
if(Colete < 100)//abaixo de 100
if(Velocidade(playerid) < 1)// abaixo de 1 ou seja igual 0
{
parado[playerid]=1;//dizemos que ele estб parado
TimerArmour = SetTimerEx("GanhandoColete", 10000, false, "i", playerid); //10000 = 10 segundos
}
}
return 1;
}
public GanhandoColete(playerid)
{
SetPlayerArmour(playerid, 100.0);
Mensagem(playerid, -1, "Vocк nгo se mexeu e ganhou colete cheio!");
parado[playerid]=0;//
return 1;
}
PHP код:
stock Velocidade(playerid)
{
static Float: Ppos[ 3 ] ;
GetPlayerVelocity(playerid , Ppos [0] , Ppos [1] , Ppos [2] ) ;
return floatround(floatmul(floatsqroot(floatadd(floatpower(Ppos[0],2 ) ,floatpower(Ppos [1],2))), 170.0));
}