Textdraw countdown problem
#1

I'm trying to make a countdown textdraw. It doesn't work properly.

pawn Код:
new mins = 1, seconds = 60,textdrawtimer; //at the top
textdrawtimer = SetTimer("test",1000,true); //ongamemodeinit

forward test(playerid);
public test(playerid)
{
    new str[30];
    seconds--;
    if(seconds == 0)
    {
        mins--;
        seconds = 59;
    }
    if(mins == 0 && seconds == 0)
    {
        SendClientMessage(playerid,red,"aaa");
        KillTimer(textdrawtimer);
        TextDrawDestroy(timeleft);
    }
    format(str,sizeof(str),"TimeLeft: %d:%d",mins,seconds);
    TextDrawSetString(timeleft,str);
    return 1;
}
Problems:
1) This part doesn't work
pawn Код:
if(mins == 0 && seconds == 0)
    {
        SendClientMessage(playerid,red,"aaa");
        KillTimer(textdrawtimer);
        TextDrawDestroy(timeleft);
    }
It won't send "aaa" text, destroy the textdraw and timer.

2)
How can I make it like 1:09 and not 1:9?
Reply
#2


Hello.

pawn Код:
//SetTimer("test",1000,true);
SetTimerEx("test",1000,true,"d",playerid);
2nd question:
Just use this code:
pawn Код:
format(str,sizeof(str),"TimeLeft: %d:%02d",mins,seconds);
    TextDrawSetString(timeleft,str);
However, I'd have it done in another way.
mins = 1, seconds = 60 makes 2 mins, right?
So lets create one var.
pawn Код:
new Var = 120
Now

pawn Код:
forward test(playerid);
public test(playerid)
{
    new str[30];
    Var--;
   if(Var == 0)
  {
        SendClientMessage(playerid,red,"aaa");
        KillTimer(textdrawtimer);
        TextDrawDestroy(timeleft);
    }

    format(str,sizeof(str),"TimeLeft: %d:%02d",Var/60, Var%60);
    TextDrawSetString(timeleft,str);

    return 1;
}

Greetz,
LetsOWN
Reply
#3

Works perfect! But can you/someone explain me this?
pawn Код:
format(str,sizeof(str),"TimeLeft: %d:%02d",Var/60, Var%60);
//Var/60, Var%60 ????
Reply
#4

Sure.
Var/60 calculates minutes from Var and Var%60 calculates seconds from Var.
For example, if Var = 102 then:
Var/60 = 1 and Var%60 = 42

Explained, or need longer explain ?

Greetz
LetsOWN
Reply
#5

Hmm...

1) Var/60
That means 120 ч 60?

2) Var%60
Can you explain this?
Reply
#6

Quote:
Originally Posted by newbienoob
Посмотреть сообщение
Hmm...

1) Var/60
That means 120 ч 60?

2) Var%60
Can you explain this?
1) Yes. But it takes number without numbers after ,
So if Var = 90 then Var/60 (90:60) will equal 1, not 1,5.

2) Var%60 - % is used for modulus (finding the remainder of one number divided by another). For example 5%2 = 1

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)