tr3sh 6 Опубликовано 30 ноября, 2015 Всем привет! Сделал новую цп банку но вот юзается она без анимаций... Вопрос как добавить анимацию от CP potion к моей банке..??? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tenny 40 Опубликовано 30 ноября, 2015 Всем привет! Сделал новую цп банку но вот юзается она без анимаций... Вопрос как добавить анимацию от CP potion к моей банке..??? Зачем тебе новая цп банка ??? что со старой было не так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 30 ноября, 2015 нужна новая вип банка которая будет востонавливать больше цп Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 30 ноября, 2015 Задействуй тот же скил, что и у СP/GCP, только создай 3 лвл, ну и в клиент добавь 3 лвл скилла, индетично имеющимся Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 (изменено) Задействуй тот же скил, что и у СP/GCP, только создай 3 лвл, ну и в клиент добавь 3 лвл скилла, индетично имеющимся это понятно... как связать их между собой????? (как прикрутить анимцию к банке) Изменено 1 декабря, 2015 пользователем tr3sh Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 это понятно... как связать их между собой????? (как прикрутить анимцию к банке) Анимация уже привязана к скиллу. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 Анимация уже привязана к скиллу. ты меня походу не понимаешь..... хорошо как привязать этот скилл к моей банке... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 ты меня походу не понимаешь..... хорошо как привязать этот скилл к моей банке... Похоже, таки наоборот - ты меня не понял. Привязать по тому же принципу, что и гцп. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 Похоже, таки наоборот - ты меня не понял. Привязать по тому же принципу, что и гцп. в том и дело я спрашиваю этот принцип привязки так как не могу его найти Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 Смотря что за сборка, либо в бд, табличка etcitems, либо в датапаке, привязать скилл 5592, 3 лвл, ну и создать этот 3 лвл, естественно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 Смотря что за сборка, либо в бд, табличка etcitems, либо в датапаке, привязать скилл 5592, 3 лвл, ну и создать этот 3 лвл, естественно. сборка pwsoft последней ревы. как это сделать в датапаке? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 (изменено) Мде, на pw все как то через *опу) Попробуй этот скрипт, думаю что будет работать (не проверил, набросал на скорую руку): package calypso; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.l2j.Config; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.cache.Static; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance; import net.sf.l2j.gameserver.model.entity.TvTEvent; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import scripts.autoevents.lasthero.LastHero; import scripts.items.IItemHandler; import scripts.items.ItemHandler; public class CPPotion implements IItemHandler { protected static final Logger _log = Logger.getLogger(CPPotion.class .getName()); private int _herbstask; public CPPotion() { this._herbstask = 0; } private class HerbTask implements Runnable { private L2PcInstance _activeChar; private int _magicId; private int _level; HerbTask(L2PcInstance activeChar, int magicId, int level) { this._activeChar = activeChar; this._magicId = magicId; this._level = level; } public void run() { try { CPPotion.this.usePotion(this._activeChar, this._magicId, this._level); } catch (Throwable t) { CPPotion._log.log(Level.WARNING, "", t); } } } // банка private static final int[] ITEM_IDS = { 5592 }; // сколько восстанавливать private static int RESTORE_POWER = 1000; public synchronized void useItem(L2PlayableInstance playable, L2ItemInstance item) { boolean res = false; L2PcInstance activeChar; if (playable.isPlayer()) activeChar = (L2PcInstance) playable; else { if (playable.isPet()) { activeChar = ((L2PetInstance) playable).getOwner(); } else { return; } } if (activeChar.isOutOfControl()) { activeChar.sendActionFailed(); return; } if (item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) { activeChar.sendActionFailed(); return; } int itemId = item.getItemId(); if (!TvTEvent.onPotionUse(activeChar.getName(), itemId)) { activeChar.sendActionFailed(); return; } if ((activeChar.getChannel() == 6) && (LastHero.getEvent().forbPotion(itemId))) { activeChar.sendActionFailed(); return; } if (activeChar.isInOlympiadMode()) { activeChar .sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT); return; } int itmobj = item.getObjectId(); switch (itemId) { case 5592: if (activeChar.getCpReuseTime(itemId) < Config.CP_REUSE_TIME) { activeChar.sendActionFailed(); return; } activeChar.setCpReuseTime(itemId); cpPotion(activeChar, itmobj, RESTORE_POWER); break; } if (res) { activeChar.destroyItem("Consume", itmobj, 1, null, false); } } public boolean usePotion(L2PcInstance activeChar, int magicId, int level) { if ((activeChar.isCastingNow()) && (magicId > 2277) && (magicId < 2285)) { this._herbstask += 100; ThreadPoolManager.getInstance().scheduleAi( new HerbTask(activeChar, magicId, level), this._herbstask, true); } else { L2Effect effect = activeChar.getFirstEffect(magicId); if (effect != null) { effect.exit(); } SkillTable.getInstance().getInfo(magicId, level) .getEffects(activeChar, activeChar); activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar, magicId, level, 1, 0)); activeChar.sendPacket(SystemMessage.id( SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(magicId)); return true; } return false; } public void cpPotion(L2PcInstance activeChar, int itemobj, int restore) { activeChar.destroyItem("Consume", itemobj, 1, null, false); activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar, 2166, 1, 1, 0)); if (activeChar.getCurrentCp() != activeChar.getMaxCp()) { activeChar.setCurrentCp(activeChar.getCurrentCp() + restore); } } public int[] getItemIds() { return ITEM_IDS; } public static void main(String... arguments) { ItemHandler.getInstance().registerItemHandler(new CPPotion()); } } кидать в /data/scripts/calypso, ну и подгрузку в scripts.cfg дописать PS: 5592 изменить в 2х местах Изменено 1 декабря, 2015 пользователем Calyps0 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 (изменено) Мде, на pw все как то через *опу) Попробуй этот скрипт, думаю что будет работать (не проверил, набросал на скорую руку): Error on: \gameserver\data\scripts\calypso\CPbig.java.error.log Line: -1 - Column: -1 compilation failed Изменено 1 декабря, 2015 пользователем tr3sh Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 (изменено) Мде, на pw все как то через *опу) Попробуй этот скрипт, думаю что будет работать (не проверил, набросал на скорую руку): Error on: \gameserver\data\scripts\calypso\CPbig.java.error.log Line: -1 - Column: -1 compilation failed Переименуй CPbig на CPPotion и скопируй скрипт снова (чуть поправил) Изменено 1 декабря, 2015 пользователем Calyps0 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 Переименуй CPbig на CPPotion и скопируй скрипт снова (чуть поправил) Огромное тебе спасибо! Можно подобное на HPPotion? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 Огромное тебе спасибо! Можно подобное на HPPotion? Можно, но меня вырубает, там пару-тройку строк изменить. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
tr3sh 6 Опубликовано 1 декабря, 2015 Можно, но меня вырубает, там пару-тройку строк изменить. сделай пожалуйста! и скинь свой qiwi с меня 100 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
CalypsoToolz 451 Опубликовано 1 декабря, 2015 package calypso; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.cache.Static; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.model.L2Effect; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance; import net.sf.l2j.gameserver.model.entity.TvTEvent; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import scripts.autoevents.lasthero.LastHero; import scripts.items.IItemHandler; import scripts.items.ItemHandler; public class CPPotion implements IItemHandler { protected static final Logger _log = Logger.getLogger(CPPotion.class .getName()); private int _herbstask; public CPPotion() { this._herbstask = 0; } private class HerbTask implements Runnable { private L2PcInstance _activeChar; private int _magicId; private int _level; HerbTask(L2PcInstance activeChar, int magicId, int level) { this._activeChar = activeChar; this._magicId = magicId; this._level = level; } public void run() { try { CPPotion.this.usePotion(this._activeChar, this._magicId, this._level); } catch (Throwable t) { CPPotion._log.log(Level.WARNING, "", t); } } } // банка private static final int[] ITEM_IDS = { 11111, 22222 }; // сколько восстанавливать private static int CP_RESTORE_POWER = 1000; private static int HP_RESTORE_POWER = 1000; // реюз в мс private static int CP_REUSE = 200; private static int HP_REUSE = 15000; public synchronized void useItem(L2PlayableInstance playable, L2ItemInstance item) { boolean res = false; L2PcInstance activeChar; if (playable.isPlayer()) activeChar = (L2PcInstance) playable; else { if (playable.isPet()) { activeChar = ((L2PetInstance) playable).getOwner(); } else { return; } } if (activeChar.isOutOfControl()) { activeChar.sendActionFailed(); return; } if (item.getLocation() != L2ItemInstance.ItemLocation.INVENTORY) { activeChar.sendActionFailed(); return; } int itemId = item.getItemId(); if (!TvTEvent.onPotionUse(activeChar.getName(), itemId)) { activeChar.sendActionFailed(); return; } if ((activeChar.getChannel() == 6) && (LastHero.getEvent().forbPotion(itemId))) { activeChar.sendActionFailed(); return; } if (activeChar.isInOlympiadMode()) { activeChar .sendPacket(Static.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT); return; } int itmobj = item.getObjectId(); switch (itemId) { // банка цп case 11111: if (activeChar.getCpReuseTime(itemId) < CP_REUSE) { activeChar.sendActionFailed(); return; } activeChar.setCpReuseTime(itemId); cpPotion(activeChar, itmobj, CP_RESTORE_POWER); break; // банка хп case 22222: if (activeChar.getCpReuseTime(itemId) < HP_REUSE) { activeChar.sendActionFailed(); return; } activeChar.setCpReuseTime(itemId); hpPotion(activeChar, itmobj); break; } if (res) { activeChar.destroyItem("Consume", itmobj, 1, null, false); } } public boolean usePotion(L2PcInstance activeChar, int magicId, int level) { if ((activeChar.isCastingNow()) && (magicId > 2277) && (magicId < 2285)) { this._herbstask += 100; ThreadPoolManager.getInstance().scheduleAi( new HerbTask(activeChar, magicId, level), this._herbstask, true); } else { L2Effect effect = activeChar.getFirstEffect(magicId); if (effect != null) { effect.exit(); } SkillTable.getInstance().getInfo(magicId, level) .getEffects(activeChar, activeChar); activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar, magicId, level, 1, 0)); activeChar.sendPacket(SystemMessage.id( SystemMessageId.YOU_FEEL_S1_EFFECT).addSkillName(magicId)); return true; } return false; } public void cpPotion(L2PcInstance activeChar, int itemobj, int restore) { activeChar.destroyItem("Consume", itemobj, 1, null, false); activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar, 2166, 1, 1, 0)); if (activeChar.getCurrentCp() != activeChar.getMaxCp()) { activeChar.setCurrentCp(activeChar.getCurrentCp() + restore); } } public void hpPotion(L2PcInstance activeChar, int itemobj) { activeChar.destroyItem("Consume", itemobj, 1, null, false); activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar, 2038, 1, 1, 0)); if (activeChar.getCurrentHp() != activeChar.getMaxHp()) { activeChar.setCurrentHp(activeChar.getCurrentHp() + HP_RESTORE_POWER); } } public int[] getItemIds() { return ITEM_IDS; } public static void main(String... arguments) { ItemHandler.getInstance().registerItemHandler(new CPPotion()); } } 2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты