Interlude баг клиента №2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Игровой клиент

Игровой клиент Есть вопросы по поводу редактирования dat, utx и других файлов клиента, пожалуйста, задавайте их здесь.
Описание темы:А вот это уже вопрос.

Ответ
Опции темы
Непрочитано 23.02.2014, 21:30   #1
Аватар для MrShyr
Эксперт

Автор темы (Топик Стартер) Interlude баг клиента №2

Прошу администрацию пометить тему как №2, немного продинамил

В общем то это уже вопрос, и довольно серьезная недоработка NCSoft, а точнее опять же сломали в Interlude, в остальных хрониках работает.

Баг в приватной покупке предметов (ПАОФУ при приватной покупке, можно установить несколько одинаковых но по разному точеных предметов, и продать вам другие персонажи могут лишь те вещи, и на столько заточенные, что соответствуют тем что покупаете вы), решить проблему не можем уже не первый день. Когда персонаж садится в покупку заточенных предметов, сервер при построении листа отсылает клиенту предметы и соответственно информацию о них, все вроде бы нормально, но нет. Все уже перепробовали, и с листами крутили вертели, и что только не делали. Момент когда вы в покупку выкладываете предмет, не обрабатывается сервером ВООБЩЕ НИКАК! А баг проявляется именно в этом месте. К примеру у вас 2 лука, один заточен на +16, второй на +5, при построении листа каждый из предметов занимает свою ячейку, к примеру +16 - первая, +5 - вторая. Переносим на покупку +5 из второй ячейки, а переносится +16 из первой, соответственно даже после того, что мы выставили на покупку неверный предмет (хотели +5 из второй ячейки, а поставился +16 из первой) лук на +5 мы все равно поставить не сможем, будет снова и снова в покупку сваливаться тот что заточен на +16 из первой ячейки листа. Баг проявляется только в том случае - если item_id предметов которые вы выставляете в покупку одинаков, то есть когда покупаете DB Focus +16 и DB Focus +5, если бы был DB Focus +16 и DB Crit. Slow +5 к примеру, бага не проявляется. Но только в том случае если не имеется других повторных на другое число заточенных луков в инвентаре.

Быть может по поводу клиента я и ошибаюсь, но все таки перепробовав уже кучу вариантов, отлавливая и сравнивая пакеты с PTS и JAVA других хроник, все же падает подозрение на большую дырку в клиенте. Так как ни в каких хрониках, ни чего не отправляется сервером клиенту при переносе предмета в бай лист, только при построении списка и по нажатию кнопы купить, и везде все замечательно работает при идентичном коде.

Если кто то уже сталкивался с этой проблемой, и пробовал ее решать, буду благодарен вашим комментариям.
__________________
Решил положить кабель по потолку, так как очень большой пинг меня не устраивает.
MrShyr вне форума Ответить с цитированием
Непрочитано 23.02.2014, 21:48   #2
Герой

По умолчанию Re: Interlude баг клиента №1

оффтоп:
Свернуть ↑Развернуть ↓
kingzor вне форума Отправить сообщение для kingzor с помощью ICQ Ответить с цитированием
Непрочитано 25.02.2014, 18:19   #3
Аватар для Persy
Пользователь

По умолчанию Re: Interlude баг клиента №2

Вы уверены, что в хрониках ниже IL не происходит того же самого бага?

Давайте заглянем в сам интерфейс игры. Большая часть логики окон описана в Interface.u. Откроем этот файл из IL и сравним его с таковым из HF p.5. Нас интересует класс PrivateShopWnd, а именно обработчик события OnDropItem и вызываемая в нем функция MoveItemTopToBottom.
В хрониках выше IL(в нашем случае в HF p.5) при перемещении предмета из инвентаря в список покупок вызывается движковая функция FindItemWithAllProperty, которая в качестве аргумента использует полный ItemInfo. В клиенте IL таковой функции нет. Нет от слова вообще.
Комментарий NCSoft к этой функции в NWindow.ItemWindowHandle, описывающий структуру ItemInfo:
Свернуть ↑Развернуть ↓


Конкретно в IL при перемещении предмета из инвентаря в список покупок клиент вызывает функцию FindItemWithClassID, которая в качестве аргумента использует только лишь клиентский ID предмета из полного ItemInfo.

Что имеем:

Формируя список покупки, клиент IL использует только клиентский ID предмета. При попытке переноса итема в список покупки клиент перебирает инвентарь игрока, находит первый совпавший по клиентскому ID предмет, копирует его ItemInfo и отправляет в список покупки.

Клиенты более поздних версий(к примеру, Gracia Final - NWindow.ItemWindowHandle.FindItemWithEnchantNum - native final function int FindItemWithEnchantNum (ItemID scID, int EnchantNum);) имеют необходимый функционал, поэтому могут различать предметы с одинаковым клиентским ID и разным уровнем энчанта.

Исправить это невозможно, клиент IL просто не имеет необходимых функций. Как вариант решения проблемы - использовать клиент более поздних версий, вырезав ненужный контент.
Persy вне форума Отправить сообщение для Persy с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 25.02.2014, 19:00   #4
Пользователь

По умолчанию Re: Interlude баг клиента №2

тс зайди на фп, всё оке
JacQ100 вне форума Ответить с цитированием
Непрочитано 25.02.2014, 20:11   #5
Изгнанные

По умолчанию Re: Interlude баг клиента №2

это в серверной части решается, и регион фиксил это
holocaust вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 25.02.2014, 22:15   #6
Пользователь

По умолчанию Re: Interlude баг клиента №2

Цитата:
Сообщение от holocaust Посмотреть сообщение
это в серверной части решается, и регион фиксил это
Немного мимо, вот фикс Региона:
Если персонаж покупает например драк на +16 то ему нельзя продать просто драк, заточка должна соответствовать[off-like]
А это как я понял не совсем то в чем заключается баг.
Drag0N вне форума Ответить с цитированием
Непрочитано 25.02.2014, 22:57   #7
Аватар для MrShyr
Эксперт

Автор темы (Топик Стартер) Re: Interlude баг клиента №2

Цитата:
Сообщение от Drag0N Посмотреть сообщение
Немного мимо, вот фикс Региона:
Если персонаж покупает например драк на +16 то ему нельзя продать просто драк, заточка должна соответствовать[off-like]
А это как я понял не совсем то в чем заключается баг.
Именно, все это давно исправлено. Проблема в том, что уже клиент не понимает из какой ячейки и именно какой предмет его просят перетащить в покупку. Ковыряемся, решаем, если получится побороть - выложу решение. А если нет, то будем выводить в лист только максимально точеный предмет. Всем бобра.

З.Ы. Persy, на C4 ведь работает. По этому и возник вопрос.
__________________
Решил положить кабель по потолку, так как очень большой пинг меня не устраивает.
MrShyr вне форума Ответить с цитированием
Непрочитано 26.02.2014, 08:11   #8
Аватар для Persy
Пользователь

По умолчанию Re: Interlude баг клиента №2

Цитата:
Сообщение от MrShyr Посмотреть сообщение
З.Ы. Persy, на C4 ведь работает. По этому и возник вопрос.
Поделитесь папкой system от с4, гляну отличия клиентской части.
Persy вне форума Отправить сообщение для Persy с помощью Skype™ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Interlude баг клиента №1 MrShyr Игровой клиент 6 23.02.2014 21:13
Нужно оружие из клиента Epilogue конвертированное для Interlude. sheelen Рынок / Marketplace 2 25.03.2013 12:49
[Куплю] Приоберету для клиента Lineage и апдейтер Main Рынок / Marketplace 3 28.02.2013 14:37
Оффициальная руссификация клиента игры Worl of Warcraft Burning Crusade Black Angel Игровой клиент 6 26.11.2010 18:06
Мануал по запуску клиента RuOff на свой сервер nelegal Документация 21 18.02.2010 12:49


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 12:15. Часовой пояс GMT +3.

Вверх