Issue with 3DTextLabel that's ment to vanish with a timer.
#9

Quote:
Originally Posted by BeckzyBoi
Посмотреть сообщение
No it doesn't kill it, it just stops it from repeating.



Код:
new Text3D:PlayerSpawnLabel[MAX_PLAYERS] = {Text3D:INVALID_3DTEXT_ID, ...};
new SpawnLabelDespawnTimer[MAX_PLAYERS];

public OnPlayerSpawn(playerid)
{
    if (!IsValid3DTextLabel(PlayerSpawnLabel[playerid]))
    { 
        PlayerSpawnLabel[playerid] = Create3DTextLabel("I just spawned.", COLOR_YELLOW, 0, 0, 0, 20, 0);
        SpawnLabelDespawnTimer[playerid] = SetTimerEx("SpawnLabelTimer", 20000, false, "i", playerid);
    }
    // attach it regardless of whether it already existed
    Attach3DTextLabelToPlayer(PlayerSpawnLabel[playerid], playerid, 0.0, 0.0, 0.27);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if (IsValid3DTextLabel(PlayerSpawnLabel[playerid]))
    {
        Delete3DTextLabel(PlayerSpawnLabel[playerid]); 
        PlayerSpawnLabel[playerid] = Text3D:INVALID_3DTEXT_ID;
        KillTimer(SpawnLabelDespawnTimer[playerid]);
    }
    return 1;
}

public OnPlayerDeath(playerid)
{
    if (IsValid3DTextLabel(PlayerSpawnLabel[playerid]))
    {
        Delete3DTextLabel(PlayerSpawnLabel[playerid]); 
        PlayerSpawnLabel[playerid] = Text3D:INVALID_3DTEXT_ID;
        KillTimer(SpawnLabelDespawnTimer[playerid]);
    }
    return 1;
}

forward SpawnLabelTimer(playerid);

public SpawnLabelTimer(playerid) 
{ 
    Delete3DTextLabel(PlayerSpawnLabel[playerid]); 
    PlayerSpawnLabel[playerid] = Text3D:INVALID_3DTEXT_ID; 
    KillTimer(SpawnLabelDespawnTimer[playerid]);
}
Thank you so much, it finally works like a charm!

One last question, should I always killtimers? Even those that are ment to loop?
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)