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

[Pw Soft] Donatescroll

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

Доброго времени суток. Суть скрипта такова, персонаж использует предмет (который будет указан в скрипте) и на него вешается бафф.

Так же можно поставить в виде Хиро предмета. Все, что угодно можно сделать, главное мозги.)

Кстати говоря, постараюсь помочь вам в ваших пожеланиях по этому скрипту.

 

Покажу как использовать:

SCROLLS.put(ID вашего предмета который будет использоваться в качестве скролла, new Integer[] { ID баффа который будет вешаться на персонажа при юзе этого скролла, уровень вашего баффа, ID скилла анимации которая будет показана при юзе этого скролла, продолжительность анимации, кушать ли скролл при юзе ? (1 - да, 0 - нет) });

 

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.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(4355, new Integer[] { 1204, 2, 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;
}
}

  • Upvote 2

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


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

Старо как мир.

Я в курсе. Тут многие не являются клиентами PW Soft'а, я думаю им скрипты тоже нужны. Может они вообще о таких не знали. Все во благо людям.

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


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

Старо как мир.

 

Зашарь что то "не старое", раз умный такой.

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


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

Я заказывал данный скрипт, точнее мой "друг".

Он в клиент разделе лежит на форуме PW.)

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


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

Зашарь что то "не старое", раз умный такой.

Этот скрипт в море шаро сборок лежит...

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


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

Я заказывал данный скрипт, точнее мой "друг".

Еще при моем клиентстве в пв года 2 назад он его написал.

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


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

Этот скрипт в море шаро сборок лежит...

 

Я это знаю, но в общем он же шарит не для тебя, а для тех у кого его нет.

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


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

пытаюсь поправить под ядро 2015
никак не получается, нашел ошибку только в методе UseItem - не хватало одного параметра. В ГС пишет Failed running: C.UseItem //java.lang.NullPointerException
Может кто укажет где править

Код аналогичный первому посту

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


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

useItem(L2PlayableInstance playable, L2ItemInstance item, boolean ctrl)

так и сделал предмет не используется 

вот ошибка

В ГС пишет Failed running: C.UseItem //java.lang.NullPointerException

 

возможно нужно использовать ctrl в коде? 

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


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

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

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

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

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

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

Войти

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

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

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

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

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