Я нашел только RequestEnchantItem.java там есть ENCHANT_FAILED настройка ща коперну выложу
// Decompiled by DJ v3.11.11.95 Copyright 2009 Atanas Neshkov Date: 17.06.2010 14:24:19
// Home Page:
http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: RequestEnchantItem.java
package com.jenova.gameserver.network.clientpackets;
import com.jenova.Config;
import com.jenova.gameserver.model.*;
import com.jenova.gameserver.model.actor.instance.L2PcInstance;
import com.jenova.gameserver.model.base.Race;
import com.jenova.gameserver.network.L2GameClient;
import com.jenova.gameserver.network.SystemMessageId;
import com.jenova.gameserver.network.serverpackets.*;
import com.jenova.gameserver.templates.L2Item;
import com.jenova.gameserver.templates.L2WeaponType;
import com.jenova.gameserver.util.Util;
import com.jenova.util.Rnd;
import java.util.logging.Logger;
// Referenced classes of package com.jenova.gameserver.network.clientpackets:
// L2GameClientPacket
public final class RequestEnchantItem extends L2GameClientPacket
{
public RequestEnchantItem()
{
}
protected void readImpl()
{
_objectId = readD();
}
protected void runImpl()
{
L2PcInstance activeChar;
L2ItemInstance item;
boolean blessedScroll;
int crystalId;
label0:
{
activeChar = ((L2GameClient)getClient()).getActiveChar();
if(activeChar == null || _objectId == 0)
return;
if(activeChar.isProcessingTransaction())
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
activeChar.setActiveEnchantItem(null);
return;
}
if(activeChar.isOnline() == 0)
{
activeChar.setActiveEnchantItem(null);
return;
}
item = activeChar.getInventory().getItemByObjectId(_objectId);
L2ItemInstance scroll = activeChar.getActiveEnchantItem();
activeChar.setActiveEnchantItem(null);
if(item == null || scroll == null)
return;
if(item.getItem().getItemType() == L2WeaponType.ROD || item.getItemId() >= 6611 && item.getItemId() <= 6621 || item.isShadowItem())
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
return;
}
if(item.isWear())
{
Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to enchant a weared Item").toString(), 2);
return;
}
int itemType2 = item.getItem().getType2();
boolean enchantItem = false;
blessedScroll = false;
crystalId = 0;
switch(item.getItem().getCrystalType())
{
case 4: // '\004'
crystalId = 1461;
switch(scroll.getItemId())
{
case 729:
case 731:
case 6569:
if(itemType2 == 0)
enchantItem = true;
break;
case 730:
case 732:
case 6570:
if(itemType2 == 1 || itemType2 == 2)
enchantItem = true;
break;
}
break;
case 3: // '\003'
crystalId = 1460;
switch(scroll.getItemId())
{
case 947:
case 949:
case 6571:
if(itemType2 == 0)
enchantItem = true;
break;
case 948:
case 950:
case 6572:
if(itemType2 == 1 || itemType2 == 2)
enchantItem = true;
break;
}
break;
case 2: // '\002'
crystalId = 1459;
switch(scroll.getItemId())
{
case 951:
case 953:
case 6573:
if(itemType2 == 0)
enchantItem = true;
break;
case 952:
case 954:
case 6574:
if(itemType2 == 1 || itemType2 == 2)
enchantItem = true;
break;
}
break;
case 1: // '\001'
crystalId = 1458;
switch(scroll.getItemId())
{
case 955:
case 957:
case 6575:
if(itemType2 == 0)
enchantItem = true;
break;
case 956:
case 958:
case 6576:
if(itemType2 == 1 || itemType2 == 2)
enchantItem = true;
break;
}
break;
case 5: // '\005'
crystalId = 1462;
switch(scroll.getItemId())
{
default:
break;
case 959:
case 961:
case 6577:
if(itemType2 == 0)
enchantItem = true;
break;
case 960:
case 962:
case 6578:
if(itemType2 == 1 || itemType2 == 2)
enchantItem = true;
break;
}
break;
}
if(!enchantItem)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
return;
}
if(scroll.getItemId() >= 6569 && scroll.getItemId() <= 6578)
{
blessedScroll = true;
} else
{
int arr$[] = CRYSTAL_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int crystalscroll = arr$[i$];
if(scroll.getItemId() == crystalscroll)
{
blessedScroll = true;
break;
}
i$++;
} while(true);
}
scroll = activeChar.getInventory().destroyItem("Enchant", scroll, activeChar, item);
if(scroll == null)
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
Util.handleIllegalPlayerAction(activeChar, (new StringBuilder()).append("Player ").append(activeChar.getName()).append(" tried to enchant with a scroll he doesnt have").toString(), Config.DEFAULT_PUNISH);
return;
}
int chance = 0;
int maxEnchantLevel = 0;
if(item.getItem().getType2() == 0)
{
maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
int arr$[] = ENCHANT_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_WEAPON;
break;
}
i$++;
} while(true);
arr$ = CRYSTAL_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_WEAPON_CRYSTAL;
break;
}
i$++;
} while(true);
arr$ = BLESSED_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_WEAPON_BLESSED;
break;
}
i$++;
} while(true);
} else
if(item.getItem().getType2() == 1)
{
maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
int arr$[] = ENCHANT_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_ARMOR;
break;
}
i$++;
} while(true);
arr$ = CRYSTAL_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_ARMOR_CRYSTAL;
break;
}
i$++;
} while(true);
arr$ = BLESSED_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_ARMOR_BLESSED;
break;
}
i$++;
} while(true);
} else
if(item.getItem().getType2() == 2)
{
maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
int arr$[] = ENCHANT_SCROLLS;
int len$ = arr$.length;
int i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_JEWELRY;
break;
}
i$++;
} while(true);
arr$ = CRYSTAL_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_JEWELRY_CRYSTAL;
break;
}
i$++;
} while(true);
arr$ = BLESSED_SCROLLS;
len$ = arr$.length;
i$ = 0;
do
{
if(i$ >= len$)
break;
int scrollId = arr$[i$];
if(scroll.getItemId() == scrollId)
{
chance = Config.ENCHANT_CHANCE_JEWELRY_BLESSED;
break;
}
i$++;
} while(true);
}
if(item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX || item.getItem().getBodyPart() == 32768 && item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX_FULL)
chance = 100;
int rndValue = Rnd.get(100);
if(Config.ENABLE_DWARF_ENCHANT_BONUS && activeChar.getRace() == Race.dwarf && activeChar.getLevel() >= Config.DWARF_ENCHANT_MIN_LEVEL)
rndValue -= Config.DWARF_ENCHANT_BONUS;
if(Config.ENCHANT_MAX_WEAPON > 0 && item.getItem().getType2() == 0 && item.getEnchantLevel() >= Config.ENCHANT_MAX_WEAPON)
{
activeChar.sendMessage("This is server limit for enchanting this item with scrolls.");
return;
}
if(Config.ENCHANT_MAX_ARMOR > 0 && item.getItem().getType2() == 1 && item.getEnchantLevel() >= Config.ENCHANT_MAX_ARMOR)
{
activeChar.sendMessage("This is server limit for enchanting this item with scrolls.");
return;
}
if(Config.ENCHANT_MAX_JEWELRY > 0 && item.getItem().getType2() == 2 && item.getEnchantLevel() >= Config.ENCHANT_MAX_JEWELRY)
{
activeChar.sendMessage("This is server limit for enchanting this item with scrolls.");
return;
}
if(rndValue >= chance)
break MISSING_BLOCK_LABEL_1779;
synchronized(item)
{
if(item.getOwnerId() == activeChar.getObjectId() && (item.getEnchantLevel() < maxEnchantLevel || maxEnchantLevel == 0))
break label0;
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
}
return;
}
if(item.getLocation() == com.jenova.gameserver.model.L2ItemInstance.ItemLocation.INVENTORY || item.getLocation() == com.jenova.gameserver.model.L2ItemInstance.ItemLocation.PAPERDOLL)
break MISSING_BLOCK_LABEL_1666;
activeChar.sendPacket(new SystemMessage(SystemMessageId.INAPPROPRIATE_ENCHANT_CONDITION));
l2iteminstance;
JVM INSTR monitorexit ;
return;
if(item.getEnchantLevel() == 0)
{
SystemMessage sm = new SystemMessage(SystemMessageId.S1_SUCCESSFULLY_ENCHANTED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
activeChar.clearBypass();
SystemMessage sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
item.setEnchantLevel(item.getEnchantLevel() + Config.ALTERNATIVE_ENCHANT_VALUE);
item.updateDatabase();
l2iteminstance;
JVM INSTR monitorexit ;
break MISSING_BLOCK_LABEL_2257;
exception;
throw exception;
if(!blessedScroll)
{
if(item.getEnchantLevel() > 0)
{
SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_S2_EVAPORATED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
SystemMessage sm = new SystemMessage(SystemMessageId.ENCHANTMENT_FAILED_S1_EVAPORATED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
} else
{
SystemMessage sm = new SystemMessage(SystemMessageId.BLESSED_ENCHANT_FAILED);
activeChar.sendPacket(sm);
}
if(!blessedScroll)
{
SystemMessage sm;
if(item.getEnchantLevel() > 3)
{
sm = new SystemMessage(SystemMessageId.EQUIPMENT_S1_S2_REMOVED);
sm.addNumber(item.getEnchantLevel());
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
} else
{
sm = new SystemMessage(SystemMessageId.S1_DISARMED);
sm.addItemName(item.getItemId());
activeChar.sendPacket(sm);
}
L2ItemInstance unequiped[] = activeChar.getInventory().unEquipItemInSlotAndRecord(item.getEquipSlot());
if(item.isEquipped())
{
InventoryUpdate iu = new InventoryUpdate();
for(int i = 0; i < unequiped.length; i++)
iu.addModifiedItem(unequiped[i]);
activeChar.sendPacket(iu);
activeChar.broadcastUserInfo();
}
int count = item.getCrystalCount() - (item.getItem().getCrystalCount() + 1) / 2;
if(count < 1)
count = 1;
L2ItemInstance destroyItem = activeChar.getInventory().destroyItem("Enchant", item, activeChar, null);
if(destroyItem == null)
return;
L2ItemInstance crystals = activeChar.getInventory().addItem("Enchant", crystalId, count, activeChar, destroyItem);
sm = new SystemMessage(SystemMessageId.EARNED_S2_S1_S);
sm.addItemName(crystals.getItemId());
sm.addNumber(count);
activeChar.sendPacket(sm);
if(!Config.FORCE_INVENTORY_UPDATE)
{
InventoryUpdate iu = new InventoryUpdate();
if(destroyItem.getCount() == 0)
iu.addRemovedItem(destroyItem);
else
iu.addModifiedItem(destroyItem);
iu.addItem(crystals);
activeChar.sendPacket(iu);
} else
{
activeChar.sendPacket(new ItemList(activeChar, true));
}
StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
su.addAttribute(14, activeChar.getCurrentLoad());
activeChar.sendPacket(su);
activeChar.broadcastUserInfo();
L2World world = L2World.getInstance();
world.removeObject(destroyItem);
} else
{
item.setEnchantLevel(0);
item.updateDatabase();
}
SystemMessage sm = null;
StatusUpdate su = new StatusUpdate(activeChar.getObjectId());
su.addAttribute(14, activeChar.getCurrentLoad());
activeChar.sendPacket(su);
su = null;
activeChar.sendPacket(new EnchantResult(item.getEnchantLevel()));
activeChar.sendPacket(new ItemList(activeChar, false));
activeChar.broadcastUserInfo();
return;
}
public String getType()
{
return "[C] 58 RequestEnchantItem";
}
protected static final Logger _log = Logger.getLogger(com/jenova/gameserver/model/Inventory.getName(RequestEnchantItem));
private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem";
private static final int ENCHANT_SCROLLS[] = {
729, 730, 947, 948, 951, 952, 955, 956, 959, 960
};
private static final int CRYSTAL_SCROLLS[] = {
731, 732, 949, 950, 953, 954, 957, 958, 961, 962
};
private static final int BLESSED_SCROLLS[] = {
6569, 6570, 6571, 6572, 6573, 6574, 6575, 6576, 6577, 6578
};
private int _objectId;
}