Hey,
Few years ago i played at a server where those characters worked. I didn’t find the server anymore for ripping the pk3 files :D.
In Finland we use those letters a lot and its stupid to replace them with A or O…
If i say “hyvää päivää” it will look like this “hyv… p.i…”. It means “good day”.
I tried to change the chat font to Tahoma what has all those letters but it didnt help.
So what file i have to modify? Does ET block foreign characters?
My server is using the TC:E mod what is not open source so i cannot edit cgame_mp_x86.dll or ui_mp_x86.dll.
Ä, ä, Ö and ö… i need them for talking…
This is the code what “says” in the game:
void G_Say( gentity_t *ent, gentity_t *target, int mode, const char *chatText ) {
int j;
gentity_t *other;
int color;
char name[64];
// don't let text be too long for malicious reasons
char text[MAX_SAY_TEXT];
qboolean localize = qfalse;
char *loc;
switch ( mode ) {
default:
case SAY_ALL:
G_LogPrintf( "say: %s: %s
", ent->client->pers.netname, chatText );
Com_sprintf (name, sizeof(name), "%s%c%c: ", ent->client->pers.netname, Q_COLOR_ESCAPE, COLOR_WHITE );
color = COLOR_GREEN;
break;
case SAY_BUDDY:
localize = qtrue;
G_LogPrintf( "saybuddy: %s: %s
", ent->client->pers.netname, chatText );
loc = BG_GetLocationString( ent->r.currentOrigin );
Com_sprintf (name, sizeof(name), "[lof](%s%c%c) (%s): ", ent->client->pers.netname, Q_COLOR_ESCAPE, COLOR_WHITE, loc);
color = COLOR_YELLOW;
break;
case SAY_TEAM:
localize = qtrue;
G_LogPrintf( "sayteam: %s: %s
", ent->client->pers.netname, chatText );
loc = BG_GetLocationString( ent->r.currentOrigin );
Com_sprintf (name, sizeof(name), "[lof](%s%c%c) (%s): ", ent->client->pers.netname, Q_COLOR_ESCAPE, COLOR_WHITE, loc);
color = COLOR_CYAN;
break;
case SAY_TEAMNL:
G_LogPrintf( "sayteamnl: %s: %s
", ent->client->pers.netname, chatText );
Com_sprintf (name, sizeof(name), "(%s^7): ", ent->client->pers.netname);
color = COLOR_CYAN;
break;
}
Q_strncpyz( text, chatText, sizeof(text) );
if ( target ) {
if( !COM_BitCheck( target->client->sess.ignoreClients, ent - g_entities ) ) {
G_SayTo( ent, target, mode, color, name, text, localize );
}
return;
}
// echo the text to the console
if ( g_dedicated.integer ) {
G_Printf( "%s%s
", name, text);
}
// send it to all the apropriate clients
for(j=0; j<level.numConnectedClients; j++) {
other = &g_entities[level.sortedClients[j]];
if( !COM_BitCheck( other->client->sess.ignoreClients, ent - g_entities ) ) {
G_SayTo( ent, other, mode, color, name, text, localize );
}
}
}
And this is the one what calls it:
void Cmd_Say_f( gentity_t *ent, int mode, qboolean arg0 )
{
if(trap_Argc() < 2 && !arg0) return;
G_Say(ent, NULL, mode, ConcatArgs(((arg0) ? 0 : 1)));
}
