Secret Experience

Secret Experience (https://secretexperience.net/)
-   [Lineage] Java Mods (https://secretexperience.net/lineage-java-mods/)
-   -   [Tutorial] Custom Enchant System (https://secretexperience.net/lineage-java-mods/14423-custom-enchant-system.html)

AnthonyNichols~ 11-10-2009 05:00 PM

Custom Enchant System
 
é um sistema bem interessante , e que acho que muito de vocês vão gostar

ele vai alterando a rate de enchant de acordo com a quantidade

por exemplo: +4 para +5 você terá 99% de chance de sucesso

toda vez que você enchantar algo , ele vai baixar 1% de chance , a partir de +4 :D

Código:

Index: java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java        (revision 3474)
+++ java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java        (working copy)
@@ -88,7 +88,7 @@
                        // check for maximum enchant level
                        if (_maxEnchantLevel != 0 && enchantItem.getEnchantLevel() >= _maxEnchantLevel)
                                return false;
-
+                       
                        if(_itemIds != null && Arrays.binarySearch(_itemIds, enchantItem.getItemId()) < 0)
                                return false;
 
@@ -172,22 +172,27 @@
                                        return -1;
 
                                if (_isWeapon)
-                                        chance = Config.BLESSED_ENCHANT_CHANCE_WEAPON;
+                                        for(int x=-Config.ENCHANT_SAFE_MAX; x<Config.ENCHANT_MAX_WEAPON; x++) //By TheEnd
+                                        chance = Config.BLESSED_ENCHANT_CHANCE_WEAPON-x;
                                else if (isAccessory)
-                                        chance = Config.BLESSED_ENCHANT_CHANCE_JEWELRY;
+                                        for(int z=-Config.ENCHANT_SAFE_MAX; z< Config.ENCHANT_MAX_JEWELRY; z++)
+                                        chance = Config.BLESSED_ENCHANT_CHANCE_JEWELRY-z;
                                else
+                                        for(int v=-Config.ENCHANT_SAFE_MAX_FULL; v< Config.ENCHANT_MAX_ARMOR; v++)
-                                        chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR;
+                                      chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR-v;
                        }
                        else
                        {
                                if (_isWeapon)
-                                        chance = Config.ENCHANT_CHANCE_WEAPON;
-                                else if (isAccessory)
-                                        chance = Config.ENCHANT_CHANCE_JEWELRY;
+                                        for(int i=-Config.ENCHANT_SAFE_MAX; i<Config.ENCHANT_MAX_WEAPON; i++) //By TheEnd
+                                        chance = Config.ENCHANT_CHANCE_WEAPON-i;
+                                else        if (isAccessory)
+                                        for(int d=-Config.ENCHANT_SAFE_MAX; d< Config.ENCHANT_MAX_JEWELRY; d++)
+                                        chance = Config.ENCHANT_CHANCE_JEWELRY-d;                               
                                else
-                                        chance = Config.ENCHANT_CHANCE_ARMOR;
+                                        for(int a=-Config.ENCHANT_SAFE_MAX_FULL; a< Config.ENCHANT_MAX_ARMOR; a++)
+                                        chance = Config.ENCHANT_CHANCE_ARMOR-a;
                        }
                        chance += _chanceAdd;
 
                        if (supportItem != null)

OU

Código:

Index: java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java        (revision 3474)
+++ java/net/sf/l2j/gameserver/network/clientpackets/AbstractEnchantPacket.java        (working copy)
@@ -88,7 +88,7 @@
                        // check for maximum enchant level
                        if (_maxEnchantLevel != 0 && enchantItem.getEnchantLevel() >= _maxEnchantLevel)
                                return false;
-
+                       
                        if(_itemIds != null && Arrays.binarySearch(_itemIds, enchantItem.getItemId()) < 0)
                                return false;
 
@@ -172,22 +172,27 @@
                                        return -1;
 
                                if (_isWeapon)
-                                        chance = Config.BLESSED_ENCHANT_CHANCE_WEAPON;
+                                        for(int x=-Config.ENCHANT_SAFE_MAX; x<Config.ENCHANT_MAX_WEAPON; x++) //By TheEnd
+                                        chance = Config.BLESSED_ENCHANT_CHANCE_WEAPON-x;
                                else if (isAccessory)
-                                        chance = Config.BLESSED_ENCHANT_CHANCE_JEWELRY;
+                                        for(int z=-Config.ENCHANT_SAFE_MAX; z< Config.ENCHANT_MAX_JEWELRY; z++)
+                                        chance = Config.BLESSED_ENCHANT_CHANCE_JEWELRY-z;
                                else
+                                        for(int v=-Config.ENCHANT_SAFE_MAX_FULL; v< Config.ENCHANT_MAX_ARMOR; v++)
-                                        chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR;
+                                      chance = Config.BLESSED_ENCHANT_CHANCE_ARMOR-v;
                        }
                        else
                        {
                                if (_isWeapon)
-                                        chance = Config.ENCHANT_CHANCE_WEAPON;
-                                else if (isAccessory)
-                                        chance = Config.ENCHANT_CHANCE_JEWELRY;
+                                        for(int i=-Config.ENCHANT_SAFE_MAX; i<Config.ENCHANT_MAX_WEAPON; i++) //By TheEnd
+                                        chance = Config.ENCHANT_CHANCE_WEAPON-i;
+                                else        if (isAccessory)
+                                        for(int d=-Config.ENCHANT_SAFE_MAX; d< Config.ENCHANT_MAX_JEWELRY; d++)
+                                        chance = Config.ENCHANT_CHANCE_JEWELRY-d;                               
                                else
-                                        chance = Config.ENCHANT_CHANCE_ARMOR;
+                                        for(int a=-Config.ENCHANT_SAFE_MAX_FULL; a< Config.ENCHANT_MAX_ARMOR; a++)
+                                        chance = Config.ENCHANT_CHANCE_ARMOR-a;
                        }
                        chance += _chanceAdd;
 
                        if (supportItem != null)

Créditos: TheEnd

SheZ 16-10-2009 04:53 PM

É possível mudar esse 1% de chance?

Handy 18-10-2009 10:39 PM

Nas configs ficariam como ?

lelebrr 07-02-2010 08:33 AM

pelo q li no codigo ..
nao fica em conf. ....
apenas no java ..
c for mudar o numero de enchants do seu server !!
tera que mudar do java tb!!

HeadHunterz 03-07-2010 04:02 AM

@SheZ
Código:

                                        return -1;
muda oque ta em vermelho

Donator 06-01-2012 07:36 PM

jajaja buena, sencillo pero bueno xD

para aumentar el rate de bajada cambia en a=a+2 y bajara de dos en dos asi con todas las variables z,v,i... ect :P :goofy:

----------

aunque ahora que lo veo esta medio ambiguo el code, pareciera que en lugar de bajar sube xDDD :err:


Horários baseados na GMT -3. Agora são 04:41 AM.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.0