Pārlūkot izejas kodu

ExShowScreenMessage packet update. Thx Kerberos

Gigiikun 16 gadi atpakaļ
vecāks
revīzija
8b7e979db7

+ 45 - 18
L2_GameServer/java/net/sf/l2j/gameserver/network/serverpackets/ExShowScreenMessage.java

@@ -20,19 +20,52 @@ package net.sf.l2j.gameserver.network.serverpackets;
  */
 public class ExShowScreenMessage extends L2GameServerPacket
 {
+	private int _type;
+	private int _sysMessageId;
+	private int _unk1;
+	private int _unk2;
+	private int _unk3;
+	private int _unk4;
+	private int _size;
+	private int _position;
+	private boolean _effect;
 	private String _text;
 	private int _time;
 
 	public ExShowScreenMessage (String text, int time)
 	{
+		_type = 1;
+		_sysMessageId = -1;
+		_unk1 = 0;
+		_unk2 = 0;
+		_unk3 = 0;
+		_unk4 = 0;
+		_position = 0x02;
 		_text = text;
 		_time = time;
+		_size = 0;
+		_effect = false;
 	}
 
+	public ExShowScreenMessage (int type, int messageId, int position, int unk1, int size, int unk2, int unk3,boolean showEffect, int time,int unk4, String text)
+	{
+		_type = type;
+		_sysMessageId = messageId;
+		_unk1 = unk1;
+		_unk2 = unk2;
+		_unk3 = unk3;
+		_unk4 = unk4;
+		_position = position;
+		_text = text;
+		_time = time;
+		_size = size;
+		_effect = showEffect;
+	}
+	
 	@Override
 	public String getType()
 	{
-		return "ExShowScreenMessage";
+		return "[S]FE:39 ExShowScreenMessage";
 	}
 
 	@Override
@@ -40,22 +73,16 @@ public class ExShowScreenMessage extends L2GameServerPacket
 	{
 		writeC(0xfe);
 		writeH(0x39);
-
-		writeD(0x01);
-		writeD(-1);
-		writeD(0x02);
-		writeD(0x00);
-		writeD(0x00);
-		writeD(0x00);
-
-		writeD(0);
-		writeD(0);
-
-		writeD(_time);
-
-		writeD(1);
-
-		writeS(_text);
+		writeD(_type); // 0 - system messages, 1 - your defined text
+		writeD(_sysMessageId); // system message id (_type must be 0 otherwise no effect)
+		writeD(_position); // message position
+		writeD(_unk1); // ?
+		writeD(_size); // font size 0 - normal, 1 - small
+		writeD(_unk2); // ?
+		writeD(_unk3); // ? 
+		writeD(_effect == true ? 1 : 0); // upper effect (0 - disabled, 1 enabled) - _position must be 2 (center) otherwise no effect
+		writeD(_time); // time
+		writeD(_unk4); // ?
+		writeS(_text); // your text (_type must be 1, otherwise no effect)
 	}
-
 }