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.


  • Posts

    • Both are in-game bots. I'm looking for an out-of-game bot ((one that doesn’t require the L2 client).     Hmm, never heard about this bot. Will check, thank you
    • 🎉 L2Mid is back! After a 3-year pause, we’re launching a new Interlude server based on the original Interlude client (old school 😉).   What to expect • The classic Interlude spirit • Old friends, rival clans, and returning legends • A season focused on pure nostalgia   This may be our final Interlude server. (maybe 😉) 🗓️ Opening: December 5, 2025 at 20:00 (GMT+2)   https://l2mid.com
    • Hello, i was wondering if there's a guide on how to add the enchanting armor glow system from  Ertheia or Lindvior to hi5?
    • I imported this file using Unreal Engine 2 Runtime, modified it, saved it back, and then placed it on the client. When I run the game and wear this back accessory, the client crashes!     2025.10.28 03:52:59 OS : Windows XP 5.1 (Build: 2600) CPU : GenuineIntel  Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz @ 3697 MHz 1023MB RAM Video : NVIDIA GeForce GT 730 (3064) PosCode : TS4(273) -119:-62:-1474 4/1 [0] SkeletalMesh MFighter_Fuckl2jangel.MFighter_Fuckl2jangel: Serial size mismatch: Got 383399, Expected 383403 History: LoadObject <- (SkeletalMesh MFighter_Fuckl2jangel.MFighter_Fuckl2jangel 8376427==8376427/8376498 7993028 383403) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- (Engine.Mesh MFighter_Fuckl2jangel.MFighter_Fuckl2jangel NULL) <- UMeshComponent::LoadMeshComponent <- UMeshContainer::UpdateMeshComponents <- APawn::UpdateMeshComponents <- User::UpdatePawnMeshContainerByItem <- User::UpdatePawnMeshContainer <- User::SetPawnResource <- NCPawnView_InvenItemWnd::OnRButtonDown <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::DispatchWndMsg <- NConsoleWnd::MasterConsoleEventProcess <- UEngine::InputEvent <- UWindowsViewport::CauseInputEvent <- UWindowsViewport::UpdateInput <- UViewport::ReadInput <- APlayerController::Tick <- ALineagePlayerController::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- UMasterLevel::Tick <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop   I don't know what the reason is. Can you help me?
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock