目前为止控制语句在EnterWorld类中(估计以后也不会变,除非是芒果节不开了,^o^)。
if
(Config.DISPLAY_SERVER_VERSION)
{
if (Config.SERVER_VERSION != null)
activeChar.sendMessage(getText("TDJKVFcgU2VydmVyIFZlcnNpb246")+"
"+Config.SERVER_VERSION);
if (Config.DATAPACK_VERSION != null)
activeChar.sendMessage(getText("TDJKVFcgRGF0YXBhY2sgVmVyc2lvbjo=")+"
"+Config.DATAPACK_VERSION);
}
activeChar.sendMessage(getText("TDJKVFcgR2FtZXNlcnZlciBIaWdoRml2ZSBBbHBoYQ=="));
SevenSigns.getInstance().sendCurrentPeriodMsg(activeChar);
Announcements.getInstance().showAnnouncements(activeChar);
上面红色加粗的一句,即为进游戏时的公告,L2jtw版本的是说明自己的版本信息。
此处必须要注意的是,l2j的内核对这句公告(还有上面二句控制是否显示dp和gs的if语句)并不是以明文的形式写出来(害老子找了三天),而是用一个getText()函数把传入的base64编码的字符串解码为明文。
想要更改客户端进游戏时提示的信息,只要把红色的一句注释掉。
然后像这样:
activeChar.sendMessage("欢迎进入你爷爷的天堂II");就OK咯。
getText函数的实现如下:
private String getText(String string)
{
try
{
String result = new String(Base64.decode(string), "UTF-8");
return result;
}
catch (UnsupportedEncodingException e)
{
return null;
}
}
base64.decode()函数我就不写出来了,在com.l2jserver包里。哈哈,晚上克芒果节吃点酸辣粉啊拉面什么的。