Ir para conteúdo
  • Cadastre-se
  • 0

Custom Enchant


Williams Silva

Pergunta

ALGUEM PELO AMOR DE TODOS OS INICIANTES ME AJUDA ADAPTAR ISSO TO SOFRENDO PRA ADAPTAR

 

Link do Topico: http://www.l2jbrasil.com/index.php?/topic/49528-custom-enchant-config/?hl=enchant

 

### Eclipse Workspace Patch 1.0
#P aCis
Index: gameserver/java/net/sf/l2j/Config.java
===================================================================
--- gameserver/java/net/sf/l2j/Config.java (revision 90)
+++ gameserver/java/net/sf/l2j/Config.java (working copy)
@@ -34,6 +34,8 @@
import java.util.logging.Logger;

import javolution.util.FastList;
+import javolution.util.FastMap;
+import javolution.text.TypeFormat;
import net.sf.l2j.util.StringUtil;

/**
@@ -322,9 +324,17 @@
public static int ALT_GAME_FREIGHT_PRICE;

/**
Enchant */
- public static int ENCHANT_CHANCE_WEAPON;
- public static int ENCHANT_CHANCE_ARMOR;
- public static int ENCHANT_CHANCE_JEWELRY;
+ public final static FastMap<Integer, Integer> NORMAL_WEAPON_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+ public final static FastMap<Integer, Integer> BLESS_WEAPON_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+ public final static FastMap<Integer, Integer> CRYTAL_WEAPON_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+
+ public final static FastMap<Integer, Integer> NORMAL_ARMOR_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+ public final static FastMap<Integer, Integer> BLESS_ARMOR_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+ public final static FastMap<Integer, Integer> CRYSTAL_ARMOR_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+
+ public final static FastMap<Integer, Integer> NORMAL_JEWELRY_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+ public final static FastMap<Integer, Integer> BLESS_JEWELRY_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
+ public final static FastMap<Integer, Integer> CRYSTAL_JEWELRY_ENCHANT_LEVEL = new FastMap<Integer, Integer>();
public static int ENCHANT_MAX_WEAPON;
public static int ENCHANT_MAX_ARMOR;
public static int ENCHANT_MAX_JEWELRY;
@@ -917,9 +927,99 @@
ALT_GAME_FREIGHTS = Boolean.parseBoolean(playersSettings.getProperty("AltGameFreights", "False"));
ALT_GAME_FREIGHT_PRICE = Integer.parseInt(playersSettings.getProperty("AltGameFreightPrice", "1000"));

- ENCHANT_CHANCE_WEAPON = Integer.parseInt(playersSettings.getProperty("EnchantChanceWeapon", "66"));
- ENCHANT_CHANCE_ARMOR = Integer.parseInt(playersSettings.getProperty("EnchantChanceArmor", "66"));
- ENCHANT_CHANCE_JEWELRY = Integer.parseInt(playersSettings.getProperty("EnchantChanceJewelry", "66"));
+ String[] propertySplit = playersSettings.getProperty("NormalWeaponEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ NORMAL_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ propertySplit = playersSettings.getProperty("BlessWeaponEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ BLESS_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ propertySplit = playersSettings.getProperty("CrystalWeaponEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ CRYTAL_WEAPON_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ ////
+
+ propertySplit = playersSettings.getProperty("NormalArmorEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ NORMAL_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ propertySplit = playersSettings.getProperty("BlessArmorEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ BLESS_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ propertySplit = playersSettings.getProperty("CrystalArmorEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ CRYSTAL_ARMOR_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ ////
+
+ propertySplit = playersSettings.getProperty("NormalJewelryEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ NORMAL_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ propertySplit = playersSettings.getProperty("BlessJewelryEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ BLESS_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
+
+ propertySplit = playersSettings.getProperty("CrystalJewelryEnchantLevel", "").split(";");
+ for(String readData : propertySplit)
+ {
+ String[] writeData = readData.split(",");
+ if(writeData.length != 2) continue;
+ try {
+ CRYSTAL_JEWELRY_ENCHANT_LEVEL.put(TypeFormat.parseInt(writeData[0]), TypeFormat.parseInt(writeData[1]));
+ } catch(NumberFormatException nfe) {}
+ }
ENCHANT_MAX_WEAPON = Integer.parseInt(playersSettings.getProperty("EnchantMaxWeapon", "16"));
ENCHANT_MAX_ARMOR = Integer.parseInt(playersSettings.getProperty("EnchantMaxArmor", "16"));
ENCHANT_MAX_JEWELRY = Integer.parseInt(playersSettings.getProperty("EnchantMaxJewelry", "16"));
@@ -1375,9 +1475,9 @@
else if (pName.equalsIgnoreCase("MaximumWarehouseSlotsForClan")) WAREHOUSE_SLOTS_CLAN = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("MaximumFreightSlots")) FREIGHT_SLOTS = Integer.parseInt(pValue);

- else if (pName.equalsIgnoreCase("EnchantChanceWeapon")) ENCHANT_CHANCE_WEAPON = Integer.parseInt(pValue);
- else if (pName.equalsIgnoreCase("EnchantChanceArmor")) ENCHANT_CHANCE_ARMOR = Integer.parseInt(pValue);
- else if (pName.equalsIgnoreCase("EnchantChanceJewelry")) ENCHANT_CHANCE_JEWELRY = Integer.parseInt(pValue);
+ // else if (pName.equalsIgnoreCase("EnchantChanceWeapon")) ENCHANT_CHANCE_WEAPON = Integer.parseInt(pValue);
+ // else if (pName.equalsIgnoreCase("EnchantChanceArmor")) ENCHANT_CHANCE_ARMOR = Integer.parseInt(pValue);
+ // else if (pName.equalsIgnoreCase("EnchantChanceJewelry")) ENCHANT_CHANCE_JEWELRY = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("EnchantMaxWeapon")) ENCHANT_MAX_WEAPON = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("EnchantMaxArmor")) ENCHANT_MAX_ARMOR = Integer.parseInt(pValue);
else if (pName.equalsIgnoreCase("EnchantMaxJewelry")) ENCHANT_MAX_JEWELRY = Integer.parseInt(pValue);
Index: gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java
===================================================================
--- gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java (revision 90)
+++ gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestEnchantItem.java (working copy)
@@ -40,7 +40,13 @@
{
protected static final Logger _log = Logger.getLogger(Inventory.class.getName());
private static final String _C__58_REQUESTENCHANTITEM = "[C] 58 RequestEnchantItem";
- private static final int[] CRYSTAL_SCROLLS = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 };
+ private static final int[] CRYSTAL_SCROLLS = { 731, 732, 949, 950, 953, 954, 957, 958, 961, 962 };
+ private static final int[] NORMAL_WEAPON_SCROLLS = { 729, 947, 951, 955, 959 };
+ private static final int[] BLESSED_WEAPON_SCROLLS = { 6569, 6571, 6573, 6575, 6577 };
+ private static final int[] CRYSTAL_WEAPON_SCROLLS = { 731, 949, 953, 957, 961 };
+ private static final int[] NORMAL_ARMOR_SCROLLS = { 730, 948, 952, 956, 960 };
+ private static final int[] BLESSED_ARMOR_SCROLLS = { 6570, 6572, 6574, 6576, 6578 };
+ private static final int[] CRYSTAL_ARMOR_SCROLLS = { 732, 950, 954, 958, 962 };

private int _objectId;

@@ -200,21 +206,150 @@
int chance = 0;
int maxEnchantLevel = 0;

- if (item.getItem().getType2() == L2Item.TYPE2_WEAPON)
- {
- chance = Config.ENCHANT_CHANCE_WEAPON;
- maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
- }
- else if (item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
- {
- chance = Config.ENCHANT_CHANCE_ARMOR;
- maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
- }
- else if (item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
- {
- chance = Config.ENCHANT_CHANCE_JEWELRY;
- maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
- }
+ if(item.getItem().getType2() == L2Item.TYPE2_WEAPON)
+ {
+ for(int normalweaponscroll : NORMAL_WEAPON_SCROLLS)
+ {
+ if(scroll.getItemId() == normalweaponscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.NORMAL_WEAPON_ENCHANT_LEVEL.size())
+ {
+ chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(Config.NORMAL_WEAPON_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.NORMAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
+ }
+ }
+ for(int blessedweaponscroll : BLESSED_WEAPON_SCROLLS)
+ {
+ if(scroll.getItemId() == blessedweaponscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.BLESS_WEAPON_ENCHANT_LEVEL.size())
+ {
+ chance = Config.BLESS_WEAPON_ENCHANT_LEVEL.get(Config.BLESS_WEAPON_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.BLESS_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
+ }
+ }
+ for(int crystalweaponscroll : CRYSTAL_WEAPON_SCROLLS)
+ {
+ if(scroll.getItemId() == crystalweaponscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.CRYTAL_WEAPON_ENCHANT_LEVEL.size())
+ {
+ chance = Config.CRYTAL_WEAPON_ENCHANT_LEVEL.get(Config.CRYTAL_WEAPON_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.CRYTAL_WEAPON_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_WEAPON;
+ }
+ }
+ }
+ else if(item.getItem().getType2() == L2Item.TYPE2_SHIELD_ARMOR)
+ {
+ for(int normalarmorscroll : NORMAL_ARMOR_SCROLLS)
+ {
+ if(scroll.getItemId() == normalarmorscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.NORMAL_ARMOR_ENCHANT_LEVEL.size())
+ {
+ chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(Config.NORMAL_ARMOR_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.NORMAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
+ }
+ }
+ for(int blessedarmorscroll : BLESSED_ARMOR_SCROLLS)
+ {
+ if(scroll.getItemId() == blessedarmorscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.BLESS_ARMOR_ENCHANT_LEVEL.size())
+ {
+ chance = Config.BLESS_ARMOR_ENCHANT_LEVEL.get(Config.BLESS_ARMOR_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.BLESS_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
+ }
+ }
+ for(int crystalarmorscroll : CRYSTAL_ARMOR_SCROLLS)
+ {
+ if(scroll.getItemId() == crystalarmorscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size())
+ {
+ chance = Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.CRYSTAL_ARMOR_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_ARMOR;
+ }
+ }
+ }
+ else if(item.getItem().getType2() == L2Item.TYPE2_ACCESSORY)
+ {
+ for(int normaljewelscroll : NORMAL_ARMOR_SCROLLS)
+ {
+ if(scroll.getItemId() == normaljewelscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size())
+ {
+ chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(Config.NORMAL_JEWELRY_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.NORMAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
+ }
+ }
+ for(int blessedjewelscroll : BLESSED_ARMOR_SCROLLS)
+ {
+ if(scroll.getItemId() == blessedjewelscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.BLESS_JEWELRY_ENCHANT_LEVEL.size())
+ {
+ chance = Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(Config.BLESS_JEWELRY_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.BLESS_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
+ }
+ }
+ for(int crystaljewelscroll : CRYSTAL_ARMOR_SCROLLS)
+ {
+ if(scroll.getItemId() == crystaljewelscroll)
+ {
+ if(item.getEnchantLevel() + 1 > Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size())
+ {
+ chance = Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.size());
+ }
+ else
+ {
+ chance = Config.CRYSTAL_JEWELRY_ENCHANT_LEVEL.get(item.getEnchantLevel() + 1);
+ }
+ maxEnchantLevel = Config.ENCHANT_MAX_JEWELRY;
+ }
+ }
+ }

if (item.getEnchantLevel() < Config.ENCHANT_SAFE_MAX
|| (item.getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR
Index: gameserver/config/players.properties
===================================================================
--- gameserver/config/players.properties (revision 90)
+++ gameserver/config/players.properties (working copy)
@@ -77,10 +77,35 @@
#=============================================================
# Enchant
#=============================================================
-# % Chance of succeding to enchant an item when it has a chance of breaking
-EnchantChanceWeapon = 66
-EnchantChanceArmor = 66
-EnchantChanceJewelry = 66
+#-------------------------------------------------------------
+# Chance of Normal enchant scroll
+#-------------------------------------------------------------
+# Weapon
+NormalWeaponEnchantLevel = 1,100;2,100;3,100;4,96;5,92;6,88;7,84;8,80;9,76;10,72;11,68;12,64;13,60;14,56;15,62;16,58;
+# Armor
+NormalArmorEnchantLevel = 1,100;2,100;3,100;4,96;5,92;6,88;7,84;8,80;9,76;10,72;11,68;12,64;13,60;14,56;15,62;16,58;
+# Jewelry
+NormalJewelryEnchantLevel = 1,100;2,100;3,100;4,95;5,90;6,85;7,80;8,75;9,70;10,65;11,60;12,55;13,50;14,45;15,40;16,35;
+
+#-------------------------------------------------------------
+# Chance bless enchant scroll
+#-------------------------------------------------------------
+# Weapon
+BlessWeaponEnchantLevel = 1,100;2,100;3,100;4,97;5,94;6,91;7,88;8,85;9,82;10,79;11,76;12,73;13,70;14,67;15,64;16,61;
+# Armor
+BlessArmorEnchantLevel = 1,100;2,100;3,100;4,97;5,94;6,91;7,88;8,85;9,82;10,79;11,76;12,73;13,70;14,67;15,64;16,61;
+# Jewelry
+BlessJewelryEnchantLevel = 1,100;2,100;3,100;4,96;5,92;6,88;7,84;8,80;9,76;10,72;11,68;12,64;13,60;14,56;15,62;16,58;
+
+#-------------------------------------------------------------
+# Chance crystal scroll
+#-------------------------------------------------------------
+# Weapon
+CrystalWeaponEnchantLevel = 1,100;2,100;3,100;4,98;5,96;6,94;7,92;8,90;9,88;10,86;11,84;12,82;13,80;14,78;15,76;16,74;
+# Armor
+CrystalArmorEnchantLevel = 1,100;2,100;3,100;4,98;5,96;6,94;7,92;8,90;9,88;10,86;11,84;12,82;13,80;14,78;15,76;16,74;
+# Jewelry
+CrystalJewelryEnchantLevel = 1,100;2,100;3,100;4,97;5,94;6,91;7,88;8,85;9,82;10,79;11,76;12,73;13,70;14,67;15,64;16,61;

# Enchant limit [default = 16], 0 =unlimited
EnchantMaxWeapon = 16

 

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts recomendados

  • 0

Olá amigo! Primeiramente não há necessidade nenhuma de criar 3 Tópicos seguidos, isso é mais do que um flood.

Peça para um moderador fechar os outros tópicos:

 

http://www.l2jbrasil.com/index.php?/topic/115642-custom-enchant/

 

http://www.l2jbrasil.com/index.php?/topic/115641-custom-enchant/

 

Segundo coloca esse código dentro de uma tag "spoiler" por que esse código tá enorme.

e em terceiro para qual Projeto você quer adaptar isso? ninguém aqui é advinho :P

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites


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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  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.

Processando...




×
×
  • Criar Novo...

Important Information

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.