Como hacer esto
#1

Bueno, como en el otro post que hice antes, sobre Attach3DLabelToPlayer, quiero que arriba de la cabeza le aparezca el ping al jugador.
Estoy innovando cosas nuevas, y testeando y esto es lo unico que me faltarнa xD
Saludos
Reply
#2

usa SetPlayerChatBubble

En el callback que se actualize pon:

pawn Код:
new szString[50];
format(szString, sizeof(szString), "Ping: %d", GetPlayerPing(playerid));
SetPlayerChatBubble(playerid, szString, color, distancia, tiempo);
Reply
#3

Primero, si es que no tienes un callback para que se actualice, creas uno e inicias el temporizador cuando el script se inicie (si es un FS: OnFilterScriptInit, si es un GM: OnGameModeInit):
pawn Код:
// OnGameModeInit u OnFilterScriptInit
{
    // Aquн las otras cosas
    ...

    // Iniciamos el temporizador:
    // "ejemplo_callback" siempre debe tener el nombre del callback que creamos, y debe tener las comillas
    // 1000 es el tiempo en milisegundos (1 milisegundo equivale a 1 segundo)
    // true (traducciуn: verdadero/verdad) significa que se repetirб cada el tiempo indicado (1 segundo en este caso)
    SetTimer("ejemplo_callback", 1000, true); // que se actualice cada 1 segundo
}

// definimos el callback
forward ejemplo_callback();
public ejemplo_callback()
{
}
Luego dentro del callback haces un loop para todos los jugadores y les actualizas el label:
pawn Код:
forward ejemplo_callback();
public ejemplo_callback()
{
    // definimos las variables:
    new
        jugador, // aquн guardaremos la ID del jugador, como si fuera un "playerid"
        max_players = GetMaxPlayers(), // esta almacena la cantidad mбxima de jugadores (o slots, como le quieran llamar)
        string[16] // y este serб el texto
    ;
    // traducciуn: mientras que "jugador" sea menor a "max_players", aumentarlo en uno y cumplir las funciones adentro, esto se llama bucle
    for ( ; jugador < max_players; jugador ++)
    {
        if ((IsPlayerConnected(jugador)) && !(IsPlayerNPC(jugador))) // si estб conectado y NO es un bot
        {
            format(string, 16, "Ping: %i", GetPlayerPing(jugador));
            SetPlayerChatBubble(jugador, string, 0xFFFFFFFF /* COLOR BLANCO */, 50.0, 1050);
        }
    }
}
Nota: estб hecho usando bubbles, no labels.
Reply
#4

Quote:
Originally Posted by SadaharuZ
Посмотреть сообщение
Primero, si es que no tienes un callback para que se actualice, creas uno e inicias el temporizador cuando el script se inicie (si es un FS: OnFilterScriptInit, si es un GM: OnGameModeInit):
pawn Код:
// OnGameModeInit u OnFilterScriptInit
{
    // Aquн las otras cosas
    ...

    // Iniciamos el temporizador
    SetTimer("ejemplo_callback", 1000, true); // que se actualice cada 1 segundo
}

forward ejemplo_callback();
public ejemplo_callback()
{
}
Luego dentro del callback haces un loop para todos los jugadores y les actualizas el label:
pawn Код:
forward ejemplo_callback();
public ejemplo_callback()
{
    new
        jugador,
        max_players = GetMaxPlayers(),
        string[16]
    ;
    for ( ; jugador < max_players; jugador ++)
    {
        if ((IsPlayerConnected(jugador)) && !(IsPlayerNPC(jugador))) // si estб conectado y NO es un bot
        {
            format(string, 16, "Ping: %i", GetPlayerPing(jugador));
            SetPlayerChatBubble(jugador, string, 0xFFFFFFFF /* COLOR BLANCO */, 50.0, 1050);
        }
    }
}
Nota: estб hecho usando bubbles, no labels.
Muy buen explicado. talvez la utilize para algo.
Reply
#5

Quote:
Originally Posted by AdonisxD
Посмотреть сообщение
Muy buen explicado. talvez la utilize para algo.
De nada, me alegra haber ayudado. Ahora lo voy a editar asн los mбs nuevos pueden entender el cуdigo mejor.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)