KAGEXには既読テキストと未読テキストで色を変える機能がありません。少しtjsで書き換えるだけで簡単に実現できます。
書き換えるのはMessageLayer.tjsの2476行目です。drawTextToLayerでテキストを描画していますが、chColorが色の設定です。ルビがある場合は2497行目でまたdrawTextToLayerを使って描画しています。この2箇所を適当に書き換えればいいです。
[tjs title=”MessageLayer.tjs” firstline=”2476″]
drawTextToLayer(ll, dx, dy, ch, chColor);
if(currentRuby != "")
{
// ルビがある
var cw = llfont.getTextWidth(ch);
var orgsize = llfont.height;
llfont.height = rubySize;
var rw = llfont.getTextWidth(currentRuby);
var rx,ry;
if(!vert)
{
rx = int(dx + (cw>>1) – (rw>>1));
ry = int(dy – rubySize – rubyOffset);
}
else
{
rx = int(dx + rubySize + rubyOffset);
ry = int(dy + (cw>>1) – (rw>>1));
}
drawTextToLayer(ll, rx, ry, currentRuby, chColor);
llfont.height = orgsize;
currentRuby = ”;
}
[/tjs]
既読かどうかはkag.getCurrentRead()でわかります。現在のテキストが既読ならtrue、未読ならfalseになります。以下では既読なら色を0xFF0000、未読ならchColorそのままになるように変更しました。
[tjs title=”MessageLayer.tjs” firstline=”2476″]
if (kag.getCurrentRead()) {
drawTextToLayer(ll, dx, dy, ch, 0xFF0000);
} else {
drawTextToLayer(ll, dx, dy, ch, chColor);
}
if(currentRuby != "")
{
// ルビがある
var cw = llfont.getTextWidth(ch);
var orgsize = llfont.height;
llfont.height = rubySize;
var rw = llfont.getTextWidth(currentRuby);
var rx,ry;
if(!vert)
{
rx = int(dx + (cw>>1) – (rw>>1));
ry = int(dy – rubySize – rubyOffset);
}
else
{
rx = int(dx + rubySize + rubyOffset);
ry = int(dy + (cw>>1) – (rw>>1));
}
if (kag.getCurrentRead()) {
drawTextToLayer(ll, dx, dy, ch, 0xFF0000);
} else {
drawTextToLayer(ll, dx, dy, ch, chColor);
}
llfont.height = orgsize;
currentRuby = ”;
}
[/tjs]