Dialog ID?
#1

Buenas! Me preguntaba cuala era la ID del DIALOG_STYLE_LIST de los players, la que te aparece al apretar Tabulaciуn ... he visto servidores donde el jugador puede apretar a un player y esta puede estar programada para responderte ... alguien la sabe?

Gracias.
Reply
#2

No es un dialog.
https://sampwiki.blast.hk/wiki/OnPlayerClickPlayer cuando un jugador hace clic sobre otro en la lista mostrada al presionar TAB
Reply
#3

Intereasnte funciуn que desconocia.
Reply
#4

(off topic)

El callback OnPlayerClickPlayer lo podes utilizar para mejorar las herramientas de los administradores.

Ejemplo:

pawn Код:
#define dialogo_AdminMenu 0
new clicked[MAX_PLAYERS]

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    if(IsPlayerAdmin(playerid))
    {
        if(IsPlayerAdmin(clickedplayerid)) { SendClientMessage(playerid, 0xFFFFFF, "No podes modificar estadisticas de otros admins."); return 1; }
        new aLista[128];
        new clickedName[MAX_PLAYER_NAME];
        new aListTitulo[MAX_PLAYER_NAME + 18];
        clicked[playerid] = clickedplayerid;
        GetPlayerName(playerid, clickedName, sizeof(clickedName));
        format(aListTitulo, sizeof(aListTitulo), "ID: %d Nombre: %s", clickedplayerid, clickedName);
        format(aLista, sizeof(aLista), "Advertir\nIr a\nVer\nCallar\nBan\nKick\nDar vida\nDar armadura\nDar Armas");
        ShowPlayerDialog(playerid, dialogo_AdminMenu, DIALOG_STYLE_LIST, aListTitulo, aLista, "Siguiente", "Cerrar");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == dialogo_AdminMenu)
    {
        if (response == 1)
        {
            switch(listitem)
                {
                    case 0: SendClientMessage(playerid, color_Rojo, "Advertir"); // En cada "case" podes modificar su funcion.
                    case 1: SendClientMessage(playerid, color_Rojo, "Ir a");     // Si es mas de una funcion escribi como en "case 2".
                    case 2:
                    {
                        SendClientMessage(playerid, color_Rojo, "Ver");
                    }
                    case 3: SendClientMessage(playerid, color_Rojo, "Callar");   // Si necesitas hacer una llamada al jugador clickeado usa clicked[playerid] en vez de clickedplayerid
                    case 4: SendClientMessage(playerid, color_Rojo, "Kick");     // ya que este ultimo es una variable de otro callback.
                }
        }
    }
   
    return 1;
}
Lo acabo de hacer en el "aire" asique puede que me falte algun detalle .. como un ";"...

Espero que a alguien le sirva...
Reply
#5

Quote:
Originally Posted by cocolabush
Посмотреть сообщение
(off topic)

El callback OnPlayerClickPlayer lo podes utilizar para mejorar las herramientas de los administradores.

Ejemplo:

pawn Код:
#define dialogo_AdminMenu 0
new clicked[MAX_PLAYERS]

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    if(IsPlayerAdmin(playerid))
    {
        if(IsPlayerAdmin(clickedplayerid)) { SendClientMessage(playerid, 0xFFFFFF, "No podes modificar estadisticas de otros admins."); return 1; }
        new aLista[128];
        new clickedName[MAX_PLAYER_NAME];
        new aListTitulo[MAX_PLAYER_NAME + 18];
        clicked[playerid] = clickedplayerid;
        GetPlayerName(playerid, clickedName, sizeof(clickedName));
        format(aListTitulo, sizeof(aListTitulo), "ID: %d Nombre: %s", clickedplayerid, clickedName);
        format(aLista, sizeof(aLista), "Advertir\nIr a\nVer\nCallar\nBan\nKick\nDar vida\nDar armadura\nDar Armas");
        ShowPlayerDialog(playerid, dialogo_AdminMenu, DIALOG_STYLE_LIST, aListTitulo, aLista, "Siguiente", "Cerrar");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == dialogo_AdminMenu)
    {
        if (response == 1)
        {
            switch(listitem)
                {
                    case 0: SendClientMessage(playerid, color_Rojo, "Advertir"); // En cada "case" podes modificar su funcion.
                    case 1: SendClientMessage(playerid, color_Rojo, "Ir a");     // Si es mas de una funcion escribi como en "case 2".
                    case 2:
                    {
                        SendClientMessage(playerid, color_Rojo, "Ver");
                    }
                    case 3: SendClientMessage(playerid, color_Rojo, "Callar");   // Si necesitas hacer una llamada al jugador clickeado usa clicked[playerid] en vez de clickedplayerid
                    case 4: SendClientMessage(playerid, color_Rojo, "Kick");     // ya que este ultimo es una variable de otro callback.
                }
        }
    }
   
    return 1;
}
Lo acabo de hacer en el "aire" asique puede que me falte algun detalle .. como un ";"...

Espero que a alguien le sirva...
Si algunos se te escaparon proba este codigo:

pawn Код:
#define dialogo_AdminMenu 0
new clicked[MAX_PLAYERS];

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    if(IsPlayerAdmin(playerid))
    {
        if(IsPlayerAdmin(clickedplayerid)) { SendClientMessage(playerid, 0xFFFFFF, "No podes modificar estadisticas de otros admins."); return 1; }
        new aLista[128];
        new clickedName[MAX_PLAYER_NAME];
        new aListTitulo[MAX_PLAYER_NAME + 18];
        clicked[playerid] = clickedplayerid;
        GetPlayerName(playerid, clickedName, sizeof(clickedName));
        format(aListTitulo, sizeof(aListTitulo), "ID: %d Nombre: %s", clickedplayerid, clickedName);
        format(aLista, sizeof(aLista), "Advertir\nIr a\nVer\nCallar\nBan\nKick\nDar vida\nDar armadura\nDar Armas");
        ShowPlayerDialog(playerid, dialogo_AdminMenu, DIALOG_STYLE_LIST, aListTitulo, aLista, "Siguiente", "Cerrar");
    }
    return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if (dialogid == dialogo_AdminMenu)
    {
        if (response == 1)
        {
            switch(listitem)
                {
                    case 0: SendClientMessage(playerid, color_Rojo, "Advertir"); // En cada "case" podes modificar su funcion.
                    case 1: SendClientMessage(playerid, color_Rojo, "Ir a");     // Si es mas de una funcion escribi como en "case 2".
                    case 2:
                    {
                        SendClientMessage(playerid, color_Rojo, "Ver");
                    }
                    case 3: SendClientMessage(playerid, color_Rojo, "Callar");   // Si necesitas hacer una llamada al jugador clickeado usa clicked[playerid] en vez de clickedplayerid
                    case 4: SendClientMessage(playerid, color_Rojo, "Kick");     // ya que este ultimo es una variable de otro callback.
                }
        }
    }
   
    return 1;
}
Reply
#6

Quote:
Originally Posted by xenowort
Посмотреть сообщение
[...] Si algunos se te escaparon [...]
pawn Код:
new clicked[MAX_PLAYERS];
Es que no tenia muchas ganas de pasarlo a un .pwn y compilarlo para ver si me daba error... jeje

Gracias por encontrarlo.
Reply
#7

Quote:
Originally Posted by cocolabush
Посмотреть сообщение
pawn Код:
new clicked[MAX_PLAYERS];
Es que no tenia muchas ganas de pasarlo a un .pwn y compilarlo para ver si me daba error... jeje

Gracias por encontrarlo.
Igual no hay problema.
Reply
#8

Muchas gracias chicos! No sabia de esa funcion. Y cocacolabush gran idea, segurament la utilizare!
Reply
#9

Una cosita mas... El codigo que te pase es para los rcon admins. Si queres pasarlo a un Role o algun GM que use adminlvl y no podes avisa que te ayudamos.
Reply
#10

Quote:
Originally Posted by cocolabush
Посмотреть сообщение
Una cosita mas... El codigo que te pase es para los rcon admins. Si queres pasarlo a un Role o algun GM que use adminlvl y no podes avisa que te ayudamos.
Una funcion estaria muy buena, que hoy la voy a desarrollar que es poder mutear al jugador solo seleccionandolo de la lista con TAB tipo Team Fortress Classic, gran juego.

Anticipo un nuevo gm y un nuevo modo El Modo TFCS Team Fortress Classic for SAMP, consistira de plugins (de audio, Streamer, Geoip)
Sistema de captura de banderas por puntos.
Mapas cambiantes al terminar tiempo o ganar un equipo
Mapas con diferentes modos (Banderas, captura de pelotas de futbol, Atacantes y Defensores, defiende al ciudadano. Y mas!)
Diferentes tipos de players (ingenieros, infanteria pesada, soldado, espia, medico) Cada uno con funciones

Ingenioero = Construye centinelas y dispensadores y teletransportadores (1 de cada uno es el maximo)
espia = logra disfrazarse del enemigo pero si dispara este, se le sale el traje, hacerse el muerto, simular en silencio
infanteria pesada = Tendra una M4 y 300 de escudo (1 solo por equipo)
medico = puede curar a los del equipo
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)