KillTimer -
hbzi - 26.10.2012
Boa tarde.
Criei um sistema que escolhe aleatoriamente um jogador e o faz ser um Zombie.
A funзгo para escolher o Zombie chama-se Infectar. Funciona tudo bem, desde a escolha do Zombie atй а entrega de um prйmio de 2 de EXP a quem o matar.
Chamo esta funзгo com o comando /inf.
O que eu queria era tirar o jogador de Zombie passados 10 minutos e dar-lhe 2 de EXP caso ele nгo morra nesse espaзo de tempo.
Para isso fiz a funзгo CheckInfect(playerid).
Com o OnPlayerUpdate verifico quando um jogador passa a Zombie:
Код:
if(GetPVarInt(playerid, "eInf") == 1)
A funзгo Infectar() coloca a PVar eInf do jogador infectado igual a 1.
Fiz um new timerInf[MAX_PLAYERS] para chamar a funзгo CheckInfect.
Код:
timerInf[playerid] = SetTimerEx("CheckInfect", 10000, false, "i", playerid);
ficando o meu OnPlayerUpdate assim:
Код:
if(GetPVarInt(playerid, "eInf") == 1)
{
timerInf[playerid] = SetTimerEx("CheckInfect", 10000, false, "i", playerid);
}
Os 10000ms (10 seg) sгo sу para testar se a funзгo funciona.
O que isto faz й: Quando o jogador й escolhido para Zombie, inicia o Timer para o tempo que ele precisa de sobreviver para ganhar a EXP.
O problema estб aqui:
Quando alguйm mata o Zombie o timer nгo para de contar.
Na minha OnPlayerDeath tenho a verificaзгo:
Код:
if(GetPlayerColor(playerid) == 0xFF00BFFF)
{
new msg[128];
format(msg, sizeof(msg), "O jogador {FFFF00}%s {00FF00}matou o jogador infectado! Ganhou {FFFF00}2 de EXP {00FF00}de bуnus!", GetNick(killerid));
SendClientMessageToAll(0x00FF00FF, msg);
SetPlayerColor(playerid, 0xFFA500FF);
d[killerid][exp] += 2;
KillTimer(timerInf[playerid]);
VerificarResp(killerid);
}
Essa cor й a cor do jogador quando й escolhido para Zombie, ou seja: Se o jogador que morreu for o Zombie..
Aqui faзo o KillTimer ao timer do CheckInfect quando o Zombie morre mas, mesmo assim, o Zombie ganha 2 EXP mesmo depois de morrer.
Exemplo da situaзгo:
Jogador 1: /inf
Jogador 2: Escolhido para ser Zombie
Jogador 1: mata Zombie ganha 2 de EXP
Jogador 2: Passados 10s recebe os 2 de EXP а mesma mesmo depois de ser morto.
Alguma sugestгo para resolver isto?
Re: KillTimer -
hbzi - 26.10.2012
Up :\
Re: KillTimer -
hbzi - 26.10.2012
Ninguйm ajuda? ..
Re: KillTimer -
BodyBuilder - 26.10.2012
A verificaзгo pela cor do zombie no onplayerdeath esta a funcionar?
Re: KillTimer -
hbzi - 26.10.2012
Sim BodyBuilder funciona porque ele estб a dar os 2 de exp ao killerid que й o id de quem mata o zombie
Re: KillTimer -
BodyBuilder - 26.10.2012
Atгo nгo sei, alguem que ajude aqui
Re: KillTimer -
hbzi - 27.10.2012
Obrigado na mesma pela tentativa.
Mais alguйm pode (tentar) ajudar?