KAGEX拡張例(既読テキストの色変更)

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]

コメントを残す

メールアドレスが公開されることはありません。