Редактирование L магазина L2JMobius Essence

WadeWilson

Выдающийся
Участник
Сообщения
59
Розыгрыши
0
Репутация
50
Реакции
3
Баллы
1 310
Хроники
  1. Prelude
Исходники
Присутствуют
Сборка
L2JMobius Essence Battle Chronicle
Добрый вечер!

Добавил краски в категорию 5 (Ивенты и акции), появились в 4 категории (Товары за адены), купить невозможно.
Когда указываешь product id= от 1 до 100 товары не появляются в магазине.
Такая же проблема с особым созданием.

Помогите пожалуйста решить данную проблему

Без имени.jpg
XML:
    <product id="256" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96379" />
    </product>
    <product id="257" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96399" />
    </product>
    <product id="258" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96419" />
    </product>
    <product id="259" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96439" />
    </product>
    <product id="260" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96459" />
    </product>
 
Решение
на пальцах
ОТ ЭТО DAT в Клиенте Open file: LCoinShopProduct_ClassicAden-eu.dat
Код:
product_begin    product_id=368    category=5    mark_type=1    buy_items={{96070;1;[Protection Treasure Chest (Time-limited)];1;999}}
Как видно у него Product ID - 368. У него ИД предмета 96070 и название "Протекшин Треже Чест (Тайм Лимитед). Ограничения по уровню от 1 до 99.
Категория - 5. Это означает что это Ивент, то-есть он будет во вкладке "Ивенты". Марк Тайп - это поверх штучка такая. Не та, где грейд написан, а та сверху слева вверху как ленточка.
ОТ ЭТО XML на сервере
Код:
    <product id="368" category="5">
        <ingredient id="91663" count="50" /> <!-- L-Coin -->
        <production id="96070" /> <!-- Hero's Tresure Chest (Time Limited)...
Добрый вечер!

Добавил краски в категорию 5 (Ивенты и акции), появились в 4 категории (Товары за адены), купить невозможно.
Когда указываешь product id= от 1 до 100 товары не появляются в магазине.
Такая же проблема с особым созданием.

Помогите пожалуйста решить данную проблему

Посмотреть вложение 44152
XML:
    <product id="256" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96379" />
    </product>
    <product id="257" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96399" />
    </product>
    <product id="258" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96419" />
    </product>
    <product id="259" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96439" />
    </product>
    <product id="260" category="5">
        <ingredient id="91663" count="8000" />
        <production id="96459" />
    </product>
в XML указываются ИД и товары, которые будут показаны в клиенте, путем вызова клиентского ИД.
То-есть берем, открываем клиент и ищем там LCoinShopProduct и добавляем там новые продукты в соотвестующей категории.

Еще проще объясняю.
У клиента есть ИД предмета и ИД продукта. К ним, обращается клиент, при получении пакета со списком магазина.
Если к примеру в Клиенте ИД предмета будет установлено "57 (Адена)", а сервер будет присылать на этот же ИД предмет 95727 (Топор Монарха Льда), то клиент покажет иконку Топора Монарха Льда, но с именем лота как Адены.
Если же нету в клиенте запрашиваемого ИД - будет писать то, что Вы видите :)
 
в XML указываются ИД и товары, которые будут показаны в клиенте, путем вызова клиентского ИД.
То-есть берем, открываем клиент и ищем там LCoinShopProduct и добавляем там новые продукты в соотвестующей категории.
Добавил, появились в нужной категории но отображается не корректно
Без имени.jpg

Еще проще объясняю.
У клиента есть ИД предмета и ИД продукта. К ним, обращается клиент, при получении пакета со списком магазина.
Если к примеру в Клиенте ИД предмета будет установлено "57 (Адена)", а сервер будет присылать на этот же ИД предмет 95727 (Топор Монарха Льда), то клиент покажет иконку Топора Монарха Льда, но с именем лота как Адены.
Если же нету в клиенте запрашиваемого ИД - будет писать то, что Вы видите :)
Но в инвентаре отображается итем корректно и имя прописано.
Тогда объясни пожалуйста, как исправить данную проблему с отображением и почему стоят лимиты на покупку если я их не указывал?
 
с клиента отображение идет категории. посмотри какая категория в клиенте
 
Тогда объясни пожалуйста, как исправить данную проблему с отображением и почему стоят лимиты на покупку если я их не указывал?
С клиента лимиты берутся.
 
Я пока не совсем понимаю что и откуда берется, впервые ковыряю что-то выше Интерлюда
 
на пальцах
ОТ ЭТО DAT в Клиенте Open file: LCoinShopProduct_ClassicAden-eu.dat
Код:
product_begin    product_id=368    category=5    mark_type=1    buy_items={{96070;1;[Protection Treasure Chest (Time-limited)];1;999}}
Как видно у него Product ID - 368. У него ИД предмета 96070 и название "Протекшин Треже Чест (Тайм Лимитед). Ограничения по уровню от 1 до 99.
Категория - 5. Это означает что это Ивент, то-есть он будет во вкладке "Ивенты". Марк Тайп - это поверх штучка такая. Не та, где грейд написан, а та сверху слева вверху как ленточка.
ОТ ЭТО XML на сервере
Код:
    <product id="368" category="5">
        <ingredient id="91663" count="50" /> <!-- L-Coin -->
        <production id="96070" /> <!-- Hero's Tresure Chest (Time Limited) (Sealed) -->
    </product>
Если выслать его вот так, как тут указано - то во вкладке События (Ивенты), мы получим Protection Treasure Chest (Time-limited) название и 96070 итем в подсветке с 91663 в качестве оплаты в колличестве 50 шт.
ЕСЛИ выслать вместо выше
Код:
    <product id="368" category="5">
        <ingredient id="91663" count="50" /> <!-- L-Coin -->
        <production id="57" /> <!-- Aden -->
    </product>
Мы получим Protection Treasure Chest (Time-limited) название и 57 итем в подсветке с 91663 в качестве оплаты в колличестве 50 шт.
(Подсветка - итем, который красуется в иконке слева в списке).
Так же думаю следует обновить структуру у мобиуса, ибо она какая-то странная была. В одно время я делал вот такую:
Код:
<file pattern="master_class_ch2" isSafePackage="true">
        <node name="data" reader="UINT" />
        <for name="product" size="#data" hidden="false">
            <write name="\r\n"/>
            <node name="product_id" reader="USHORT" />
            <node name="category" reader="UCHAR" />
            <node name="mark_type" reader="UCHAR" enumName="lcoinshopproduct_mark_type" />
            <node name="max_buy_count" reader="UCHAR" />
            <write name="\r\n"/>
            <write name="\r\n"/>
            <for name="max_buy_list" size="#max_buy_count" hidden="false">
                <node name="product_item" reader="UINT" />
                <node name="product_count" reader="UINT" />

                <node name="product_name" reader="ASCF" />
                <wrapper name="limit_lv">
                    <node name="LevelMin" reader="SHORT" />
                    <node name="LevelMax" reader="SHORT" />
                </wrapper>
            </for>
            <write name="\r\n"/>
            <node name="ProductType" reader="UBYTE" />

            <node name="LimitType" reader="UBYTE" enumName="lcoin_event_type" />
            <node name="ResetType" reader="UBYTE" enumName="lcoin_reset_type" />

            <node name="LimitCountMax" reader="UINT" />
            <node name="ServerCountMax" reader="UINT" />

            <node name="UNK_00" reader="UBYTE" />

            <node name="unk_list2" reader="CNTR" />
            <for name="unk_list2_values" size="#unk_list2">
                <node name="unk_list2_value" reader="UCHAR" />
            </for>
        </for>
        <node name="data2" reader="CNTR" />
        <for name="product_head" size="#data2" hidden="false">
            <node name="head_id" reader="SHORT" />
            <node name="head_line" reader="ASCF" />
        </for>
с base.xml ->
 
Решение
Так же думаю следует обновить структуру у мобиуса, ибо она какая-то странная была. В одно время я делал вот такую:
Код:
<file pattern="master_class_ch2" isSafePackage="true">
        <node name="data" reader="UINT" />
        <for name="product" size="#data" hidden="false">
            <write name="\r\n"/>
            <node name="product_id" reader="USHORT" />
            <node name="category" reader="UCHAR" />
            <node name="mark_type" reader="UCHAR" enumName="lcoinshopproduct_mark_type" />
            <node name="max_buy_count" reader="UCHAR" />
            <write name="\r\n"/>
            <write name="\r\n"/>
            <for name="max_buy_list" size="#max_buy_count" hidden="false">
                <node name="product_item" reader="UINT" />
                <node name="product_count" reader="UINT" />

                <node name="product_name" reader="ASCF" />
                <wrapper name="limit_lv">
                    <node name="LevelMin" reader="SHORT" />
                    <node name="LevelMax" reader="SHORT" />
                </wrapper>
            </for>
            <write name="\r\n"/>
            <node name="ProductType" reader="UBYTE" />

            <node name="LimitType" reader="UBYTE" enumName="lcoin_event_type" />
            <node name="ResetType" reader="UBYTE" enumName="lcoin_reset_type" />

            <node name="LimitCountMax" reader="UINT" />
            <node name="ServerCountMax" reader="UINT" />

            <node name="UNK_00" reader="UBYTE" />

            <node name="unk_list2" reader="CNTR" />
            <for name="unk_list2_values" size="#unk_list2">
                <node name="unk_list2_value" reader="UCHAR" />
            </for>
        </for>
        <node name="data2" reader="CNTR" />
        <for name="product_head" size="#data2" hidden="false">
            <node name="head_id" reader="SHORT" />
            <node name="head_line" reader="ASCF" />
        </for>
с base.xml ->
Можешь пожалуйста подсказать по поводу обновления структуры, где именно изменить?
 
Подскажите пожалуйста, какие бывают типы в поле buy_limit={2;3;1;0}
Там где значение 3, он же второй параметр, остальные понятно примерно в 1м я встречал чаще используется 0 и 1 типа none и account, 3й параметр это количество, четвертый хз но он всегда 0. Со вторым чуть запутался, так как обычно используется 0 и 1 но иногда встречаются 2 и 3 и их я не пойму.
0 это Always
1 это oneday
а вот 2 и 3 не могу найти описание параметров, что это.

В версиях ниже этот же параметр, может называться buy_type.
 
Последнее редактирование:
Подскажите пожалуйста, какие бывают типы в поле buy_limit={2;3;1;0}
Там где значение 3, он же второй параметр, остальные понятно примерно в 1м я встречал чаще используется 0 и 1 типа none и account, 3й параметр это количество, четвертый хз но он всегда 0. Со вторым чуть запутался, так как обычно используется 0 и 1 но иногда встречаются 2 и 3 и их я не пойму.
0 это Always
1 это oneday
а вот 2 и 3 не могу найти описание параметров, что это.

В версиях ниже этот же параметр, может называться buy_type.
На сколько я помню когда ковырялся в этом , есть такие типы как лимит по аккаунту лимит на персонажа ежедневный лимит недельный лимит
 
На сколько я помню когда ковырялся в этом , есть такие типы как лимит по аккаунту лимит на персонажа ежедневный лимит недельный лимит
Вот это я и хотел бы узнать какая цифра за что отвечает, 2 и 3. Остальные параметры я уже знаю что мне нужны, другие поля. К примеру о плашке на иконке в виде ленточки:
mark_type - плашка ленточки по верх иконки.
0 - Плашка ленточки отсутствует
1 - Ленточка Event
2 - Ленточка SALE
3 - Ленточка Best
4 - Ленточка LIMITED

Категории к примеру 286-287 протокол:
Offers - 0
Equipment - 1
Supplies - 2
Misc - 3
Adena Store - 4

В более свежих, к примеру ласт руофф:
Снаряжение - 0
Усиление и припасы - 1
Прочее - 2
Магазин Древних Аден - 3
Товары за Адены - 4
Ивенты и Акции - 5

В buy_type 1й параметр, отвечает ограничению продаж назначение на аккаунт или всем и т.д. Типа если поставить none параметр 0, то будет учитывать всех игроков на всех акков, если поставить account параметр 2, то будет учитывать внутри аккаунта и к нему уже 2м и 3с параметром можно указать, как часто продавать товар, без лимита или ограничение на один день и та.д, а третим количество. Вот с 1м параметром значениями выше 1 не разобрался, надо понять 2 и 3 значения. Вы как раз пишете об этих лимитах что я указал, только я знаю 0 и 1 конкретно какому лимиту присвоены, а 2 и 3 не знаю, ждать столько, очень долго. Без ограничений по сроку 0, ежедневное ограничение это 1. По логике должно быть если правильно понимаю 2 это лимит на неделю и 3 лимит на месяц, прав или нет не знаю. Да и интересно сопоставить значение 3 и 4 с параметром для птс buy_type, там не цифрами, там always(0) и oneday(1).

Так же поле product_type
0 обычный итем не выводящийся не где кроме своей категории
1 вывод на главной странице верхние крупные окна товаров под банером
2 вывод товаров на главной на нижние окна товаров
 
Последнее редактирование:
Вот это я и хотел бы узнать какая цифра за что отвечает, 2 и 3. Остальные параметры я уже знаю что мне нужны, другие поля. К примеру о плашке на иконке в виде ленточки:
mark_type - плашка ленточки по верх иконки.
0 - Плашка ленточки отсутствует
1 - Ленточка Event
2 - Ленточка SALE
3 - Ленточка Best
4 - Ленточка LIMITED

Категории к примеру 286-287 протокол:
Offers - 0
Equipment - 1
Supplies - 2
Misc - 3
Adena Store - 4

В более свежих, к примеру ласт руофф:
Снаряжение - 0
Усиление и припасы - 1
Прочее - 2
Магазин Древних Аден - 3
Товары за Адены - 4
Ивенты и Акции - 5

В buy_type 1й параметр, отвечает ограничению продаж назначение на аккаунт или всем и т.д. Типа если поставить none параметр 0, то будет учитывать всех игроков на всех акков, если поставить account параметр 2, то будет учитывать внутри аккаунта и к нему уже 2м и 3с параметром можно указать, как часто продавать товар, без лимита или ограничение на один день и та.д, а третим количество. Вот с 1м параметром значениями выше 1 не разобрался, надо понять 2 и 3 значения. Вы как раз пишете об этих лимитах что я указал, только я знаю 0 и 1 конкретно какому лимиту присвоены, а 2 и 3 не знаю, ждать столько, очень долго. Без ограничений по сроку 0, ежедневное ограничение это 1. По логике должно быть если правильно понимаю 2 это лимит на неделю и 3 лимит на месяц, прав или нет не знаю. Да и интересно сопоставить значение 3 и 4 с параметром для птс buy_type, там не цифрами, там always(0) и oneday(1).
не оно? если верно понял вопросы, енумы в целом должны на что то ответить
C#:
enum ELCoinShopFilterType {
    LCoinShopFilter_None,
    LCoinShopFilter_RareWeapon,
    LCoinShopFilter_NormalWeapon,
    LCoinShopFilter_RareArmor,
    LCoinShopFilter_HeavyArmor,
    LCoinShopFilter_LightArmor,
    LCoinShopFilter_Robe,
    LCoinShopFilter_Shield,
    LCoinShopFilter_Dye,
    LCoinShopFilter_Scroll,
    LCoinShopFilter_Etc,
    LCoinShopFilter_Belt,
    LCoinShopFilter_Elixir,
    LCoinShopFilter_Skillbook_S1,
    LCoinShopFilter_Skillbook_S2,
    LCoinShopFilter_Skillbook_S3,
    LCoinShopFilter_Max
};

enum ELCoinShopMarkType
{
    LCoinShopMark_None,
    LCoinShopMark_Event,
    LCoinShopMark_Sale,
    LCoinShopMark_Best,
    LCoinShopMark_Limited,
    LCoinShopMark_New,
    LCoinShopMark_Relay,
    LCoinShopMark_Max
};

enum PLSHOP_LIMIT_TYPE {
    PLSHOP_LIMIT_NONE,
    PLSHOP_LIMIT_CHARACTER,
    PLSHOP_LIMIT_ACCOUNT,
    PLSHOP_LIMIT_TYPE_MAX
};

enum PLSHOP_BUY_RESULT_TYPE {
    PLSHOP_BUY_SUCCESS,
    PLSHOP_BUY_SYSTEM_FAIL,
    PLSHOP_BUY_NOT_ENOUGH_COST_ITEM,
    PLSHOP_BUY_NOT_ENOUGH_ITEM_AMOUNT,
    PLSHOP_BUY_NOT_ENOUGH_LEVEL,
    PLSHOP_BUY_NOT_EVENT_TIME,
    PLSHOP_BUY_NOT_ENOUGH_SERVER_ITEM_AMOUNT,
    PLSHOP_BUY_NOT_ENOUGH_INVENTORY,
    PLSHOP_BUY_NOT_ENOUGH_CARRY_WEIGHT,
    PLSHOP_BUY_NOT_ENOUGH_PLEDGE_LEVEL,
    PLSHOP_BUY_NOT_ALIVE,
    PLSHOP_BUY_RESULT_TYPE_MAX
};

enum PLSHOP_EVENT_TYPE {
    PLSHOP_EVNET_NONE,
    PLSHOP_LIMITED_PERIOD
};

enum PLSHOP_RESET_TYPE {
    PLSHOP_RESET_ALWAYS,
    PLSHOP_RESET_ONEDAY,
    PLSHOP_RESET_ONEWEEK,
    PLSHOP_RESET_ONEMONTH,
    PLSHOP_RESET_TYPE_MAX
};
 
не оно? если верно понял вопросы, енумы в целом должны на что то ответить
C#:
enum ELCoinShopFilterType {
    LCoinShopFilter_None,
    LCoinShopFilter_RareWeapon,
    LCoinShopFilter_NormalWeapon,
    LCoinShopFilter_RareArmor,
    LCoinShopFilter_HeavyArmor,
    LCoinShopFilter_LightArmor,
    LCoinShopFilter_Robe,
    LCoinShopFilter_Shield,
    LCoinShopFilter_Dye,
    LCoinShopFilter_Scroll,
    LCoinShopFilter_Etc,
    LCoinShopFilter_Belt,
    LCoinShopFilter_Elixir,
    LCoinShopFilter_Skillbook_S1,
    LCoinShopFilter_Skillbook_S2,
    LCoinShopFilter_Skillbook_S3,
    LCoinShopFilter_Max
};

enum ELCoinShopMarkType
{
    LCoinShopMark_None,
    LCoinShopMark_Event,
    LCoinShopMark_Sale,
    LCoinShopMark_Best,
    LCoinShopMark_Limited,
    LCoinShopMark_New,
    LCoinShopMark_Relay,
    LCoinShopMark_Max
};

enum PLSHOP_LIMIT_TYPE {
    PLSHOP_LIMIT_NONE,
    PLSHOP_LIMIT_CHARACTER,
    PLSHOP_LIMIT_ACCOUNT,
    PLSHOP_LIMIT_TYPE_MAX
};

enum PLSHOP_BUY_RESULT_TYPE {
    PLSHOP_BUY_SUCCESS,
    PLSHOP_BUY_SYSTEM_FAIL,
    PLSHOP_BUY_NOT_ENOUGH_COST_ITEM,
    PLSHOP_BUY_NOT_ENOUGH_ITEM_AMOUNT,
    PLSHOP_BUY_NOT_ENOUGH_LEVEL,
    PLSHOP_BUY_NOT_EVENT_TIME,
    PLSHOP_BUY_NOT_ENOUGH_SERVER_ITEM_AMOUNT,
    PLSHOP_BUY_NOT_ENOUGH_INVENTORY,
    PLSHOP_BUY_NOT_ENOUGH_CARRY_WEIGHT,
    PLSHOP_BUY_NOT_ENOUGH_PLEDGE_LEVEL,
    PLSHOP_BUY_NOT_ALIVE,
    PLSHOP_BUY_RESULT_TYPE_MAX
};

enum PLSHOP_EVENT_TYPE {
    PLSHOP_EVNET_NONE,
    PLSHOP_LIMITED_PERIOD
};

enum PLSHOP_RESET_TYPE {
    PLSHOP_RESET_ALWAYS,
    PLSHOP_RESET_ONEDAY,
    PLSHOP_RESET_ONEWEEK,
    PLSHOP_RESET_ONEMONTH,
    PLSHOP_RESET_TYPE_MAX
};
Оно, спасибо.
oneweek (2)
onemonth (3)
Как и предполагал, только название теперь есть правильные.
 
на пальцах
ОТ ЭТО DAT в Клиенте Open file: LCoinShopProduct_ClassicAden-eu.dat
Код:
product_begin    product_id=368    category=5    mark_type=1    buy_items={{96070;1;[Protection Treasure Chest (Time-limited)];1;999}}
Как видно у него Product ID - 368. У него ИД предмета 96070 и название "Протекшин Треже Чест (Тайм Лимитед). Ограничения по уровню от 1 до 99.
Категория - 5. Это означает что это Ивент, то-есть он будет во вкладке "Ивенты". Марк Тайп - это поверх штучка такая. Не та, где грейд написан, а та сверху слева вверху как ленточка.
ОТ ЭТО XML на сервере
Код:
    <product id="368" category="5">
        <ingredient id="91663" count="50" /> <!-- L-Coin -->
        <production id="96070" /> <!-- Hero's Tresure Chest (Time Limited) (Sealed) -->
    </product>
Если выслать его вот так, как тут указано - то во вкладке События (Ивенты), мы получим Protection Treasure Chest (Time-limited) название и 96070 итем в подсветке с 91663 в качестве оплаты в колличестве 50 шт.
ЕСЛИ выслать вместо выше
Код:
    <product id="368" category="5">
        <ingredient id="91663" count="50" /> <!-- L-Coin -->
        <production id="57" /> <!-- Aden -->
    </product>
Мы получим Protection Treasure Chest (Time-limited) название и 57 итем в подсветке с 91663 в качестве оплаты в колличестве 50 шт.
(Подсветка - итем, который красуется в иконке слева в списке).
Так же думаю следует обновить структуру у мобиуса, ибо она какая-то странная была. В одно время я делал вот такую:
Код:
<file pattern="master_class_ch2" isSafePackage="true">
        <node name="data" reader="UINT" />
        <for name="product" size="#data" hidden="false">
            <write name="\r\n"/>
            <node name="product_id" reader="USHORT" />
            <node name="category" reader="UCHAR" />
            <node name="mark_type" reader="UCHAR" enumName="lcoinshopproduct_mark_type" />
            <node name="max_buy_count" reader="UCHAR" />
            <write name="\r\n"/>
            <write name="\r\n"/>
            <for name="max_buy_list" size="#max_buy_count" hidden="false">
                <node name="product_item" reader="UINT" />
                <node name="product_count" reader="UINT" />

                <node name="product_name" reader="ASCF" />
                <wrapper name="limit_lv">
                    <node name="LevelMin" reader="SHORT" />
                    <node name="LevelMax" reader="SHORT" />
                </wrapper>
            </for>
            <write name="\r\n"/>
            <node name="ProductType" reader="UBYTE" />

            <node name="LimitType" reader="UBYTE" enumName="lcoin_event_type" />
            <node name="ResetType" reader="UBYTE" enumName="lcoin_reset_type" />

            <node name="LimitCountMax" reader="UINT" />
            <node name="ServerCountMax" reader="UINT" />

            <node name="UNK_00" reader="UBYTE" />

            <node name="unk_list2" reader="CNTR" />
            <for name="unk_list2_values" size="#unk_list2">
                <node name="unk_list2_value" reader="UCHAR" />
            </for>
        </for>
        <node name="data2" reader="CNTR" />
        <for name="product_head" size="#data2" hidden="false">
            <node name="head_id" reader="SHORT" />
            <node name="head_line" reader="ASCF" />
        </for>
с base.xml ->
Подскажи пожалуйста где брать product_id=
 
product_id можно брать из головы, любое не занятое число.
тут проблема в том, что "любое не занятое число" привед к тому, что оно и в клиенте не занято и будет у тебя иконка итема и цена, без никаких дополнительных данных
 
Назад
Сверху Снизу