textdraws se unen/mezclan y timer se queda activado
#1

Estuve haciendo un sistema de jail y freeze con informaciуn de cuanto tiempo les queda para ser liberado o descongelado.

Cuando me congelo y luego me encarcelo no hay ningъn problema que haya encontrado, al terminar el tiempo de freeze se quita sus respectivos textdraws y se termina el timer, al igual que cuando termina el de jail.

El problema viene cuando me encarcelo primero y luego me congelo, los textdraws andan bien y timer, pero al terminar el tiempo de jail, el de freeze se coloca de йsta manera

Imagen

(Textdraws de la izquierda es el de jail, textdraws de la derecha son de freeze)

Y al terminar el tiempo de freeze el timer se queda activado igual, cada 1 segundo hace la funciуn 'UnfreezePlayer', se queda asн infinitamente hasta que apague el servidor:

Imagen

Y se quedan los textdraws de freeze ahн, no se destruyen.

Repito, esto pasa sуlo cuando me encarcelo primero y luego me congelo.

pawn Код:
public FreezeCheck(playerid)
{
    PlayerInfo[playerid][FreezeTime]--;
    if(PlayerInfo[playerid][FreezeTime] > 0)
    {
        //Cуdigo que no tiene que ver con textdraws, es sуlo calculo de tiempo introducido en una cadena
        PlayerTextDrawSetString(playerid,FreezeTime[playerid],PlayerInfo[playerid][FreezeTimeText]);
        Characters = float(strlen(PlayerInfo[playerid][FreezeTimeText]));
        Characters *= 3.5;
        PlayerTextDrawDestroy(playerid,FreezeTimeBox[playerid]);
        FreezeTimeBox[playerid] = CreateFreezeBoxTextDraw(playerid, BoxFreezePosX+Characters, BoxFreezePosY);
    }
    else
    {
        KillTimer(PlayerInfo[playerid][FreezeTimer]);
        UnfreezePlayer(playerid);
    }
    return 1;
}

stock UnfreezePlayer(playerid)
{
    PlayerInfo[playerid][FreezeTimer] = -1;
    DestroyPlayerFreezeTextDraw(playerid);
    PlayerInfo[playerid][FreezeTime] = 0;
    PlayerInfo[playerid][Freezed] = false;
    TogglePlayerControllable(playerid,true);
    GameTextPlayer(playerid,"~g~Has sido Descongelado",4000,3);
    PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
    return 1;
}


public JailedCheck(playerid)
{
    PlayerInfo[playerid][JailedTime]--;
    if(PlayerInfo[playerid][JailedTime] > 0)
    {
        //Cуdigo que no tiene que ver con textdraws, es sуlo calculo de tiempo introducido en una cadena
        PlayerTextDrawSetString(playerid,JailTime[playerid],PlayerInfo[playerid][JailTimeText]);
        Characters = float(strlen(PlayerInfo[playerid][JailTimeText]));
        Characters *= 3.5;
        PlayerTextDrawDestroy(playerid,JailTimeBox[playerid]);
        JailTimeBox[playerid] = CreateJailBoxTextDraw(playerid,BoxJailPosX+Characters, BoxJailPosY);
    }
    else
    {
        KillTimer(PlayerInfo[playerid][JailTimer]);
        UnjailPlayer(playerid);
    }
    return 1;
}

stock UnjailPlayer(playerid)
{
    PlayerInfo[playerid][JailTimer] = -1;
    DestroyPlayerJailTextDraw(playerid);
    PlayerInfo[playerid][JailedTime] = 0;
    PlayerInfo[playerid][Jailed] = false;
    SetPlayerPos(playerid,0.0,0.0,0.0);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SpawnPlayer(playerid);
    GameTextPlayer(playerid,"~g~Liberado de la ~r~Carcel",4000,3);
    cJaileds--;
    JailBusy[PlayerInfo[playerid][MyJail]] = false;
    PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
    return 1;
}
Alguien ha podido notar mi error?
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 3 Guest(s)