Открытие мультиссела 140 протокол

  • Автор темы Автор темы romash
  • Дата начала Дата начала

romash

Выдающийся
Местный
Легенда Истоков
Сообщения
298
Розыгрыши
0
Решения
1
Репутация
0
Реакции
66
Баллы
1 390
Всем ку. Когда через альтб открываем мультисел, окно мультиселла появляется за окном альтб. Хочу переделать чтобы открывалось на передний план. Может кто-то подсказать где найти эту функцию? Думаю где-то в интерфейсе клиента, но с чего бы начать?
 
Psycho, нет конечно, я не думаю, что корейцьі в те годьі предусматривали отрьітия мультиселов таким образом, потому и не сильно парились. ) Но какого-то вьізова закрьтітия окна я, бегло взяглянув на некоторьіе протокольі, не увидел, потому костьіль должен сработать.
 

ну первый мультиселл нормально открывается да - на переднем фоне, а если его не закрывая вызвать второй то тогда да - на фоне будет.

возможно интерфейс не создает в этом случае новое окно, а просто переиспользует уже имеющееся окно мультисела, заполняя его новыми данными? потому оно и на фоне оказывается, т.к. кликом по коммунке мы ее вытаскиваем на передний план.

З.Ы. кстати если есть возможность редакта интерфейса, то в показе мультисела может просто вызывать для его окна функцию вывода поверх остальных имеющихся? 100% такое там должно быть.
 
ну первый мультиселл нормально открывается да - на переднем фоне, а если его не закрывая вызвать второй то тогда да - на фоне будет.

возможно интерфейс не создает в этом случае новое окно, а просто переиспользует уже имеющееся окно мультисела, заполняя его новыми данными? потому оно и на фоне оказывается, т.к. кликом по коммунке мы ее вытаскиваем на передний план.

З.Ы. кстати если есть возможность редакта интерфейса, то в показе мультисела может просто вызывать для его окна функцию вывода поверх остальных имеющихся? 100% такое там должно быть.
Не знаю, теряется ли часть смысла при переводе, и поэтому я не совсем понимаю, что именно вы хотите. Но со стороны интерфейса решение проблемы с закреплением окна multisell «поверх всех» можно сделать отсюда, и в этом нет никакой сложности.
multisell.webp
 
Не знаю, теряется ли часть смысла при переводе, и поэтому я не совсем понимаю, что именно вы хотите. Но со стороны интерфейса решение проблемы с закреплением окна multisell «поверх всех» можно сделать отсюда, и в этом нет никакой сложности.
Посмотреть вложение 88962
Thanks, need try it.
 
великие мысли преследовали их, но чел выше прав, его вариант решает проблему "на корню", дефолт в своей версии лайт патча для люцеры сделал также
Не знаю, теряется ли часть смысла при переводе, и поэтому я не совсем понимаю, что именно вы хотите. Но со стороны интерфейса решение проблемы с закреплением окна multisell «поверх всех» можно сделать отсюда, и в этом нет никакой сложности.
Посмотреть вложение 88962
 
root@localhost:~#, та оно ж не удобно, хочешь бьістро открьіть другой мультисел с кб, нажимаешь на кб, чтобьі вьітянуть его на первьій план и ничего не происходит. Думаешь, что мисклик, нажимаешь еще раз. Ничего. Плюешь в екран, цепляешь кб за рамку и начинаешь тянуть в противоположную от кб сторону - все идет хорошо, а потом закончились пиксели и тьі врезался в придельі окна. Плюешь еще раз. Закрьіваешь мультисел, открьіваешь новьій. Понимаешь, что лучше бьі он открьівался "как на той неудобной фришке" за окном кб и легко вьіделялся на первьій план.

По-моему, либо в ивенте получения пакета списка итемов сделать принудительное переоткрьітие окна, если оно открьіто, или свой пакет на закрьітие создать - все же лучше. )
 
root@localhost:~#, та оно ж не удобно, хочешь бьістро открьіть другой мультисел с кб, нажимаешь на кб, чтобьі вьітянуть его на первьій план и ничего не происходит. Думаешь, что мисклик, нажимаешь еще раз. Ничего. Плюешь в екран, цепляешь кб за рамку и начинаешь тянуть в противоположную от кб сторону - все идет хорошо, а потом закончились пиксели и тьі врезался в придельі окна. Плюешь еще раз. Закрьіваешь мультисел, открьіваешь новьій. Понимаешь, что лучше бьі он открьівался "как на той неудобной фришке" за окном кб и легко вьіделялся на первьій план.

По-моему, либо в ивенте получения пакета списка итемов сделать принудительное переоткрьітие окна, если оно открьіто, или свой пакет на закрьітие создать - все же лучше. )
Там заканчивается история на "плюешь, удаляешь наxyй эту помойку, и со словами админ пидорас и безрукий xyесос, идешь на другую помойку".
 
CB - это мусорная сборка из 101,102,103 - и если их не обновлять при каждом действии с CB, окно "зависает" - а точнее, код все свои задачи выполним, при нажатии на кнопку, по тому идите лесом если не обновили страницу.
На стороне сервера и пакета S_MULTI_SELL_LIST - нету возможности его закрыть, перед повторным открытием...
S_MULTI_SELL_LIST - может быть открыт и если он открыт и мы будем жать на другие кнопки отрытия, то пакет может только обновить уже существующий открытый Ui, вот когда будет возможность закрывать пакет S_MULTI_SELL_LIST, перед его последующем вызове - тогда и окно с MULTI_SELL - будет по верх окна main.html.
Так же на стороне сервера - нету возможности задействовать MultiSellWnd.Close_Button(307.5 581.0 100.0 27.0) - это та самая кнопка с Ui для закрытия мультиселла.
Фактическая отправка пакета S_MULTI_SELL_LIST только после обновления 101,102,103, только в первое открытие покажет его в положении TOP, ну а далее вы сами знаете что прячеться за main.html - когда мы на нем что то делаем.
Кто найдет как закрывать/пере открывать по новой S_MULTI_SELL_LIST - ждем в этой теме.
П.с. а решение - выше, и только при изменении клиента
 
Серьезно? Ну расскажи за порядок отправки пакетов, че не так с ним.

Java:
else if (command.startsWith("_bbsmultisell"))
{
    final String fullBypass = command.replace("_bbsmultisell;", "");
    final String[] buypassOptions = fullBypass.split(",");
    final int multisellId = Integer.parseInt(buypassOptions[0]);
    final String page = buypassOptions[1];
    returnHtml = HtmCache.getInstance().getHtm(player, "data/html/CommunityBoard/Custom/" + page + ".html");
    MultisellData.getInstance().separateAndSend(multisellId, player, null, false);
}
у меня феня подобная сборка и был такой прикол для добавки сервиса саб классов открывался за КБ пока не поменял местами отправку пакетов
PS2 хз эпилог и фрея хф у меня при нажатии на новые мультик открывает новые и в переди окна закрывая старый , могу видос снять кому интересно или нужно увидеть
 
у меня феня подобная сборка и был такой прикол для добавки сервиса саб классов открывался за КБ пока не поменял местами отправку пакетов
PS2 хз эпилог и фрея хф у меня при нажатии на новые мультик открывает новые и в переди окна закрывая старый , могу видос снять кому интересно или нужно увидеть
Пришли код реализации открытия, очередности пакетов.
Я писал про реализацию L2J (мобиус или чистой L2J) - там нету реализации с переоткрытием.
П.с. у тебя точно патч без кастом расширений, может там уже установили onTop вот и все.
 
Да закрыть саму КБ возможно, сам пакет Мультиселла - не закрывает (только обновляет) в реализации что по дефолту.
Давай, луто тему делай!!!
 
Bankir, так я про пакет чтобьі мультисел закрьівал. ) Чтобьі слать:
мультисел клоус - кб опен - мультисел опен. И не страдать с костьілями дополнительньіми. КТо-то шарит, сильно там опкод мультисела прьігал по хроникам после 140? ) Хотя, можно єто дело в конфиг вьітянуть, чтобьі везде работало.
 
520 prot

C++:
const C_EX_MULTI_SELL_LIST= 624;
const S_MULTI_SELL_LIST= 208;
S_MULTI_SELL_LIST = 0xD0,


struct _C_EX_MULTI_SELL_LIST
{
  var int nGroupID;
};



static function bool Encode_C_EX_MULTI_SELL_LIST (out array<byte> stream, _C_EX_MULTI_SELL_LIST packet)
{
  if (  !EncodeInt(stream,packet.nGroupID) )
  {
    return False;
  }
  return True;
}
 
  • Мне нравится
Реакции: Rolo
Назад
Сверху