Raised This Month: $ Target: $400
 0% 

[help]all chat


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
HaRmOnY
Junior Member
Join Date: Jun 2009
Location: HKGS!
Old 11-17-2009 , 11:32   [help]all chat
Reply With Quote #1

Hello,guys.This all chat plugin have change the color displayed msgs and

names function,but this only work for admin,so i want to set all user change

the color displayed msgs and names.

allchat : http://forums.alliedmods.net/showthread.php?p=493053

I tried to change flags.But got many errors,help me to change the flag or

other Methods. Sorry my poor english

Code:
#include <amxmodx>

#define FLAG ADMIN_RESERVATION
#define VERSION "1.1"

new COLCHAR[3][2] = { "^x03"/*team col*/, "^x04"/*green*/, "^x01"/*white*/ }

//cvar pointers
new p_allchat, p_namecol, p_msgcol, p_alltalk, p_hidestat, p_teamchat

//vars to check if message has already been duplicated
new alv_sndr, alv_str2[26], alv_str4[101]
new msg[200]

public col_changer( msg_id, msg_dest, rcvr )
{
    new str2[26]
    get_msg_arg_string( 2, str2, 25 )
    if( equal( str2, "#Cstrike_Chat", 13 ) )
    {
        new str3[22]
        get_msg_arg_string( 3, str3, 21 )
        
        if( !strlen( str3 ) )
        {
            new str4[101]
            get_msg_arg_string( 4, str4, 100 )
            new sndr = get_msg_arg_int( 1 )
            
            new bool:is_team_msg = !bool:equal( str2, "#Cstrike_Chat_All", 17 )
            
            new sndr_team = get_user_team( sndr )
            new bool:is_sndr_spec = !bool:( 0 < sndr_team < 3 )
            
            new namecol = clamp( get_pcvar_num(p_namecol), 0, 2 )
            new msgcol = clamp( get_pcvar_num(p_msgcol), 0, 2 )
            
            new bool:same_as_last = bool:( alv_sndr == sndr && equal( alv_str2, str2 ) && equal( alv_str4, str4) )
            
            if( !same_as_last )
            {//Duplicate message once
                new allchat = clamp( get_pcvar_num( p_allchat ), 0, 2 )
                if( allchat == 2 || ( allchat == 1 && clamp( get_pcvar_num( p_alltalk ), 0, 1 ) == 1 ) )
                {
                    if( !( is_team_msg && ( is_sndr_spec || is_team_msg && get_pcvar_num( p_teamchat ) == 0 ) ) )
                    {//Don't duplicate if it's a spectator team message
                        new flags[5], team[10]
                        if( is_user_alive( sndr ) ) flags = "bch"
                        else flags = "ach"
                        
                        if( is_team_msg )
                        {
                            add( flags[strlen( flags )], 4, "e" )
                            if( sndr_team == 1 ) team = "TERRORIST"
                            else team = "CT"
                        }
                        
                        new players[32], num
                        get_players( players, num, flags, team )

                        if( get_user_flags( sndr ) & FLAG )
                            buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4 ) //admin colored, by cvars
                        else buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, 0, 2, str4 ) //normal colors
                        
                        for( new i=0; i < num; i++ )
                        {
                            message_begin( MSG_ONE, get_user_msgid( "SayText" ), _, players[i] )
                            write_byte( sndr )
                            write_string( msg )
                            message_end()
                        }
                        
                    }
    
                    alv_sndr = sndr
                    alv_str2 = str2
                    alv_str4 = str4
                    if( task_exists( 411 ) ) remove_task( 411 )
                    set_task( 0.1, "task_clear_antiloop_vars", 411 )
                }
            }
            
            if( get_user_flags( sndr ) & FLAG && ( namecol != 0 || msgcol != 2 ) )
            {//execute if sndr is admin and cols are not set to engine defaults
                if( !same_as_last ) buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4 )

                set_msg_arg_string( 2, msg )
                set_msg_arg_string( 4, "" )
            }
        }
    }
    return PLUGIN_CONTINUE
}

public buildmsg( sndr, is_sndr_spec, is_team_msg, sndr_team, namecol, msgcol, str4[ ] )
{
    new sndr_name[33]
    get_user_name( sndr, sndr_name, 32 )
    
    new prefix[30] = "^x01"
    if( get_pcvar_num( p_hidestat ) == 0 )
    {
        if( is_sndr_spec ) prefix = "^x01*SPEC* "
        else if( !is_user_alive( sndr ) ) prefix = "^x01*DEAD* "
    }
    
    if( is_team_msg )
    {
        if( is_sndr_spec ) prefix = "^x01(Spectator) "
        else if( sndr_team == 1 ) add( prefix[strlen(prefix)-1], 29, "(Terrorist) " )
        else if( sndr_team == 2 ) add( prefix[strlen(prefix)-1], 29, "(Counter-Terrorist) " )
    }
    
    format( msg, 199, "%s%s%s :  %s%s",\
        strlen( prefix ) > 1 ? prefix : "",\
        COLCHAR[namecol], sndr_name, COLCHAR[msgcol], str4 )
    return PLUGIN_HANDLED
}

public task_clear_antiloop_vars( )
{
    alv_sndr = 0
    alv_str2 = ""
    alv_str4 = ""
    return PLUGIN_HANDLED
}

public plugin_init( )
{
    register_plugin("All Chat",VERSION,"Ian Cammarata")
    register_cvar("allchat_version",VERSION,FCVAR_SERVER)
    
    p_allchat = register_cvar( "sv_allchat", "1" )
    p_namecol = register_cvar( "ac_namecolor", "0" )
    p_msgcol = register_cvar( "ac_msgcolor", "1" )
    p_hidestat = register_cvar( "ac_hidestatus", "0" )
    p_teamchat = register_cvar( "ac_teamchat", "0" )
    
    p_alltalk = get_cvar_pointer( "sv_alltalk" )
    
    register_message( get_user_msgid("SayText"), "col_changer" )
    return PLUGIN_CONTINUE
}
HaRmOnY is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 13:41.


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