Снятие Аугментации с PVP вещей - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Описание темы:просветите

Ответ
Опции темы
Непрочитано 08.07.2010, 08:32   #1
Аватар для Дух системы
Пользователь

Автор темы (Топик Стартер) Снятие Аугментации с PVP вещей

Время доброе!

Разрешил игрокам аугментировать 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;
        }
}
__________________
Дух системы вне форума Отправить сообщение для Дух системы с помощью ICQ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Насчет аугментации KitKat Работа со скриптами 1 22.03.2010 18:01
снятие баффов solbadguy Работа со скриптами 0 05.02.2010 18:36
ID вещей Mag_i_str Серверная часть 2 16.01.2010 17:45
ID вещей DarkSalivan Серверная часть 1 24.10.2009 22:10
Снятие ограничений Neversmile Работа со скриптами 30 21.10.2009 08:04


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 10:15. Часовой пояс GMT +3.

Вверх