PDA

View Full Version : [JX] Hướng dẫn build lại source JX Win sử dụng được tiếng việt?



thuong10c8
12-07-19, 11:52 PM
Dear All,
Như tiêu đề, mình ngâm cứu source code bắt đầu từ phần gõ tiếng việt, tuy nhiên đã ngâm cứu 2 tuần nay nhưng vẫn chưa thể làm được. Vậy nhờ bác thachlong hay ace nào biết về phần này hướng dẫn mình build từ source phần này với nhé.
Bác thachlong build lại file represent2.dll để hiển thị tiếng việt, mình đã thử nhiều cách nhưng chưa được.
Thanks!

vegeta.songoku
13-07-19, 12:37 AM
Vào file này nè cụ \SwordOnline\Sources\Represent\iRepresent\Font\KFo nt2.cpp function OutputText

chỗ while (nPos < nCount)
{
xuống hàng
xóa hết chỗ này thay bằng
nL = lpByte[nPos++];
DrawCharacter(nX + h, nY, nL, 0, sColor);
if (nL != 0x0a)
{
h += m_nFontHalfWidth[nHalfIndex];
nHalfIndex ^= 1;
}
else
{
h = 0;
nY += m_nOutputHeight;
}
tới đây là hết, tiếp theo là chừa lại từ dòng này:
if (nLineWidth)


Và file này \SwordOnline\Sources\Represent\iRepresent\Font\KFo ntData.cpp function GetCharacterData

Xóa dòng unsigned int uCharIndex = (cFirst - 0x81) * 190 + (cNext - 0x40) - (cNext >> 7);
Thay bằng unsigned int uCharIndex = cFirst;

Xong, build thử represent2.

thuong10c8
13-07-19, 12:57 PM
Vào file này nè cụ \SwordOnline\Sources\Represent\iRepresent\Font\KFo nt2.cpp function OutputText

chỗ while (nPos < nCount)
{
xuống hàng
xóa hết chỗ này thay bằng
nL = lpByte[nPos++];
DrawCharacter(nX + h, nY, nL, 0, sColor);
if (nL != 0x0a)
{
h += m_nFontHalfWidth[nHalfIndex];
nHalfIndex ^= 1;
}
else
{
h = 0;
nY += m_nOutputHeight;
}
tới đây là hết, tiếp theo là chừa lại từ dòng này:
if (nLineWidth)


Và file này \SwordOnline\Sources\Represent\iRepresent\Font\KFo ntData.cpp function GetCharacterData

Xóa dòng unsigned int uCharIndex = (cFirst - 0x81) * 190 + (cNext - 0x40) - (cNext >> 7);
Thay bằng unsigned int uCharIndex = cFirst;

Xong, build thử represent2.

Để mình thử.
Sau khi build xong, mình sử dụng bộ font của VNG cung cấp, sau đó phải việt hóa lại các file sử dụng bộ font TCVN3 như .vntime phải không bạn?