• Как включить
Сторона сервера
Путь: gameserver\config\server.properties
Изменить с False на True
PrimeShopEnabled = True
Выставить свою валюту - по умолчанию 29520 Vip Coin
PrimeShopGamePointItemId = 29520

Сторона игрового клиент
Путь: Lucera2Client\system_ru или \system или любое ваше название системной папки из которой вы запускаете клиент.
Файл: l2.ini
Блок [PrimeShop]
UseClassicPrimeShop=true - выставляете true по умолчанию false
NewPrimeShop=false - тут по вашему желанию, кому какой больше нравиться
Редактируете любым эидитором.

  • Как редактировать или добавлять свои продукты в Prime Shop
Сторона игрового клиента
Путь: Lucera2Client\system\ProductName_Classic-ru.dat
Пример:
product_name_begin id=100201 outer_name=[1st Class Transfer Effect Scroll] description=[1st Class Transfer Effect Scroll\n1-day 10pcs] icon=[BranchIcon.Icon.etc_g_bm_buff_scroll_i00] icon_panel=[icon.pannel_cursed] mainsubject=[] product_name_end
id=100201 - id продукта в магазине, НЕ ITEM ID предмета
outer_name=[1st Class Transfer Effect Scroll] - имя которое будет отображается в магазине
description=[1st Class Transfer Effect Scroll\n1-day 10pcs] - Описание продаваемого предмета в магазине
icon=[BranchIcon.Icon.etc_g_bm_buff_scroll_i00] - Иконка которое будет отображается в магазине

Сторона сервера
Путь: gameserver\data\prime_shop.xml
Формат: XML
Пример:
XML:
    <product id="100201" name="1st Class Transfer Effect Scroll" category="11" price="1000" is_best="true" on_sale="true" sale_start_date="1980.01.01 08:00" sale_end_date="2037.06.01 08:00">
        <component item_id="29654" count="1" />
    </product>

product id="100201" - берется из игрового клиента
name="1st Class Transfer Effect Scroll" - имя продукта, можно указывать произвольное
price="1000" - цена за предмет, ItemId берется из PrimeShopGamePointItemId = 29520, нет, свой указывать нельзя для каждого потому что валюта для Prime Shop указывается глобально.
<component item_id="29654" count="1" /> - item id и кол-во которое получит игрок
category="11" - отображаемая категория в вкладках товаров // 11 - supplies // 12 - equipment // 13 - vip // 14 - event // 15 - Reward Coin
is_best="true" - иконки оповещающие о состоянии продукта. Лучшее предложение
on_sale="true"- на продаже предмет или нет. Можно добавить с false и потом активировать когда будет необходимо.
sale_start_date="1980.01.01 08:00" sale_end_date="2037.06.01 08:00" - время ограничивающее продажу предмета, в клиенте не отображается - нужно самому руками в description это указывать, но сервер убирает.

Описание механики категории 15
Данная категория вкладки работает вне области L2 Coin и несет в себе смысл магазина за внутриигровые события как Event или награда с мобов.
В ней происходит продажа за Gold / Silver Coins которая берется из конфига
# Валюта для покупки предметов в Prime Shop ТОЛЬКО в category="15"
# Пример: price_silver_coins="1000"
PrimeShopSilverCoinItemId = 29983
# Пример: price_gold_coins="1000"
PrimeShopGoldCoinItemId = 29984

Возьмем для примера и сделаем любой продукт в 15 категории
XML:
    <product id="100201" name="1st Class Transfer Effect Scroll" category="15" price_gold_coins="1000" price_silver_coins="1000" is_best="true" on_sale="true" sale_start_date="1980.01.01 08:00" sale_end_date="2037.06.01 08:00">
        <component item_id="29654" count="1" />
    </product>

!!!Заостряем внимание на этих параметрах!!! - category="15" price_gold_coins="1000" price_silver_coins="1000"
Где category="15" - категория которая переместит предмет в крайную вкладку
Цену можно указывать сразу в двух валютах - gold coin и silver coin, но так же мы можем выставить одну из них, необязательно выставлять их в паре.
На выходе мы получаем дополнительную вкладку с "ивентовыми" предметами вне области стоимости за L2 Coin
cd98340bc834d3f031208561945525e9.png


Общий вид системы.
7c6129be9fe28994f0bb509f20039a5a.png


  • Как включить VIP систему и как с ней работать.
Конфиг: gameserver/config/server.properties
# Секция Vip панели
PrimeShopVipEnabled = False
# Максимальный уровень VIP (Уровень можете расширять в клиенте самостоятельно)
PrimeShopVipMaxLevel = 7
# При покупке предметов в Prime Shop начисляются Vip очки. Можете это выключить и набавлять только Vip Scroll'ами
PrimeShopPurchasingAddVipPoints = True
# Коэффициент начисленных Vip очков после покупки (По умолчанию сколько потратили - столько начислялось)
PrimeShopPurchasingAddVipPointsCoefficient = 1.

Данные:
gameserver/data/prime_shop.xml
XML:
    <!-- VIP System -->
    <vip vipLevel="0" points_to_level="0" points_lose="0">
        <bonus skill="0" skillLevel="0"/>
    </vip>
    <vip vipLevel="1" points_to_level="300" points_lose="300">
        <bonus skill="55161" skillLevel="1"/>
    </vip>
    <vip vipLevel="2" points_to_level="1000" points_lose="600">
        <bonus skill="55162" skillLevel="1"/>
    </vip>
    <vip vipLevel="3" points_to_level="2000" points_lose="660">
        <bonus skill="55163" skillLevel="1"/>
    </vip>
    <vip vipLevel="4" points_to_level="3500" points_lose="1320">
        <bonus skill="55164" skillLevel="1"/>
    </vip>
    <vip vipLevel="5" points_to_level="7000" points_lose="2640">
        <bonus skill="55165" skillLevel="1"/>
    </vip>
    <vip vipLevel="6" points_to_level="20000" points_lose="5280">
        <bonus skill="55166" skillLevel="1"/>
    </vip>
    <vip vipLevel="7" points_to_level="40000" points_lose="10560">
        <bonus skill="55167" skillLevel="1"/>
    </vip>

vipLevel - уровень VIP
points_to_level - сколько нужно VIP очков что бы достичь уровня.
points_lose - через период в 30 дней теряется кол-во набранных очков.
bonus skill и skillLevel - скил который будет выдаваться на каждом уровне в котором находятся все бонусы.


Добавление очков админом: //add_vip_points count <target>
Скилы и предметы для добавления VIP очков.
Предмет:
XML:
   <etcitem id="71315" name="VIP Gain Scroll - 2400">
        <set name="default_action" value="ACTION_SKILL_REDUCE" />
        <set name="tradeable" value="false"/>
        <set name="storeable" value="false"/>
        <set name="dropable" value="false"/>
        <set name="sellable" value="false"/>
        <set name="class" value="CONSUMABLE"/>
        <set name="crystal_type" value="NONE"/>
        <set name="icon" value="BranchIcon.Icon.g_bm_vip_potion_i00"/>
        <set name="stackable" value="true"/>
        <set name="type" value="SCROLL"/>
        <set name="weight" value="5"/>
        <skills>
            <skill id="59126" level="1"/>
        </skills>
    </etcitem>
Скил:
XML:
    <skill id="59126" levels="1" name="VIP Gain Scroll - 2400">
        <set name="magicType" val="SPECIAL"/>
        <set name="icon" val="icon.skill0000"/>
        <set name="itemConsumeId" val="71315"/>
        <set name="itemConsumeCount" val="1"/>
        <set name="magicLevel" val="1"/>
        <set name="hitTime" val="500"/>
        <set name="target" val="TARGET_SELF"/>
        <set name="skillType" val="BUFF"/>
        <set name="operateType" val="OP_ACTIVE"/>
        <set name="isHandler" val="true"/>
        <for>
            <effect count="1" name="VipPointCharge" time="0" val="0">
                <def name="vipPoints" val="2400"/>
            </effect>
        </for>
    </skill>
Как это выглядит визуально:
b217d525d68e6a041b0f72f7e7d32b05.png
 
Last edited:
Тоже ждем)
На финише. Пока не совсем понял фишку с ежедневными подарками. Но разберусь
Так же ничего не понял - в скиле 3%, а в инфо +50%. Кому верить я не пойму

ec3cb4cbca8a5beb57927b88e52f130d.png
 
На финише. Пока не совсем понял фишку с ежедневными подарками. Но разберусь
Так же ничего не понял - в скиле 3%, а в инфо +50%. Кому верить я не пойму

ec3cb4cbca8a5beb57927b88e52f130d.png
See

skill_id=55161
skill_id=55162
skill_id=55163
skill_id=55164
skill_id=55165
skill_id=55166
skill_id=55167
 

Attachments

  • Screenshot_360.webp
    Screenshot_360.webp
    121 KB · Views: 21
Обновил гайд. VIP система добавлена и работает.
 
Может кто-то подсказать, где есть официальное описание Vip системы с подробным магазином, именно который был на офе?
 
Каким образом зарабатываются VIP очки и очки для повышения VIP и что дает данный VIP при повышение его уровня ?
 
Может кто-то подсказать, где есть официальное описание Vip системы с подробным магазином, именно который был на офе?
походу ее нету чето я не нашел тоже.. и тоже хочу понять как это было в дефолте.
 
Каким образом зарабатываются VIP очки и очки для повышения VIP и что дает данный VIP при повышение его уровня ?
Донатом, или свитками очков. У меня пока проблема с получением ежедневных подарков,вернусь с отпуска буду решать как фиксить.
походу ее нету чето я не нашел тоже.. и тоже хочу понять как это было в дефолте.
В клиенте чистое описание как оно было.
 
На финише. Пока не совсем понял фишку с ежедневными подарками. Но разберусь
Так же ничего не понял - в скиле 3%, а в инфо +50%. Кому верить я не пойму

ec3cb4cbca8a5beb57927b88e52f130d.png
Сервер периодически выдает ошибку, я так понимаю что-то связанное с випом
ERROR Exception: RunnableImpl.run(): java.lang.NullPointerException
java.lang.NullPointerException: null
at events.VipDropEvent.VipDropEvent.a(Unknown Source)
at events.VipDropEvent.VipDropEvent.onDeath(Unknown Source)
at l2.gameserver.model.actor.listener.CharListenerList.a(Unknown Source)
at java.util.concurrent.CopyOnWriteArrayList.forEach(Unknown Source)
at java.util.concurrent.CopyOnWriteArraySet.forEach(Unknown Source)
at l2.commons.listener.ListenerList.forEachListener(Unknown Source)
at l2.gameserver.model.actor.listener.CharListenerList.forEachListenerWithGlobal(Unknown Source)
at l2.gameserver.model.actor.listener.CharListenerList.onDeath(Unknown Source)
at l2.gameserver.model.Creature.onDeath(Unknown Source)
at l2.gameserver.model.Player.onDeath(Unknown Source)
at l2.gameserver.model.Creature.doDie(Unknown Source)
at l2.gameserver.model.Creature.onReduceCurrentHp(Unknown Source)
at l2.gameserver.model.Player.onReduceCurrentHp(Unknown Source)
at l2.gameserver.model.Creature.reduceCurrentHp(Unknown Source)
at l2.gameserver.model.Playable.reduceCurrentHp(Unknown Source)
at l2.gameserver.model.Player.reduceCurrentHp(Unknown Source)
at l2.gameserver.model.Creature.onHitTimer(Unknown Source)
at l2.gameserver.model.GameObjectTasks$HitTask.runImpl(Unknown Source)
at l2.commons.threading.RunnableImpl.run(Unknown Source)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
 
Сервер периодически выдает ошибку, я так понимаю что-то связанное с випом
Походу в конфиге/награде/дропе стоит выставлен не существующий ид, хз мб не прав, но у меня было похожее)
 
Back
Top