Dialog ID? -
Zouke! - 17.10.2010
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.
Respuesta: Dialog ID? -
Cesar_Biker - 17.10.2010
No es un dialog.
https://sampwiki.blast.hk/wiki/OnPlayerClickPlayer cuando un jugador hace clic sobre otro en la lista mostrada al presionar TAB
Re: Dialog ID? -
SuperMarioRol - 17.10.2010
Intereasnte funciуn que desconocia.
Re: Dialog ID? -
cocolabush - 17.10.2010
(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...
Respuesta: Re: Dialog ID? -
xenowort - 17.10.2010
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;
}
Re: Respuesta: Re: Dialog ID? -
cocolabush - 17.10.2010
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.
Respuesta: Re: Respuesta: Re: Dialog ID? -
xenowort - 17.10.2010
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.
Respuesta: Dialog ID? -
Zouke! - 17.10.2010
Muchas gracias chicos! No sabia de esa funcion. Y cocacolabush gran idea, segurament la utilizare!
Re: Dialog ID? -
cocolabush - 17.10.2010
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.
Respuesta: Re: Dialog ID? -
xenowort - 18.10.2010
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