[share] Обмен заточенных на +8/+9 рубашек Ольфа на такую же рубашку +10

Gaikotsu

яжпрограммист
Легенда
Победитель в номинации 2023
Победитель в номинации 2022
Победитель в номинации 2021
Участник Новогоднего Фонда 2021
Эксперт
Знаток
Просветитель
Магистр реакций
Знаток письма
Куратор Данных
Медаль Благодарности
Старожил II степени
Старожил I степени
Победитель в номинации 2020
Победитель в номинации 2019
Клиент разработчик
Преподаватель
За веру и верность форуму
Победитель в номинации 2018
Медаль за активность на Форуме
За заслуги перед форумом
Web разработчик
Разработчик
За знание датапака
За знание ядра
Сообщения
1 520
Розыгрыши
0
Решения
24
Репутация
6 004
Реакции
2 581
Баллы
2 188
Все думаю в курсе что на руоффе была такая акция - имея рубашку +8, можно было написать администрации и они меняли эту рубашку на такую же, но заточенную до +10.
Вот скрипт, который все это дело автоматизирует - игрок может сам за определенную плату поменять такую рубашку прямо в игре.
Код:
package handler.bypass;

import l2p.commons.dao.JdbcEntityState;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.instances.NpcInstance;
import l2p.gameserver.model.items.ItemInstance;
import l2p.gameserver.network.serverpackets.InventoryUpdate;
import l2p.gameserver.utils.ItemUtils;
import l2p.gameserver.utils.Log;
import l2p.gameserver.utils.Util;

public class PowerShirtExchange extends ScriptBypassHandler
{
   private static final String[] _commandList = new String[] { "exchangePowerShirtStep1", "exchangePowerShirtStep2" };

   private static final long _exchangePrice = 100_000_000;
   private static final int[] _powerShirt = { 21580, 21706 };

   @Override
   public void onBypassFeedback(NpcInstance npc, Player player, String command, String[] params)
   {
       if (command.equalsIgnoreCase("exchangePowerShirtStep1"))
       {
           npc.showChatWindow(player, 1, "%price%", Util.formatAdena(_exchangePrice));
       }
       else if (command.equalsIgnoreCase("exchangePowerShirtStep2"))
       {
           if (!ItemUtils.checkItemCount(player, 57, _exchangePrice))
               return;

           ItemInstance shirt = null;

           for (ItemInstance item : player.getInventory().getItemsByItemId(_powerShirt))
               if (item.getEnchantLevel() == 8 || item.getEnchantLevel() == 9)
               {
                   shirt = item;
                   break;
               }

           if (shirt == null)
           {
               player.sendPopupMessage("Рубашек Ольфа с заточкой +8/+9 в вашем инвентаре не найдено.");
               return;
           }

           if (ItemUtils.removeItem(player, 57, _exchangePrice, true) != _exchangePrice)
               return;

           int oldEnchant = shirt.getEnchantLevel();
           boolean equipped = false;

           if (equipped = shirt.isEquipped())
           {
               player.getInventory().isRefresh = true;
               player.getInventory().unEquipItem(shirt);
           }

           shirt.setEnchantLevel(10);
           shirt.setJdbcState(JdbcEntityState.UPDATED);
           shirt.update();

           if (equipped)
           {
               player.getInventory().equipItem(shirt);
               player.getInventory().isRefresh = false;
           }

           player.sendPacket(new InventoryUpdate().addModifiedItem(shirt));
           player.sendPopupMessage("Рубашка Ольфа +" + oldEnchant + " обменяна на такую же рубашку +10.");
           Log.logEnchant(player.getName() + "|ExchangePowerShirt|" + shirt.getName() + " (" + shirt.getItemId() + ") [" + shirt.getObjectId() + "]|+" + oldEnchant + " -> +" + shirt.getEnchantLevel());
       }
   }

   @Override
   public String[] getBypasses()
   {
       return _commandList;
   }
}
Нужные диалоги какому нибудь нпс думаю сами составите :)
У меня к примеру таким обменом занимается Пэдди на Острове Фантазий.
 
  • Мне нравится
Реакции: ysline и kick

    kick

    Баллов: 25
    Спасибо за шару
Смысл данного скрипта? Можно такое сделать тупо мультиселом, если скриптить, то делать, что бы футболка менялась автоматически. У нас на Линдвиоре она менялась при релоге
 
Все думаю в курсе что на руоффе была такая акция - имея рубашку +8, можно было написать администрации и они меняли эту рубашку на такую же, но заточенную до +10.
У меня к примеру таким обменом занимается Пэдди на Острове Фантазий.
На оффе сейчас тоже автоматически все и тоже через пэдди.
 
Смысл данного скрипта? Можно такое сделать тупо мультиселом, если скриптить, то делать, что бы футболка менялась автоматически. У нас на Линдвиоре она менялась при релоге
а где ты тут видишь "не автоматический обмен"? :)
тут тоже - подошел к нпс, ткнул ссылку и сразу же получил вместо рубашки +8/+9 и некоторой суммы денег рубашку +10.

На оффе сейчас тоже автоматически все и тоже через пэдди.
ну во времена хф обменом занималась администрация вручную, по заявкам на форуме.
 
Назад
Сверху Снизу