Armor & Weapon Protection

Iniciado por Swarlog, Jun 25, 2025, 08:59 PM

Tema anterior - Siguiente tema

Swarlog


CitarArmor:

### Eclipse Workspace Patch 1.0

#P l2jcustom

Index: trunk/L2J_CORE/java/net/sf/l2j/Config.java

===================================================================

--- trunk/L2J_CORE/java/net/sf/l2j/Config.java (revision 8)

+++ trunk/L2J_CORE/java/net/sf/l2j/Config.java (working copy)

@@ -837,6 +837,12 @@

public static boolean OLLY_GRADE_A;



/** define L2Class */

+ public static boolean ALLOW_LIGHT_USE_HEAVY;

+ public static String NOTALLOWCLASS;

+ public static List<Integer> NOTALLOWEDUSEHEAVY;

+ public static boolean ALLOW_HEAVY_USE_LIGHT;

+ public static String NOTALLOWCLASSE;

+ public static List<Integer> NOTALLOWEDUSELIGHT;

public static boolean ALT_DISABLE_BOW_CLASSES;

public static String DISABLE_BOW_CLASSES_STRING;

public static FastList<Integer> DISABLE_BOW_CLASSES = new FastList<Integer>();

@@ -1926,6 +1932,21 @@

ClassSettings.load(is);

is.close();



+

+ ALLOW_HEAVY_USE_LIGHT = Boolean.parseBoolean(ClassSettings.getProperty("AllowHeavyUseLight", "False"));

+ NOTALLOWCLASSE = ClassSettings.getProperty("NotAllowedUseLight", "");

+ NOTALLOWEDUSELIGHT = new FastList<Integer>();

+ for(String classId : NOTALLOWCLASSE.split(","))

+ {

+ NOTALLOWEDUSELIGHT.add(Integer.parseInt(classId));

+ }

+ ALLOW_LIGHT_USE_HEAVY = Boolean.parseBoolean(ClassSettings.getProperty("AllowLightUseHeavy", "False"));

+ NOTALLOWCLASS = ClassSettings.getProperty("NotAllowedUseHeavy", "");

+ NOTALLOWEDUSEHEAVY = new FastList<Integer>();

+ for(String classId : NOTALLOWCLASS.split(","))

+ {

+ NOTALLOWEDUSEHEAVY.add(Integer.parseInt(classId));

+ }

ALT_DISABLE_BOW_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableBow", "False"));

DISABLE_BOW_CLASSES_STRING = ClassSettings.getProperty("DisableBowForClasses", "");

DISABLE_BOW_CLASSES = new FastList<Integer>();

Index: trunk/L2J_CORE/java/config/class.ini

===================================================================

--- trunk/L2J_CORE/java/config/class.ini (revision 7)

+++ trunk/L2J_CORE/java/config/class.ini (working copy)

@@ -62,3 +62,24 @@

# e.g. DisableBigSwordForClasses = 89, 90, 91, 92, 102, 109

AltDisableBigSword = False

DisableBigSwordForClasses = 100,101

+

+# --------------------------------

+# Equipment Restriction -

+# --------------------------------

+# Light Equipment Restriction

+# Retail = True

+AllowLightUseHeavy = True

+

+# Light Equipment Restriction Class id

+# Restriction All Class Light

+# Retail = 8,9,23,24,36,37,92,93,101,102,108,109

+NotAllowedUseHeavy = 8,9,23,24,36,37,92,93,101,102,108,109

+

+# Heavy Equipment Restriction

+# Retail = True

+AllowHeavyUseLight = True

+

+# Heavy Equipment Restriction Class id

+# Restriction All Class Heavy

+# Retail = 3,4,5,6,19,20,21,32,33,34,90,91,99,100,106,107,112

+NotAllowedUseLight = 3,4,5,6,19,20,21,32,33,34,90,91,99,100,106,107,112

Index: trunk/L2J_CORE/java/net/sf/l2j/gameserver/GameServer.java

Index: trunk/L2J_CORE/java/net/sf/l2j/gameserver/clientpackets/UseItem.java

===================================================================

--- trunk/L2J_CORE/java/net/sf/l2j/gameserver/clientpackets/UseItem.java (revision 7)

+++ trunk/L2J_CORE/java/net/sf/l2j/gameserver/clientpackets/UseItem.java (working copy)

@@ -35,6 +35,7 @@

import net.sf.l2j.gameserver.serverpackets.ItemList;

import net.sf.l2j.gameserver.serverpackets.ShowCalculator;

import net.sf.l2j.gameserver.serverpackets.SystemMessage;

+import net.sf.l2j.gameserver.templates.L2ArmorType;

import net.sf.l2j.gameserver.templates.L2Item;

import net.sf.l2j.gameserver.templates.L2Weapon;

import net.sf.l2j.gameserver.templates.L2WeaponType;

@@ -221,7 +222,28 @@

{

return;

}

+ if (!Config.ALLOW_HEAVY_USE_LIGHT)

+ if (Config.NOTALLOWEDUSELIGHT.contains( activeChar.getClassId().getId()))

+ {

+ if (item.getItemType() == L2ArmorType.LIGHT)

+ {

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Armor Protection System", " " +activeChar.getName()+ " esta classe nao usa equipes light!");

+ activeChar.sendPacket(cs);

+ return;

+ }

+ }



+ if (!Config.ALLOW_LIGHT_USE_HEAVY)

+ if (Config.NOTALLOWEDUSEHEAVY.contains( activeChar.getClassId().getId()))

+ {

+ if (item.getItemType() == L2ArmorType.HEAVY)

+ {

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Armor Protection System", " " +activeChar.getName()+ " esta classe nao usa equipes heavy!");

+ activeChar.sendPacket(cs);

+ return;

+ }

+ }

+

// Don't allow weapon/shield hero equipment during Olympiads

if (activeChar.isInOlympiadMode()

&& (

CitarWeapon:

Index: UseItem.java

===================================================================

--- UseItem.java (revision 0)

+++ UseItem.java (working copy)



+import net.sf.l2j.gameserver.serverpackets.ActionFailed;

+import net.sf.l2j.gameserver.serverpackets.CreatureSay;

import net.sf.l2j.gameserver.serverpackets.InventoryUpdate;

import net.sf.l2j.gameserver.serverpackets.ItemList;

import net.sf.l2j.gameserver.serverpackets.ShowCalculator;

import net.sf.l2j.gameserver.serverpackets.SystemMessage;

import net.sf.l2j.gameserver.templates.L2ArmorType;

import net.sf.l2j.gameserver.templates.L2Item;

import net.sf.l2j.gameserver.templates.L2Weapon;

+import net.sf.l2j.gameserver.templates.L2WeaponType;





@@

int tempBodyPart = item.getItem().getBodyPart();

L2ItemInstance tempItem = activeChar.getInventory().getPaperdollItemByL2ItemId(tempBodyPart);

+

+ if (Config.ALT_DISABLE_BOW_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.BOW)

+ {

+ if(Config.DISABLE_BOW_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }

+

+ if (Config.ALT_DISABLE_DAGGER_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.DAGGER)

+ {

+ if(Config.DISABLE_DAGGER_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }

+

+ if (Config.ALT_DISABLE_SWORD_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.SWORD)

+ {

+ if(Config.DISABLE_SWORD_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }

+

+ if (Config.ALT_DISABLE_BLUNT_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.BLUNT)

+ {

+ if(Config.DISABLE_BLUNT_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }

+

+ if (Config.ALT_DISABLE_DUAL_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.DUAL)

+ {

+ if(Config.DISABLE_DUAL_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }

+

+ if (Config.ALT_DISABLE_POLE_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.POLE)

+ {

+ if(Config.DISABLE_POLE_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }

+

+ if (Config.ALT_DISABLE_BIGSWORD_CLASSES)

+ {

+ if(item.getItem() instanceof L2Weapon && ((L2Weapon)item.getItem()).getItemType() == L2WeaponType.BIGSWORD)

+ {

+ if(Config.DISABLE_BIGSWORD_CLASSES.contains(activeChar.getClassId().getId())){

+ CreatureSay cs = new CreatureSay(0, Say2.PARTYROOM_COMMANDER, "Weapon Protection System", " " +activeChar.getName()+ " this item can not be equipped by your class");

+ activeChar.sendPacket(cs);

+ activeChar.sendPacket(ActionFailed.STATIC_PACKET);

+ return;

+ }

+ }

+ }



// remove augmentation stats for replaced items

// currently weapons only..

if (tempItem != null && tempItem.isAugmented())



Index: Config.java

===================================================================

--- Config.java (revision 0)

+++ Config.java (working copy)



+ public static boolean ALT_DISABLE_BOW_CLASSES;

+ public static String DISABLE_BOW_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_BOW_CLASSES = new FastList<Integer>();

+ public static boolean ALT_DISABLE_DAGGER_CLASSES;

+ public static String DISABLE_DAGGER_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_DAGGER_CLASSES = new FastList<Integer>();

+ public static boolean ALT_DISABLE_SWORD_CLASSES;

+ public static String DISABLE_SWORD_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_SWORD_CLASSES = new FastList<Integer>();

+ public static boolean ALT_DISABLE_BLUNT_CLASSES;

+ public static String DISABLE_BLUNT_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_BLUNT_CLASSES = new FastList<Integer>();

+ public static boolean ALT_DISABLE_DUAL_CLASSES;

+ public static String DISABLE_DUAL_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_DUAL_CLASSES = new FastList<Integer>();

+ public static boolean ALT_DISABLE_POLE_CLASSES;

+ public static String DISABLE_POLE_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_POLE_CLASSES = new FastList<Integer>();

+ public static boolean ALT_DISABLE_BIGSWORD_CLASSES;

+ public static String DISABLE_BIGSWORD_CLASSES_STRING;

+ public static FastList<Integer> DISABLE_BIGSWORD_CLASSES = new FastList<Integer>();



@@



+ ALT_DISABLE_BOW_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableBow", "False"));

+ DISABLE_BOW_CLASSES_STRING = ClassSettings.getProperty("DisableBowForClasses", "");

+ DISABLE_BOW_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_BOW_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_BOW_CLASSES.add(Integer.parseInt(class_id));

+ }

+ ALT_DISABLE_DAGGER_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableDagger", "False"));

+ DISABLE_DAGGER_CLASSES_STRING = ClassSettings.getProperty("DisableDaggerForClasses", "");

+ DISABLE_DAGGER_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_DAGGER_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_DAGGER_CLASSES.add(Integer.parseInt(class_id));

+ }

+ ALT_DISABLE_SWORD_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableSword", "False"));

+ DISABLE_SWORD_CLASSES_STRING = ClassSettings.getProperty("DisableSwordForClasses", "");

+ DISABLE_SWORD_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_SWORD_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_SWORD_CLASSES.add(Integer.parseInt(class_id));

+ }

+ ALT_DISABLE_BLUNT_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableBlunt", "False"));

+ DISABLE_BLUNT_CLASSES_STRING = ClassSettings.getProperty("DisableBluntForClasses", "");

+ DISABLE_BLUNT_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_BLUNT_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_BLUNT_CLASSES.add(Integer.parseInt(class_id));

+ }

+ ALT_DISABLE_DUAL_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableDual", "False"));

+ DISABLE_DUAL_CLASSES_STRING = ClassSettings.getProperty("DisableDualForClasses", "");

+ DISABLE_DUAL_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_DUAL_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_DUAL_CLASSES.add(Integer.parseInt(class_id));

+ }

+ ALT_DISABLE_POLE_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisablePolle", "False"));

+ DISABLE_POLE_CLASSES_STRING = ClassSettings.getProperty("DisablePolleForClasses", "");

+ DISABLE_POLE_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_POLE_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_POLE_CLASSES.add(Integer.parseInt(class_id));

+ }

+ ALT_DISABLE_BIGSWORD_CLASSES = Boolean.parseBoolean(ClassSettings.getProperty("AltDisableBigSword", "False"));

+ DISABLE_BIGSWORD_CLASSES_STRING = ClassSettings.getProperty("DisableBigSwordForClasses", "");

+ DISABLE_BIGSWORD_CLASSES = new FastList<Integer>();

+ for (String class_id : DISABLE_BIGSWORD_CLASSES_STRING.split(","))

+ {

+ if(!class_id.equals(""))

+ DISABLE_BIGSWORD_CLASSES.add(Integer.parseInt(class_id));

+ }

Index: Class.ini

===================================================================

--- Class.ini (revision 0)

+++ Class.ini (working copy)



#Disable Bow for classes: write here classes id

#that you dnt want allow to use BOW. Class id examples,

#you can find others into char_templates database table

#

# classId className

# 88 Duelist

# 89 DreadNought

# 90 Phoenix Knight

# 91 Hell Knight

# 92 Sagittarius

# 93 Adventurer

# 94 Archmage

# 95 Soultaker

# 96 Arcana Lord

# 97 Cardinal

# 98 Hierophant

# 99 Eva Templar

# 100 Sword Muse

# 101 Wind Rider

# 102 Moonlight Sentinel

# 103 Mystic Muse

# 104 Elemental Master

# 105 Eva Saint

# 106 Shillien Templar

# 107 Spectral Dancer

# 108 Ghost Hunter

# 109 Ghost Sentinel

# 110 Storm Screamer

# 111 Spectral Master

# 112 Shillen Saint

# 113 Titan

# 114 Grand Khauatari

# 115 Dominator

# 116 Doomcryer

# 117 Fortune Seeker

# 118 Maestro



# e.g. DisableBowForClasses = 89, 90, 91, 92, 102, 109

AltDisableBow = False

DisableBowForClasses = 88,89



# e.g. DisableDaggerForClasses = 89, 90, 91, 92, 102, 109

AltDisableDagger = False

DisableDaggerForClasses = 90,91



# e.g. DisableSwordForClasses = 89, 90, 91, 92, 102, 109

AltDisableSword = False

DisableSwordForClasses = 92,93



# e.g. DisableBluntForClasses = 89, 90, 91, 92, 102, 109

AltDisableBlunt = False

DisableBluntForClasses = 94,95



# e.g. DisableDualForClasses = 89, 90, 91, 92, 102, 109

AltDisableDual = False

DisableDualForClasses = 96,97



# e.g. DisablePolleForClasses = 89, 90, 91, 92, 102, 109

AltDisablePolle = False

DisablePolleForClasses = 98,99



# e.g. DisableBigSwordForClasses = 89, 90, 91, 92, 102, 109

AltDisableBigSword = False

DisableBigSwordForClasses = 100,101

Créditos: Leonardo Alves, Pauline Souza y Wallister.