[Ajuda] KillTimer
#1

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?
Reply
#2

Up :\
Reply
#3

Ninguйm ajuda? ..
Reply
#4

A verificaзгo pela cor do zombie no onplayerdeath esta a funcionar?
Reply
#5

Sim BodyBuilder funciona porque ele estб a dar os 2 de exp ao killerid que й o id de quem mata o zombie
Reply
#6

Atгo nгo sei, alguem que ajude aqui
Reply
#7

Obrigado na mesma pela tentativa.

Mais alguйm pode (tentar) ajudar?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)