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

Непонятно как создать Баночку ХП,ЦП,МП или Свиток L2

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

Непонятно как создать Баночку ХП,ЦП,МП или Свиток L2, то есть если с оружием и броней, крыльями шапками и тд все ясно, то вот с банками и свитками для меня загадка.

 

То есть хотел банки создать по 1000 хп, цп  и тд   но не пойму где искать, если в оружии и броне залил файлы с ид и закинул свои статы в папку со статами , а вот с банками походу по другому, можете показать пример как создать.

То есть sql заливаю с ид банкой , а вот чтоб добавляло как банка  цп сразу +300  и тд  не пойму где искать

Сборка  pw

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

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


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

Я, так понимаю у PW  в шаре исходников нету, и других вариантов нету через скрипт  или еще что

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


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

Я, так понимаю у 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.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(10010, new Integer[] { 10010, 1, 1077, 1000, 1 });
		SCROLLS.put(10011, new Integer[] { 10011, 1, 1077, 1000, 1 });
		SCROLLS.put(10012, new Integer[] { 10012, 1, 1077, 1000, 1 });
		SCROLLS.put(10013, new Integer[] { 10013, 1, 1077, 1000, 1 });
		SCROLLS.put(10014, new Integer[] { 10014, 1, 1077, 1000, 1 });
		SCROLLS.put(10015, new Integer[] { 10015, 1, 1077, 1000, 1 });
		SCROLLS.put(10016, new Integer[] { 10016, 1, 1077, 1000, 0 });
		SCROLLS.put(10017, new Integer[] { 10017, 1, 1077, 1000, 0 });
		SCROLLS.put(10018, new Integer[] { 10018, 1, 1077, 1000, 0 });
		SCROLLS.put(10019, new Integer[] { 10019, 1, 1077, 1000, 0 });
		SCROLLS.put(10020, new Integer[] { 10020, 1, 1077, 1000, 0 });
		SCROLLS.put(10021, new Integer[] { 10021, 1, 1077, 1000, 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;
	}
} 
Изменено пользователем MeRDox
  • Upvote 2

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


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

 

для свитка, может и под банку подойдет...поработав немного

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(итем_ид, new Integer[] { ид_баффа, уровень_баффа, ид_скилла_анимации, продолжительность_анимации(мс.)), кушать_скролл(1 да, 0 нет)) });
		**/
		SCROLLS.put(10010, new Integer[] { 10010, 1, 1077, 1000, 1 });
		SCROLLS.put(10011, new Integer[] { 10011, 1, 1077, 1000, 1 });
		SCROLLS.put(10012, new Integer[] { 10012, 1, 1077, 1000, 1 });
		SCROLLS.put(10013, new Integer[] { 10013, 1, 1077, 1000, 1 });
		SCROLLS.put(10014, new Integer[] { 10014, 1, 1077, 1000, 1 });
		SCROLLS.put(10015, new Integer[] { 10015, 1, 1077, 1000, 1 });
		SCROLLS.put(10016, new Integer[] { 10016, 1, 1077, 1000, 0 });
		SCROLLS.put(10017, new Integer[] { 10017, 1, 1077, 1000, 0 });
		SCROLLS.put(10018, new Integer[] { 10018, 1, 1077, 1000, 0 });
		SCROLLS.put(10019, new Integer[] { 10019, 1, 1077, 1000, 0 });
		SCROLLS.put(10020, new Integer[] { 10020, 1, 1077, 1000, 0 });
		SCROLLS.put(10021, new Integer[] { 10021, 1, 1077, 1000, 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;
	}
} 

Спасибо +, буду пробовать .

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


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

@@MeRDox

 

Извините , можете подсказать что тут надо поправить в 14 строчке пишет ошибку, при загрузке в PW :

post-28997-0-18978800-1507874600_thumb.jpg

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

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


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

@@MeRDox

 

Извините , можете подсказать что тут надо поправить в 14 строчке пишет ошибку, при загрузке в PW :

Эту строку

public void useItem(L2PlayableInstance playable, L2ItemInstance item)

меняем на эту

public void useItem(L2PlayableInstance playable, L2ItemInstance item, boolean ctrl)

  • Upvote 1

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


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

Эту строку

public void useItem(L2PlayableInstance playable, L2ItemInstance item)

меняем на эту

public void useItem(L2PlayableInstance playable, L2ItemInstance item, boolean ctrl)

Спасибо вам огромное за помощь, ОТ ДУШИ + , еще ++

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


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

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

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

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

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

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

Войти

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

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

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

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

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