Сообщений: 577
Тем: 41
Зарегистрирован: Nov 2012
Репутация:
1,886
08-24-2014, 01:39 PM
(Сообщение последний раз редактировалось: 08-24-2014, 02:53 PM Main.)
Все добрый день.
Необходимо добавить новое системное сообщение в игре. (systemmsg-e.dat)
Новое - не существующие!
У меня нету исходников, если бы они были - я не создавал бы тему!
Обычным способом:
Код: SystemMessage message = new SystemMessage(sys_msg);
и
Код: player.sendPacket(message.addNumber(time));
Всё прекрасно работает.
Но в ГС очень мозолит глаза варнинг с:
Код: SystemMessage message = new SystemMessage(sys_msg);
The constructor SystemMessage(int) is deprecated
В гугле всё про Date и Calendar.
Но для меседжа я не нашел отдельного класса...
Возможно кто-то знает чем можно заменить new, чтоб не было варнинга?
Сообщений: 2,101
Тем: 40
Зарегистрирован: Apr 2008
Репутация:
12,296
Возможно ![Smile Smile](https://forum.zone-game.info/images/smilies/smile.png) Либо удалить @Deprecated аннотацию с метода, либо использовать конструкцию такого типа(возможно, т.к не знаю что за сурс вообще, и зачем объявили устаревшей данный конструктор):
player.sendPacket(new SystemMessage( SystemMessage.LOLOLO).addNumber(time));
Сообщений: 577
Тем: 41
Зарегистрирован: Nov 2012
Репутация:
1,886
KilRoy Написал:Возможно Либо удалить @Deprecated аннотацию с метода, либо использовать конструкцию такого типа(возможно, т.к не знаю что за сурс вообще, и зачем объявили устаревшей данный конструктор):
player.sendPacket(new SystemMessage(SystemMessage.LOLOLO).addNumber(time)); Тут оно существующий возьмёт, а нужно новый добавить, который я внес в systemmsg-e.dat (у меня нету исходников чтоб добавить туда)
Сурс на основе L2RT, хотя все SystemMessage похожи как две капли воды.
Сообщений: 2,101
Тем: 40
Зарегистрирован: Apr 2008
Репутация:
12,296
Ну сами думаем, как мы можем что-то делать, не имея сурсов ![Smile Smile](https://forum.zone-game.info/images/smilies/smile.png) ?
Можно конечно добавить, без проблем и в готовый класс, почитав всего лишь про ClassFileTransformer и Instrumentation.
Сообщений: 577
Тем: 41
Зарегистрирован: Nov 2012
Репутация:
1,886
KilRoy Написал:Ну сами думаем, как мы можем что-то делать, не имея сурсов ?
Можно конечно добавить, без проблем и в готовый класс, почитав всего лишь про ClassFileTransformer и Instrumentation.
http://svn.l2jserver.com/trunk/L2J_Serve...ssage.java
Декомпил:
Код: // Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov Date: 24.08.2014 15:15:28
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3) debugmode
// Source File Name: SystemMessage.java
// Class Version: 50.0
package net.sf.l2j.gameserver.network.serverpackets;
import javolution.util.FastTable;
import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.network.SystemMessageId;
// Referenced classes of package net.sf.l2j.gameserver.network.serverpackets:
// L2GameServerPacket
// flag ACC_SUPER is set
public class SystemMessage extends L2GameServerPacket
{
// Constants: 144
// Interfaces: 0
// Fields: 10
// Methods: 14
// Class Attributes: 1
// Decompiling method: id Signature: (Lnet/sf/l2j/gameserver/network/SystemMessageId;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 3, #locals: 1, #params: 1
// Code length: 9 bytes, Code offset: 2348
// Local Variable Table found: 1 entries
// Line Number Table found: 1 entries
// Parameter 0 added: Name messageId Type Lnet/sf/l2j/gameserver/network/SystemMessageId; At 0 9 Range 0 8 Init 0 fixed
// RetValue 1 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 9 Range 0 8 Init 0 fixed
public static SystemMessage id(SystemMessageId messageId)
{
return new SystemMessage(messageId);
}
// Decompiling method: <init> Signature: (Lnet/sf/l2j/gameserver/network/SystemMessageId;)V
// Max stack: 3, #locals: 2, #params: 2
// Code length: 40 bytes, Code offset: 2413
// Local Variable Table found: 2 entries
// Line Number Table found: 6 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 40 Range 0 39 Init 0 fixed
// Parameter 1 added: Name messageId Type Lnet/sf/l2j/gameserver/network/SystemMessageId; At 0 40 Range 0 39 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type V At 0 40 Range 0 39 Init 0 fixed
public SystemMessage(SystemMessageId messageId)
{
/* super(); */
_types = new FastTable();
_values = new FastTable();
_skillLvL = 1;
_messageId = messageId.getId();
/* return; */
}
// Decompiling method: <init> Signature: (I)V
// Max stack: 3, #locals: 2, #params: 2
// Code length: 37 bytes, Code offset: 2539
// Local Variable Table found: 2 entries
// Line Number Table found: 6 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 37 Range 0 36 Init 0 fixed
// Parameter 1 added: Name messageId Type I At 0 37 Range 0 36 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type V At 0 37 Range 0 36 Init 0 fixed
/**
* @deprecated Method SystemMessage is deprecated
*/
@Deprecated
public SystemMessage(int messageId)
{
/* super(); */
_types = new FastTable();
_values = new FastTable();
_skillLvL = 1;
_messageId = messageId;
/* return; */
}
// Decompiling method: sendString Signature: (Ljava/lang/String;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 2, #locals: 1, #params: 1
// Code length: 11 bytes, Code offset: 2680
// Local Variable Table found: 1 entries
// Line Number Table found: 1 entries
// Parameter 0 added: Name msg Type Ljava/lang/String; At 0 11 Range 0 10 Init 0 fixed
// RetValue 1 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 11 Range 0 10 Init 0 fixed
public static SystemMessage sendString(String msg)
{
return id(SystemMessageId.S1_S2).addString(msg);
}
// Decompiling method: addString Signature: (Ljava/lang/String;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 2, #locals: 2, #params: 2
// Code length: 23 bytes, Code offset: 2747
// Local Variable Table found: 2 entries
// Line Number Table found: 3 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 23 Range 0 22 Init 0 fixed
// Parameter 1 added: Name text Type Ljava/lang/String; At 0 23 Range 0 22 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 23 Range 0 22 Init 0 fixed
public SystemMessage addString(String text)
{
_types.add(Integer.valueOf(0));
_values.add(text);
return this;
}
// Decompiling method: addNumber Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 2, #locals: 2, #params: 2
// Code length: 26 bytes, Code offset: 2844
// Local Variable Table found: 2 entries
// Line Number Table found: 3 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
// Parameter 1 added: Name number Type I At 0 26 Range 0 25 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
public SystemMessage addNumber(int number)
{
_types.add(Integer.valueOf(1));
_values.add(Integer.valueOf(number));
return this;
}
// Decompiling method: addNpcName Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 3, #locals: 2, #params: 2
// Code length: 29 bytes, Code offset: 2944
// Local Variable Table found: 2 entries
// Line Number Table found: 3 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 29 Range 0 28 Init 0 fixed
// Parameter 1 added: Name id Type I At 0 29 Range 0 28 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 29 Range 0 28 Init 0 fixed
public SystemMessage addNpcName(int id)
{
_types.add(Integer.valueOf(2));
_values.add(Integer.valueOf(0xf4240 + id));
return this;
}
// Decompiling method: addItemName Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 2, #locals: 2, #params: 2
// Code length: 26 bytes, Code offset: 3047
// Local Variable Table found: 2 entries
// Line Number Table found: 3 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
// Parameter 1 added: Name id Type I At 0 26 Range 0 25 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 26 Range 0 25 Init 0 fixed
public SystemMessage addItemName(int id)
{
_types.add(Integer.valueOf(3));
_values.add(Integer.valueOf(id));
return this;
}
// Decompiling method: addZoneName Signature: (III)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 4, #locals: 5, #params: 4
// Code length: 42 bytes, Code offset: 3147
// Local Variable Table found: 5 entries
// Line Number Table found: 4 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 42 Range 0 41 Init 0 fixed
// Parameter 1 added: Name x Type I At 0 42 Range 0 41 Init 0 fixed
// Parameter 2 added: Name y Type I At 0 42 Range 0 41 Init 0 fixed
// Parameter 3 added: Name z Type I At 0 42 Range 0 41 Init 0 fixed
// RetValue 5 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 42 Range 0 41 Init 0 fixed
// LocalVar 4 added: Name coord Type [I At 28 8 Range 28 35 Init 28 fixed
public SystemMessage addZoneName(int x, int y, int z)
{
_types.add(Integer.valueOf(7));
int coord[] = {
x, y, z
};
_values.add(coord);
return this;
}
// Decompiling method: addSkillName Signature: (I)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 3, #locals: 2, #params: 2
// Code length: 7 bytes, Code offset: 3297
// Local Variable Table found: 2 entries
// Line Number Table found: 1 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 7 Range 0 6 Init 0 fixed
// Parameter 1 added: Name id Type I At 0 7 Range 0 6 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 7 Range 0 6 Init 0 fixed
public SystemMessage addSkillName(int id)
{
return addSkillName(id, 1);
}
// Decompiling method: addSkillName Signature: (Lnet/sf/l2j/gameserver/model/L2Skill;)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 3, #locals: 2, #params: 2
// Code length: 10 bytes, Code offset: 3370
// Local Variable Table found: 2 entries
// Line Number Table found: 1 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 10 Range 0 9 Init 0 fixed
// Parameter 1 added: Name skill Type Lnet/sf/l2j/gameserver/model/L2Skill; At 0 10 Range 0 9 Init 0 fixed
// RetValue 2 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 10 Range 0 9 Init 0 fixed
public SystemMessage addSkillName(L2Skill skill)
{
return addSkillName(skill.getId(), 1);
}
// Decompiling method: addSkillName Signature: (II)Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage;
// Max stack: 2, #locals: 3, #params: 3
// Code length: 31 bytes, Code offset: 3446
// Local Variable Table found: 3 entries
// Line Number Table found: 4 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 31 Range 0 30 Init 0 fixed
// Parameter 1 added: Name id Type I At 0 31 Range 0 30 Init 0 fixed
// Parameter 2 added: Name lvl Type I At 0 31 Range 0 30 Init 0 fixed
// RetValue 3 added: Name <returnValue> Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 31 Range 0 30 Init 0 fixed
public SystemMessage addSkillName(int id, int lvl)
{
_types.add(Integer.valueOf(4));
_values.add(Integer.valueOf(id));
_skillLvL = lvl;
return this;
}
// Decompiling method: writeImpl Signature: ()V
// Max stack: 3, #locals: 6, #params: 1
// Code length: 256 bytes, Code offset: 3565
// Local Variable Table found: 8 entries
// Line Number Table found: 25 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 256 Range 0 255 Init 0 fixed
// RetValue 6 added: Name <returnValue> Type V At 0 256 Range 0 255 Init 0 fixed
// LocalVar 1 added: Name i Type I At 26 226 Range 26 251 Init 26 fixed
// LocalVar 2 added: Name t Type I At 52 7 Range 52 58 Init 52 fixed
// LocalVar 3 added: Name t1 Type I At 136 3 Range 136 138 Init 136 fixed
// LocalVar 3 added: Name t1 Type I At 159 3 Range 159 161 Init 159 fixed
// LocalVar 3 added: Name t1 Type I At 192 39 Range 192 230 Init 192 fixed
// LocalVar 4 added: Name t2 Type I At 209 28 Range 209 236 Init 209 fixed
// LocalVar 5 added: Name t3 Type I At 227 16 Range 227 242 Init 227 fixed
protected final void writeImpl()
{
writeC(100);
writeD(_messageId);
writeD(_types.size());
for(int i = 0; i < _types.size(); i++)
{
int t = ((Integer)_types.get(i)).intValue();
writeD(t);
switch(t)
{
case 0: // '\0'
{
writeS((String)_values.get(i));
break;
}
case 1: // '\001'
case 2: // '\002'
case 3: // '\003'
{
int t1 = ((Integer)_values.get(i)).intValue();
writeD(t1);
break;
}
case 4: // '\004'
{
int t1 = ((Integer)_values.get(i)).intValue();
writeD(t1);
writeD(_skillLvL);
break;
}
case 7: // '\007'
{
int t1 = ((int[])(int[])_values.get(i))[0];
int t2 = ((int[])(int[])_values.get(i))[1];
int t3 = ((int[])(int[])_values.get(i))[2];
writeD(t1);
writeD(t2);
writeD(t3);
break;
}
}
}
/* return; */
}
// Decompiling method: getMessageID Signature: ()I
// Max stack: 1, #locals: 1, #params: 1
// Code length: 5 bytes, Code offset: 4068
// Local Variable Table found: 1 entries
// Line Number Table found: 1 entries
// Parameter 0 added: Name this Type Lnet/sf/l2j/gameserver/network/serverpackets/SystemMessage; At 0 5 Range 0 4 Init 0 fixed
// RetValue 1 added: Name <returnValue> Type I At 0 5 Range 0 4 Init 0 fixed
public int getMessageID()
{
return _messageId;
}
private static final int TYPE_ZONE_NAME = 7;
private static final int TYPE_SKILL_NAME = 4;
private static final int TYPE_ITEM_NAME = 3;
private static final int TYPE_NPC_NAME = 2;
private static final int TYPE_NUMBER = 1;
private static final int TYPE_TEXT = 0;
private int _messageId;
private FastTable _types;
private FastTable _values;
private int _skillLvL;
}
Сообщений: 2,101
Тем: 40
Зарегистрирован: Apr 2008
Репутация:
12,296
Сообщений: 577
Тем: 41
Зарегистрирован: Nov 2012
Репутация:
1,886
KilRoy Написал:http://svn.l2jserver.com/trunk/L2J_Serve...ageId.java ????
Еще раз повторяю: мне нужно добавить НОВЫЙ ID, не взять СУЩЕСТВУЮЩИЙ.
Сообщений: 2,454
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
Main Написал:????
Еще раз повторяю: мне нужно добавить НОВЫЙ ID, не взять СУЩЕСТВУЮЩИЙ.
Так в чем проблема? Добавляйте туда, исходник почти такой же Вам скинули. Или мы за Вас должны это делать? - Это не тот форум, если Вы думаете так.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Сообщений: 577
Тем: 41
Зарегистрирован: Nov 2012
Репутация:
1,886
Pointer*Rage Написал:Так в чем проблема? Добавляйте туда, исходник почти такой же Вам скинули. Или мы за Вас должны это делать? - Это не тот форум, если Вы думаете так. :facepalm:
Нету исходника, ну я же выше написал всё.
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
Main Написал::facepalm:
Нету исходника, ну я же выше написал всё.
а кто мешает скомпилить всего один файл? Это вполне возможно, просто в либы нужно поместить ядро, а потом через архиватор(winrar\7zip) заменить файл класс.
|