Jump to content

Recommended Posts

  • 4 weeks later...
Posted

Please help me i dont no. I find files RequestExEnchantItemAttribute.java

and i dont lines i based on l2jserver High Five

 

- if (item.getItem().getItemType() == L2WeaponType.FISHINGROD || item.isShadowItem() || item.isCommonItem() || item.isPvp() || item.isHeroItem() || item.isTimeLimitedItem() ||

+ if (item.getItem().getItemType() == L2WeaponType.FISHINGROD || item.isShadowItem() || item.isCommonItem() || item.isHeroItem() || item.isTimeLimitedItem() ||

 

Mi files:

 

public class RequestExEnchantItemAttribute extends L2GameClientPacket
{
private static final String _C__D0_35_REQUESTEXENCHANTITEMATTRIBUTE = "[C] D0:35 RequestExEnchantItemAttribute";

private int _objectId;

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

@Override
protected void runImpl()
{
	L2PcInstance player = getClient().getActiveChar();
	if (player == null)
		return;

	if (_objectId == 0xFFFFFFFF)
	{
		// Player canceled enchant
		player.setActiveEnchantAttrItem(null);
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ELEMENTAL_ENHANCE_CANCELED));
		return;
	}

	if (!player.isOnline())
	{
		player.setActiveEnchantAttrItem(null);
		return;
	}

	if (player.getPrivateStoreType() != 0)
	{
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.CANNOT_ADD_ELEMENTAL_POWER_WHILE_OPERATING_PRIVATE_STORE_OR_WORKSHOP));
		player.setActiveEnchantAttrItem(null);
		return;
	}

	// Restrict enchant during a trade (bug if enchant fails)
	if (player.getActiveRequester() != null)
	{
		// Cancel trade
		player.cancelActiveTrade();
		player.setActiveEnchantAttrItem(null);
		player.sendMessage("Enchanting items is not allowed during a trade.");
		return;
	}

	L2ItemInstance item = player.getInventory().getItemByObjectId(_objectId);
	L2ItemInstance stone = player.getActiveEnchantAttrItem();
	if (item == null || stone == null)
	{
		player.setActiveEnchantAttrItem(null);
		return;
	}

	if (!item.isElementable())
	{
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ELEMENTAL_ENHANCE_REQUIREMENT_NOT_SUFFICIENT));
		player.setActiveEnchantAttrItem(null);
		return;
	}

	switch (item.getLocation())
	{
		case INVENTORY:
		case PAPERDOLL:
		{
			if (item.getOwnerId() != player.getObjectId())
			{
				player.setActiveEnchantAttrItem(null);
				return;
			}
			break;
		}
		default:
		{
			player.setActiveEnchantAttrItem(null);
			Util.handleIllegalPlayerAction(player, "Player "+player.getName()+" tried to use enchant Exploit!", Config.DEFAULT_PUNISH);
			return;
		}
	}

	int stoneId = stone.getItemId();
	byte elementToAdd = Elementals.getItemElement(stoneId);
	// Armors have the opposite element
	if (item.isArmor())
		elementToAdd = Elementals.getOppositeElement(elementToAdd);
	byte opositeElement = Elementals.getOppositeElement(elementToAdd);

	Elementals oldElement = item.getElemental(elementToAdd);
	int elementValue = oldElement == null ? 0 : oldElement.getValue();
	int limit = getLimit(item, stoneId);
	int powerToAdd = getPowerToAdd(stoneId, elementValue, item);

	if ((item.isWeapon() && oldElement != null && oldElement.getElement() != elementToAdd && oldElement.getElement() != -2)
			|| (item.isArmor() && item.getElemental(elementToAdd) == null && item.getElementals() != null && item.getElementals().length >= 3))
	{
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ANOTHER_ELEMENTAL_POWER_ALREADY_ADDED));
		player.setActiveEnchantAttrItem(null);
		return;
	}

	if (item.isArmor() && item.getElementals() != null)
	{
		//cant add opposite element
		for (Elementals elm : item.getElementals())
		{
			if (elm.getElement() == opositeElement)
			{
				player.setActiveEnchantAttrItem(null);
				Util.handleIllegalPlayerAction(player, "Player "+player.getName()+" tried to add oposite attribute to item!", Config.DEFAULT_PUNISH);
				return;
			}
		}
	}

	int newPower = elementValue + powerToAdd;
	if (newPower > limit)
	{
		newPower = limit;
		powerToAdd = limit - elementValue;
	}

	if (powerToAdd <= 0)
	{
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ELEMENTAL_ENHANCE_CANCELED));
		player.setActiveEnchantAttrItem(null);
		return;
	}

	if(!player.destroyItem("AttrEnchant", stone, 1, player, true))
	{
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.NOT_ENOUGH_ITEMS));
		Util.handleIllegalPlayerAction(player, "Player "+player.getName()+" tried to attribute enchant with a stone he doesn't have", Config.DEFAULT_PUNISH);
		player.setActiveEnchantAttrItem(null);
		return;
	}
	boolean success = false;
	switch(Elementals.getItemElemental(stoneId)._type)
	{
		case Stone:
		case Roughore:
			success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_STONE;
			break;
		case Crystal:
			success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_CRYSTAL;
			break;
		case Jewel:
			success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_JEWEL;
			break;
		case Energy:
			success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_ENERGY;
			break;
	}
	if (success)
	{
		byte realElement = item.isArmor() ? opositeElement : elementToAdd;

		SystemMessage sm;
		if (item.getEnchantLevel() == 0)
		{
			if (item.isArmor())
				sm = SystemMessage.getSystemMessage(SystemMessageId.THE_S2_ATTRIBUTE_WAS_SUCCESSFULLY_BESTOWED_ON_S1_RES_TO_S3_INCREASED);
			else
				sm = SystemMessage.getSystemMessage(SystemMessageId.ELEMENTAL_POWER_S2_SUCCESSFULLY_ADDED_TO_S1);
			sm.addItemName(item);
			sm.addElemental(realElement);
			if (item.isArmor())
				sm.addElemental(Elementals.getOppositeElement(realElement));
		}
		else
		{
			if (item.isArmor())
				sm = SystemMessage.getSystemMessage(SystemMessageId.THE_S3_ATTRIBUTE_BESTOWED_ON_S1_S2_RESISTANCE_TO_S4_INCREASED);
			else
				sm = SystemMessage.getSystemMessage(SystemMessageId.ELEMENTAL_POWER_S3_SUCCESSFULLY_ADDED_TO_S1_S2);
			sm.addNumber(item.getEnchantLevel());
			sm.addItemName(item);
			sm.addElemental(realElement);
			if (item.isArmor())
				sm.addElemental(Elementals.getOppositeElement(realElement));
		}
		player.sendPacket(sm);
		item.setElementAttr(elementToAdd, newPower);
		if (item.isEquipped())
			item.updateElementAttrBonus(player);

		// send packets
		InventoryUpdate iu = new InventoryUpdate();
		iu.addModifiedItem(item);
		player.sendPacket(iu);
	}
	else
		player.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.FAILED_ADDING_ELEMENTAL_POWER));

	player.sendPacket(new ExAttributeEnchantResult(powerToAdd));
	player.sendPacket(new UserInfo(player));
	player.sendPacket(new ExBrExtraUserInfo(player));
	player.setActiveEnchantAttrItem(null);
}

public int getLimit(L2ItemInstance item, int sotneId)
{
	Elementals.ElementalItems elementItem = Elementals.getItemElemental(sotneId);
	if (elementItem == null)
		return 0;

	if (item.isWeapon())
		return Elementals.WEAPON_VALUES[elementItem._type._maxLevel];
	return Elementals.ARMOR_VALUES[elementItem._type._maxLevel];
}

public int getPowerToAdd(int stoneId, int oldValue, L2ItemInstance item)
{
	if (Elementals.getItemElement(stoneId) != Elementals.NONE)
	{
		if (item.isWeapon())
		{
			if (oldValue == 0)
				return Elementals.FIRST_WEAPON_BONUS;
			return Elementals.NEXT_WEAPON_BONUS;
		}
		else if (item.isArmor())
			return Elementals.ARMOR_BONUS;
	}
	return 0;
}

@Override
public String getType()
{
	return _C__D0_35_REQUESTEXENCHANTITEMATTRIBUTE;
}
}

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • It’s been a while since this situation started. As I’ve mentioned before, you are no longer kids you’re grown adults. Please resolve your disagreements through DMs, not forum threads.   I understand that you are competitors, but the rest of the community isn’t interested in your disputes. Stop publicly accusing each other and focus on handling issues privately.   The reputation system is not to be abused. Hearing complaints like “he downvoted me” every day is not productive. This thread will remain locked. Please grow up and handle your problems through private messages.
    • It's owned by a person from down under. Nikita is not even a CEO.     Another honorable mention of who does actually hold a sort of authority: Troyz.     The project itself is - or, at least, used to be TERRIBLY corrupt and is known for having multiple alts on maxcheaters selling fabricated items in the past.        P.S. Their staff split up and the leftovers formed a new project called "darkdragon", utilizing old database of Reborn they had for marketing purposes.
    • They indeed moved from aCis to Lucera back in 2020 - he was running under the name p0w3rf1y over my forums (he shared some fixes under that name). I had access to their timeline, got kicked and ignored overnight. From what I know they also struggled using Lucera, but I got no contact since then.
    • What private thing? Post the evidence here, and let the community know what you are. It also explains the manipulation of this thread; is that why you want privileges here? https://maxcheaters.com/topic/253997-sourceservercliente-l2devs-files-l2devscom/page/2/ This thread perfectly demonstrates how you use your forum privileges. No need to say anything, just look at it. Don't explain it to me, explain it to the community or the people who believed you.  
    • What other proof do you need from someone who has been banned and has multiple accounts on the forum? Anyway, I'll send you what you're requesting privately, no problem. I thought that in the last chat we had made clear the points where we allowed this person to continue in the forum, one of them being that they didn't mention me anymore, but it didn't last long.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..