Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Снятие Аугментации с PVP вещей
#1
Время доброе!

Разрешил игрокам аугментировать PvP оружие
Но вот отменить с него аугментацию никто не может.
Пишет This is not suitable item.
В сорцах что-то даже упоминания об этом найти не могу
вот сам RequestRefinaCancel.java
Код:
package com.l2open.gameserver.network.clientpackets;

import com.l2open.Config;
import com.l2open.gameserver.model.L2ItemInstance;
import com.l2open.gameserver.model.L2World;
import com.l2open.gameserver.model.actor.instance.L2PcInstance;
import com.l2open.gameserver.network.SystemMessageId;
import com.l2open.gameserver.network.serverpackets.ExVariationCancelResult;
import com.l2open.gameserver.network.serverpackets.InventoryUpdate;
import com.l2open.gameserver.network.serverpackets.SystemMessage;
import com.l2open.gameserver.templates.item.L2Item;
import com.l2open.gameserver.util.Util;

/**
* Format(ch) d
*
* @author -Wooden-
*/
public final class RequestRefineCancel extends L2GameClientPacket
{
        private static final String _C__D0_2E_REQUESTREFINECANCEL = "[C] D0:2E RequestRefineCancel";
        private int _targetItemObjId;

        @Override
        protected void readImpl()
        {
                _targetItemObjId = readD();
        }

        /**
         * @see com.l2open.gameserver.clientpackets.ClientBasePacket#runImpl()
         */
        @Override
        protected void runImpl()
        {
                L2PcInstance activeChar = getClient().getActiveChar();
                L2ItemInstance targetItem = (L2ItemInstance) L2World.getInstance().findObject(_targetItemObjId);
                if (activeChar == null)
                        return;
                if (targetItem == null)
                {
                        activeChar.sendPacket(new ExVariationCancelResult(0));
                        return;
                }
                if (targetItem.getOwnerId() != activeChar.getObjectId())
                {
                        Util.handleIllegalPlayerAction(getClient().getActiveChar(), "Warning!! Character " + getClient().getActiveChar().getName() + " of account " + getClient().getActiveChar().getAccountName() + " tryied to augment item that doesn't own.", Config.DEFAULT_PUNISH);
                        return;
                }
                // cannot remove augmentation from a not augmented item
                if (!targetItem.isAugmented())
                {
                        activeChar.sendPacket(new SystemMessage(SystemMessageId.AUGMENTATION_REMOVAL_CAN_ONLY_BE_DONE_ON_AN_AUGMENTED_ITEM));
                        activeChar.sendPacket(new ExVariationCancelResult(0));
                        return;
                }
                // get the price
                int price = 0;
                switch (targetItem.getItem().getCrystalType())
                {
                        case L2Item.CRYSTAL_C:
                                if (targetItem.getCrystalCount() < 1720)
                                        price = 95000;
                                else if (targetItem.getCrystalCount() < 2452)
                                        price = 150000;
                                else
                                        price = 210000;
                                break;
                        case L2Item.CRYSTAL_B:
                                if (targetItem.getCrystalCount() < 1746)
                                        price = 240000;
                                else
                                        price = 270000;
                                break;
                        case L2Item.CRYSTAL_A:
                                if (targetItem.getCrystalCount() < 2160)
                                        price = 330000;
                                else if (targetItem.getCrystalCount() < 2824)
                                        price = 390000;
                                else
                                        price = 420000;
                                break;
                        case L2Item.CRYSTAL_S:
                                price = 480000;
                                break;
                        case L2Item.CRYSTAL_S80:
                        case L2Item.CRYSTAL_S84:
                                price = 920000;
                                break;
                        // any other item type is not augmentable
                        default:
                                activeChar.sendPacket(new ExVariationCancelResult(0));
                                return;
                }
                // try to reduce the players adena
                if (!activeChar.reduceAdena("RequestRefineCancel", price, null, true))
                        return;
                // unequip item
                if (targetItem.isEquipped())
                        activeChar.disarmWeapons();
                // remove the augmentation
                targetItem.removeAugmentation();
                // send ExVariationCancelResult
                activeChar.sendPacket(new ExVariationCancelResult(1));
                // send inventory update
                InventoryUpdate iu = new InventoryUpdate();
                iu.addModifiedItem(targetItem);
                activeChar.sendPacket(iu);
                // send system message
                SystemMessage sm = new SystemMessage(SystemMessageId.AUGMENTATION_HAS_BEEN_SUCCESSFULLY_REMOVED_FROM_YOUR_S1);
                sm.addString(targetItem.getItemName());
                activeChar.sendPacket(sm);
        }

        /**
         * @see com.l2open.gameserver.BasePacket#getType()
         */
        @Override
        public String getType()
        {
                return _C__D0_2E_REQUESTREFINECANCEL;
        }
}
[Изображение: guru.gif]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Трабла с покупкой вещей в шопе Lord_Gothic 6 1,708 12-26-2018, 01:22 AM
Последний пост: Lord_Gothic
  эффекты аугментации sheg300 3 1,612 06-19-2018, 08:16 AM
Последний пост: Emperor
  МП у вещей silok 3 1,638 05-17-2018, 06:18 PM
Последний пост: silok
  Добавление вещей Lirik 5 1,700 09-29-2015, 09:37 AM
Последний пост: Zubastic
  Использование вещей Map 4 1,460 04-19-2015, 12:55 PM
Последний пост: Map
  патч id вещей в клиенте Dimidrolbel 5 1,586 12-13-2013, 02:03 PM
Последний пост: Dimidrolbel
  Не работает заточка вещей Alexey6630 1 1,633 08-07-2013, 09:57 AM
Последний пост: gorodetskiy
  Сохранение вещей у пета L2sidia 4 1,595 07-30-2013, 01:27 PM
Последний пост: L2sidia
  Правка статов аугментации DeLone 1 1,602 07-24-2013, 01:28 PM
Последний пост: DeLone
  Аукцион вещей glam1985 5 1,814 02-08-2013, 06:11 PM
Последний пост: Zubastic

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)