09-21-2016, 01:13 PM
Уважаемые форумчане второй день не могу понять почему ,Свиток. Модифицировать Головной Убор , не работает , в систем чат при попытке его использования выводится сообщение "Не соответствие свитка модификации" . :help: Мой скайп Lineage_gw :help:
Так же не работает Камень Жизни Для Головных Уборов
Не работает Обработка Головных Уборов
Принятые мной попытки .
Переписан файл Config > xml >EnchantItemData ,
Ядро пробовал по всякому но может я что то упускаю .
gameserver\model\items\EnchantItem
package l2next.gameserver.model.items;
import l2next.gameserver.model.items.base.L2Item;
import l2next.gameserver.model.items.base.instance.L2ItemInstance;
import l2next.gameserver.model.items.base.proptypes.CrystalGrade;
import l2next.gameserver.model.skills.stats.StatsSet;
import java.util.List;
public class EnchantItem
{
protected final int _id;
protected final boolean _isWeapon;
protected final CrystalGrade _grade;
protected final int _maxEnchantLevel;
protected final double _chanceAdd;
protected final List<Integer> _itemIds;
public EnchantItem(StatsSet set, List<Integer> items)
{
_id = set.getInteger("id");
_isWeapon = set.getBool("isWeapon", true);
_grade = CrystalGrade.valueOf(set.getString("targetGrade", "NONE"));
_maxEnchantLevel = set.getInteger("maxEnchant", 0);
_chanceAdd = set.getDouble("successRate", 0);
_itemIds = items;
}
/*
@isValid возвращает при заточке удовлетворяет ли итем тербованиям или нет.
*/
public final boolean isValid(L2ItemInstance enchantItem)
{
if(enchantItem == null)
{
return false;
}
if(_maxEnchantLevel != 0 && enchantItem.getEnchantLevel() >= _maxEnchantLevel)
{
return false;
}
if(getScrollId() == 36978)
{
switch(enchantItem.getArmorItem().getBodyPart())
{
case L2Item.SLOT_HAIR:
case L2Item.SLOT_HAIR2:
case L2Item.SLOT_HAIRALL:
return true;
}
}
if(!enchantItem.isEnchantable())
{
return false;
}
else if(!isValidItemType(enchantItem.getItem().getType2()))
{
return false;
}
else if(_grade != enchantItem.getItem().getItemGradeSPlus())
{
return false;
}
else if((!enchantItem.isEnchantable() && (_itemIds.isEmpty() || !_itemIds.contains(enchantItem.getItemId()))) || !_itemIds.isEmpty() && !_itemIds.contains(enchantItem.getItemId()))
{
return false;
}
return true;
}
private boolean isValidItemType(int type2)
{
if(type2 == L2Item.TYPE2_WEAPON)
{
return _isWeapon;
}
else if(type2 == L2Item.TYPE2_SHIELD_ARMOR || type2 == L2Item.TYPE2_ACCESSORY)
{
return !_isWeapon;
}
return false;
}
/**
* @return chance increase
*/
public final double getChanceAdd()
{
return _chanceAdd;
}
public final int getMaxEnchantLevel()
{
return _maxEnchantLevel;
}
public int getScrollId()
{
return _id;
}
}
Так же не работает Камень Жизни Для Головных Уборов
Не работает Обработка Головных Уборов
Принятые мной попытки .
Переписан файл Config > xml >EnchantItemData ,
Ядро пробовал по всякому но может я что то упускаю .
gameserver\model\items\EnchantItem
package l2next.gameserver.model.items;
import l2next.gameserver.model.items.base.L2Item;
import l2next.gameserver.model.items.base.instance.L2ItemInstance;
import l2next.gameserver.model.items.base.proptypes.CrystalGrade;
import l2next.gameserver.model.skills.stats.StatsSet;
import java.util.List;
public class EnchantItem
{
protected final int _id;
protected final boolean _isWeapon;
protected final CrystalGrade _grade;
protected final int _maxEnchantLevel;
protected final double _chanceAdd;
protected final List<Integer> _itemIds;
public EnchantItem(StatsSet set, List<Integer> items)
{
_id = set.getInteger("id");
_isWeapon = set.getBool("isWeapon", true);
_grade = CrystalGrade.valueOf(set.getString("targetGrade", "NONE"));
_maxEnchantLevel = set.getInteger("maxEnchant", 0);
_chanceAdd = set.getDouble("successRate", 0);
_itemIds = items;
}
/*
@isValid возвращает при заточке удовлетворяет ли итем тербованиям или нет.
*/
public final boolean isValid(L2ItemInstance enchantItem)
{
if(enchantItem == null)
{
return false;
}
if(_maxEnchantLevel != 0 && enchantItem.getEnchantLevel() >= _maxEnchantLevel)
{
return false;
}
if(getScrollId() == 36978)
{
switch(enchantItem.getArmorItem().getBodyPart())
{
case L2Item.SLOT_HAIR:
case L2Item.SLOT_HAIR2:
case L2Item.SLOT_HAIRALL:
return true;
}
}
if(!enchantItem.isEnchantable())
{
return false;
}
else if(!isValidItemType(enchantItem.getItem().getType2()))
{
return false;
}
else if(_grade != enchantItem.getItem().getItemGradeSPlus())
{
return false;
}
else if((!enchantItem.isEnchantable() && (_itemIds.isEmpty() || !_itemIds.contains(enchantItem.getItemId()))) || !_itemIds.isEmpty() && !_itemIds.contains(enchantItem.getItemId()))
{
return false;
}
return true;
}
private boolean isValidItemType(int type2)
{
if(type2 == L2Item.TYPE2_WEAPON)
{
return _isWeapon;
}
else if(type2 == L2Item.TYPE2_SHIELD_ARMOR || type2 == L2Item.TYPE2_ACCESSORY)
{
return !_isWeapon;
}
return false;
}
/**
* @return chance increase
*/
public final double getChanceAdd()
{
return _chanceAdd;
}
public final int getMaxEnchantLevel()
{
return _maxEnchantLevel;
}
public int getScrollId()
{
return _id;
}
}