Нужно исправлять логику Multisell (Interlude)

sunrise480

Heir
Customer
После работы с PTS, работа с мультиселлами на Lucera просто нереально бесит. Работают только базовые мультиселлы, которые предусмотрены игрой, и то некоторые криво. Постараюсь описать проблемы, и как это работает на PTS, где мультиселлы позволяют сделать много всего разного без выноса мозга. Очень надеюсь что меня услышат и решат эти проблемы, что позволит делать много разных интересных вещей и исправит уже существующие ошибки в данной сборке.

1. При обмене брони или оружия на другое нет выбора по точке. Т.е. если у тебя например 4 одинаковых арки, но с разной точкой, то тебе не предложит какую из них вы хотите обменять, а выберет какую-то одну, и если тебе нужна не эта арка, то тебе придется куда-то выкладывать из инвентаря остальные арки, чтобы осталась только та, которую ты хочешь менять, и только так ты сможешь обменять то что тебе нужно. Это касается даже маммона, т.е. даже базовый мультиселл работает криво.
РЕШЕНИЕ: В режиме showall="false" должны быть видны все варианты обмена, даже если есть одинаковые предметы с одинаковой точкой (у них может быть другой LS), а не как сейчас какой-то рандомный вариант на выбор системы. Я уже делал об этом заявку в задачи, но она так и осталась без ответа

2 Сортировка и отображение вариантов обмена при config showall="false". Если вкратце, то отображение вариантов должно производится по первому ингридиенту из списка конкретного мультиселла, а не как сейчас по всем ингридиентам. Т.е. если в мультиселле есть несколько ингридиентов, например ingredient1(ARMOR), ingredient2(ARMOR), ingredient3(adena), то варианты должны предлагать только для ingredient1, а не как сейчас для всех ARMOR. При таком раскладе можно будет делать грамотные мультиселлы, где не будет повторяться один и тот же вариант дважды, как сейчас.
Возможно я сложно сформулировал, но я постараюсь показать как это работает на конкретном примере.
У меня есть ARMOR "рубашка" которая не имеет вшешки, но у нее есть статы и ее можно одевать в слот тату и точить. Соответственно с каждой точкой улучшаются характеристики рубашки. Эту рубашку можно объединять с костюмами, которые меняют внешку. Т.е. я сделал возможность объеденить костюм и рубашку и на выходе получить итем с внешним видом костюма и статами рубашки. Так вот, на текущий момент при обмене ingredient1(костюм1 ARMOR), ingredient2(рубашка ARMOR), ingredient3(CoL ETCITEM) мне показывает варианты для обоих ARMOR, и для "костюм1", и для "рубашки", и получается в списке выводятся все 60 костюмов для обмена "рубашки" и еще один вариант для "костюм1", и того 61 вариант. Это вообще не правильно. Правильно было бы если бы варианты предлагало только для ingredient1(костюм1), т.к. он первый в списке и сортировка должна быть только по нему... Соответственно и отобрадать нужно только варианты для костюм1, итого получится только 1 вариант (костюм1). Этот момент решает и проблему с добавлением сортировки для ETCITEM, т.к. в этом случае можно будет разрешать config showall="false" для ETCITEM без ограничений. Т.е. если будет показывать варианты только для ingredient1, то не важно какого он будет типа, ARMOR, WEAPON или ETCITEM, как и не важно будет сколько всего будет ингридиентов. Для отображения вариантов будет иметь значение только ingredient1.

3. В продолжение темы из пункта 2. При config showall="false" на данный момент работает только для ARMOR и WEAPON. Т.е. нельзя выставить на продажу ETCITEM и скрыть лишние. Вам придется наблюдать весь набор и рыться в нем, чтобы обменять какую-то конкретную вещь, у которой есть только один или пару вариантов обмена. Например я создал руны на лимит веса разных уровней с возможностью их улучшить как за адену, так и за донат. Таких рун у меня 20 уровней, и с каждым уровнем увеичивается лимит веса и количество ячеек инвентаря. Прикольная штука, на ПТС работает и пользуется спросом. Но тут я не могу ее нормально сделать, т.к. со старта у персонажа на руках руна 1 уровня и в мультиселле вместо двух вариантов обменять ее на следующий лвл за Adena или за CoL, показывает все 40 вариантов и нужно глаза сломать, чтобы найти и выбрать нужный обмен.
РЕШЕНИЕ: После исправления пункта 2, обязательно сделайте возможность использовать конфиг showall="false" для ETCITEM. При текущей реализации это вызовет повторные варианты в выдаче на каждый ингридиент включая ETCITEM, но это потому, что логика изначально неправильная. Чтобы исправить это, нужно сделать так, как описано в тункте 2. Тогда этой проблемы не будет.

4. Мультиселл с config keepenchanted="true" при обмене не позволяет обменивать заточенные кастомные предметы. Т.е. когда я меняю обычные предметы пухи или броню - никаких проблем с обменом и сохранением точки нет. Но когда я пытаюсь обменять заточенную рубашку NONE грейда из примера выше, то обмен не работает. Без точки меняет, а с точкой нет - пишет что недостаточно ингридиентов для обмена. Думаю стоит так же упомянуть, что так как Рубашка NONE грейда, то и точится она специально созданной под рубашку кастомной точкой NONE грейда. При обмене пишет что все необходимые предметы в наличии, но точку рубашки в мультиселле не отображает ну и при попытке обмена ошибку выдает. И вот я не могу понять, то ли это проблема в сборке, то ли это я что-то делаю не так.. Если проблема во мне, то напишите куда нужно вписать эту рубашку, чтобы она менялась с сохранением точки. Сразу скажу, что вариант сделать рубашку другого грейда, например S я уже пробовал, в этом случае обмен работает, НО тогда "рубашку" помимо кастомной специальной заточки можно будет точить и обычными или блесс S армор точками, а это не приемлемо, иначе для чего делать кастом enchnt scroll с уникальными шансами заточки.
РЕШЕНИЕ: На мой взгляд проблема в том, что в мультиселле не предусмотрена возможность обменивать NONE грейд предметы с сохранением заточки. Соответственно, раз вы позволяете создавать кастомные предметы и точить их кастомными заточками, то нужно быть последовательными и добавить возможность обмена этих вещей с сохранением заточки.

5. Сейчас в мультиселлах есть пометка <!-- Внимание: keepenchanted НЕ должно быть установлено в мультиселлах, где в одном блоке возможны два одинаковых нестекуемых предмета (напрмиер dual) -->
Это не правильно. Т.е. сейчас заточенные дуалы не меняет потому что не хочется точку с дуалов раздавать на 2 пухи. Но при этом, при разделении дуалов сейчас точка просто теряется, что тоже не справедливо.
РЕШЕНИЕ: Точка должда оставаться, но только для production1. Т.е. если вы меняете ingredient1(дуалы) ingredient2(адена) на production1(сворд1) production2(сворд2), то точка должна сохраняться только для production1(сворд1), а второй сворд уже пусть остается без точки. То что в списке мультиселла будет стоять первым, тому и достанется точка с дуалов. Это на мой взгляд логично, справедливо, а главное это можно контролировать и при необходимости менять. На мой взгляд оно должно работать именно так.

Я очень надеюсь что не сильно сложно тут все это расписал и разработчики поймут что я хотел им донести. Ну и конечно же рассчитываю на полную реализацию в самое ближайшее время, т.к. по факту тут ничего сложного нет, нужно просто немного изменить логику работы мультиселла, чтобы она работала логично и правильно.

Хочу почитать отзывы на мои предложения и если не будет возражений, закину в задачи.
 
Last edited:
Добавлю немного своего. Согласен по 3 пункту. Вчера пытался сделать обмен старого костюма с доплатой на новый, и мультисел ввдавал все 100500 костюмов. А не предлогал доступные

На пальцах: есть 40 костюмов. Игрок хочет поменять 14 на 36 вариант. Идет к нпц и ему должно предложить варианты доступные только для 14 костюма. То есть 39 вариантов. А предлагает все, даже котррых нет в наличии. ЗЫ может я сам что не так делаю?
 
Добавлю немного своего. Согласен по 3 пункту. Вчера пытался сделать обмен старого костюма с доплатой на новый, и мультисел ввдавал все 100500 костюмов. А не предлогал доступные

На пальцах: есть 40 костюмов. Игрок хочет поменять 14 на 36 вариант. Идет к нпц и ему должно предложить варианты доступные только для 14 костюма. То есть 39 вариантов. А предлагает все, даже котррых нет в наличии. ЗЫ может я сам что не так делаю?
Не думаю что твой пример к пункту 3 относится, если конечно костюмы у тебя не ETCITEM. Но в этом случае я не знаю как ты их одеваешь.

Ну а если они у тебя тебя ARMOR , то это будет простой обмен и тут проблем у тебя быть не должно. Опять же, если у тебя только один ингридиент типа ARMOR, то достаточно просто включить в мультиселле config showall="false"
<list>
<config showall="false" notax="true" />
<item id="1">
<ingredient id="IdКостюм14" count="1"/>
<ingredient id="IdВалюты57" count="100500"/>
<production id="IdКостюм36" count="1"/>
</item>
</list>
Тут у тебя будет все работать без проблем и отобразит только твои 39 вариантов. Проблемы начинаются когда 2 ARMOR предмета на один меняешь
 
Last edited:
Добавлю немного своего. Согласен по 3 пункту. Вчера пытался сделать обмен старого костюма с доплатой на новый, и мультисел ввдавал все 100500 костюмов. А не предлогал доступные

На пальцах: есть 40 костюмов. Игрок хочет поменять 14 на 36 вариант. Идет к нпц и ему должно предложить варианты доступные только для 14 костюма. То есть 39 вариантов. А предлагает все, даже котррых нет в наличии. ЗЫ может я сам что не так делаю?
Что-то не так делаешь. У меня обмен такой реализован и все великолепно
 
Back
Top