Changed OpSocialClassSkillCondition according to previous core changes.

This commit is contained in:
MobiusDevelopment 2020-03-26 15:39:41 +00:00
parent 28e36d17c6
commit 0e65792652
46 changed files with 263 additions and 53 deletions

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2788,7 +2788,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -219,6 +219,9 @@
<itemConsumeId>3031</itemConsumeId> <!-- Spirit Ore -->
<conditions>
<condition name="CanUseInBattlefield" />
<condition name="OpSocialClass">
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
<effect name="HealPercent">

View File

@ -439,7 +439,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2788,7 +2788,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -218,6 +218,9 @@
<itemConsumeId>3031</itemConsumeId> <!-- Spirit Ore -->
<conditions>
<condition name="CanUseInBattlefield" />
<condition name="OpSocialClass">
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
<effect name="HealPercent">

View File

@ -443,7 +443,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2788,7 +2788,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -218,6 +218,9 @@
<itemConsumeId>3031</itemConsumeId> <!-- Spirit Ore -->
<conditions>
<condition name="CanUseInBattlefield" />
<condition name="OpSocialClass">
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
<effect name="HealPercent">

View File

@ -443,7 +443,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2788,7 +2788,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -218,6 +218,9 @@
<itemConsumeId>3031</itemConsumeId> <!-- Spirit Ore -->
<conditions>
<condition name="CanUseInBattlefield" />
<condition name="OpSocialClass">
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
<effect name="HealPercent">

View File

@ -445,7 +445,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2787,7 +2787,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -222,7 +222,7 @@
<blockedInOlympiad>true</blockedInOlympiad>
<conditions>
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -1053,7 +1053,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1081,7 +1081,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1109,7 +1109,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1137,7 +1137,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -348,7 +348,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2787,7 +2787,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -222,7 +222,7 @@
<blockedInOlympiad>true</blockedInOlympiad>
<conditions>
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -1053,7 +1053,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1081,7 +1081,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1109,7 +1109,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1137,7 +1137,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -348,7 +348,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2788,7 +2788,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -222,7 +222,7 @@
<blockedInOlympiad>true</blockedInOlympiad>
<conditions>
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -1061,7 +1061,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1089,7 +1089,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1117,7 +1117,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1145,7 +1145,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -348,7 +348,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2789,7 +2789,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -222,7 +222,7 @@
<blockedInOlympiad>true</blockedInOlympiad>
<conditions>
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -1061,7 +1061,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1089,7 +1089,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1117,7 +1117,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
@ -1145,7 +1145,7 @@
<condition name="CanUseInBattlefield" />
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>

View File

@ -348,7 +348,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -19,6 +19,7 @@ package handlers.skillconditionhandlers;
import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.skills.ISkillCondition;
import org.l2jmobius.gameserver.model.skills.Skill;
@ -37,6 +38,18 @@ public class OpSocialClassSkillCondition implements ISkillCondition
@Override
public boolean canUse(Creature caster, Skill skill, WorldObject target)
{
return caster.isPlayer() && (caster.getActingPlayer().getPledgeClass() >= _socialClass);
final PlayerInstance player = caster.getActingPlayer();
if ((player == null) || (player.getClan() == null))
{
return false;
}
final boolean isClanLeader = player.isClanLeader();
if ((_socialClass == -1) && !isClanLeader)
{
return false;
}
return isClanLeader || (player.getPledgeClass() >= _socialClass);
}
}

View File

@ -2788,7 +2788,7 @@
<conditions>
<condition name="OpCanNotUseAirship" />
<condition name="OpSocialClass">
<socialClass>8</socialClass>
<socialClass>-1</socialClass>
</condition>
<condition name="CanUseInBattlefield" />
</conditions>

View File

@ -218,6 +218,9 @@
<itemConsumeId>3031</itemConsumeId> <!-- Spirit Ore -->
<conditions>
<condition name="CanUseInBattlefield" />
<condition name="OpSocialClass">
<socialClass>-1</socialClass>
</condition>
</conditions>
<effects>
<effect name="HealPercent">

View File

@ -445,7 +445,7 @@
<xs:element minOccurs="0" maxOccurs="unbounded" name="npcId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="instanceId" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="itemId" type="xs:unsignedShort" />
<xs:element minOccurs="0" name="socialClass" type="xs:unsignedByte" />
<xs:element minOccurs="0" name="socialClass" type="xs:int" />
<xs:element minOccurs="0" name="npcsIds">
<xs:complexType>
<xs:sequence>