View Single Post
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 08-27-2009 , 20:53   Re: [ES] Recopilacion de Tutoriales v2.3
#149

Client_prints en color

PHP Code:
colored_print(target, const message[], any:...)
{
    static 
buffer[512], iargscount
    argscount 
numargs()
 
    if (!
target)
    {
        static 
player
        
for (player 1player <= g_maxplayersplayer++)
        {
            if (!
is_user_connected(player))
                continue;
 
            static 
changed[5], changedcount
            changedcount 
0
 
            
for (2argscounti++)
            {
                if (
getarg(i) == LANG_PLAYER)
                {
                    
setarg(i0player)
                    
changed[changedcount] = i
                    changedcount
++
                }
            }
 
            
vformat(buffercharsmax(buffer), message3)
 
            
message_begin(MSG_ONE_UNRELIABLEg_msgSayText_player)
            
write_byte(player)
            
write_string(buffer)
            
message_end()
 
            for (
0changedcounti++)
                
setarg(changed[i], 0LANG_PLAYER)
        }
    }
 
    
vformat(buffercharsmax(buffer), message3)
 
    
message_begin(MSG_ONEg_msgSayText_target)
    
write_byte(target)
    
write_string(buffer)
    
message_end()

PHP Code:
/* Fun functions
*
* by Numb
*
* This file is provided as is (no warranties).
*/
 
#if defined _colorchat_included
  #endinput
#endif
#define _colorchat_included
 
enum Color
{
    
NORMAL 1// clients scr_concolor cvar color
    
GREEN// Green Color
    
TEAM_COLOR// Red, grey, blue
    
GREY// grey
    
RED// Red
    
BLUE// Blue
}
 
new 
TeamName[][] = 
{
    
"",
    
"TERRORIST",
    
"CT",
    
"SPECTATOR"
}
 
ColorChat(idColor:type, const msg[], {Float,Sql,Result,_}:...)
{
    new 
message[256];
 
    switch(
type)
    {
        case 
NORMAL// clients scr_concolor cvar color
        
{
            
message[0] = 0x01;
        }
        case 
GREEN// Green
        
{
            
message[0] = 0x04;
        }
        default: 
// White, Red, Blue
        
{
            
message[0] = 0x03;
        }
    }
 
    
vformat(message[1], 251msg4);
 
    
// Make sure message is not longer than 192 character. Will crash the server.
    
message[192] = '^0';
 
    new 
teamColorChangeindexMSG_Type;
 
    if(
id)
    {
        
MSG_Type MSG_ONE;
        
index id;
    } else {
        
index FindPlayer();
        
MSG_Type MSG_ALL;
    }
 
    
team get_user_team(index);
    
ColorChange ColorSelection(indexMSG_Typetype);
 
    
ShowColorMessage(indexMSG_Typemessage);
 
    if(
ColorChange)
    {
        
Team_Info(indexMSG_TypeTeamName[team]);
    }
}
 
ShowColorMessage(idtypemessage[])
{
    static 
bool:saytext_used;
    static 
get_user_msgid_saytext;
    if(!
saytext_used)
    {
        
get_user_msgid_saytext get_user_msgid("SayText");
        
saytext_used true;
    }
    
message_begin(typeget_user_msgid_saytext_id);
    
write_byte(id)        
    
write_string(message);
    
message_end();    
}
 
Team_Info(idtypeteam[])
{
    static 
bool:teaminfo_used;
    static 
get_user_msgid_teaminfo;
    if(!
teaminfo_used)
    {
        
get_user_msgid_teaminfo get_user_msgid("TeamInfo");
        
teaminfo_used true;
    }
    
message_begin(typeget_user_msgid_teaminfo_id);
    
write_byte(id);
    
write_string(team);
    
message_end();
 
    return 
1;
}
 
ColorSelection(indextypeColor:Type)
{
    switch(
Type)
    {
        case 
RED:
        {
            return 
Team_Info(indextypeTeamName[1]);
        }
        case 
BLUE:
        {
            return 
Team_Info(indextypeTeamName[2]);
        }
        case 
GREY:
        {
            return 
Team_Info(indextypeTeamName[0]);
        }
    }
 
    return 
0;
}
 
FindPlayer()
{
    new 
= -1;
 
    while(
<= get_maxplayers())
    {
        if(
is_user_connected(++i))
            return 
i;
    }
 
    return -
1;

PHP Code:
stock chat_color(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msg190input3)
 
    
replace_all(msg190"!g""^4")
    
replace_all(msg190"!y""^1")
    
replace_all(msg190"!team""^3")
    
replace_all(msg190"!team2""^0")
 
    if (
idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i])
                
write_string(msg)
                
message_end()
            }
        }
    }

Ahora paja de explicar cada uno, dar info, etc... dsp edito.
__________________
Approved Plugins - Steam Profile

Public non-terminated projects:
All Admins Menu, HLTV parameters, Subnick,
Second Password (cool style), InfoZone,
Binary C4 plant/defuse, and more...

Private projects:
NoSpec (+menu), NV Surf Management,
PM Adanved System, KZ longjump2, and more...

Last edited by Alucard^; 09-10-2009 at 03:40.
Alucard^ is offline
Send a message via Skype™ to Alucard^