Jump to content

Recommended Posts

Posted (edited)

 

 

i try to change bonus patk when enchant . in this +6 patk for dual swprds , i want to change it become 12 or more  . i find in file.html ,xml ,java but nothing talking about it 1.jpg.1ec66ea9e1b567995db8b34919a476bd.jpg

 

 

then i trying edit in weapong.xml  , vesper dual sword 

here enchant val=0 order= 0x0c stat=patk

 

enchant val=100 order= 0x0c stat=patk ->wrong 

enchant val=0 order= 0x1c stat=patk -> wrong

enchant val=0 order= 1x0c stat=patk ->wrong

enchant val=0 order= 1.10x0c stat=patk - wrong

 2.jpg.f1dfc8f3956977fe98dee6710194c9ef.jpg

 

 

any idead for me 

Edited by bucogido
Posted

all file i can find 

+ EnchantHpbonus - increa hp when enchant amor

+ Enchant.html - table enchant item for gm - UI show enchant + 4 + 8 + 12 and textbox for u import number u want to enchant

+ DivineEnchanter - enchant attribute

AdminEnchant - enchant by GM table too

EnchantScroll - i think it a command to do when we click on enchant scroll in game

3.jpg.c36a9dc57a202d7d00d6ed71008a9667.jpg

Posted

* This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.gameserver.model.item.type;

/**
 * Crystal Type enumerated.
 * @author Adry_85
 */
public enum CrystalType
{
    NONE(0, 0, 0, 0),
    D(1, 1458, 11, 90),
    C(2, 1459, 6, 45),
    B(3, 1460, 11, 67),
    A(4, 1461, 19, 144),
    S(5, 1462, 25, 250);
    
    private final int _id;
    private final int _crystalId;
    private final int _crystalEnchantBonusArmor;
    private final int _crystalEnchantBonusWeapon;
    
    private CrystalType(int id, int crystalId, int crystalEnchantBonusArmor, int crystalEnchantBonusWeapon)
    {
        _id = id;
        _crystalId = crystalId;
        _crystalEnchantBonusArmor = crystalEnchantBonusArmor;
        _crystalEnchantBonusWeapon = crystalEnchantBonusWeapon;
    }
    
    /**
     * Gets the crystal type ID.
     * @return the crystal type ID
     */
    public int getId()
    {
        return _id;
    }
    
    /**
     * Gets the item ID of the crystal.
     * @return the item ID of the crystal
     */
    public int getCrystalId()
    {
        return _crystalId;
    }
    
    public int getCrystalEnchantBonusArmor()
    {
        return _crystalEnchantBonusArmor;
    }
    
    public int getCrystalEnchantBonusWeapon()
    {
        return _crystalEnchantBonusWeapon;
    }
    
    public boolean isGreater(CrystalType crystalType)
    {
        return getId() > crystalType.getId();
    }
    
    public boolean isLesser(CrystalType crystalType)
    {
        return getId() < crystalType.getId();
    }
}

 

 

maybe i found something?

Posted

i guess here is what you are looking 

 

public class FuncEnchant extends Func
{
	public FuncEnchant(Object owner, Stats stat, double value, Condition cond)
	{
		super(owner, stat, 3, value, cond);
	}
	
	@Override
	public double calc(Creature effector, Creature effected, L2Skill skill, double base, double value)
	{
		// Condition does not exist or it fails, no change.
		if (getCond() != null && !getCond().test(effector, effected, skill))
			return value;
		
		final ItemInstance item = (ItemInstance) getFuncOwner();
		
		int enchant = item.getEnchantLevel();
		if (enchant <= 0)
			return value;
		
		int overenchant = 0;
		if (enchant > 3)
		{
			overenchant = enchant - 3;
			enchant = 3;
		}
		
		if (effector != null && effector instanceof Player)
		{
			Player player = (Player) effector;
			if (player.isInOlympiadMode() && Config.OLY_ENCHANT_LIMIT >= 0 && (enchant + overenchant) > Config.OLY_ENCHANT_LIMIT)
			{
				if (Config.OLY_ENCHANT_LIMIT > 3)
					overenchant = Config.OLY_ENCHANT_LIMIT - 3;
				else
				{
					overenchant = 0;
					enchant = Config.OLY_ENCHANT_LIMIT;
				}
			}
		}
		
		if (getStat() == Stats.MAGIC_DEFENCE || getStat() == Stats.POWER_DEFENCE)
			return value + enchant + (3 * overenchant);
		
		if (getStat() == Stats.MAGIC_ATTACK)
		{
			switch (item.getItem().getCrystalType())
			{
				case S:
					value += (4 * enchant + 8 * overenchant);
					break;
				
				case A:
				case B:
				case C:
					value += (3 * enchant + 6 * overenchant);
					break;
				
				case D:
					value += (2 * enchant + 4 * overenchant);
					break;
			}
			return value;
		}
		
		if (item.isWeapon())
		{
			final WeaponType type = (WeaponType) item.getItemType();
			
			switch (item.getItem().getCrystalType())
			{
				case S:
					switch (type)
					{
						case BOW:
							value += (10 * enchant + 20 * overenchant);
							break;
						
						case BIGBLUNT:
						case BIGSWORD:
						case DUALFIST:
						case DUAL:
							value += (6 * enchant + 12 * overenchant);
							break;
						
						default:
							value += (5 * enchant + 10 * overenchant);
							break;
					}
					break;
				
				case A:
					switch (type)
					{
						case BOW:
							value += (8 * enchant + 16 * overenchant);
							break;
						
						case BIGBLUNT:
						case BIGSWORD:
						case DUALFIST:
						case DUAL:
							value += (5 * enchant + 10 * overenchant);
							break;
						
						default:
							value += (4 * enchant + 8 * overenchant);
							break;
					}
					break;
				
				case B:
				case C:
					switch (type)
					{
						case BOW:
							value += (6 * enchant + 12 * overenchant);
							break;
						
						case BIGBLUNT:
						case BIGSWORD:
						case DUALFIST:
						case DUAL:
							value += (4 * enchant + 8 * overenchant);
							break;
						
						default:
							value += (3 * enchant + 6 * overenchant);
							break;
					}
					break;
				
				case D:
					switch (type)
					{
						case BOW:
							value += (4 * enchant + 8 * overenchant);
							break;
						
						default:
							value += (2 * enchant + 4 * overenchant);
							break;
					}
					break;
			}
		}
		return value;
	}

 

  • Like 1
Posted

@ThelwHelpRePaidia that right thank a lot 

but FuncEnchant in l2sever.jar . how i can edit 

file.class can't read or edit code 

if decompiler it to .java (allow edit code) . but i don't know how to compiler again to.class ,use cmd "javac" to complier FuncEnchant.java to .class --> error

Posted
2 hours ago, bucogido said:

@ThelwHelpRePaidia that right thank a lot 

but FuncEnchant in l2sever.jar . how i can edit 

file.class can't read or edit code 

if decompiler it to .java (allow edit code) . but i don't know how to compiler again to.class ,use cmd "javac" to complier FuncEnchant.java to .class --> error

You must have been googling a lot xD

 

You need to get the source code of your pack and make your changes there, then use eclipse/intellij idea or whatever dev tool you want to compile the jar again.

 

If you don't have the source of your pack, things get more complicated and I doubt you'll be able to re-compile a decompiled jar as you barely know what a jar is in the first place.

Posted

yeah i search google some guide compiler  but i don't have source for compile again the new jar . i trying to find some method to edit file.class in pack without unpack the pack. 

if i build a new file.class by old code then copy paste it replace old file in pack , will it be successful ?

 

Posted
4 hours ago, bucogido said:

@ThelwHelpRePaidia that right thank a lot 

but FuncEnchant in l2sever.jar . how i can edit 

file.class can't read or edit code 

if decompiler it to .java (allow edit code) . but i don't know how to compiler again to.class ,use cmd "javac" to complier FuncEnchant.java to .class --> error

You should better just give up on this and start a clean source...you are gonna see that you are wasting your time

Posted
3 hours ago, bucogido said:

yeah i search google some guide compiler  but i don't have source for compile again the new jar . i trying to find some method to edit file.class in pack without unpack the pack. 

if i build a new file.class by old code then copy paste it replace old file in pack , will it be successful ?

 

There is no way to edit a single .class file inside a jar unless you decompile the jar. Stop wasting your time and look for the source of your files, it will be shared 100%.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...