Szerző Téma: TextDraw visszaszámoló  (Megtekintve 800 alkalommal)

TextDraw visszaszámoló
« Dátum: 2011. szeptember 04. - 02:44:56 »
0 Show voters
Hali!
Készítettem a versenyhez egy textdraw visszaszámolót, csak az a gond ha megnyerem a versenyt akkor nem restartol ujra a számláló hanem ha új versenyre megyek, az elõzõnek mért utolsó idõpontól kezdi a számlálást. Ha valaki tud segitsen. Köszi!
Itt lesz a kód:
[pawn]new GameMinutes =1;
new GameSeconds =20;
new GameTimer;
new GameOver;
new Text:Textdraw0;[/pawn]
[pawn]public GameTime()
{
    if(GameSeconds || GameMinutes)
    {
        GameSeconds--;
        if(GameSeconds <= -1)
        {
            GameMinutes--;
            GameSeconds=59;
        }
        new TimeString[14];
        format(TimeString,sizeof(TimeString),\"%02d:%02d\",GameMinutes,GameSeconds);
        TextDrawSetString(Textdraw0,TimeString);
    }
    return 1;
}[/pawn]
[pawn]public OnPlayerEnterDynamicRaceCP(playerid, checkpointid)
{
switch(Racer[playerid])
    {
         case 1:
         {
              Textdraw0 = TextDrawCreate(86.000000,427.000000,\"1:20\");
             TextDrawAlignment(Textdraw0,2);
            TextDrawBackgroundColor(Textdraw0,0x000000ff);
            TextDrawFont(Textdraw0,3);
            TextDrawLetterSize(Textdraw0,0.499999,2.000000);
            TextDrawColor(Textdraw0,0xffffffff);
            TextDrawSetOutline(Textdraw0,1);
             TextDrawSetProportional(Textdraw0,1);
            TextDrawSetShadow(Textdraw0,1);
             TextDrawShowForPlayer(playerid,Textdraw0);
             GameTimer = SetTimer(\"GameTime\",1000,1);
        GameOver = SetTimerEx(\"GameO\",80000,false,\"i\",checkpointid);
          }
    }
return 1;
}[/pawn]
[pawn]forward GameO(playerid,checkpointid);
public GameO(playerid,checkpointid)
{
    KillTimer(GameTimer);
    KillTimer(GameOver);
    TextDrawDestroy(Textdraw0);
}[/pawn]

TextDraw visszaszámoló
« Válasz #1 Dátum: 2011. szeptember 04. - 08:46:30 »
0 Show voters
SetTimer -t írd át SetTimerEx-re szerintem így el tudod indítani bárkinek:
[pawn]GameTimer = SetTimerEx(\"GameTime\", 1000, false, \"d\", playerid);[/pawn]
De amúgy minek indítod el 2X-er?

TextDraw visszaszámoló
« Válasz #2 Dátum: 2011. szeptember 04. - 09:15:55 »
0 Show voters
Mivel globál változókat használsz ehhez az idõzítõhöz, ezért amint véget ért újra az alap értékre kellene állítanod õket.
Röviden mikor te újra jelentkezel a versenyre állítsd be az idõzítõket:
[pawn]GameMinutes =1;
GameSeconds =45;[/pawn]
Ez az elméleti része a problémának, az egész kivitelezése nem a legjobb, gondold át újra az egészet.

TextDraw visszaszámoló
« Válasz #3 Dátum: 2011. szeptember 04. - 11:54:05 »
0 Show voters
rendben, zárom

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal