-
Публикаций
1210 -
Зарегистрирован
-
Посещение
-
Победитель дней
4 -
Отзывы
80%
Тип контента
Профили
Форумы
Загрузки
Магазин
Инструкции
Весь контент KAZAR
-
цены у нее такие же можешь добавится и спросить
-
Добрый день друзья предоставляю услуги качественного стрима от известной стримерши Playshelly . Услуги: Стрим: 1 час - 3000 рублей 2 часа - 5000 рублей 3 часа - 8000 рублей Прочая реклама вашего проекта: 1.Баннер на твич канале playshelly 1 неделя - 2500 2.Закрепленный пост в группе вконтакте на неделю - 3000 3.Простой пост в группе 500 на 24 часа 4.Красивые видео приглашения - 5000 Примеры Видео приглашений : Если вы хотите воспользоваться услугами 1. Какая услуга вас интересует 2. Если это стрим . Дата открытия вашего сервера 3. Способ Оплаты 4. Отписать мне в лс на форуме , но лучше в скайп kazar1111 Цену я не завышаю Всю подробную информацию вы можете узнать в лс.. P.S я платежи не принимаю . Моя задача поиск клиентов . Если вы желаете приобрести какую либо услугу , пишите мне в лс я передаю на рассмотрение это самой Playshelly если ее все устраивает она отписывает вам и дальше вы общаетесь исключительно с ней. Так же и оплату принимает она сама
-
да тебя самого обоссать мало гавно человек..... тебе люди доверились а ты как крыса.... но не чего все возращается
-
то есть ты очень обиделся на то что тебя оскорбили за то что ты не выполнил работу и взял 100 баксов? и что значит это. Значит не скинешь?
-
это конечно мое мнение ... но много хохлов считают себя самыми хитро умными и пытаются постоянно обдурить .... Лично в моем опыте это было всегда так
-
ну раз он тебя обидел .... отдай ему аккаунт и переписку бы лучше выкинул на общий просмотр
-
конфиг enchat там есть настройки
- 2 ответа
-
- 1
-
в патче сервера moon-land.net есть такие
-
можно . если у тебя стандартный .... там вроде к примеру , что бы купить хиро .... байпас herolist, cледовательно тебе нужно premiumlist
-
нету .... а если и есть то дорого стоит
-
а ясно это ты обидка убейся ... балабол
-
открой скрипт баффера.... там в самом скрипте добавь если их нету....и вроде они прописываются на одну определенную страничку хтмл в скриптах этих
-
ой ахах ... ты дай свою ссылку в вк чудо внатуре ... зашло с левого акка и пишет
-
не чего себе.... + это конечно круто .....воспользуйся поиском.... где то был от ловели... но говорят он кривой
-
http://l2hellsing.ru .... яснопонятно
-
Хороший , прикольный шмот .... и наверное не весит 50 мб
-
ловели? который эвенты не может фиксануть? яснопонятно .... грут полюбому лучше ловели
-
какая сборка.... у меня есть такой для люцеры
-
гайд как найти гайд .... заходим http://google.com и вводим гайд как создать сервер л2
-
Index: data/xml/items/0700-0799.xml =================================================================== --- data/xml/items/0700-0799.xml (revision 112) +++ data/xml/items/0700-0799.xml (working copy) @@ -329,7 +329,7 @@ <set name="price" val="2000" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2279-2" /> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}" /> </item> Index: data/xml/items/1500-1599.xml =================================================================== --- data/xml/items/1500-1599.xml (revision 112) +++ data/xml/items/1500-1599.xml (working copy) @@ -265,7 +265,7 @@ <set name="reuse_delay" val="10000" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2037-1" /> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}" /> <set name="shared_reuse_group" val="10" /> Index: data/xml/items/5500-5599.xml =================================================================== --- data/xml/items/5500-5599.xml (revision 112) +++ data/xml/items/5500-5599.xml (working copy) @@ -673,7 +673,7 @@ <set name="reuse_delay" val="500" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2166-2" /> </item> <item id="5593" type="EtcItem" name="SP Scroll: Low Grade"> Index: java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java =================================================================== --- java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (revision 112) +++ java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (working copy) @@ -14,18 +14,24 @@ */ package net.sf.l2j.gameserver.handler.itemhandlers; +import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.handler.IItemHandler; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.ShotType; import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.templates.item.L2Weapon; import net.sf.l2j.gameserver.util.Broadcast; public class SoulShots implements IItemHandler { + private static final int MANA_POT_CD = 2, + HEALING_POT_CD = 11, // DO NOT PUT LESS THAN 10 + CP_POT_CD = 2; + private static final int[] SKILL_IDS = { 2039, @@ -47,6 +53,108 @@ final L2Weapon weaponItem = activeChar.getActiveWeaponItem(); final int itemId = item.getItemId(); + if (itemId == 728 || itemId == 1539 || itemId == 5592) + { + switch (itemId) + { + case 728: // mana potion + { + if (activeChar.isAutoPot(728)) + { + activeChar.sendPacket(new ExAutoSoulShot(728, 0)); + activeChar.sendMessage("Deactivated auto mana potions."); + activeChar.setAutoPot(728, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(728) != null) + { + if (activeChar.getInventory().getItemByItemId(728).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(728, 1)); + activeChar.sendMessage("Activated auto mana potions."); + activeChar.setAutoPot(728, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(728, activeChar), 1000, MANA_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2279, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(728), true); + } + } + } + + break; + } + case 1539: // greater healing potion + { + if (activeChar.isAutoPot(1539)) + { + activeChar.sendPacket(new ExAutoSoulShot(1539, 0)); + activeChar.sendMessage("Deactivated auto healing potions."); + activeChar.setAutoPot(1539, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(1539) != null) + { + if (activeChar.getInventory().getItemByItemId(1539).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(1539, 1)); + activeChar.sendMessage("Activated auto healing potions."); + activeChar.setAutoPot(1539, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(1539, activeChar), 1000, HEALING_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2037, 1, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(1539), true); + } + } + } + + break; + } + case 5592: // greater cp potion + { + if (activeChar.isAutoPot(5592)) + { + activeChar.sendPacket(new ExAutoSoulShot(5592, 0)); + activeChar.sendMessage("Deactivated auto cp potions."); + activeChar.setAutoPot(5592, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(5592) != null) + { + if (activeChar.getInventory().getItemByItemId(5592).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(5592, 1)); + activeChar.sendMessage("Activated auto cp potions."); + activeChar.setAutoPot(5592, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(5592, activeChar), 1000, CP_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2166, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(5592), true); + } + } + } + + break; + } + } + + return; + } + // Check if soulshot can be used if (weaponInst == null || weaponItem.getSoulShotCount() == 0) { @@ -87,4 +195,76 @@ activeChar.sendPacket(SystemMessageId.ENABLED_SOULSHOT); Broadcast.toSelfAndKnownPlayersInRadiusSq(activeChar, new MagicSkillUse(activeChar, activeChar, SKILL_IDS[grade], 1, 0, 0), 360000); } + + private class AutoPot implements Runnable + { + private int id; + private L2PcInstance activeChar; + + public AutoPot(int id, L2PcInstance activeChar) + { + this.id = id; + this.activeChar = activeChar; + } + + @Override + public void run() + { + if (activeChar.getInventory().getItemByItemId(id) == null) + { + activeChar.sendPacket(new ExAutoSoulShot(id, 0)); + activeChar.setAutoPot(id, null, false); + return; + } + + switch (id) + { + case 728: + { + if (activeChar.getCurrentMp() < 0.70*activeChar.getMaxMp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2279, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(728), true); + } + + break; + } + case 1539: + { + if (activeChar.getCurrentHp() < 0.95*activeChar.getMaxHp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2037, 1, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(1539), true); + } + + break; + } + case 5592: + { + if (activeChar.getCurrentCp() < 0.95*activeChar.getMaxCp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2166, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(5592), true); + } + + break; + } + } + + if (activeChar.getInventory().getItemByItemId(id) == null) + { + activeChar.sendPacket(new ExAutoSoulShot(id, 0)); + activeChar.setAutoPot(id, null, false); + } + } + } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 112) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -251,6 +251,24 @@ */ public final class L2PcInstance extends L2Playable { + private Map<Integer, Future<?>> _autoPotTasks = new HashMap<>(); + + public boolean isAutoPot(int id) + { + return _autoPotTasks.keySet().contains(id); + } + + public void setAutoPot(int id, Future<?> task, boolean add) + { + if (add) + _autoPotTasks.put(id, task); + else + { + _autoPotTasks.get(id).cancel(true); + _autoPotTasks.remove(id); + } + } + private BuffShop buffShop = null; public void setBuffShop(BuffShop val) @@ -4321,6 +4339,22 @@ teleToLocation(184351, 20318, -3174, 0); } + if (isAutoPot(728)) + { + sendPacket(new ExAutoSoulShot(728, 0)); + setAutoPot(728, null, false); + } + if (isAutoPot(1539)) + { + sendPacket(new ExAutoSoulShot(1539, 0)); + setAutoPot(1539, null, false); + } + if (isAutoPot(5592)) + { + sendPacket(new ExAutoSoulShot(5592, 0)); + setAutoPot(5592, null, false); + } + return true; }
- 4 ответа
-
- 1
-
Index: data/xml/items/0700-0799.xml =================================================================== --- data/xml/items/0700-0799.xml (revision 112) +++ data/xml/items/0700-0799.xml (working copy) @@ -329,7 +329,7 @@ <set name="price" val="2000" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2279-2" /> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}" /> </item> Index: data/xml/items/1500-1599.xml =================================================================== --- data/xml/items/1500-1599.xml (revision 112) +++ data/xml/items/1500-1599.xml (working copy) @@ -265,7 +265,7 @@ <set name="reuse_delay" val="10000" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2037-1" /> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}" /> <set name="shared_reuse_group" val="10" /> Index: data/xml/items/5500-5599.xml =================================================================== --- data/xml/items/5500-5599.xml (revision 112) +++ data/xml/items/5500-5599.xml (working copy) @@ -673,7 +673,7 @@ <set name="reuse_delay" val="500" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2166-2" /> </item> <item id="5593" type="EtcItem" name="SP Scroll: Low Grade"> Index: java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java =================================================================== --- java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (revision 112) +++ java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (working copy) @@ -14,18 +14,24 @@ */ package net.sf.l2j.gameserver.handler.itemhandlers; +import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.handler.IItemHandler; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.ShotType; import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.templates.item.L2Weapon; import net.sf.l2j.gameserver.util.Broadcast; public class SoulShots implements IItemHandler { + private static final int MANA_POT_CD = 2, + HEALING_POT_CD = 11, // DO NOT PUT LESS THAN 10 + CP_POT_CD = 2; + private static final int[] SKILL_IDS = { 2039, @@ -47,6 +53,108 @@ final L2Weapon weaponItem = activeChar.getActiveWeaponItem(); final int itemId = item.getItemId(); + if (itemId == 728 || itemId == 1539 || itemId == 5592) + { + switch (itemId) + { + case 728: // mana potion + { + if (activeChar.isAutoPot(728)) + { + activeChar.sendPacket(new ExAutoSoulShot(728, 0)); + activeChar.sendMessage("Deactivated auto mana potions."); + activeChar.setAutoPot(728, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(728) != null) + { + if (activeChar.getInventory().getItemByItemId(728).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(728, 1)); + activeChar.sendMessage("Activated auto mana potions."); + activeChar.setAutoPot(728, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(728, activeChar), 1000, MANA_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2279, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(728), true); + } + } + } + + break; + } + case 1539: // greater healing potion + { + if (activeChar.isAutoPot(1539)) + { + activeChar.sendPacket(new ExAutoSoulShot(1539, 0)); + activeChar.sendMessage("Deactivated auto healing potions."); + activeChar.setAutoPot(1539, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(1539) != null) + { + if (activeChar.getInventory().getItemByItemId(1539).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(1539, 1)); + activeChar.sendMessage("Activated auto healing potions."); + activeChar.setAutoPot(1539, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(1539, activeChar), 1000, HEALING_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2037, 1, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(1539), true); + } + } + } + + break; + } + case 5592: // greater cp potion + { + if (activeChar.isAutoPot(5592)) + { + activeChar.sendPacket(new ExAutoSoulShot(5592, 0)); + activeChar.sendMessage("Deactivated auto cp potions."); + activeChar.setAutoPot(5592, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(5592) != null) + { + if (activeChar.getInventory().getItemByItemId(5592).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(5592, 1)); + activeChar.sendMessage("Activated auto cp potions."); + activeChar.setAutoPot(5592, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(5592, activeChar), 1000, CP_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2166, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(5592), true); + } + } + } + + break; + } + } + + return; + } + // Check if soulshot can be used if (weaponInst == null || weaponItem.getSoulShotCount() == 0) { @@ -87,4 +195,76 @@ activeChar.sendPacket(SystemMessageId.ENABLED_SOULSHOT); Broadcast.toSelfAndKnownPlayersInRadiusSq(activeChar, new MagicSkillUse(activeChar, activeChar, SKILL_IDS[grade], 1, 0, 0), 360000); } + + private class AutoPot implements Runnable + { + private int id; + private L2PcInstance activeChar; + + public AutoPot(int id, L2PcInstance activeChar) + { + this.id = id; + this.activeChar = activeChar; + } + + @Override + public void run() + { + if (activeChar.getInventory().getItemByItemId(id) == null) + { + activeChar.sendPacket(new ExAutoSoulShot(id, 0)); + activeChar.setAutoPot(id, null, false); + return; + } + + switch (id) + { + case 728: + { + if (activeChar.getCurrentMp() < 0.70*activeChar.getMaxMp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2279, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(728), true); + } + + break; + } + case 1539: + { + if (activeChar.getCurrentHp() < 0.95*activeChar.getMaxHp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2037, 1, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(1539), true); + } + + break; + } + case 5592: + { + if (activeChar.getCurrentCp() < 0.95*activeChar.getMaxCp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2166, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(5592), true); + } + + break; + } + } + + if (activeChar.getInventory().getItemByItemId(id) == null) + { + activeChar.sendPacket(new ExAutoSoulShot(id, 0)); + activeChar.setAutoPot(id, null, false); + } + } + } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 112) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -251,6 +251,24 @@ */ public final class L2PcInstance extends L2Playable { + private Map<Integer, Future<?>> _autoPotTasks = new HashMap<>(); + + public boolean isAutoPot(int id) + { + return _autoPotTasks.keySet().contains(id); + } + + public void setAutoPot(int id, Future<?> task, boolean add) + { + if (add) + _autoPotTasks.put(id, task); + else + { + _autoPotTasks.get(id).cancel(true); + _autoPotTasks.remove(id); + } + } + private BuffShop buffShop = null; public void setBuffShop(BuffShop val) @@ -4321,6 +4339,22 @@ teleToLocation(184351, 20318, -3174, 0); } + if (isAutoPot(728)) + { + sendPacket(new ExAutoSoulShot(728, 0)); + setAutoPot(728, null, false); + } + if (isAutoPot(1539)) + { + sendPacket(new ExAutoSoulShot(1539, 0)); + setAutoPot(1539, null, false); + } + if (isAutoPot(5592)) + { + sendPacket(new ExAutoSoulShot(5592, 0)); + setAutoPot(5592, null, false); + } + return true; }
-
пиши в скайп kazar1111