From d87d950284bc635b5f66dec0d2a1c9e08c8cacef Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Wed, 8 Jul 2015 20:55:27 +0000 Subject: [PATCH] Implemented all elemental stones & crystals, including +60/+150. Contributed by NviX. --- .../game/data/stats/items/22600-22699.xml | 96 ++++++++++++ .../game/data/stats/items/22900-22999.xml | 108 ++++++++++++++ .../game/data/stats/items/33400-33499.xml | 96 ++++++++++++ .../game/data/stats/items/33800-33899.xml | 96 ++++++++++++ .../game/data/stats/items/34600-34699.xml | 94 ++++++++++++ .../game/data/stats/items/34700-34799.xml | 80 ++++++++++ .../game/data/stats/items/34800-34899.xml | 16 ++ .../game/data/stats/items/35700-35799.xml | 93 ++++++++++++ .../game/data/stats/items/36900-36999.xml | 139 ++++++++++++++++++ .../game/data/stats/items/37400-37499.xml | 9 ++ .../game/data/stats/items/37500-37599.xml | 45 ++++++ .../gameserver/model/Elementals.java | 135 +++++++++++++++-- .../RequestExEnchantItemAttribute.java | 15 +- 13 files changed, 1009 insertions(+), 13 deletions(-) diff --git a/trunk/dist/game/data/stats/items/22600-22699.xml b/trunk/dist/game/data/stats/items/22600-22699.xml index e541c2db70..c63be89885 100644 --- a/trunk/dist/game/data/stats/items/22600-22699.xml +++ b/trunk/dist/game/data/stats/items/22600-22699.xml @@ -264,74 +264,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/22900-22999.xml b/trunk/dist/game/data/stats/items/22900-22999.xml index 53d08fecbf..e8f1183fb1 100644 --- a/trunk/dist/game/data/stats/items/22900-22999.xml +++ b/trunk/dist/game/data/stats/items/22900-22999.xml @@ -129,62 +129,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/33400-33499.xml b/trunk/dist/game/data/stats/items/33400-33499.xml index e2743fade9..1380ee2972 100644 --- a/trunk/dist/game/data/stats/items/33400-33499.xml +++ b/trunk/dist/game/data/stats/items/33400-33499.xml @@ -1003,74 +1003,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/33800-33899.xml b/trunk/dist/game/data/stats/items/33800-33899.xml index 2802351a0b..77cb3384bb 100644 --- a/trunk/dist/game/data/stats/items/33800-33899.xml +++ b/trunk/dist/game/data/stats/items/33800-33899.xml @@ -707,74 +707,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/34600-34699.xml b/trunk/dist/game/data/stats/items/34600-34699.xml index 9f8c5c243f..1622e2a5db 100644 --- a/trunk/dist/game/data/stats/items/34600-34699.xml +++ b/trunk/dist/game/data/stats/items/34600-34699.xml @@ -407,76 +407,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/34700-34799.xml b/trunk/dist/game/data/stats/items/34700-34799.xml index 9af37e36a4..7396eeb913 100644 --- a/trunk/dist/game/data/stats/items/34700-34799.xml +++ b/trunk/dist/game/data/stats/items/34700-34799.xml @@ -852,61 +852,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/trunk/dist/game/data/stats/items/34800-34899.xml b/trunk/dist/game/data/stats/items/34800-34899.xml index 8d80ba5e56..41d5e197d6 100644 --- a/trunk/dist/game/data/stats/items/34800-34899.xml +++ b/trunk/dist/game/data/stats/items/34800-34899.xml @@ -3,14 +3,30 @@ + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/35700-35799.xml b/trunk/dist/game/data/stats/items/35700-35799.xml index 7916325ee6..a4411cc9c0 100644 --- a/trunk/dist/game/data/stats/items/35700-35799.xml +++ b/trunk/dist/game/data/stats/items/35700-35799.xml @@ -184,77 +184,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/36900-36999.xml b/trunk/dist/game/data/stats/items/36900-36999.xml index 5eef3ebf1b..ba8d12a788 100644 --- a/trunk/dist/game/data/stats/items/36900-36999.xml +++ b/trunk/dist/game/data/stats/items/36900-36999.xml @@ -384,115 +384,254 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/dist/game/data/stats/items/37400-37499.xml b/trunk/dist/game/data/stats/items/37400-37499.xml index e3c0eec85a..96083fbe97 100644 --- a/trunk/dist/game/data/stats/items/37400-37499.xml +++ b/trunk/dist/game/data/stats/items/37400-37499.xml @@ -708,7 +708,16 @@ + + + + + + + + + \ No newline at end of file diff --git a/trunk/dist/game/data/stats/items/37500-37599.xml b/trunk/dist/game/data/stats/items/37500-37599.xml index bbf6f7936e..c2cc9501ac 100644 --- a/trunk/dist/game/data/stats/items/37500-37599.xml +++ b/trunk/dist/game/data/stats/items/37500-37599.xml @@ -3,32 +3,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/trunk/java/com/l2jserver/gameserver/model/Elementals.java b/trunk/java/com/l2jserver/gameserver/model/Elementals.java index 968834fe8c..dc9bda28e1 100644 --- a/trunk/java/com/l2jserver/gameserver/model/Elementals.java +++ b/trunk/java/com/l2jserver/gameserver/model/Elementals.java @@ -91,7 +91,10 @@ public final class Elementals { Stone(3), Roughore(3), + Stone60(3), + Stone150(3), Crystal(6), + Crystal300(6), Jewel(9), Energy(12); @@ -105,12 +108,90 @@ public final class Elementals public static enum ElementalItems { - fireStone(FIRE, 9546, ElementalItemType.Stone), - waterStone(WATER, 9547, ElementalItemType.Stone), - windStone(WIND, 9549, ElementalItemType.Stone), - earthStone(EARTH, 9548, ElementalItemType.Stone), - divineStone(HOLY, 9551, ElementalItemType.Stone), - darkStone(DARK, 9550, ElementalItemType.Stone), + fireStone1(FIRE, 9546, ElementalItemType.Stone), + fireStone2(FIRE, 22635, ElementalItemType.Stone), + fireStone3(FIRE, 34790, ElementalItemType.Stone), + fireStone4(FIRE, 37499, ElementalItemType.Stone), + fireStone5(FIRE, 22919, ElementalItemType.Stone), + fireStone6(FIRE, 34661, ElementalItemType.Stone60), + fireStone7(FIRE, 36960, ElementalItemType.Stone60), + fireStone8(FIRE, 33863, ElementalItemType.Stone60), + fireStone9(FIRE, 35729, ElementalItemType.Stone60), + fireStone10(FIRE, 34667, ElementalItemType.Stone150), + fireStone11(FIRE, 36966, ElementalItemType.Stone150), + fireStone12(FIRE, 33869, ElementalItemType.Stone150), + fireStone13(FIRE, 35735, ElementalItemType.Stone150), + fireStone14(FIRE, 33481, ElementalItemType.Stone150), + waterStone1(WATER, 9547, ElementalItemType.Stone), + waterStone2(WATER, 34791, ElementalItemType.Stone), + waterStone3(WATER, 22636, ElementalItemType.Stone), + waterStone4(WATER, 37500, ElementalItemType.Stone), + waterStone5(WATER, 22920, ElementalItemType.Stone), + waterStone6(WATER, 34662, ElementalItemType.Stone60), + waterStone7(WATER, 36961, ElementalItemType.Stone60), + waterStone8(WATER, 33864, ElementalItemType.Stone60), + waterStone9(WATER, 35730, ElementalItemType.Stone60), + waterStone10(WATER, 34668, ElementalItemType.Stone150), + waterStone11(WATER, 36967, ElementalItemType.Stone150), + waterStone12(WATER, 33870, ElementalItemType.Stone150), + waterStone13(WATER, 35736, ElementalItemType.Stone150), + waterStone14(WATER, 33482, ElementalItemType.Stone150), + windStone1(WIND, 9549, ElementalItemType.Stone), + windStone2(WIND, 34793, ElementalItemType.Stone), + windStone3(WIND, 22638, ElementalItemType.Stone), + windStone4(WIND, 37502, ElementalItemType.Stone), + windStone5(WIND, 22922, ElementalItemType.Stone), + windStone6(WIND, 34664, ElementalItemType.Stone60), + windStone7(WIND, 36963, ElementalItemType.Stone60), + windStone8(WIND, 33866, ElementalItemType.Stone60), + windStone9(WIND, 35732, ElementalItemType.Stone60), + windStone10(WIND, 34670, ElementalItemType.Stone150), + windStone11(WIND, 36969, ElementalItemType.Stone150), + windStone12(WIND, 33872, ElementalItemType.Stone150), + windStone13(WIND, 35738, ElementalItemType.Stone150), + windStone14(WIND, 33484, ElementalItemType.Stone150), + earthStone1(EARTH, 9548, ElementalItemType.Stone), + earthStone2(EARTH, 34792, ElementalItemType.Stone), + earthStone3(EARTH, 22637, ElementalItemType.Stone), + earthStone4(EARTH, 37501, ElementalItemType.Stone), + earthStone5(EARTH, 22921, ElementalItemType.Stone), + earthStone6(EARTH, 34663, ElementalItemType.Stone60), + earthStone7(EARTH, 36962, ElementalItemType.Stone60), + earthStone8(EARTH, 33865, ElementalItemType.Stone60), + earthStone9(EARTH, 35731, ElementalItemType.Stone60), + earthStone10(EARTH, 34669, ElementalItemType.Stone150), + earthStone11(EARTH, 36968, ElementalItemType.Stone150), + earthStone12(EARTH, 33871, ElementalItemType.Stone150), + earthStone13(EARTH, 35737, ElementalItemType.Stone150), + earthStone14(EARTH, 33483, ElementalItemType.Stone150), + divineStone1(HOLY, 9551, ElementalItemType.Stone), + divineStone2(HOLY, 34795, ElementalItemType.Stone), + divineStone3(HOLY, 22640, ElementalItemType.Stone), + divineStone4(HOLY, 37504, ElementalItemType.Stone), + divineStone5(HOLY, 22924, ElementalItemType.Stone), + divineStone6(HOLY, 34666, ElementalItemType.Stone60), + divineStone7(HOLY, 36965, ElementalItemType.Stone60), + divineStone8(HOLY, 33868, ElementalItemType.Stone60), + divineStone9(HOLY, 35734, ElementalItemType.Stone60), + divineStone10(HOLY, 34672, ElementalItemType.Stone150), + divineStone11(HOLY, 36971, ElementalItemType.Stone150), + divineStone12(HOLY, 33874, ElementalItemType.Stone150), + divineStone13(HOLY, 35740, ElementalItemType.Stone150), + divineStone14(HOLY, 33486, ElementalItemType.Stone150), + darkStone1(DARK, 9550, ElementalItemType.Stone), + darkStone2(DARK, 34794, ElementalItemType.Stone), + darkStone3(DARK, 22639, ElementalItemType.Stone), + darkStone4(DARK, 37503, ElementalItemType.Stone), + darkStone5(DARK, 22923, ElementalItemType.Stone), + darkStone6(DARK, 34665, ElementalItemType.Stone60), + darkStone7(DARK, 36964, ElementalItemType.Stone60), + darkStone8(DARK, 33867, ElementalItemType.Stone60), + darkStone9(DARK, 35733, ElementalItemType.Stone60), + darkStone10(DARK, 34671, ElementalItemType.Stone150), + darkStone11(DARK, 36970, ElementalItemType.Stone150), + darkStone12(DARK, 33873, ElementalItemType.Stone150), + darkStone13(DARK, 35739, ElementalItemType.Stone150), + darkStone14(DARK, 33485, ElementalItemType.Stone150), fireRoughtore(FIRE, 10521, ElementalItemType.Roughore), waterRoughtore(WATER, 10522, ElementalItemType.Roughore), @@ -119,12 +200,42 @@ public final class Elementals divineRoughtore(HOLY, 10526, ElementalItemType.Roughore), darkRoughtore(DARK, 10525, ElementalItemType.Roughore), - fireCrystal(FIRE, 9552, ElementalItemType.Crystal), - waterCrystal(WATER, 9553, ElementalItemType.Crystal), - windCrystal(WIND, 9555, ElementalItemType.Crystal), - earthCrystal(EARTH, 9554, ElementalItemType.Crystal), - divineCrystal(HOLY, 9557, ElementalItemType.Crystal), - darkCrystal(DARK, 9556, ElementalItemType.Crystal), + fireCrystal1(FIRE, 9552, ElementalItemType.Crystal), + fireCrystal2(FIRE, 34796, ElementalItemType.Crystal), + fireCrystal3(FIRE, 22925, ElementalItemType.Crystal), + fireCrystal4(FIRE, 22641, ElementalItemType.Crystal), + fireCrystal5(FIRE, 36972, ElementalItemType.Crystal300), + fireCrystal6(FIRE, 33487, ElementalItemType.Crystal300), + waterCrystal1(WATER, 9553, ElementalItemType.Crystal), + waterCrystal2(WATER, 34797, ElementalItemType.Crystal), + waterCrystal3(WATER, 22926, ElementalItemType.Crystal), + waterCrystal4(WATER, 22642, ElementalItemType.Crystal), + waterCrystal5(WATER, 36973, ElementalItemType.Crystal300), + waterCrystal6(WATER, 33488, ElementalItemType.Crystal300), + windCrystal1(WIND, 9555, ElementalItemType.Crystal), + windCrystal2(WIND, 34799, ElementalItemType.Crystal), + windCrystal3(WIND, 22928, ElementalItemType.Crystal), + windCrystal4(WIND, 22644, ElementalItemType.Crystal), + windCrystal5(WIND, 36975, ElementalItemType.Crystal300), + windCrystal6(WIND, 33490, ElementalItemType.Crystal300), + earthCrystal1(EARTH, 9554, ElementalItemType.Crystal), + earthCrystal2(EARTH, 34798, ElementalItemType.Crystal), + earthCrystal3(EARTH, 22927, ElementalItemType.Crystal), + earthCrystal4(EARTH, 22643, ElementalItemType.Crystal), + earthCrystal5(EARTH, 36974, ElementalItemType.Crystal300), + earthCrystal6(EARTH, 33489, ElementalItemType.Crystal300), + divineCrystal1(HOLY, 9557, ElementalItemType.Crystal), + divineCrystal2(HOLY, 34801, ElementalItemType.Crystal), + divineCrystal3(HOLY, 22930, ElementalItemType.Crystal), + divineCrystal4(HOLY, 22646, ElementalItemType.Crystal), + divineCrystal5(HOLY, 36977, ElementalItemType.Crystal300), + divineCrystal6(HOLY, 33492, ElementalItemType.Crystal300), + darkCrystal1(DARK, 9556, ElementalItemType.Crystal), + darkCrystal2(DARK, 34800, ElementalItemType.Crystal), + darkCrystal3(DARK, 22929, ElementalItemType.Crystal), + darkCrystal4(DARK, 22645, ElementalItemType.Crystal), + darkCrystal5(DARK, 36796, ElementalItemType.Crystal300), + darkCrystal6(DARK, 33491, ElementalItemType.Crystal300), fireJewel(FIRE, 9558, ElementalItemType.Jewel), waterJewel(WATER, 9559, ElementalItemType.Jewel), diff --git a/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java b/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java index f3e42df326..bb8e3648fd 100644 --- a/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java +++ b/trunk/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java @@ -21,6 +21,7 @@ package com.l2jserver.gameserver.network.clientpackets; import com.l2jserver.Config; import com.l2jserver.gameserver.enums.PrivateStoreType; import com.l2jserver.gameserver.model.Elementals; +import com.l2jserver.gameserver.model.Elementals.ElementalItemType; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.actor.request.EnchantItemAttributeRequest; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; @@ -323,9 +324,12 @@ public class RequestExEnchantItemAttribute extends L2GameClientPacket { case Stone: case Roughore: + case Stone60: + case Stone150: success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_STONE; break; case Crystal: + case Crystal300: success = Rnd.get(100) < Config.ENCHANT_CHANCE_ELEMENT_CRYSTAL; break; case Jewel: @@ -365,7 +369,16 @@ public class RequestExEnchantItemAttribute extends L2GameClientPacket { if (Elementals.getItemElement(stoneId) != Elementals.NONE) { - if (item.isWeapon()) + final Elementals.ElementalItems elementItem = Elementals.getItemElemental(stoneId); + if (elementItem._type == ElementalItemType.Stone60) + { + return Elementals.ARMOR_VALUES[elementItem._type._maxLevel]; + } + else if ((elementItem._type == ElementalItemType.Stone150) || (elementItem._type == ElementalItemType.Crystal300)) + { + return Elementals.WEAPON_VALUES[elementItem._type._maxLevel]; + } + else if (item.isWeapon()) { if (oldValue == 0) {