25.09.2011, 19:13
como fazer um relogio de up que conta regressivo
Ex: 40:00 (sao 40 min e 00 segundos)
Ex: 40:00 (sao 40 min e 00 segundos)
new timer, contagem = 15;
public OnPlayerCommandText(playerid,cmdtext)
{
if(!strcmp(cmdtext,"/contagem",true))
{
timer = SetTimer("Contagem",1000,true);
return true;
}
return false;
}
forward Contagem();
public Contagem()
{
contagem--;
if(contagem > 0)
{
for(new i = 0, j = GetMaxPlayers(); i != j; i++)
{
new string[30];
format(string,sizeof(string),"%i",contagem);
GameTextForPlayer(i, contagem,1000,0);
}
}
else
{
for(new i = 0, j = GetMaxPlayers(); i != j; i++)
{
GameTextForPlayer(i,"GO",3000,0);
KillTimer(timer);
}
}
return true;
}
new Text:DisplayTime;
new minutos=2, segundos=60;
new timestr[32];
forward UpdateTime();
public UpdateTime()
{
segundos--;
if(segundos < 1 && minutos >= 1){minutos--; segundos=60;}
format(timestr,32,"%02d:%02d",minutos,segundos);
TextDrawSetString(DisplayTime,timestr);
}
public OnGameModeInit()
{
DisplayTime = TextDrawCreate(605.0,25.0,"00:00");
TextDrawUseBox(DisplayTime, 0);
TextDrawFont(DisplayTime, 3);
TextDrawSetShadow(DisplayTime,0);
TextDrawSetOutline(DisplayTime,2);
TextDrawBackgroundColor(DisplayTime,0x000000FF);
TextDrawColor(DisplayTime,0xFFFFFFFF);
TextDrawAlignment(DisplayTime,3);
TextDrawLetterSize(DisplayTime,0.5,1.5);
SetTimer("UpdateTime", 1000, 1);
return 1;
}


public RelogioUP()
{
new string[256], segUP = 0, minUP = 0; minUP--;
if(segUP<1){ segUP=59; minUP--;
}
if(minUP<1){ minUP = 9;
}
if(segUP <= 9){ format(string,60,"~w~%d:0%d +Exp",minUP,segUP);
} else {
format(string,60,"~w~%d:%d +Exp",minUP,segUP);
}
TextDrawSetString(reup,string);
return 1;
}
public RelogioUP()
{
new string[64];
segUP--; /* Decrescer segundos... */
if(segUP < 1) /* Quando os segundos chegarem a menor que 1 */
{
segUP = 59;
minUP--;
}
if(minUP < 1) /* Quando os minutos chegarem a menor que 1 */
{
minUP = 9;
}
format(string,64,"~w~%02d:%02d +Exp",minUP,segUP);
TextDrawSetString(reup,string);
return 1;
}