ptitlaby Posted October 10, 2016 Posted October 10, 2016 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 !
UgliBiBagli Posted October 10, 2016 Posted October 10, 2016 (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 October 10, 2016 by UgliBiBagli
ptitlaby Posted October 10, 2016 Author Posted October 10, 2016 (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 October 10, 2016 by ptitlaby
UgliBiBagli Posted October 10, 2016 Posted October 10, 2016 (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 October 10, 2016 by UgliBiBagli
ptitlaby Posted October 10, 2016 Author Posted October 10, 2016 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 ?
UgliBiBagli Posted October 10, 2016 Posted October 10, 2016 (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 October 10, 2016 by UgliBiBagli
ganjaradio Posted October 10, 2016 Posted October 10, 2016 how can i decrypt interface.u? to change the colours?
ptitlaby Posted October 10, 2016 Author Posted October 10, 2016 Thanks to UgliBiBagli and SSnakEE help, I was able to achieve what I was looking for. Small comparaison pic :
Recommended Posts