Detectar si esta online
#1

Como hacer para q detecte si esta online o no. quiero agregar esa informacion al DIALOG_STYLE_MSGBOX

Supongo q seria parecido a esto.

PHP код:
new Test[128];
        switch(
PlayerInfo[playerid][Admin])
    {
        case 
1Test "Moderadorr";
        case 
2Test "Moderador-G";
        case 
3Test "dueño";
    } 
Reply
#2

No entendн, para comprobar si esta 'online' usa:
pawn Код:
if(IsPlayerConnected(playerid))
ї o es esto lo quй dices?.

pawn Код:
new conteo = 0, string[68];
    for(new x = 0; x < MAX_PLAYERS; x++)
    {
        if(IsPlayerConnected(x))
        {
            if(PlayerInfo[x][Admin])
            {
                conteo++;
                format(string, sizeof(string), " %s(%d) administrador %s\n", Nombre(x), x, test);
            }
           
        }
    }
    ShowPlayerDialog(playerid, id, DIALOG_STYLE_MSGBOX, "titulo", string, "Boton 1", "Boton 2");
Reply
#3

A lo que se refiere es que si estб logeado creo yo, porque conectar, conectan todos, los que los detiene es el dialog para ingresar.

Hace una variable para cada jugador en el enum, entonces cuando un jugador spawnea (OnPlayerSpawn) colocas la variable en 1, cuando desconecta, en 0.
Reply
#4

Quote:
Originally Posted by Juance
Посмотреть сообщение
A lo que se refiere es que si estб logeado creo yo, porque conectar, conectan todos, los que los detiene es el dialog para ingresar.

Hace una variable para cada jugador en el enum, entonces cuando un jugador spawnea (OnPlayerSpawn) colocas la variable en 1, cuando desconecta, en 0.
Me referia a algo asi



al lado del level diga si esta online o no y q muestre a todos los admin ya sea q esten on o off. Pero lo estuve analizando y es imposible
Reply
#5

Prueba esto:
pawn Код:
CMD:admins(playerid, params[])
{
    new c;
    SendClientMessage(playerid, -1, "Estos son los administradores en lнnea:");
    for(new i = 0; i != GetMaxPlayers(); i ++)
    {
        if(IsPlayerConnected(i))
        {
            if(IsPlayerAdmin(i))
            {
                c++;
                SendClientMessageEx(playerid, -1, "Administrador online: {00CCFF}%s", getPlayerName(i));
            }
        }
    }
    if(c == 0) SendClientMessage(playerid, -1, "En estos momentos no se puede dar a conocer la lista de administradores."); // No hay admins conectados.
    return 1;
}
Reply
#6

Con el cуdigo de Snoopy y modificandolo un poco puedes conseguir el sistema que quieres por lo que puedes partir de este aunque tendrбs que arreglar algъn error que hay en el for. Si quieres te puedo decir paso por paso como hacerlo.
Reply
#7

Yo tengo asi

PHP код:
new Linea1[128], Linea2[128], Linea3[128], Linea4[128], Linea5[128], asd[600], Linea6[128];
format(Linea1sizeof(Line1), "Miembro 1: %s\n"dini_Get(gFile"Miembro1"));
format(Linea2sizeof(Line2), "Miembro 2: %s\n"dini_Get(gFile"Miembro2"));
format(Linea3sizeof(Line3), "Miembro 3: %s\n"dini_Get(gFile"Miembro3"));
format(Linea4sizeof(Line4), "Miembro 4: %s\n"dini_Get(gFile"Miembro4"));
format(Linea5sizeof(Line5), "Miembro 5: %s\n"dini_Get(gFile"Miembro5"));
format(Linea6sizeof(Line6), "Miembro 6: %s\n"dini_Get(gFile"Miembro6"));
format(asdsizeof(cla), "%s%s%s%s%s%s"Linea1Linea2Linea3Linea4Linea5Linea6);
ShowPlayerDialog(playerid9999DIALOG_STYLE_MSGBOX"INFORMACION"asd"Salir"""); 
en dini_Get(gFile, "Miembro1") alli se guarda el nombre del miembro del grupo. por lo tanto muestra el nombre estando conectado o no. Entonces yo queria q al lado diga si esta online o no.

que seria asi

PHP код:
Miembro 1: %Estado %
pero no le veo forma de hacerlo
Reply
#8

Quote:
Originally Posted by adrian996
Посмотреть сообщение
Con el cуdigo de Snoopy y modificandolo un poco puedes conseguir el sistema que quieres por lo que puedes partir de este aunque tendrбs que arreglar algъn error que hay en el for. Si quieres te puedo decir paso por paso como hacerlo.
ї Cual error en el 'for' ? me podrнas enseсar el error jajaja!!.

Intenta con esto, no estoy seguro quй funcione, no lo he probado pero espero..

pawn Код:
#include <a_samp>
#include <zcmd>

enum Datos
{
    Admin
};

new PlayerInfo[MAX_PLAYERS][Datos];

command(admins, playerid, params[])
{
    #pragma unused params
    new conteo = 0, string[125], Tipo[29];
    switch(PlayerInfo[playerid][Admin])
    {
        case 1: Tipo = "Moderadorr";
        case 2: Tipo = "Moderador-G";
        case 3: Tipo = "dueсo";
    }
    for(new x = 0; x < MAX_PLAYERS; x++)
    {
        if(IsPlayerConnected(x))
        {
            if(PlayerInfo[x][Admin] >= 1)
            {
                conteo++;
                strcat(string, "{00FF00}Admins Online.\n");
                strcat(string, "{FFFFFF}__________________________\n");
                format(string, sizeof(string), "{FFFFFF}%s %s\n", Nombre(playerid), Tipo);
            }
        }
    }
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Admins Online", string, "Ok", "Back");
    return 1;
}

stock Nombre(playerid)
{
    new nombre[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
    return nombre;
}
o:
pawn Код:
#include <a_samp>
#include <zcmd>

enum Datos
{
    Admin
};

new PlayerInfo[MAX_PLAYERS][Datos];

command(admins, playerid, params[])
{
    #pragma unused params
    new conteo = 0, string[125], Tipo[29];
    switch(PlayerInfo[playerid][Admin])
    {
        case 1: Tipo = "Moderadorr";
        case 2: Tipo = "Moderador-G";
        case 3: Tipo = "dueсo";
    }
    for(new x = 0; x < MAX_PLAYERS; x++)
    {
        if(IsPlayerConnected(x))
        {
            if(PlayerInfo[x][Admin] >= 1)
            {
                conteo++;
                switch(conteo)
                {
                    case 0:
                    {
                        strcat(string, "{00FF00}Admins Online.\n");
                        strcat(string, "{FFFFFF}__________________________\n");
                        strcat(string, "{FFFFFF} No hay administradores.");
                    }
                    case 1.. 50:
                    {
                        strcat(string, "{00FF00}Admins Online.\n");
                        strcat(string, "{FFFFFF}__________________________\n");
                        format(string, sizeof(string), "{FFFFFF}%s %s\n", Nombre(playerid), Tipo);
                    }
                }
            }
        }
    }
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Admins Online", string, "Ok", "Back");
    return 1;
}

stock Nombre(playerid)
{
    new nombre[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
    return nombre;
}
o este si quieres un mensaje cuando no hay admins

pawn Код:
#include <a_samp>
#include <zcmd>

enum Datos
{
    Admin
};

new PlayerInfo[MAX_PLAYERS][Datos];

command(admins, playerid, params[])
{
    #pragma unused params
    new conteo = 0, string[125], Tipo[29];
    switch(PlayerInfo[playerid][Admin])
    {
        case 1: Tipo = "Moderadorr";
        case 2: Tipo = "Moderador-G";
        case 3: Tipo = "dueсo";
    }
    for(new x = 0; x < MAX_PLAYERS; x++)
    {
        if(IsPlayerConnected(x))
        {
            if(PlayerInfo[x][Admin] >= 1)
            {
                conteo++;
                if(conteo >= 1)
                {
                    strcat(string, "{00FF00}Admins Online.\n");
                    strcat(string, "{FFFFFF}__________________________\n");
                    format(string, sizeof(string), "{FFFFFF}%s %s\n", Nombre(playerid), Tipo);
                }
                else if(conteo == 0)
                {
                    strcat(string, "{00FF00}Admins Online.\n");
                    strcat(string, "{FFFFFF}__________________________\n");
                    strcat(string, "{FFFFFF}No hay administradores.\n");
                }
            }
        }
    }
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Admins Online", string, "Ok", "Back");
    return 1;
}

stock Nombre(playerid)
{
    new nombre[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nombre, MAX_PLAYER_NAME);
    return nombre;
}
Reply
#9

Mбs bien no es un error podrнamos decir despiste porque abres la variable conteo y no es utilizable como en el caso de adri que lo utiliza para dar el mensaje de que no hay admins antiguos. Exceptuando que tu idea fuera esa tambiйn entonces sin problemas.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)