Problema, lag masivo.
#10

Quote:
Originally Posted by LatinZ
Посмотреть сообщение
A todos, me fijй que mientras actualizaba la hostname en el sa-mp se parу como por 6 segundos, tambiйn he observado no se si conocen el server pGA Zombie Mode, juguй ayer por la noche y pasa el mismo problema, se congela el servidor por 6 o 7 segundos y vuelve a la normalidad

EDIT: No entiendo mucho el topic en inglйs, me caerнa bien una simple explicaciуn en espaсol
їNo te has fijado si eres tu el del problema del lag?

y_timers:

y_timers para utilizarlo, tiene dos opciones:

por tareas (task) tareas por jugador (ptask)

y como siempre: timers.

їpara que son las tareas?

las tareas funcionan desde el arranque del servidor hasta su fin (hasta que lo cierres) por eso se llaman tareas. estбn siempre activas en el servidor

їcomo hago para crear una tarea?, simple

pawn Код:
task nombre_de_la_funcion[milisegundosenquesejecuta]()
{
    // tu codigo
}
un ejemplo:

pawn Код:
task MensajesAlAzar[1800000]() // la funciуn se llama MensajesAlAzar, y se ejecuta cada 30 minutos (1800000 milisegundos)
{
    new azar= random(sizeof(azar));
    SendClientMessageToAll(Naranja, MensajesAlAzar[azar]);
}
ahora, vamos con ptask

їque es ptask? es una tarea, pero a diferencia de la anterior, estб es para cada jugador.

pawn Код:
ptask MensajeCada3Seg[3000](playerid)
{
    SendClientMessage(playerid, -1, "Hola, este es una tarea (o timer si quieres llamarlo) ejecutado cada 3 segundos");
}
Timers.. їque es timers? son como las tradicionales (timers = temporizadores en Espaсol), pero a diferencia de las anteriores (task, ptask) estas tienen mas funciones (defer, repeat y stop) y usa un tag (Timer:nombre_var) pero estб no es obligatoria, es obligatoria si vas a parar el timer mediante cуdigo ej:

Haremos como un timer global (SetTimer) y usaremos repeat para que se repita, pero se eliminara una vez ejecutada y no volverб a ejecutarse)

pawn Код:
new Timer:var_funcion;

public OnGameModeInit()
{
    var_funcion = repeat nombre_funcion(); // esto hace repetir el timer segun sus milisegundos (en este caso, 10000 = 10 seg)
    // codigos
    return 1;
}

timer nombre_funcion[10000]();
{
    print(" Hola, soy un Timer que se repetirб cada 10 milisegundos, 10 segundos mejor. Pero.. mi creador me parу y no puedo seguir ejecutandome para mostrar este mensaje :(");
    stop var_funcion; // esto hace parar el timer (es igual al KillTimer)
}
ahora, te explicarй como crear un timer que se ejecute solo una vez:

usaremos defer, porque esto significa que sera llamado solo una vez.


pawn Код:
public OnGameModeInit()
{
    defer nombre_funcion(); // sera llamado cuando el gamemode se inicie. solo una vez
    // codigos
    return 1;
}

timer nombre_funcion[10000]();
{
    print("Hola, fui llamado diez segundos despuйs de que el GM iniciу, solo una vez.");
}
bien creo que ya entendistes como funciona todo.

ahora crearemos timers pero con parametros.. ( como SetTimerEx )
pawn Код:
public OnPlayerConnect(playerid)
{
    defer funcion_con_parametro(playerid); // sera llamado solo una vez.
    // codigos
    return 1;
}


timer funcion_con_parametro[2500](playerid) // el parametro es "playerid", y sera ejecutado en 2,5 seg.
{
    TogglePlayerControllable(playerid, true);
    //GameTextForPlayer(playerid, "~g~~h~Fui llamado al conectarte! Urra~r~~h~!!", 4000, 5);
}
ahora, si deseamos repetir y eliminar: (un ejemplo) (repeat y stop)

pawn Код:
new Timer:var_pj[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    var_pj[playerid] = repeat funcion_con_parametro(playerid); // sera repetitivo, pero lo eliminaremos cuando sea ejecutada por primera vez.
    // codigos
    return 1;
}


timer funcion_con_parametro[2500](playerid) // el parametro es "playerid", y sera ejecutado en 2,5 seg.
{
    TogglePlayerControllable(playerid, true);
    //GameTextForPlayer(playerid, "~g~~h~Fui llamado al conectarte! Urra~r~~h~!!", 4000, 5);
    stop var_pj[playerid];
}
puedes fijarte en el tуpico de ****** para mas informaciуn.
Reply


Messages In This Thread
Problema, lag masivo. - by Unrea1 - 04.01.2014, 03:29
Respuesta: Problema, lag masivo. - by Swedky - 04.01.2014, 03:40
Respuesta: Problema, lag masivo. - by Unrea1 - 04.01.2014, 03:56
Respuesta: Problema, lag masivo. - by Alienwar3 - 04.01.2014, 17:42
Respuesta: Problema, lag masivo. - by Unrea1 - 04.01.2014, 19:40
Respuesta: Problema, lag masivo. - by CrossOv3r - 04.01.2014, 20:29
Respuesta: Problema, lag masivo. - by Swedky - 04.01.2014, 20:53
Respuesta: Problema, lag masivo. - by Unrea1 - 04.01.2014, 23:10
Respuesta: Problema, lag masivo. - by CrossOv3r - 04.01.2014, 23:41
Respuesta: Problema, lag masivo. - by Adoniiz - 05.01.2014, 00:02

Forum Jump:


Users browsing this thread: 3 Guest(s)