Вопрос по созданию предмета!

TheNumberOne

Бывалый
Участник
Сообщения
96
Розыгрыши
0
Репутация
0
Реакции
8
Баллы
610
Хроники
  1. Chaotic Throne: High Five
Исходники
Отсутствуют
Сборка
Open
Ребята, такой вопрос, возможно ли сделать итем который будет откатывать инсту всего 1 раз за сутки, а не до бесконечности сколько купил - столько откатил, притом нужно чтоб итем пропал. Логика такая:
Сходил в инсту --> купил итем откатил инсту --> сходил еще раз в инсту ---> купил итем еще раз <----- но тут сделать ограничение на его использование 1 раз в сутки к примеру. Или подскажите такой итем на сборке ХФ. (не могу вспомнить) """"" Пробовал на основе чудесного куба (такое себе....) """"
 
Ticket_i00_0.jpg
Extra Entrance Pass - Rim Kamaloka Item_grade_NG.gif
Билет в Окрестности Камалоки
Тип:Прочее
Вес:5
ID:22615
  • Билет, позволяющий попасть в Окрестности Камалоки повторно. Снимает ограничение на вход в Окрестности Камалоки. Возможно одноразовое использование снаружи Временной Зоны. Данный эффект пропадет после обновления времени Временной Зоны. Можно обменять, продать, уничтожить. Нельзя выбросить. Можно положить в хранилище.
 
Extra Entrance Pass - Rim Kamaloka Посмотреть вложение 42359
Билет в Окрестности Камалоки
Тип:Прочее
Вес:5
ID:22615
  • Билет, позволяющий попасть в Окрестности Камалоки повторно. Снимает ограничение на вход в Окрестности Камалоки. Возможно одноразовое использование снаружи Временной Зоны. Данный эффект пропадет после обновления времени Временной Зоны. Можно обменять, продать, уничтожить. Нельзя выбросить. Можно положить в хранилище.
К сожалению не канает ((( Он постоянно откатывает и ограничения нет на сутки.... Возможно описание сделано так - потому что ограничено было на руоффе чисто на покупку в сутки(магазином), а на хф хз пока как так сделать, ибо не опытен..... И логики запрета на использование в сутки у итема - нет.
 
Ребята, такой вопрос, возможно ли сделать итем который будет откатывать инсту всего 1 раз за сутки, а не до бесконечности сколько купил - столько откатил, притом нужно чтоб итем пропал. Логика такая:
Сходил в инсту --> купил итем откатил инсту --> сходил еще раз в инсту ---> купил итем еще раз <----- но тут сделать ограничение на его использование 1 раз в сутки к примеру. Или подскажите такой итем на сборке ХФ. (не могу вспомнить) """"" Пробовал на основе чудесного куба (такое себе....) """"
сохранять в базе колличество сбросов для определенной инcты и потом сбрасывать по аналогии с кубами в 06:30 этот параметр ?
 
сохранять в базе колличество сбросов для определенной инcты и потом сбрасывать по аналогии с кубами в 06:30 этот параметр ?
Ограничение необходимо выставить на итем на использование 1 раза в стуки. И при этом необходимо его удалять из инвентаря. А при покупке еще 1 итема писать в чате о том что итем нельзя сейчас использовать - и можно будет его юзнуть к примеру после 6:30
 
Ограничение необходимо выставить на итем на использование 1 раза в стуки. И при этом необходимо его удалять из инвентаря. А при покупке еще 1 итема писать в чате о том что итем нельзя сейчас использовать - и можно будет его юзнуть к примеру после 6:30
а не легче его в магазин ИМ добавить ?
Молл шоп или как его...
Которsый кнопкой возле чата
 
Это будет на много легче, но знал бы я еще как его сделать. Если у Вас есть опыт, прошу поделитесь!!!
ну я хз что у вас за сборка... ( в смысле не лапал )
Вот мобиус к примеру:
Код:
<item id="2090027" cat="2" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
        <item itemId="93484" count="1" /> <!-- Grace Kit: L-Coins -->
    </item>
делаем accountDailyLimit единичной и все ?
 
ну я хз что у вас за сборка... ( в смысле не лапал )
Вот мобиус к примеру:
Код:
<item id="2090027" cat="2" paymentType="0" price="999" recommended="4" startSale="315558000" endSale="2127452400" dayOfWeek="127" startHour="0" startMinute="0" stopHour="23" stopMinute="59" stock="-1" maxStock="-1" salePercent="0" minLevel="0" maxLevel="0" minBirthday="0" maxBirthday="0" accountDailyLimit="0" accountBuyLimit="0">
        <item itemId="93484" count="1" /> <!-- Grace Kit: L-Coins -->
    </item>
делаем accountDailyLimit единичной и все ?
Код:
<etcitem id="13012" name="Extra Entrance Pass - Kamaloka (Labyrinth of the Abyss)" type="OTHER">
        <set name="icon" val="ticket_i00" />
        <set name="weight" val="5" />
        <set name="stackable" val="true" />
        <set name="tradeable" val="false" />
        <set name="dropable" val="false" />
    </etcitem>

Вот пример
 
Код:
<etcitem id="13012" name="Extra Entrance Pass - Kamaloka (Labyrinth of the Abyss)" type="OTHER">
        <set name="icon" val="ticket_i00" />
        <set name="weight" val="5" />
        <set name="stackable" val="true" />
        <set name="tradeable" val="false" />
        <set name="dropable" val="false" />
    </etcitem>

Вот пример
Ну Вы почти даже угадали какой это файлик :)
Скачал то что было ( фрея от 2015 ) - не вижу там чтобы был ежедневный сброс.
Максимум можете установить лимит продажи, а потом все время обновлять вручную...
Код:
iMaxStock
Код:
<item brId="1080001" itemId="22000" name="Small fortuna box" category="5" iMaxStock="1"/>
 
Добавь чек при заходе рефрешилась ли сегодня подземка для этого чара.
Делаешь отдельную таблицу в базе с ид чара, ид подземки и булеаном/числовым значением и заглядываешь туда сервером раз в минуту чтобы апдейтнулась инфа, которую будешь чекать при заходе.
 
Добавь чек при заходе рефрешилась ли сегодня подземка для этого чара.
Делаешь отдельную таблицу в базе с ид чара, ид подземки и булеаном/числовым значением и заглядываешь туда сервером раз в минуту чтобы апдейтнулась инфа, которую будешь чекать при заходе.
лол ну у тебя и советы по реализации... чекать раз в минуту.... Откат лаб пишется в базу в какую-то таблицу.
Достаточно просто сделать удаление определенной записи в таблице - через релиз обычного сервиса (в этом сервисе ставишь трату этого предмета), что займет пару минут, а на юз сервиса ставить обычное кд, и не нужно никаких чеков раз в минуту.
 
у опена есть такая штука getResetReuseByName(Integer id, long time) как раз она отвечает за это но только вот она не где не применяется хз почему ,так что тебе надо написать для это еффектор и кондишин и все (это все расписано в InstancedZoneManager),сам скилл ид 2589,2590,2591 это билеты в камалока
даже у мобиуса есть такая хрень
HTML:
    <skill id="40195" toLevel="1" name="Extra Pass: Transcendent Instance Zone (Event)">
        <icon>icon.skill0000</icon>
        <isMagic>2</isMagic> <!-- Static Skill -->
        <itemConsumeCount>1</itemConsumeCount>
        <itemConsumeId>93949</itemConsumeId> <!-- Extra Pass: Transcendent Instance Zone -->
        <magicLevel>1</magicLevel>
        <operateType>A1</operateType>
        <magicCriticalRate>5</magicCriticalRate>
        <hitCancelTime>0</hitCancelTime>
        <targetType>SELF</targetType>
        <affectScope>SINGLE</affectScope>
        <effects>
            <effect name="ResetInstanceEntry">
                <instanceId>208;209;210;211;212;213</instanceId>
            </effect>
        </effects>
    </skill>
ну хз
 
Последнее редактирование:
В сборке должен поддерживаться особый тип реюза для предметов и/или скиллов. Ну типа вот что-то типа такого
XML:
<!-- Билет в Окрестности Камалоки / Extra Pass: Rim Kamaloka -->
    <etcitem id="22615" name="Билет в Окрестности Камалоки">
        <!-- Билет, позволяющий повторно попасть в Окрестности Камалоки. Снимает ограничение на вход в Окрестности Камалоки. Можно использовать один раз за установленный период отката временной зоны. Эффект исчезает, когда данное подземелье обновляется. -->
        <stat name="icon" value="icon.ticket_i00" />
        <stat name="type" value="OTHER" />
        <stat name="ex_type" value="OTHER" />
        <stat name="crystal_type" value="NONE" />
        <stat name="reuse_type" value="EVERY_DAY_AT_6_30" />
        <stat name="delay_share_group" value="46" />
        <stat name="weight" value="5" />
        <stat name="price" value="0" />
        <stat name="keep_type" value="9" />
        <stat name="destroyable" value="true" />
        <stat name="dropable" value="true" />
        <stat name="sellable" value="true" />
        <stat name="tradeable" value="true" />
        <stat name="commissionable" value="false" />
        <skills>
            <skill id="22499" level="1" />    <!-- Билет в Окрестности Камалоки / Extra Pass: Rim Kamaloka -->
        </skills>
    </etcitem>
параметр reuse_type, вариант EVERY_DAY_AT_6_30 ставит предмету реюз до ближайших 6:30 по времени сервера
Java:
package l2p.gameserver.enums;

import l2p.commons.time.cron.SchedulingPattern;
import l2p.gameserver.network.components.SystemMsg;

public enum ReuseType
{
    NORMAL(SystemMsg.THERE_ARE_S2_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_MINUTES_S3_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_HOURS_S3_MINUTES_AND_S4_SECONDS_REMAINING_IN_S1S_REUSE_TIME)
    {
        @Override
        public long next(long reuseDelay)
        {
            return System.currentTimeMillis() + reuseDelay;
        }

        @Override
        public long next()
        {
            return next(0);
        }
    },
    EVERY_DAY_AT_6_30(SystemMsg.THERE_ARE_S2_SECONDS_REMAINING_FOR_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_MINUTES_S3_SECONDS_REMAINING_FOR_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_HOURS_S3_MINUTES_S4_SECONDS_REMAINING_FOR_S1S_REUSE_TIME)
    {
        private final SchedulingPattern _pattern = new SchedulingPattern("30 6 * * *");

        @Override
        public long next(long reuseDelay)
        {
            return _pattern.next(System.currentTimeMillis());
        }

        @Override
        public long next()
        {
            return next(24 * 60 * 60 * 1000L);
        }
    },
    DAILY(SystemMsg.THERE_ARE_S2_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_MINUTES_S3_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_HOURS_S3_MINUTES_AND_S4_SECONDS_REMAINING_IN_S1S_REUSE_TIME)
    {
        private final SchedulingPattern _pattern = new SchedulingPattern("0 0 * * *");

        @Override
        public long next(long reuseDelay)
        {
            return _pattern.next(System.currentTimeMillis());
        }

        @Override
        public long next()
        {
            return next(24 * 60 * 60 * 1000L);
        }
    },
    TWICE_A_DAY(SystemMsg.THERE_ARE_S2_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_MINUTES_S3_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_HOURS_S3_MINUTES_AND_S4_SECONDS_REMAINING_IN_S1S_REUSE_TIME)
    {
        private final SchedulingPattern _pattern = new SchedulingPattern("30 6 * * *|30 18 * * *");

        @Override
        public long next(long reuseDelay)
        {
            return _pattern.next(System.currentTimeMillis());
        }

        @Override
        public long next()
        {
            return next(12 * 60 * 60 * 1000L);
        }
    },
    EVERY_HOUR(SystemMsg.THERE_ARE_S2_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_MINUTES_S3_SECONDS_REMAINING_IN_S1S_REUSE_TIME, SystemMsg.THERE_ARE_S2_HOURS_S3_MINUTES_AND_S4_SECONDS_REMAINING_IN_S1S_REUSE_TIME)
    {
        private final SchedulingPattern _pattern = new SchedulingPattern("0 * * * *");

        @Override
        public long next(long reuseDelay)
        {
            return _pattern.next(System.currentTimeMillis());
        }

        @Override
        public long next()
        {
            return next(60 * 60 * 1000L);
        }
    };

    private SystemMsg[] _messages;

    private ReuseType(SystemMsg... messages)
    {
        _messages = messages;
    }

    public abstract long next();

    public abstract long next(long reuseDelay);

    public SystemMsg[] getMessages()
    {
        return _messages;
    }
}
 
Последнее редактирование:
К сожалению не канает ((( Он постоянно откатывает и ограничения нет на сутки.... Возможно описание сделано так - потому что ограничено было на руоффе чисто на покупку в сутки(магазином), а на хф хз пока как так сделать, ибо не опытен..... И логики запрета на использование в сутки у итема - нет.
На офф сервере он работает нормально. Это у вас плохая реализация(
 
Если я правильно понял что у Вас за сборка и если у Вас в будущем есть возможность управлять "ItemReuse", то подставьте в TODO нужные значения :)
А вообще рекомендую сменить сборку на ту, где хотя бы есть исходники :)
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Последнее редактирование:
Если я правильно понял что у Вас за сборка и если у Вас в будущем есть возможность управлять "ItemReuse", то подставьте в TODO нужные значения :)
А вообще рекомендую сменить сборку на ту, где хотя бы есть исходники :)
*** Скрытый текст не может быть процитирован. ***
К сожалению сборку покупал, и не очень то хочется отказываться от покупного....
 
К сожалению сборку покупал, и не очень то хочется отказываться от покупного....
Мне страшно даже представить от кого Вы её купили.
Если сборка купленная - попросите человека пусть он сделает вам метод для сброса времени перезарядки или по аналогии, что написал Gaikotsu.
 
Мне страшно даже представить от кого Вы её купили.
Если сборка купленная - попросите человека пусть он сделает вам метод для сброса времени перезарядки или по аналогии, что написал Gaikotsu.
Вы просто не сталкивались с разрабом этой сборки. До него очень сложно достучаться то в скайп. А уж что то сделать или поправить...... Та еще и не за деньги....
 
вон у Khrome (команды jodacodes) купи исходник на open он вроде продает
 
Назад
Сверху Снизу