Can't manage to KillTimer
#1

pawn Код:
public OnPlayerEnterRaceCheckpoint(playerid)
{
    if(exam[playerid] == 1)
    {
        if(IsRaceRunning == true)
        {
            DisablePlayerRaceCheckpoint(playerid);
            Driving1_CP[playerid]++;
            if(sizeof(Driving1) - 1 == Driving1_CP[playerid])
            {
                SetPlayerRaceCheckpoint(playerid, 1,Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], 0.0, 0.0, 0.0, 3);
            }
            else
            {
                SetPlayerRaceCheckpoint(playerid, 0, Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], Driving1[Driving1_CP[playerid] + 1][0],Driving1[Driving1_CP[playerid] + 1][1],Driving1[Driving1_CP[playerid] + 1][2], 3);
            }
        }
        if(Driving1_CP[playerid] == sizeof(Driving1))
        {
            exam[playerid] = 0;
            IsRaceRunning = false;
            KillTimer(timer[playerid]);
            return 1;
        }
    }
    return 1;
}
When entering the last checkpoint, timer doesn't stop. Whole second part with KillTimer code isn't even called.
Reply
#2

Bump.
Reply
#3

Try:
pawn Код:
if(IsRaceRunning == true)
        {
                if(Driving1_CP[playerid] == sizeof(Driving1))
                {
                    exam = 0;
                    IsRaceRunning = false;
                    KillTimer(timer[playerid]);
                    return 1;
                }
            //DisablePlayerRaceCheckpoint(playerid);
            if(Driving1_CP[playerid] == sizeof(Driving1) - 1)
            {
                SetPlayerRaceCheckpoint(playerid, 1,Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], 0.0, 0.0, 0.0, 3);
            }
            else
            {
                Driving1_CP[playerid]++:
                SetPlayerRaceCheckpoint(playerid, 0, Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], Driving1[Driving1_CP[playerid] + 1][0],Driving1[Driving1_CP[playerid] + 1][1],Driving1[Driving1_CP[playerid] + 1][2], 3);
            }
        }
Reply
#4

Quote:
Originally Posted by Macronix
Посмотреть сообщение
Try:
pawn Код:
if(IsRaceRunning == true)
        {
                if(Driving1_CP[playerid] == sizeof(Driving1))
                {
                    exam = 0;
                    IsRaceRunning = false;
                    KillTimer(timer[playerid]);
                    return 1;
                }
            //DisablePlayerRaceCheckpoint(playerid);
            if(Driving1_CP[playerid] == sizeof(Driving1) - 1)
            {
                SetPlayerRaceCheckpoint(playerid, 1,Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], 0.0, 0.0, 0.0, 3);
            }
            else
            {
                Driving1_CP[playerid]++:
                SetPlayerRaceCheckpoint(playerid, 0, Driving1[Driving1_CP[playerid]][0],Driving1[Driving1_CP[playerid]][1],Driving1[Driving1_CP[playerid]][2], Driving1[Driving1_CP[playerid] + 1][0],Driving1[Driving1_CP[playerid] + 1][1],Driving1[Driving1_CP[playerid] + 1][2], 3);
            }
        }
With this, the last checkpoint starts flashing, like when I drove over it, it disappears for split second and appears back and so on.
Reply
#5

Mmh, have you tried to add the "DisablePlayerRaceCheckpoint(playerid);" at the code where you kill the timer?
Reply
#6

Quote:
Originally Posted by Macronix
Посмотреть сообщение
Mmh, have you tried to add the "DisablePlayerRaceCheckpoint(playerid);" at the code where you kill the timer?
Checkpoint disappears, but the timer keeps going, that's the problem.

pawn Код:
if(Driving1_CP[playerid] == sizeof(Driving1))
        {
            exam[playerid] = 0;
            IsRaceRunning = false;
            KillTimer(timer[playerid]);
            return 1;
        }
This part of code doesn't get called for some reason.
Reply
#7

Can you show me the Driving1 Code?
Reply
#8

Quote:
Originally Posted by Macronix
Посмотреть сообщение
Can you show me the Driving1 Code?
pawn Код:
new Float:Driving1[3][3] =
{
    {1589.3202,-1637.1918,13.2311},
    {1526.8044,-1604.5043,13.1032},
    {1571.1270,-1627.5754,13.1047}
};
Reply
#9

Ok, here:

At the start of the command/ whatever:
pawn Код:
MaxCheckpoints[playerid] = 3;
pawn Код:
if(Driving1_CP[playerid] == MaxCheckpoints[playerid]-1)
{
    exam[playerid] = 0;
    IsRaceRunning = false;
    KillTimer(timer[playerid]);
    return 1;
}
else
{
    Driving1_CP[playerid]++;
    SetNextCheckpoint(playerid, Driving1_CP[playerid], MaxCheckpoints[playerid]);
}
pawn Код:
stock SetNextCheckpoint(playerid, progress, totalchecks)
{
    new checktype=0;
    #define CHECK_SIZE 3.0
    if(progress==totalchecks-1)
    {
        SetPlayerRaceCheckpoint(playerid,1,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],CHECK_SIZE);}
    }
    else
    {
        SetPlayerRaceCheckpoint(playerid,checktype,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress+1][0],Driving1[progress+1][1],Driving1[progress+1][2],CHECK_SIZE);}
    }
}
Reply
#10

Quote:
Originally Posted by Macronix
Посмотреть сообщение
pawn Код:
stock SetNextCheckpoint(playerid, progress, totalchecks)
{
    new checktype=0;
    #define CHECK_SIZE 3.0
    if(progress==totalchecks-1)
    {
        SetPlayerRaceCheckpoint(playerid,1,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],CHECK_SIZE);}
    }
    else
    {
        SetPlayerRaceCheckpoint(playerid,checktype,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress+1][0],Driving1[progress+1][1],Driving1[progress+1][2],CHECK_SIZE);}
    }
}
(245 -- 251) : error 010: invalid function or declaration

245 - 251
Код:
    new checktype = 0;
    #define CHECK_SIZE 3.0
    if(progress==totalchecks-1)
    {
        SetPlayerRaceCheckpoint(playerid,1,Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],Driving1[progress][0],Driving1[progress][1],Driving1[progress][2],CHECK_SIZE);}
    }
    else
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)