I can't seem to find a way to do this simply - or find a nice function.
Let's say I have a super intelligent hamster in my packpack and now and again I'd like him to contribute some witticism. I'd like the hamster to speak in say Red to differenciate from the main characters text!
Or say if I wanted the character to use green text when the aliens from planet X are talking through him.
So I want the text to appear to be coming from the same character but different colours. And I'd like to be able to write my conversation scripts as simply as possible!
You'll have to use SetTalkingColor (CHARID, int newcolor) to change the colour, then use it again afterwards to set it back to the orinial colour. 'newcolor' is the palette index of the colour, just like you set it on the 'Character' window, so something like:
//Suppose EGO's normal speech colour is Blue (slot 1)
DisplaySpeech (EGO, "I think I'm ready. How about you, Backpack Hamster?";
SetTalkingColor (EGO, 12); // Set colour to Red
DisplaySpeech (EGO, "Ready to roll.";
SetTalkingColor (EGO, 1); // Back to Blue
DisplaySpeech (EGO, "And you, Aliens from the Planet X?";
SetTalkingColor (EGO, 10); // Set colour to Green
DisplaySpeech (EGO, "Just go, already!";
SetTalkingColor (EGO, 1); // Back to Blue
DisplaySpeech (EGO, "Alrighty, then. Let's go!";
NITE: If you're using 2.7, it's character.SpeechColor you want, e.g. character[EGO].SpeechColor = 12; will set it to Red.
To simplify it further, you could create a function that takes care of the colour changes for you. That might only be worth doing if you intend to use the other colours a lot, though.