Arreglar menu, aparecen menos jugadores
#1
Buenas tengo un problema con un plugin de Private message, bueno el plugin trabaja perfectamente cuando coloco /pm, me aparecen todos los jugadores, pero si vuelvo a ejecutar el comando de /pm me van apareciendo menos jugadores en la lista hasta el punto que si se intenta varias veces durante una misma ronda, sale El titulo de Private message menu pero no aparece ningun jugador el cual seleccionar, una vez comienza una nueva ronda se reinicia esto y al momento de volver ejecutar el comando /pm vuelve a salir todos los jugadores nuevamente y así...

he aqui el codigo que me encontre buscando en alliemodders

Código PHP:
#include <amxmodx>
#include <colorchat>

#define OWNER_FLAG ADMIN_RCON

new g_iTarget[33]

public 
plugin_init() 
{
    
register_plugin("PM - Private Message""1.0""EaGle/Flicker-rewriten")
    
    
register_clcmd("say /pm""cmdPMMenu")
    
register_clcmd("say_team /pm""cmdPMMenu")
    
    
register_clcmd("PrivateMessage""cmd_player");
}

public 
cmdPMMenu(id)
{
    new 
menu menu_create("\yPrivate Message \wMenu""handlePMMEnu")
    
    new 
players[32], num
    
new szName[32], szTempid[32]
    
    
get_players(playersnum"ach")
    
    for(new 
inumi++)
    {
        
get_user_name(players[i], szNamecharsmax(szName))
        
        
num_to_str(get_user_userid(players[i]), szTempidcharsmax(szTempid))
        
        
menu_additem(menuszNameszTempid0)
    }
    
    
menu_display(idmenu)
}

public 
handlePMMEnu(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
szData[6], szName[64], iAccessiCallback
    menu_item_getinfo
(menuitemiAccessszDatacharsmax(szData), szNamecharsmax(szName), iCallback)
    
    
g_iTarget[id] = find_player("k"str_to_num(szData))
    
    
client_cmd(id"messagemode PrivateMessage")
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
cmd_player(id)
{
    new 
say[300]
    
read_args(saycharsmax(say))
    
remove_quotes(say)
    
    if(!
strlen(say))
        return 
PLUGIN_HANDLED
    
    
new szSenderName[32], szReceiverName[32]
    
get_user_name(idszSenderNamecharsmax(szSenderName))
    
get_user_name(g_iTarget[id], szReceiverNamecharsmax(szReceiverName))
    
    
ColorChat(idGREY"[AMXX]^4 Private Message To^3 %s^1: %s"szReceiverNamesay)
    
ColorChat(g_iTarget[id], GREY"[AMXX]^4 Private Message From^3 %s^1: %s"szSenderNamesay)
    
    for(new 
1get_maxplayers(); i++ )
        if(
is_user_connected(i) && (get_user_flags(i) & OWNER_FLAG))
        {
           
ColorChat(iGREY"[AMXX]^4 Private Message from ^3%s ^1To ^3%s:"szSenderNameszReceiverName)
           
ColorChat(iGREEN"%s"say)
        }         
    
    return 
PLUGIN_CONTINUE

[Imagen: 76561197960779770.png]
Responder
#2
Código PHP:
get_players(playersnum"ach")

->

get_players(playersnum"ch"

la "a" es para ignorar a los jugadores muertos
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)