本帖最后由 376455778 于 2020-9-13 13:56 编辑
控制语句在java\com\l2jserver\gameserver\network\clientpackets\EnterWorld.java类中(估计以后也不会变, )。 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包里。
分享:
|