Перейти к содержанию
Авторизация  
malder

Свиток Бафа Который Даётся На 15 Дней

Рекомендуемые сообщения

Здравствуйте

Очень интересует, как можно реализовать такую штуку: свиток, который покупается в магазине, живёт у вас в паке 15 дней и при нажатии на него даёт вам бафф или по вашему таргету (сам при этом не исчезает). Пробовал делать такое с l2Day, но это совсем не то или я не там смотрел 0_о . Вот ид l2Day'ки:

<item id="3926" type="EtcItem" name="L2Day - Scroll of Guidance">
 <set name="default_action" val="skill_reduce"/>
 <set name="etcitem_type" val="scroll"/>
 <set name="material" val="PAPER"/>
 <set name="weight" val="120"/>
 <set name="is_stackable" val="true"/>
 <set name="is_oly_restricted" val="true"/>
 <set name="handler" val="ItemSkills"/>
 <set name="item_skill" val="2050-1"/>
 <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}"/>
</item>

С меня "+"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

узнал, что аттрибут <time> отвечает за дни, хотя количество оставшихся дней на предмете не пишет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хроники какие

Тьфу, самое главное забыл хД

ц6, сборка l2Dimension (aCis)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не помню как шадов оружие ано по времени тоже но в часах можно переделать на дни

а не проще зделать шапочьку каторая при одевании будет довать скилы на баф

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не помню как шадов оружие ано по времени тоже но в часах можно переделать на дни

а не проще зделать шапочьку каторая при одевании будет довать скилы на баф

в принципе это идея, но тогда все мои идеи перемещаются в иное русло хД.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну у меня зделано по примеру шадов аксэсуара и игроки давольны и красиво и скилы есть только пасивки не баф

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ну у меня зделано по примеру шадов аксэсуара и игроки давольны и красиво и скилы есть только пасивки не баф

Убедили! Теперь осталось найти нормальные шапочки для ц6 и скачать. А ещё амуницию с ХФ и ГоДа, но это уже другая тема =)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а ты пробывал давать итуму 2 скила <set name="item_skill" val="2050-1, 2051-1"/> бафает 2 скила ?

Изменено пользователем Firs

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а ты пробывал давать итуму 2 скила <set name="item_skill" val="2050-1, 2051-1"/> бафает 2 скила ?

Нет, для этого нужно изменять/добавлять сам скилл

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот держите может сможете прикрутить для aCis.

Изначально написанная для PW

 



package items;

import javolution.util.FastMap;

import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.cache.Static;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser;
import scripts.items.ItemHandler;
import scripts.items.ItemHandler;
import scripts.items.IItemHandler;

public class DonateScrolls implements IItemHandler
{
private final static FastMap<Integer, Integer[]> SCROLLS = new FastMap<Integer, Integer[]>().shared("DonateScrolls.SCROLLS");
private static int[] ITEM_IDS = null;

public DonateScrolls()
{
/**шаблон
**SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) });
**/
SCROLLS.put(4355, new Integer[] { 1204, 2, 2036, 1, 0 });
SCROLLS.put(4356, new Integer[] { 269, 1, 2036, 1, 0 });

//
Integer[] tmp_ids = (Integer[]) SCROLLS.keySet().toArray(new Integer[sCROLLS.size()]);
ITEM_IDS = toIntArray(tmp_ids);
tmp_ids = null;
ItemHandler.getInstance().registerItemHandler(this);
}

public static void main (String... arguments )
{
new DonateScrolls();
}

public void useItem(L2PlayableInstance playable, L2ItemInstance item)
{
if (!playable.isPlayer())
return;

L2PcInstance player = (L2PcInstance) playable;
if (player.isAllSkillsDisabled())
{
player.sendActionFailed();
return;
}

if (player.isInOlympiadMode())
{
player.sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT);
player.sendActionFailed();
return;
}

Integer[] data = SCROLLS.get(item.getItemId());
if(data != null)
{
player.stopSkillEffects(data[0]);
SkillTable.getInstance().getInfo(data[0], data[1]).getEffects(player, player);
player.broadcastPacket(new MagicSkillUser(player, player, data[2], 1, data[3], 0));
if (data[4] == 1)
player.destroyItem("Consume", item.getObjectId(), 1, null, false);
}
}

private int[] toIntArray(Integer[] arr)
{
int[] ret = new int[arr.length];
int i = 0;
for (Integer e : arr)
ret[i++] = e.intValue();
return ret;
}

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

 

Маленькое описание:

 

Скрипт позволяет привязать к любому предмету определенный бафф.

 

Настройки внутри скрипта, по шаблону:

/**шаблон
**SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) });
**/

 

Пример, при нажатии правой кнопкой на итем 4355, игрок получет бафф 1204 2 уровня.:

SCROLLS.put(4355, new Integer[] { 1204, 2, 2036, 1, 0 });

 

прописать в data/scripts.cfg

#Скроллы баффа
items/DonateScrolls.java

 

ну или скачать готовый вариант))

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поверить не могу, что для того, чтобы свиток не исчезал после использования, нужно писать скрипт 0_________о

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поверить не могу, что для того, чтобы свиток не исчезал после использования, нужно писать скрипт 0_________о

duration не поможет ? Теневвым сделай как минимум

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

duration не поможет ? Теневвым сделай как минимум

Вот какая штука выходит. Если я сделаю теневым, то при использовании со свитка не будет забираться мана. В добавок, я не знаю как сделать так, чтобы после использования он не исчезал. Иными словами: лежит у вас в паке свиток, на который вы нажали, получили баф, а со свитка сняло 1 поинт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот какая штука выходит. Если я сделаю теневым, то при использовании со свитка не будет забираться мана. В добавок, я не знаю как сделать так, чтобы после использования он не исчезал. Иными словами: лежит у вас в паке свиток, на который вы нажали, получили баф, а со свитка сняло 1 поинт

Выше тебе дали скрипт только под пв.

Читай внимательно

 

/**шаблон

**SCROLLS.put(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) });

**/

 

Делаешь этот итем через duration высчитай 15 дней сколько минут, и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...