Clan Advent skill changes.
Contributed by NviX.
This commit is contained in:
parent
23b976528a
commit
6736927ebc
@ -21,6 +21,7 @@ import java.util.Map;
|
||||
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
||||
import org.l2jmobius.gameserver.model.events.EventType;
|
||||
import org.l2jmobius.gameserver.model.events.ListenerRegisterType;
|
||||
import org.l2jmobius.gameserver.model.events.annotations.RegisterEvent;
|
||||
@ -30,7 +31,7 @@ import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerClanLe
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogin;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerLogout;
|
||||
import org.l2jmobius.gameserver.model.events.impl.creature.player.OnPlayerProfessionChange;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.holders.SkillHolder;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
@ -65,6 +66,25 @@ public class ClanMaster extends AbstractNpcAI
|
||||
LEADER_REQUIRED.put("9000-07.htm", "9000-07-no.htm");
|
||||
}
|
||||
|
||||
private static final SkillHolder[] ADVENTS =
|
||||
{
|
||||
new SkillHolder(19009, 1),
|
||||
new SkillHolder(19009, 2),
|
||||
new SkillHolder(19009, 3),
|
||||
new SkillHolder(19009, 4),
|
||||
new SkillHolder(19009, 5),
|
||||
new SkillHolder(19009, 6),
|
||||
new SkillHolder(19009, 7),
|
||||
new SkillHolder(19009, 8),
|
||||
new SkillHolder(19009, 9),
|
||||
new SkillHolder(19009, 10),
|
||||
new SkillHolder(19009, 11),
|
||||
new SkillHolder(19009, 12),
|
||||
new SkillHolder(19009, 13),
|
||||
new SkillHolder(19009, 14),
|
||||
new SkillHolder(19009, 15)
|
||||
};
|
||||
|
||||
private ClanMaster()
|
||||
{
|
||||
addStartNpc(NPCS);
|
||||
@ -95,19 +115,33 @@ public class ClanMaster extends AbstractNpcAI
|
||||
public void onPlayerLogin(OnPlayerLogin event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if (player.isClanLeader())
|
||||
if (player.isClanLeader() || (player.getPledgeType() == 100))
|
||||
{
|
||||
player.getClan().getMembers().forEach(member ->
|
||||
{
|
||||
if (member.isOnline())
|
||||
{
|
||||
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(member.getPlayerInstance(), member.getPlayerInstance());
|
||||
}
|
||||
});
|
||||
}
|
||||
else if ((player.getClan() != null) && player.getClan().getLeader().isOnline())
|
||||
else if (player.getClan() != null)
|
||||
{
|
||||
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
|
||||
if (player.getClan().getLeader().isOnline())
|
||||
{
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ClanMember member : player.getClan().getMembers())
|
||||
{
|
||||
if (member.getPledgeType() == 100)
|
||||
{
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -118,17 +152,29 @@ public class ClanMaster extends AbstractNpcAI
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if (player.isClanLeader())
|
||||
{
|
||||
player.getClan().getMembers().forEach(member ->
|
||||
boolean removing = true;
|
||||
for (ClanMember member : player.getClan().getMembers())
|
||||
{
|
||||
if (member.isOnline())
|
||||
if (member.getPledgeType() == 100)
|
||||
{
|
||||
member.getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
|
||||
removing = false;
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
if (player.getClan() != null)
|
||||
{
|
||||
player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
|
||||
}
|
||||
if (removing)
|
||||
{
|
||||
player.getClan().getMembers().forEach(member ->
|
||||
{
|
||||
if (member.isOnline())
|
||||
{
|
||||
member.getPlayerInstance().getEffectList().stopSkillEffects(true, ADVENTS[member.getClan().getLevel() - 1].getSkill());
|
||||
}
|
||||
});
|
||||
if (player.getClan() != null)
|
||||
{
|
||||
player.getEffectList().stopSkillEffects(true, ADVENTS[player.getClan().getLevel() - 1].getSkill());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -137,9 +183,23 @@ public class ClanMaster extends AbstractNpcAI
|
||||
public void onProfessionChange(OnPlayerProfessionChange event)
|
||||
{
|
||||
final PlayerInstance player = event.getPlayer();
|
||||
if (player.isClanLeader() || ((player.getClan() != null) && player.getClan().getLeader().isOnline()))
|
||||
if (player.isClanLeader() || (player.getClan() != null))
|
||||
{
|
||||
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
|
||||
if (player.getClan().getLeader().isOnline())
|
||||
{
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ClanMember member : player.getClan().getMembers())
|
||||
{
|
||||
if (member.getPledgeType() == 100)
|
||||
{
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,7 +210,18 @@ public class ClanMaster extends AbstractNpcAI
|
||||
final PlayerInstance player = event.getClanMember().getPlayerInstance();
|
||||
if (player.getClan().getLeader().isOnline())
|
||||
{
|
||||
CommonSkill.CLAN_ADVENT.getSkill().applyEffects(player, player);
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
for (ClanMember member : player.getClan().getMembers())
|
||||
{
|
||||
if (member.getPledgeType() == 100)
|
||||
{
|
||||
ADVENTS[player.getClan().getLevel() - 1].getSkill().applyEffects(player, player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -158,7 +229,7 @@ public class ClanMaster extends AbstractNpcAI
|
||||
@RegisterType(ListenerRegisterType.GLOBAL_PLAYERS)
|
||||
public void onPlayerClanLeft(OnPlayerClanLeft event)
|
||||
{
|
||||
event.getClanMember().getPlayerInstance().getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
|
||||
event.getClanMember().getPlayerInstance().getEffectList().stopSkillEffects(true, ADVENTS[event.getClan().getLevel() - 1].getSkill());
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
|
@ -276,27 +276,231 @@
|
||||
<affectScope>PLEDGE</affectScope>
|
||||
<affectObject>FRIEND</affectObject>
|
||||
<effects>
|
||||
<effect name="ExpModify">
|
||||
<amount>10</amount>
|
||||
</effect>
|
||||
<effect name="SpModify">
|
||||
<amount>10</amount>
|
||||
</effect>
|
||||
<effect name="VitalityExpRate">
|
||||
<amount>
|
||||
<value fromLevel="1" toLevel="3">1</value>
|
||||
<value fromLevel="4" toLevel="6">2</value>
|
||||
<value fromLevel="7" toLevel="9">3</value>
|
||||
<value fromLevel="10" toLevel="12">4</value>
|
||||
<value fromLevel="13" toLevel="15">5</value>
|
||||
</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="AdditionalPotionCp">
|
||||
<amount>
|
||||
<value fromLevel="2" toLevel="3">50</value>
|
||||
<value fromLevel="4" toLevel="6">100</value>
|
||||
<value fromLevel="7" toLevel="9">150</value>
|
||||
<value fromLevel="10" toLevel="12">200</value>
|
||||
<value fromLevel="13" toLevel="14">250</value>
|
||||
<value level="15">300</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="AdditionalPotionHp">
|
||||
<amount>
|
||||
<value fromLevel="2" toLevel="3">50</value>
|
||||
<value fromLevel="4" toLevel="6">100</value>
|
||||
<value fromLevel="7" toLevel="9">150</value>
|
||||
<value fromLevel="10" toLevel="12">200</value>
|
||||
<value fromLevel="13" toLevel="14">250</value>
|
||||
<value level="15">300</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="AdditionalPotionMp">
|
||||
<amount>
|
||||
<value fromLevel="2" toLevel="3">50</value>
|
||||
<value fromLevel="4" toLevel="6">100</value>
|
||||
<value fromLevel="7" toLevel="9">150</value>
|
||||
<value fromLevel="10" toLevel="12">200</value>
|
||||
<value fromLevel="13" toLevel="14">250</value>
|
||||
<value level="15">300</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="AttackAttributeAdd">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">15</value>
|
||||
<value fromLevel="11" toLevel="12">20</value>
|
||||
<value fromLevel="13" toLevel="14">25</value>
|
||||
<value level="15">30</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="DefenceAttribute">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">20</value>
|
||||
<value fromLevel="11" toLevel="12">30</value>
|
||||
<value fromLevel="13" toLevel="14">40</value>
|
||||
<value level="15">50</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
<attribute>FIRE</attribute>
|
||||
</effect>
|
||||
<effect name="DefenceAttribute">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">20</value>
|
||||
<value fromLevel="11" toLevel="12">30</value>
|
||||
<value fromLevel="13" toLevel="14">40</value>
|
||||
<value level="15">50</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
<attribute>WATER</attribute>
|
||||
</effect>
|
||||
<effect name="DefenceAttribute">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">20</value>
|
||||
<value fromLevel="11" toLevel="12">30</value>
|
||||
<value fromLevel="13" toLevel="14">40</value>
|
||||
<value level="15">50</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
<attribute>WIND</attribute>
|
||||
</effect>
|
||||
<effect name="DefenceAttribute">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">20</value>
|
||||
<value fromLevel="11" toLevel="12">30</value>
|
||||
<value fromLevel="13" toLevel="14">40</value>
|
||||
<value level="15">50</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
<attribute>EARTH</attribute>
|
||||
</effect>
|
||||
<effect name="DefenceAttribute">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">20</value>
|
||||
<value fromLevel="11" toLevel="12">30</value>
|
||||
<value fromLevel="13" toLevel="14">40</value>
|
||||
<value level="15">50</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
<attribute>HOLY</attribute>
|
||||
</effect>
|
||||
<effect name="DefenceAttribute">
|
||||
<amount>
|
||||
<value fromLevel="3" toLevel="5">5</value>
|
||||
<value fromLevel="6" toLevel="7">10</value>
|
||||
<value fromLevel="8" toLevel="10">20</value>
|
||||
<value fromLevel="11" toLevel="12">30</value>
|
||||
<value fromLevel="13" toLevel="14">40</value>
|
||||
<value level="15">50</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
<attribute>DARK</attribute>
|
||||
</effect>
|
||||
<effect name="PAtk">
|
||||
<amount>5</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence">
|
||||
<amount>5</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="MagicalDefence">
|
||||
<amount>5</amount>
|
||||
<mode>PER</mode>
|
||||
<amount>
|
||||
<value level="5">2863</value>
|
||||
<value level="6">2891</value>
|
||||
<value level="7">2934</value>
|
||||
<value level="8">2978</value>
|
||||
<value level="9">3022</value>
|
||||
<value level="10">3090</value>
|
||||
<value level="11">3136</value>
|
||||
<value level="12">3183</value>
|
||||
<value level="13">3230</value>
|
||||
<value level="14">3278</value>
|
||||
<value level="15">3316</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="MAtk">
|
||||
<amount>6</amount>
|
||||
<mode>PER</mode>
|
||||
<amount>
|
||||
<value level="5">2863</value>
|
||||
<value level="6">2891</value>
|
||||
<value level="7">2934</value>
|
||||
<value level="8">2978</value>
|
||||
<value level="9">3022</value>
|
||||
<value level="10">3090</value>
|
||||
<value level="11">3136</value>
|
||||
<value level="12">3183</value>
|
||||
<value level="13">3230</value>
|
||||
<value level="14">3278</value>
|
||||
<value level="15">3316</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="PhysicalDefence">
|
||||
<amount>
|
||||
<value level="5">3844</value>
|
||||
<value level="6">3863</value>
|
||||
<value level="7">3882</value>
|
||||
<value level="8">3901</value>
|
||||
<value level="9">3917</value>
|
||||
<value level="10">3936</value>
|
||||
<value level="11">3954</value>
|
||||
<value level="12">3973</value>
|
||||
<value level="13">3990</value>
|
||||
<value level="14">4009</value>
|
||||
<value level="15">4029</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="MagicalDefence">
|
||||
<amount>
|
||||
<value level="5">3844</value>
|
||||
<value level="6">3863</value>
|
||||
<value level="7">3882</value>
|
||||
<value level="8">3901</value>
|
||||
<value level="9">3917</value>
|
||||
<value level="10">3936</value>
|
||||
<value level="11">3954</value>
|
||||
<value level="12">3973</value>
|
||||
<value level="13">3990</value>
|
||||
<value level="14">4009</value>
|
||||
<value level="15">4029</value>
|
||||
</amount>
|
||||
<mode>DIFF</mode>
|
||||
</effect>
|
||||
<effect name="HpRegen">
|
||||
<amount>5</amount>
|
||||
<amount>
|
||||
<value fromLevel="5" toLevel="8">5</value>
|
||||
<value fromLevel="9" toLevel="11">6</value>
|
||||
<value fromLevel="12" toLevel="14">7</value>
|
||||
<value level="15">8</value>
|
||||
</amount>
|
||||
</effect>
|
||||
<effect name="MpRegen">
|
||||
<amount>5</amount>
|
||||
<amount>
|
||||
<value fromLevel="5" toLevel="8">5</value>
|
||||
<value fromLevel="9" toLevel="11">6</value>
|
||||
<value fromLevel="12" toLevel="14">7</value>
|
||||
<value level="15">8</value>
|
||||
</amount>
|
||||
</effect>
|
||||
<effect name="PhysicalSkillPower">
|
||||
<amount>
|
||||
<value fromLevel="10" toLevel="13">1</value>
|
||||
<value fromLevel="14" toLevel="15">2</value>
|
||||
</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
<effect name="MagicalSkillPower">
|
||||
<amount>
|
||||
<value fromLevel="10" toLevel="13">1</value>
|
||||
<value fromLevel="14" toLevel="15">2</value>
|
||||
</amount>
|
||||
<mode>PER</mode>
|
||||
</effect>
|
||||
</effects>
|
||||
</skill>
|
||||
|
@ -62,7 +62,6 @@ import org.l2jmobius.gameserver.model.interfaces.IIdentifiable;
|
||||
import org.l2jmobius.gameserver.model.interfaces.INamable;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.ClanWarehouse;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.ItemContainer;
|
||||
import org.l2jmobius.gameserver.model.skills.CommonSkill;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.model.variables.ClanVariables;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||
@ -528,7 +527,7 @@ public class Clan implements IIdentifiable, INamable
|
||||
|
||||
// remove Clan skills from Player
|
||||
removeSkillEffects(player);
|
||||
player.getEffectList().stopSkillEffects(true, CommonSkill.CLAN_ADVENT.getId());
|
||||
player.getEffectList().stopSkillEffects(true, 19009);
|
||||
|
||||
// remove Residential skills
|
||||
if (player.getClan().getCastleId() > 0)
|
||||
|
@ -53,7 +53,6 @@ public enum CommonSkill
|
||||
IMPRIT_OF_DARKNESS(19035, 1),
|
||||
ABILITY_OF_LIGHT(19032, 1),
|
||||
ABILITY_OF_DARKNESS(19033, 1),
|
||||
CLAN_ADVENT(19009, 1),
|
||||
HAIR_ACCESSORY_SET(17192, 1),
|
||||
ALCHEMY_CUBE(17943, 1),
|
||||
ALCHEMY_CUBE_RANDOM_SUCCESS(17966, 1),
|
||||
|
Loading…
Reference in New Issue
Block a user