Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
Смотрел тут ролики по убийству линдвиора и заметил что на этапе зарядки генераторов некоторым игрокам около них на экране показывает кнопку, при нажатии на которую как я понял кастуется скилл на генератор.
кто знает, что за пакет и какой структуры используется для показа этой кнопки?
Сообщений: 199
Тем: 0
Зарегистрирован: Jul 2013
Репутация:
348
Gaikotsu Написал:Смотрел тут ролики по убийству линдвиора и заметил что на этапе зарядки генераторов некоторым игрокам около них на экране показывает кнопку, при нажатии на которую как я понял кастуется скилл на генератор.
кто знает, что за пакет и какой структуры используется для показа этой кнопки? ExAbnormalStatusUpdateFromTarget, от номера эффекта зависит, так же как и с комбо скиллами..
Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
Melcor Написал:ExAbnormalStatusUpdateFromTarget, от номера эффекта зависит, так же как и с комбо скиллами.. ошибся ты, этот пакет не при чем - методом тыка выяснил что показывается эта кнопка при помощи пакета ExAlterSkillRequest
Код: package l2p.gameserver.network.serverpackets;
import l2p.gameserver.network.serverpackets.components.Opcode;
public class ExAlterSkillRequest extends L2GameServerPacket
{
private int _id1, _id2, _time;
public ExAlterSkillRequest(int id1, int id2, int time)
{
_id1 = id1;
_id2 = id2;
_time = time;
}
@Override
protected final void writeImpl()
{
writeEx(Opcode.ExAlterSkillRequest);
writeD(_id1); // id скилла, запрос на каст которого будет отправлен при нажатии на кнопку
writeD(_id2); // id скилла, который вызвал показ кнопки
writeD(_time); // время показа кнопки, в секундах
}
}
непосредственно в случае с зарядкой генератора это будет так
Код: player.sendPacket(new ExAlterSkillRequest(15606, 15605, 3));
при нажатии на кнопку от клиента прилетает пакет RequestMagicSkillUse, с запросом скастовать скилл 15606.
Сообщений: 199
Тем: 0
Зарегистрирован: Jul 2013
Репутация:
348
Gaikotsu Написал:ошибся ты, этот пакет не при чем - методом тыка выяснил что показывается эта кнопка при помощи пакета ExAlterSkillRequest
Код: package l2p.gameserver.network.serverpackets;
import l2p.gameserver.network.serverpackets.components.Opcode;
public class ExAlterSkillRequest extends L2GameServerPacket
{
private int _id1, _id2, _time;
public ExAlterSkillRequest(int id1, int id2, int time)
{
_id1 = id1;
_id2 = id2;
_time = time;
}
@Override
protected final void writeImpl()
{
writeEx(Opcode.ExAlterSkillRequest);
writeD(_id1); // id скилла, запрос на каст которого будет отправлен при нажатии на кнопку
writeD(_id2); // id скилла, который вызвал показ кнопки
writeD(_time); // время показа кнопки, в секундах
}
}
непосредственно в случае с зарядкой генератора это будет так
Код: player.sendPacket(new ExAlterSkillRequest(15606, 15605, 3));
при нажатии на кнопку от клиента прилетает пакет RequestMagicSkillUse, с запросом скастовать скилл 15606.
Ну, незнаю, если отослать ExAbnormalStatusUpdateFromTarget
Код: @Override
protected final void writeImpl()
{
writeEx(0xE6);
writeD(_objId);
writeH(_effectArray.length);
for(final Effect temp : _effectArray)
{
final Skill sk = temp.getSkill();
writeD(sk.getDisplayId());
writeH(sk.getDisplayLevel());
writeD(getDisplayTypeOfEffect(sk));
writeD(sk.isToggle() || sk.isFakeToggle());
writeD((temp.getEffector() != null)?temp.getEffector().getObjectId() : 0);
}
}
и указав в getDisplayTypeOfEffect(sk) номер альтер скилла (в данном случае 499) - получится тоже самое.
з.ы. не видел вообще чтобы этот пакет (ExAlterSkillRequest) отсылался.
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
Уважаемые, кто-нибудь сталкивался с проблемой зависания клиента при вызове окна друзьяшек? Мне кажется, изменился какой-то пакет, но я не знаю какой и как. Подскажите, пожалуйста. Протокол 531.
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
elastic Написал:Уважаемые, кто-нибудь сталкивался с проблемой зависания клиента при вызове окна друзьяшек? Мне кажется, изменился какой-то пакет, но я не знаю какой и как. Подскажите, пожалуйста. Протокол 531.
я данный пакет не изменял, и у меня работает без зависаний....
Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
помнится что у меня вроде тоже зависания были после перехода на линдвиор, но вот ща хоть убей не помню что конкретно и в каком пакете я поправил тогда...
и в истории свн посмотреть не могу - это было еще при старом свн, истории от которого не осталось...
Сообщений: 122
Тем: 6
Зарегистрирован: Sep 2013
Репутация:
112
может это поможет
мы сделали так и всё работать стало:
ExMentorList
PHP код: <?php
protected final void writeImpl() {
writeEx(0x121);
writeD(0x00); //хз что это. //TODO соснифать и разобрать
writeD(_mentor == 0 ? 0x01 : 0x02);
writeD(_list.size());
for (MenteeInfo entry : _list) {
writeD(entry.objectId);
writeS(entry.name);
writeD(entry.classId);
writeD(entry.level);
writeD(entry.online);
}
}
Сообщений: 1,065
Тем: 20
Зарегистрирован: Mar 2010
Репутация:
3,855
Небольшое уточнение по пакету ExAlterSkillRequest, о котором писал выше.
Насчет второго параметра я ошибся - там не ид скилла передается, а действие, которое надо сделать с кнопкой: 0 - показать, 1 - скрыть.
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
05-17-2014, 05:31 PM
(Сообщение последний раз редактировалось: 05-17-2014, 10:24 PM silvermain.)
вот если бы кто нибудь хлапой научил пользоваться....=))))
Добавлено через 1 минуту
подскажите с проблемой сервер листа на 575 протоколе, кнопка Enter не реагирует..... приходится отключатся и подключатся заново=((
|