SA-MP Forums Archive
[Ayuda]No se activa el Timer - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Ayuda]No se activa el Timer (/showthread.php?tid=535016)



[Ayuda]No se activa el Timer - chusothe41 - 01.09.2014

Tengo este codigo para las llamadas (aun esta en periodo de creacion)
pawn Код:
YCMD:llamar(playerid, params[], help)
{
    if(!sscanf(params, "i", params[0]))
    {
        SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE);
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if(PlayerInfo[i][pTelefono] == params[0] && i != playerid)
            {
                new llamador[256], llamado[256];
                format(llamador, sizeof(llamador), "%s saca el telefono", GetName(playerid));
                ProxDetector2(30, playerid, llamador,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
                if(!IsPlayerConnected(i))
                {
                    new noconectado[256];
                    format(noconectado, sizeof(noconectado), "%s guarda el telefono", GetName(playerid));
                    ProxDetector2(30, playerid, noconectado,0xC2A2DAAA,0xAA8EBFAA,0x947BA6AA,0x7D688CAA,0x665573AA);
                    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El telefono se encuentra apagado o fuera de covertura, intentelo de nuevo mбs tarde");
                }
                else
                {
                    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"Llamando");
                    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
                }
                break;
            }
            else
            {
                SetTimer("NoExiste", 5000, false);//aqui esta el problema, no se ejecuta
                GameTextForPlayer(playerid, "Llamando...", 3000, 1);
                break;
            }
        }
    }
    else SendClientMessage(playerid, COL_AYUDA, "Uso: "COL_WHITE"/llamar [numero]");
    return 1;
}
Ven el timer que se llama "NoExiste", no se carga esa funcion

pawn Код:
forward NoExiste(playerid);
public NoExiste(playerid)
{
    new string[128];
    format(string, sizeof(string), "%s guarda el telefono", GetName(playerid));
    ProxDetector2(30, playerid, string, 0xC2A2DAAA, 0xAA8EBFAA, 0x947BA6AA, 0x7D688CAA, 0x665573AA);
    SendClientMessage(playerid, 0xFFCC26AA, "Operadora: "COL_WHITE"El numero al que llama no existe");
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE);
    return 1;
}
Creo que deberia de funcionar... pero no lo hace ayuda


Respuesta: [Ayuda]No se activa el Timer - Juance - 01.09.2014

Por quй activas un timer global? no hace falta ya que tenes que comprobar para un solo jugador.

Ademбs, el forward y public estбn mal hechos. Si te fijas estбs colocando parбmetros en el forward que el timer no ejecuta.

Ahora si harнas esto:

pawn Код:
SetTimerEx("NoExiste",5000,false,"i",playerid);
el forward y public harнan efecto.


Respuesta: [Ayuda]No se activa el Timer - chusothe41 - 01.09.2014

Quote:
Originally Posted by Juance
Посмотреть сообщение
Por quй activas un timer global? no hace falta ya que tenes que comprobar para un solo jugador.

Ademбs, el forward y public estбn mal hechos. Si te fijas estбs colocando parбmetros en el forward que el timer no ejecuta.

Ahora si harнas esto:

pawn Код:
SetTimerEx("NoExiste",5000,false,"i",playerid);
el forward y public harнan efecto.
Soy nuevo en timers la verdad, siempre he intentado hacer todo sin timers... pero a veces es la unica opcion. Voy a probarlo, gracias de antemano.


Respuesta: [Ayuda]No se activa el Timer - [J]ulian - 01.09.2014

Quote:
Originally Posted by chusothe41
Посмотреть сообщение
Soy nuevo en timers la verdad, siempre he intentado hacer todo sin timers... pero a veces es la unica opcion. Voy a probarlo, gracias de antemano.
Nunca es la ъnica opciуn, tambiйn puedes GetTickCount/gettime en OnPlayerUpdate y "simular" un timer.

pawn Код:
new time[MAX_PLAYERS];

time[playerid] = gettime() + 5; // 5 segundos.

public OnPlayerUpdate(playerid)
{
    if(time[playerid] < gettime())
    {
        //tus acciones
        time[playerid] += 5; // hacemos que ese timer se repita cada 5 segundos, si sуlo queres 1 repeticiуn no aсadir esta linea.
    }
    return 1;
}
їEs mбs eficaz?, їEs menos eficaz? No lo se, pero los timer nunca son la ъnica opciуn.


Respuesta: [Ayuda]No se activa el Timer - chusothe41 - 02.09.2014

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Nunca es la ъnica opciуn, tambiйn puedes GetTickCount/gettime en OnPlayerUpdate y "simular" un timer.

pawn Код:
new time[MAX_PLAYERS];

time[playerid] = gettime() + 5; // 5 segundos.

public OnPlayerUpdate(playerid)
{
    if(time[playerid] < gettime())
    {
        //tus acciones
        time[playerid] += 5; // hacemos que ese timer se repita cada 5 segundos, si sуlo queres 1 repeticiуn no aсadir esta linea.
    }
    return 1;
}
їEs mбs eficaz?, їEs menos eficaz? No lo se, pero los timer nunca son la ъnica opciуn.
Si, tambien pero OnPlayerUpdate es una funcion... que hay que tener cuidado con ella


Respuesta: [Ayuda]No se activa el Timer - Swedky - 02.09.2014

Quote:
Originally Posted by [J]ulian
Посмотреть сообщение
Nunca es la ъnica opciуn, tambiйn puedes GetTickCount/gettime en OnPlayerUpdate y "simular" un timer.

pawn Код:
new time[MAX_PLAYERS];

time[playerid] = gettime() + 5; // 5 segundos.

public OnPlayerUpdate(playerid)
{
    if(time[playerid] < gettime())
    {
        //tus acciones
        time[playerid] += 5; // hacemos que ese timer se repita cada 5 segundos, si sуlo queres 1 repeticiуn no aсadir esta linea.
    }
    return 1;
}
їEs mбs eficaz?, їEs menos eficaz? No lo se, pero los timer nunca son la ъnica opciуn.
OnPlayerUpdate no es necesario, es mбs, consumirб una minorнa de tiempo y la variable memoria.