Support for Artifact item slots.

Contributed by hlwrave.
This commit is contained in:
MobiusDev
2018-10-11 18:33:37 +00:00
parent adc5bbc219
commit 866bbde935
88 changed files with 2704 additions and 1343 deletions

View File

@@ -41,6 +41,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("AddTeleportBookmarkSlot", AddTeleportBookmarkSlot::new);
EffectHandler.getInstance().registerHandler("AgathionSlot", AgathionSlot::new);
EffectHandler.getInstance().registerHandler("AreaDamage", AreaDamage::new);
EffectHandler.getInstance().registerHandler("ArtifactSlot", ArtifactSlot::new);
EffectHandler.getInstance().registerHandler("AttackAttribute", AttackAttribute::new);
EffectHandler.getInstance().registerHandler("AttackAttributeAdd", AttackAttributeAdd::new);
EffectHandler.getInstance().registerHandler("AttackBehind", AttackBehind::new);

View File

@@ -0,0 +1,31 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.effecthandlers;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.stats.Stats;
/**
* @author hlwrave
*/
public class ArtifactSlot extends AbstractStatAddEffect
{
public ArtifactSlot(StatsSet params)
{
super(params, Stats.ARTIFACT_SLOTS);
}
}

View File

@@ -38,14 +38,14 @@ import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public final class Disarmor extends AbstractEffect
{
private final Map<Integer, Integer> _unequippedItems; // PlayerObjId, ItemObjId
private final int _slot;
private final long _slot;
public Disarmor(StatsSet params)
{
_unequippedItems = new ConcurrentHashMap<>();
final String slot = params.getString("slot", "chest");
_slot = ItemTable.SLOTS.getOrDefault(slot, L2Item.SLOT_NONE);
_slot = ItemTable.SLOTS.getOrDefault(slot, (long) L2Item.SLOT_NONE);
if (_slot == L2Item.SLOT_NONE)
{
LOGGER.severe("Unknown bodypart slot for effect: " + slot);

View File

@@ -73,7 +73,7 @@ public class EquipArmorSkillCondition implements ISkillCondition
// So from here, chest armor matches conditions
final int chestBodyPart = chest.getItem().getBodyPart();
final long chestBodyPart = chest.getItem().getBodyPart();
// return True if chest armor is a Full Armor
if (chestBodyPart == L2Item.SLOT_FULL_ARMOR)
{

View File

@@ -10,6 +10,7 @@ AddSkillBySkill: Add skill when other skill already exists. (l2jmobius)
AddTeleportBookmarkSlot: Instant effect that increases the amount of My Teleport slots.
AgathionSlot: Agathion slot modifier. (l2jmobius)
AreaDamage: Topography (Danger Zone) resistance stat.
ArtifactSlot: Artifact slot modifier. (l2jmobius)
AttackAttribute: Stat that increases specific attack attribute.
AttackAttributeAdd: Stat that increases all attack attribute.
AttackBehind: Enables all attacks regardless of position to land towards the back.

View File

@@ -37,6 +37,8 @@
<xs:attribute type="xs:byte" name="minimumPieces" use="optional" />
<xs:attribute type="xs:byte" name="minimumEnchant" use="optional" />
<xs:attribute type="xs:boolean" name="optional" use="optional" />
<xs:attribute type="xs:positiveInteger" name="slotMask" use="optional" />
<xs:attribute type="xs:positiveInteger" name="bookSlot" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>

View File

@@ -168,7 +168,6 @@
<xs:simpleType>
<xs:restriction base="xs:positiveInteger">
<xs:minInclusive value="1" />
<xs:maxInclusive value="107" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>