Raised This Month: $ Target: $400
 0% 

Help with colorchat and %L


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
kyriuch
Member
Join Date: Jul 2010
Old 08-18-2012 , 08:18   Re: Help with colorchat and %L
Reply With Quote #7

Using colorchat.inc
Code:
#define MAXSLOTS 32

enum Color{
    YELLOW = 1, // Yellow
    GREEN, // Green Color
    TEAM_COLOR, // Red, grey, blue
    GREY, // grey
    RED, // Red
    BLUE, // Blue
}
new TeamName[][] = {
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

public ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
    static message[256];

    switch(type)
    {
        case YELLOW:{ // Yellow
        
            message[0] = 0x01;
        }
        case GREEN:{// Green

            message[0] = 0x04;
        }
        default:{ // White, Red, Blue
            message[0] = 0x03;
        }
    }
    vformat(message[1], 251, msg, 4);

    // Make sure message is not longer than 192 character. Will crash the server.
    message[192] = '^0';
    new team, ColorChange, index, MSG_Type;
    if(!id)    {
        index = FindPlayer();
        MSG_Type = MSG_ALL;
    } else {
        MSG_Type = MSG_ONE;
        index = id;
    }
    team = get_user_team(index);    
    ColorChange = ColorSelection(index, MSG_Type, type);
    ShowColorMessage(index, MSG_Type, message);
    if(ColorChange){
        Team_Info(index, MSG_Type, TeamName[team]);
    }
}

ShowColorMessage(id, type, message[]){
    message_begin(type, 76, _, id);
    write_byte(id)        
    write_string(message);
    message_end();    
}

Team_Info(id, type, team[]){
    message_begin(type, 86, _, id);
    write_byte(id);
    write_string(team);
    message_end();
    return 1;
}

ColorSelection(index, type, Color:Type){
    switch(Type)    {
        case RED:        {
            return Team_Info(index, type, TeamName[1]);
        }
        case BLUE:        {
            return Team_Info(index, type, TeamName[2]);
        }
        case GREY:        {
            return Team_Info(index, type, TeamName[0]);
        }
    }
    return 0;
}

FindPlayer(){
    new i = -1;
    while(i <= MAXSLOTS){
        if(is_user_connected(++i)){
            return i;
        }
    }

    return -1;
}
kyriuch 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 05:47.


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