How to make Item reuse for Kamaloka

Example of code:

Code:
package handler.items;

import l2.gameserver.model.Player;
import l2.gameserver.model.items.ItemInstance;
import l2.gameserver.network.l2.s2c.SystemMessage;

public class Kamaloka extends SimpleItemHandler
{
    private static final int[] ITEM_IDS = new int[] { 13010, 13297, 20026, 13011, 13298, 20027, 13012, 13299, 20028 };

    @Override
    public int[] getItemIds()
    {
        return ITEM_IDS;
    }

    @Override
    protected boolean useItemImpl(Player player, ItemInstance item, boolean ctrl)
    {
        int itemId = item.getItemId();

        switch(itemId)
        {
            case 13010:
            case 13297:
            case 20026:
                useItem(player, item, 1);
                player.removeInstanceReusesByGroupId(1);
                break;
            case 13011:
            case 13298:
            case 20027:
                useItem(player, item, 1);
                player.removeInstanceReusesByGroupId(2);
                break;
            case 13012:
            case 13299:
            case 20028:
                useItem(player, item, 1);
                player.removeInstanceReusesByGroupId(3);
                break;
        }
        player.sendPacket(new SystemMessage(SystemMessage.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId));
        return false;
    }
}

Thus, we can set the removal of the rollback to the instance to which the group belongs.
As example items 13011, 13299, 20028 remove reuse of instances in group 3 - player.removeInstanceReusesByGroupId(3);

The group of instances itself must be specified in the XML file - the path gameserver\data\instances. Parameter sharedReuseGroup="3"

Also you can remove reuse of Instance by ID. Example:
Code:
package handler.items;

import l2.gameserver.model.Player;
import l2.gameserver.model.items.ItemInstance;
import l2.gameserver.network.l2.s2c.SystemMessage;

public class Kamaloka extends SimpleItemHandler
{
    private static final int[] ITEM_IDS = new int[] { 13010, 13297, 20026, 13011, 13298, 20027, 13012, 13299, 20028 };

    @Override
    public int[] getItemIds()
    {
        return ITEM_IDS;
    }

    @Override
    protected boolean useItemImpl(Player player, ItemInstance item, boolean ctrl)
    {
        int itemId = item.getItemId();

        switch(itemId)
        {
            case 13010:
            case 13297:
            case 20026:
                useItem(player, item, 1);
                player.removeInstanceReuse(22);
                break;
            case 13011:
            case 13298:
            case 20027:
                useItem(player, item, 1);
                player.removeInstanceReuse(23);
                break;
            case 13012:
            case 13299:
            case 20028:
                useItem(player, item, 1);
                player.removeInstanceReuse(24);
                break;
        }
        player.sendPacket(new SystemMessage(SystemMessage.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId));
        return false;
    }
}

Where param player.removeInstanceReuse(24);
this way we can rollback to a specific instance, not a group

How to compile you own code - https://lucera2.com/threads/how-to-add-your-quests-or-subsystems-to-an-assembly.1406/
 
Last edited:
lol что, смотри выше трид, у нас нету никаких у скилов итемов, у нас юзабельный итем, который через скрип обнуляет откат инсты.

и да есть косяк, что у этого итема нельза сделать реюз раз в день
чем вариант с Коробкой у которой откат 17 часов не подходит?(из коробки 100% выпадает свиток)
 
чем вариант с Коробкой у которой откат 17 часов не подходит?(из коробки 100% выпадает свиток)
Можно открывать коробку неделю, а потом 10 раз инст за день сходить?)
 
Кстати вчера тестил, если привязать скил, например хилку, сделать итем потребляемый, то итем юзается, откат итема идет как надо каждый день в 6.30, ноооооо! Реюз инсты в этом случае не снимается.
Крч какая-то херня)))
 
И очень тупо) смысл отката итема, что бы его юзали 1 раз в день а не 10-20 и тд
Ну если только рассматривать со стороны прокачки альтов на каких-то лоу рейтах. Неделю-две просто грузишь перса открывать сундук, за 1 день догоняешь основу))))
 
Кстати вчера тестил, если привязать скил, например хилку, сделать итем потребляемый, то итем юзается, откат итема идет как надо каждый день в 6.30, ноооооо! Реюз инсты в этом случае не снимается.
Крч какая-то херня)))
В гейм серверве есть темплейт для предметов, можно попробовать написать свой тип по аналогии с etcitem и прикрутить к нему КД, на выходных мб попробуб
 
И очень тупо) смысл отката итема, что бы его юзали 1 раз в день а не 10-20 и тд
Ну смотря с какой стороны посмотреть, всё же относительно,)человек пришёл домой откатил инст, купил свиток открыл, пошёл отдыхать, так как ебашил 12 часов, а выходной день спокойненько, откатил ещё 3-4раза. Смысл свитка отката лиш в том что бы больше содрать доната с игроков, так как они обычно продаються за донат валюту, с таким раскладом игрок будет чаще покупать свитки отката а не тогда когда его позвали куда то на второй раз.
 
Смысл свитка отката лиш в том что бы больше содрать доната с игроков,
У меня бездонатный сервер, откат инсты по ежедневному квесту или за достижение выдаю итем
 
У меня бездонатный сервер, откат инсты по ежедневному квесту или за достижение выдаю итем
Не плохо, но вот я разницы не вижу и в твоём случае, можно так же делать задания и достижения а откатывать потом
Когда тебе удобно, у меня как бы достижение и за одно прохождения и за два.
 
Back
Top