View difference between Paste ID: 7Y3zFeRs and 007UbCYt
SHOW: | | - or go back to the newest paste.
1
diff --git a/config/CustomMods/ProtectionMods.ini b/config/CustomMods/ProtectionMods.ini
2
index a877b86..e0a8097 100644
3
--- a/config/CustomMods/ProtectionMods.ini
4
+++ b/config/CustomMods/ProtectionMods.ini
5
@@ -66,3 +66,12 @@
6
 # Show screen AntiHervy message for x seconds when character
7
 ScreenAntiHervyMessageTime = 4
8
 
9
+#=============================================================
10
+#                   Remover itens SubClasse
11
+#=============================================================
12
+# When you change/add subclass the item is unequipped
13
+# Default: False
14
+RemoveWeapon = True
15
+RemoveChest = True
16
+RemoveLeg = True
17
+
18
diff --git a/java/net/sf/l2j/Config.java b/java/net/sf/l2j/Config.java
19
index 055f23e..99cc0ee 100644
20
--- a/java/net/sf/l2j/Config.java
21
+++ b/java/net/sf/l2j/Config.java
22
@@ -88,6 +88,9 @@
23
     public static boolean ENABLE_ANTI_HEAVY;
24
 	public static String WELCOME_MESSAGE_ANTIHERVY;
25
 	public static int WELCOME_MESSAGE_TIME_ANTIHERVY;
26
+	public static boolean REMOVE_WEAPON;
27
+	public static boolean REMOVE_CHEST;
28
+	public static boolean REMOVE_LEG;
29
 	public static long CH_TELE_FEE_RATIO;
30
 	public static int CH_TELE1_FEE;
31
 	public static int CH_TELE2_FEE;
32
@@ -1129,6 +1132,9 @@
33
          ENABLE_ANTI_HEAVY = Boolean.parseBoolean(Protection.getProperty("EnableAntiHeavySystem", "True"));
34
          WELCOME_MESSAGE_ANTIHERVY = Protection.getProperty("ScreenAntiHervyMessageText", "Your Class Can't Equip Heavy Type Armors!");
35
          WELCOME_MESSAGE_TIME_ANTIHERVY = Integer.parseInt(Protection.getProperty("ScreenAntiHervyMessageTime", "6")) * 1000;
36
+         REMOVE_WEAPON = Boolean.parseBoolean(Protection.getProperty("RemoveWeapon", "False"));
37
+         REMOVE_CHEST = Boolean.parseBoolean(Protection.getProperty("RemoveChest", "False"));
38
+         REMOVE_LEG = Boolean.parseBoolean(Protection.getProperty("RemoveLeg", "False"));
39
 	}
40
 	
41
 	private static final void loadOff()
42
diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver/model/actor/Player.java
43
index 418fd3f..2b2e9e2 100644
44
--- a/java/net/sf/l2j/gameserver/model/actor/Player.java
45
+++ b/java/net/sf/l2j/gameserver/model/actor/Player.java
46
@@ -5835,6 +5835,47 @@
47
 	 */
48
 	public boolean addSubClass(int classId, int classIndex)
49
 	{
50
+		// Remove Item RHAND
51
+		if (Config.REMOVE_WEAPON)
52
+		{
53
+			ItemInstance rhand = getInventory().getItemFrom(Paperdoll.RHAND);
54
+			if (rhand != null)
55
+			{
56
+				ItemInstance[] unequipped = getInventory().unequipItemInBodySlotAndRecord(rhand.getItem().getBodyPart());
57
+				InventoryUpdate iu = new InventoryUpdate();
58
+				for (ItemInstance element : unequipped)
59
+					iu.addModifiedItem(element);
60
+				sendPacket(iu);
61
+			}
62
+		}
63
+		// Remove Item CHEST
64
+		if (Config.REMOVE_CHEST)
65
+		{
66
+			ItemInstance chest = getInventory().getItemFrom(Paperdoll.CHEST);
67
+			if (chest != null)
68
+			{
69
+				ItemInstance[] unequipped = getInventory().unequipItemInBodySlotAndRecord(chest.getItem().getBodyPart());
70
+				InventoryUpdate iu = new InventoryUpdate();
71
+				for (ItemInstance element : unequipped)
72
+					iu.addModifiedItem(element);
73
+				sendPacket(iu);
74
+			}
75
+		}
76
+		
77
+		// Remove Item LEG
78
+		if (Config.REMOVE_LEG)
79
+		{
80
+			ItemInstance legs = getInventory().getItemFrom(Paperdoll.LEGS);
81
+			if (legs != null)
82
+			{
83
+				ItemInstance[] unequipped = getInventory().unequipItemInBodySlotAndRecord(legs.getItem().getBodyPart());
84
+				InventoryUpdate iu = new InventoryUpdate();
85
+				for (ItemInstance element : unequipped)
86
+					iu.addModifiedItem(element);
87
+				sendPacket(iu);
88
+			}
89
+		}
90
+		
91
 		if (!_subclassLock.tryLock())
92
 			return false;
93
 		
94
@@ -5992,6 +6033,48 @@
95
 	 */
96
 	public boolean setActiveClass(int classIndex)
97
 	{
98
+		
99
+		// Remove Item RHAND
100
+		if (Config.REMOVE_WEAPON)
101
+		{
102
+			ItemInstance rhand = getInventory().getItemFrom(Paperdoll.RHAND);
103
+			if (rhand != null)
104
+			{
105
+				ItemInstance[] unequipped = getInventory().unequipItemInBodySlotAndRecord(rhand.getItem().getBodyPart());
106
+				InventoryUpdate iu = new InventoryUpdate();
107
+				for (ItemInstance element : unequipped)
108
+					iu.addModifiedItem(element);
109
+				sendPacket(iu);
110
+			}
111
+		}
112
+		// Remove Item CHEST
113
+		if (Config.REMOVE_CHEST)
114
+		{
115
+			ItemInstance chest = getInventory().getItemFrom(Paperdoll.CHEST);
116
+			if (chest != null)
117
+			{
118
+				ItemInstance[] unequipped = getInventory().unequipItemInBodySlotAndRecord(chest.getItem().getBodyPart());
119
+				InventoryUpdate iu = new InventoryUpdate();
120
+				for (ItemInstance element : unequipped)
121
+					iu.addModifiedItem(element);
122
+				sendPacket(iu);
123
+			}
124
+		}
125
+		
126
+		// Remove Item LEG
127
+		if (Config.REMOVE_LEG)
128
+		{
129
+			ItemInstance legs = getInventory().getItemFrom(Paperdoll.LEGS);
130
+			if (legs != null)
131
+			{
132
+				ItemInstance[] unequipped = getInventory().unequipItemInBodySlotAndRecord(legs.getItem().getBodyPart());
133
+				InventoryUpdate iu = new InventoryUpdate();
134
+				for (ItemInstance element : unequipped)
135
+					iu.addModifiedItem(element);
136
+				sendPacket(iu);
137
+			}
138
+		}
139
+		
140
 		if (!_subclassLock.tryLock())
141
 			return false;
142
 		
143