Jump to content

Recommended Posts

Posted

Hello there,

 

I want to change the default chat color for an interlude client, especially the one for private message. Current pink is just too ugly and hard to read.

 

I believe I'll have to edit the file Interface.u. I found an example in the scripts from High Five interface.u, especially in UICommonApi.ScriptText.uc

// Chat Color
/*
function Color GetChatColorByType( EChatType a_Type )
{
local Color ResultColor;
 
ResultColor.A = 255;
 
switch( a_Type )
{
case CHAT_NORMAL:
case CHAT_PARTY_ROOM_CHAT :
case CHAT_USER_PET : // '^' 
ResultColor.R = 220;
ResultColor.G = 220;
ResultColor.B = 220;
break;
case CHAT_SHOUT: // '!'
case CHAT_CUSTOM :
ResultColor.R = 255;
ResultColor.G = 114;
ResultColor.B = 0;
break;
case CHAT_TELL: // ' " '
ResultColor.R = 255;
ResultColor.G = 0;
ResultColor.B = 255;
break;
case CHAT_PARTY: // '#'
ResultColor.R = 0;
ResultColor.G = 255;
ResultColor.B = 0;
break;
case CHAT_CLAN: // '@'
ResultColor.R = 125;
ResultColor.G = 119;
ResultColor.B = 255;
break;
case CHAT_SYSTEM :   // ''
ResultColor.R = 176;
ResultColor.G = 155;
ResultColor.B = 121;
break;
case CHAT_GM_PET : // '&' 
case CHAT_ANNOUNCE :
ResultColor.R = 128;
ResultColor.G = 255;
ResultColor.B = 255;
break;
case CHAT_MARKET: // '+'
ResultColor.R = 234;
ResultColor.G = 165;
ResultColor.B = 245;
break;
case CHAT_ALLIANCE: // '%' 
ResultColor.R = 119;
ResultColor.G = 255;
ResultColor.B = 153;
break;
case CHAT_COMMANDER_CHAT :
case CHAT_SCREEN_ANNOUNCE :
ResultColor.R = 255;
ResultColor.G = 150;
ResultColor.B = 149;
break;
case CHAT_INTER_PARTYMASTER_CHAT :
ResultColor.R = 255;
ResultColor.G = 248;
ResultColor.B = 178;
break;
case CHAT_CRITICAL_ANNOUNCE :
ResultColor.R = 0;
ResultColor.G = 255;
ResultColor.B = 255;
break;
case CHAT_HERO :
ResultColor.R = 64;
ResultColor.G = 140;
ResultColor.B = 255;
break;
}
 
return ResultColor;
}
*/

I am looking for something similar in the interlude version. Any pointer would be appreciated. Thanks !

Posted (edited)

interlude passes the color values in the parameter along with the text itself and chattype - so you can simply omit read of those colors from the paramater received and assign whatever color you like basing on the chattype

Edited by UgliBiBagli
Posted (edited)

I saw this function :

function HandleChatmessage (string param)
{
  local int nTmp;
  local EChatType Type;
  local ESystemMsgType systemType;
  local string Text;
  local Color Color;
 
  ParseInt(param,"Type",nTmp);
  Type = nTmp;
  ParseString(param,"Msg",Text);
  ParseInt(param,"ColorR",nTmp);
  Color.R = nTmp;
  ParseInt(param,"ColorG",nTmp);
  Color.G = nTmp;
  ParseInt(param,"ColorB",nTmp);
  Color.B = nTmp;
  Color.A = 255;
  if ( Type == 5 )
  {
    ParseInt(param,"SysType",nTmp);
    systemType = nTmp;
  } else {
    systemType = 0;
  }
  if ( CheckFilter(Type,0,systemType) )
  {
    NormalChat.AddString(Text,Color);
  }
  if ( CheckFilter(Type,2,systemType) )
  {
    PartyChat.AddString(Text,Color);
  }
  if ( CheckFilter(Type,3,systemType) )
  {
    ClanChat.AddString(Text,Color);
  }
  if ( CheckFilter(Type,1,systemType) )
  {
    TradeChat.AddString(Text,Color);
  }
  if ( CheckFilter(Type,4,systemType) )
  {
    AllyChat.AddString(Text,Color);
  }
  if ( CheckFilter(Type,5,systemType) )
  {
    SystemMsg.AddString(Text,Color);
  }
  if ( (Type == 15) && (m_NoUnionCommanderMessage == 0) )
  {
    ShowUnionCommanderMessgage(Text);
  }
}

Is this the one you were thinking about ?

 

Since the private message color is the only one without any green in it, I could indeed add something like :

if ( Color.G == 0 )
  {
    Color.G = 115;
  }

This will be a major pain in the as$ to do it in hexa tho ><

Edited by ptitlaby
Posted (edited)

and this is exactly what i was talking about xd

 

omit parsing color values from the parameter received and assign your own values basing on the chattype

Edited by UgliBiBagli
Posted

and this is exactly what i was talking about xd

 

omit parsing color values from the parameter received and assign your own values basing on the chattype

Thank you for the details ! I am not sure I have all ChatType values, I can probably try to do something with CHAT_TELL

 

I will prolly try to edit the hexadecimal values directly such as explained in this guide. Is there any other way to do it ?

Posted (edited)

why did half of my post get eaten? ;_;

 

if you want to change the color for only one type, then you should let it always parse color values (so assigned colors are ok for every chat type) and overwrite color only if type == chat_tell

 

heres the enum of all chat types

enum EChatType {
CHAT_NORMAL,
CHAT_SHOUT,
CHAT_TELL,
CHAT_PARTY,
CHAT_CLAN,
CHAT_SYSTEM,
CHAT_USER_PET,
CHAT_GM_PET,
CHAT_MARKET,
CHAT_ALLIANCE,
CHAT_ANNOUNCE,
CHAT_CUSTOM,
CHAT_L2_FRIEND,
CHAT_MSN_CHAT,
CHAT_PARTY_ROOM_CHAT,
CHAT_COMMANDER_CHAT,
CHAT_INTER_PARTYMASTER_CHAT,
CHAT_HERO,
CHAT_CRITICAL_ANNOUNCE
};

also let me know about the outcome you achieve : )

Edited by UgliBiBagli
Guest
This topic is now closed to further replies.


×
×
  • Create New...