Da, faci o variabila aia find un timer ce se aduna pana ajunge la 3 minute, dupa care la un timer de o secunda adaugi
if(GetPlayerAnimationIndex(playerid) == animatia de alergat)
dupa care jos adaugi timerul pe care l-ai creat gen Alergat[playerid]++; si tot asa pana ajunge la 180 de secunde find in animatia 'de alergat' nu ii stiu codul ai putea sa adaugi la un timer de o secunde functia animationindex si %d intr-un format si alergi si o sa iti zica codul pentru alergat, e dupa care la functia unde ai determinat animatia jucatorului de alergat sa ii creasca timerul adaugi else Alergat[playerid] = 0; adica daca nu are animatia 'de alergat' sa ii opreasca timpul.
EDIT:
new TimpAlergat[MAX_PLAYERS];
// Asta adaugi intr-un timer de 1 secunda
if(GetPlayerAnimationIndex(playerid) == 1231) TimpAlergat[playerid]++;
else TimpAlergat[playerid] = 0;
if(TimpAlergat[playerid] >= 180) SendClientMessage(playerid, -1, "Felicitari, ai alergat pentru 3 minute.");