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)
{