Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
12-10-2014, 09:40 PM
(Сообщение последний раз редактировалось: 12-10-2014, 09:59 PM elastic.)
Mifesto Написал:опкоды достать не проблема, вот структуру будет проблематичнее... По логике, разница между 575 и 558 должна быть маленькой. В дампе нашел все инфо пакеты эпизода.
Добавлено через 1 минуту
Influence Написал:l2format
info
под прелюд пакеты не найдешь ? тогда на помошь может прийти l2format
форматы хранятся в энджин или если есть нетворк (ц0-ц1) дллках
в случае если энджин является пакнутым, пакеты можно получить с процесса (достаточно просто запустить клиент до лобби без гг). любая защита и менеджеры игр должны быть выключены. в любом случае всегда есть шанс что забанят.
работает с ц0 до эпейсодиона
- что бы аварийно остановить программу жмите эскейп (нельзя при генерации с процесса!)
- если залагало перетягивание мышкой жмите эскейп
- имена пакетов опкоды и форматы могут быть с ошибками
- если опкод выходит за свои естественные пределы, это означает что в пакете участвуют в начале пакета неизменяемые данные, что тоже можно считать опкодом, проверяя по формату
- пробел в формате означает что было какое то разделение при сборке. блок формата может быть зациклен. так же мог быть схвачен формат следующего по коду пакета (или его модицикации, под одним опкодом может быть несколько пакетов с разным действием)
- в пакетах могут быть пакеты не относящиеся к гс (лс и тд)
by 01000000
если есть 558 систем, то можно быстро вытянуть все что нужно Спасибо:redlol:
Добавлено через 2 минуты
silvermain Написал:к сожелению запылились только 575 протокола Да 575 у меня есть, и 603 есть и, даже, я отдельно копировал свои сорцы и делал вход с клиента эртеи\эпизода.
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
Influence, в обсчем, посмотрел я сервер, везде правильно QuestList отправляется.... и всё равно, если я беру квест, он пустой (хотя сервер говорит что квест взял) и нету стрелки ведущей к цели=(((
Сообщений: 666
Тем: 15
Зарегистрирован: Aug 2014
Репутация:
1,790
silvermain Написал:Influence, в обсчем, посмотрел я сервер, везде правильно QuestList отправляется.... и всё равно, если я беру квест, он пустой (хотя сервер говорит что квест взял) и нету стрелки ведущей к цели=(((
Завтра поставлю эртею и гляну что там, сегодня времени нет
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
так всё же, кто - нибудь поможет с квест листом и стрелкой?+)))) юзаю l2jserver на протоколе 603
Сообщений: 666
Тем: 15
Зарегистрирован: Aug 2014
Репутация:
1,790
silvermain Написал:так всё же, кто - нибудь поможет с квест листом и стрелкой?+)))) юзаю l2jserver на протоколе 603
Ну протестил чуть чуть, правда сборка годворлд, но как я понял, пакет на стрелку это ExShowQuestMark, вот какие пакеты идут во время взятия квеста, и появления стрелки Код: [S] QuestList
[S] QuestList
[S] ExShowQuestMark
[S] PlaySound
[S] ExNpcQuestHtmlMessage
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
Influence Написал:Ну протестил чуть чуть, правда сборка годворлд, но как я понял, пакет на стрелку это ExShowQuestMark, вот какие пакеты идут во время взятия квеста, и появления стрелки Код: [S] QuestList
[S] QuestList
[S] ExShowQuestMark
[S] PlaySound
[S] ExNpcQuestHtmlMessage
с отправкой всё нормально, структуру знать бы....
Сообщений: 666
Тем: 15
Зарегистрирован: Aug 2014
Репутация:
1,790
silvermain Написал:с отправкой всё нормально, структуру знать бы....
1
Код: public class ExShowQuestMark
extends L2GameServerPacket
{
private int _questId;
private int _cond;
public ExShowQuestMark(int questId, int cond)
{
this._questId = questId;
this._cond = cond;
}
protected void writeImpl()
{
writeD(this._questId);
writeD(this._cond);
}
}
2
Код: public class QuestList
extends L2GameServerPacket
{
private Quest[] _quests;
private L2PcInstance _activeChar;
public void runImpl()
{
if ((getClient() != null) && (((L2GameClient)getClient()).getActiveChar() != null))
{
this._activeChar = ((L2GameClient)getClient()).getActiveChar();
this._quests = this._activeChar.getAllActiveQuests();
}
}
protected void writeImpl()
{
if (this._quests != null)
{
writeH(this._quests.length);
for (Quest q : this._quests)
{
writeD(q.getQuestId());
QuestState qs = this._activeChar.getQuestState(q.getName());
if (qs == null)
{
writeD(0);
}
else
{
int states = qs.getInt("__compltdStateFlags");
if (states == 0) {
writeD(qs.getInt("cond"));
} else {
writeD(states);
}
}
}
}
else
{
writeH(0);
writeH(0);
}
}
}
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
Influence Написал:
1
Код: public class ExShowQuestMark
extends L2GameServerPacket
{
private int _questId;
private int _cond;
public ExShowQuestMark(int questId, int cond)
{
this._questId = questId;
this._cond = cond;
}
protected void writeImpl()
{
writeD(this._questId);
writeD(this._cond);
}
}
2
Код: public class QuestList
extends L2GameServerPacket
{
private Quest[] _quests;
private L2PcInstance _activeChar;
public void runImpl()
{
if ((getClient() != null) && (((L2GameClient)getClient()).getActiveChar() != null))
{
this._activeChar = ((L2GameClient)getClient()).getActiveChar();
this._quests = this._activeChar.getAllActiveQuests();
}
}
protected void writeImpl()
{
if (this._quests != null)
{
writeH(this._quests.length);
for (Quest q : this._quests)
{
writeD(q.getQuestId());
QuestState qs = this._activeChar.getQuestState(q.getName());
if (qs == null)
{
writeD(0);
}
else
{
int states = qs.getInt("__compltdStateFlags");
if (states == 0) {
writeD(qs.getInt("cond"));
} else {
writeD(states);
}
}
}
}
else
{
writeH(0);
writeH(0);
}
}
}
костыль на костыле=) ну да ладно, неа, всё равно нет ни одного, ни другого...=(((
Сообщений: 666
Тем: 15
Зарегистрирован: Aug 2014
Репутация:
1,790
silvermain Написал:костыль на костыле=) ну да ладно, неа, всё равно нет ни одного, ни другого...=(((
ну дык это дернул из декомпила, где работает
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
Influence Написал:ну дык это дернул из декомпила, где работает
хм.... сейчас попробую заново пакеты переписать, видать я где-то накосячил....
|