AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Hud Message (More than 4 Channels) read first (https://forums.alliedmods.net/showthread.php?t=240487)

^SmileY 05-16-2014 14:24

Hud Message (More than 4 Channels) read first
 
1 Attachment(s)
Hi, i tried to put more than 4 channes in hudlist using this way:

PHP Code:

#include <amxmodx>
#include <cstrike>
#include <hamsandwich>

#pragma semicolon 1

#define PUG_TASK_AUTO 1990
#define PUG_MINPLAYERS_CAPTAIN 4
#define isTeam(%0) (CS_TEAM_T <= cs_get_user_team(%0) <= CS_TEAM_CT)

new g_iCaptain[2];
new const 
g_sHead[] = "[PUG]";

new 
g_pSvRestart;

public 
plugin_init()
{
    
register_plugin("Captains",AMXX_VERSION_STR,"SmileY");
    
    
register_concmd("pug_captains","PugCaptains");
    
    
g_pSvRestart get_cvar_pointer("sv_restart");
}

public 
PugCaptains()
{
    new 
iPlayers[32],iNum;
    
get_players(iPlayers,iNum,"h");
    
    new 
iPlayer,sName[2][32];
    
    if(
iNum PUG_MINPLAYERS_CAPTAIN)
    {
        
arrayset(g_iCaptain,0,sizeof(g_iCaptain));
        
        for(new 
i;iNum;i++)
        {
            
iPlayer iPlayers[i];
            
            if(!
g_iCaptain[0])
            {
                
g_iCaptain[0] = iPlayer;
                
get_user_name(iPlayer,sName[0],charsmax(sName[]));
                
                
cs_set_user_team(iPlayer,CS_TEAM_T);
                
                continue;
            }
            
            if(!
g_iCaptain[1])
            {
                
g_iCaptain[1] = iPlayer;
                
get_user_name(iPlayer,sName[1],charsmax(sName[]));
                
                
cs_set_user_team(iPlayer,CS_TEAM_CT);
                
                continue;
            }
            
            
user_silentkill(iPlayer);
            
cs_set_user_team(iPlayer,CS_TEAM_SPECTATOR);
        }
        
        
set_pcvar_num(g_pSvRestart,1);
        
set_task(0.5,"PugHudList",PUG_TASK_AUTO, .flags="b");
        
set_task(2.0,"PugCaptainMenu",g_iCaptain[random_num(0,1)]);
        
        
client_print_color(0,print_team_grey,"^4%s^1 Os Capitaes sao: %s (TRs), %s (CTs)",g_sHead,sName[0],sName[1]);
    }
    else
    {
        
client_print_color(0,print_team_grey,"^4%s^1 Precisamos de %i Players para escolha por Capitaes.",g_sHead,PUG_MINPLAYERS_CAPTAIN);
    }
}

public 
PugCaptainMenu(id)
{
    if(!
is_user_connected(id))
    {
        new 
iPlayers[32],iNum,iPlayer;
        
get_players(iPlayers,iNum,"eh","SPECTATOR");
        
        
iPlayer iPlayers[random(iNum)];
        
        new 
sName[32];
        
get_user_name(iPlayer,sName,charsmax(sName));
    
        if(
id == g_iCaptain[0])
        {
            
g_iCaptain[0] = iPlayer;
            
cs_set_user_team(iPlayer,CS_TEAM_T);
            
            
client_print_color(0,print_team_grey,"^4%s^1 O novo Capitao do time TRs: %s",g_sHead,sName);
        }
        else if(
id == g_iCaptain[1])
        {
            
g_iCaptain[1] = iPlayer;
            
cs_set_user_team(iPlayer,CS_TEAM_CT);
            
            
client_print_color(0,print_team_grey,"^4%s^1 O novo Capitao do time CTs: %s",g_sHead,sName);
        }
        
        
set_pcvar_num(g_pSvRestart,1);
        
set_task(2.0,"PugCaptainMenu",iPlayer);
        
        return;
    }
    
    new 
iPlayers[32],iNum;
    
get_players(iPlayers,iNum,"eh","SPECTATOR");
    
    if(
iNum)
    {
        if(
is_user_bot(id)) PugCaptainAutoPick(id);
        
        else
        {
            
show_menu(id,0,"^n",1);
            
            new 
iMenu menu_create("Players:","PugMenuHandler",1);
            
            new 
iPlayer,sName[32],sNum[3];
            
            for(new 
i;iNum;i++)
            {
                
iPlayer iPlayers[i];
                
                
num_to_str(iPlayer,sNum,charsmax(sNum));
                
get_user_name(iPlayer,sName,charsmax(sName));
                
                
menu_additem(iMenu,sName,sNum);
            }
            
            
menu_setprop(iMenu,MPROP_EXIT,MEXIT_NEVER);
            
menu_display(id,iMenu);
            
            
set_task(10.0,"PugCaptainAutoPick",id);
        }
    }
    else
    {
        
remove_task(PUG_TASK_AUTO);
        
set_pcvar_num(g_pSvRestart,1);
        
        
client_print_color(0,print_team_grey,"^4%s^1 A escolha por Capitaes terminou.",g_sHead,PUG_MINPLAYERS_CAPTAIN);
    }
}

public 
PugMenuHandler(id,iMenu,iKey)
{
    if(
iKey != MENU_EXIT)
    {
        new 
iAccess,sData[3],sOption[32],iBack;
        
menu_item_getinfo(iMenu,iKey,iAccess,sData,charsmax(sData),sOption,charsmax(sOption),iBack);
        
        new 
iPlayer str_to_num(sData);
        
        if(
is_user_connected(iPlayer) && is_user_connected(id))
        {
            
remove_task(id);
            
            
cs_set_user_team(iPlayer,cs_get_user_team(id));
            
ExecuteHamB(Ham_CS_RoundRespawn,iPlayer);
            
            new 
sName[2][32];
            
get_user_name(id,sName[0],charsmax(sName[]));
            
get_user_name(iPlayer,sName[1],charsmax(sName[]));
            
            
client_print_color(0,print_team_grey,"^4%s^1 %s escolheu %s",g_sHead,sName[0],sName[1]);
        }
        
        
set_task(2.0,"PugCaptainMenu",(id == g_iCaptain[0]) ? g_iCaptain[1] : g_iCaptain[0]);
    }
    
    return 
PLUGIN_HANDLED;
}

public 
PugCaptainAutoPick(id)
{
    
show_menu(id,0,"^n",1);
    
    new 
iPlayers[32],iNum;
    
get_players(iPlayers,iNum,"eh","SPECTATOR");
    
    if(
iNum)
    {
        new 
iPlayer iPlayers[random(iNum)];
        
        if(
is_user_connected(iPlayer) && is_user_connected(id))
        {
            
cs_set_user_team(iPlayer,cs_get_user_team(id));
            
ExecuteHamB(Ham_CS_RoundRespawn,iPlayer);
            
            new 
sName[2][32];
            
get_user_name(id,sName[0],charsmax(sName[]));
            
get_user_name(iPlayer,sName[1],charsmax(sName[]));
            
            
client_print_color(0,print_team_grey,"^4%s^1 %s escolheu %s",g_sHead,sName[0],sName[1]);
        }
        
        
set_task(2.0,"PugCaptainMenu",(id == g_iCaptain[0]) ? g_iCaptain[1] : g_iCaptain[0]);
    }
    else
    {
        
remove_task(PUG_TASK_AUTO);
        
set_pcvar_num(g_pSvRestart,1);
        
client_print_color(0,print_team_grey,"^4%s^1 A escolha por Capitaes terminou.",g_sHead,PUG_MINPLAYERS_CAPTAIN);
    }
}

public 
PugHudList()
{
    new 
iPlayers[32],iNum,iPlayer;
    
get_players(iPlayers,iNum,"h");
    
    new 
sTRs[512],sCTs[512],sSPECs[512],sName[32];
    
    for(new 
i;iNum;i++)
    {
        
iPlayer iPlayers[i];
        
        
get_user_name(iPlayer,sName,charsmax(sName));
        
        if((
g_iCaptain[0] == iPlayer) || (g_iCaptain[1] == iPlayer))
        {
            
format(sName,charsmax(sName),"%s (C)",sName);
        }
        
        switch(
cs_get_user_team(iPlayer))
        {
            case 
CS_TEAM_T:
            {
                
format(sTRs,charsmax(sTRs),"%s%s^n",sTRs,sName);
            }
            case 
CS_TEAM_CT:
            {
                
format(sCTs,charsmax(sCTs),"%s%s^n",sCTs,sName);
            }
            case 
CS_TEAM_SPECTATOR:
            {
                
format(sSPECs,charsmax(sSPECs),"%s%s^n",sSPECs,sName);
            }
        }
    }

    
set_hudmessage(0,255,0,0.7,0.1,0,0.0,0.6,0.0,0.0,1);
    
show_hudmessage(0,"Terrorists:^n^n^n^n^n^n^n^nCounter-Terrorists:^n^n^n^n^n^n^n^nSpectators:");
    
    
set_hudmessage(255,255,255,0.7,0.13,0,0.0,0.6,0.0,0.0,2);
    
show_hudmessage(0,sTRs);
    
    
set_hudmessage(255,255,255,0.7,0.40,0,0.0,0.6,0.0,0.0,3);
    
show_hudmessage(0,sCTs);
    
    
set_hudmessage(255,255,255,0.7,0.67,0,0.0,0.6,0.0,0.0,4);
    
show_hudmessage(0,sSPECs);


Buy when i changed my resolution to 1024 or more, the hudmessage is not appears correctly, any suggestion?

Screen-shot of looked result attached.


All times are GMT -4. The time now is 09:39.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.