Minor ResidenceOfQueenIgnis script adjustments.

This commit is contained in:
MobiusDevelopment
2019-10-23 23:11:47 +00:00
parent d4ad331288
commit 4d498965f0
3 changed files with 51 additions and 147 deletions

View File

@@ -16,6 +16,9 @@
*/ */
package instances.ResidenceOfIgnis; package instances.ResidenceOfIgnis;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -38,11 +41,8 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
// NPCs // NPCs
private static final int TARA = 34047; private static final int TARA = 34047;
private static final int FREYA = 29109; private static final int FREYA = 29109;
// RAID
private static final int IGNIS = 29105; private static final int IGNIS = 29105;
// Skills
// SKILLS
private static SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1); private static SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1);
private static SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2); private static SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2);
private static SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3); private static SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3);
@@ -53,10 +53,10 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
private static SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8); private static SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8);
private static SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9); private static SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9);
private static SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10); private static SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10);
private static SkillHolder FREYA_SAFETY_ZONE = new SkillHolder(50052, 1); // Just for an effect
// Misc // Misc
private static SkillHolder FREYA_SAFETY_ZONE = new SkillHolder(50052, 1); // Just for an effect
private static final int TEMPLATE_ID = 195; private static final int TEMPLATE_ID = 195;
private final Map<PlayerInstance, Integer> _playerFireRage = new ConcurrentHashMap<>();
public ResidenceOfQueenIgnis() public ResidenceOfQueenIgnis()
{ {
@@ -76,58 +76,26 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
case "ENTER": case "ENTER":
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
player.getVariables().set("REMOVE_FIRE_RAGE", 0);
break; break;
} }
case "REMOVE_FIRE_RAGE": case "REMOVE_FIRE_RAGE":
{ {
if (player.isAffectedBySkill(50050)) if (player.isAffectedBySkill(FIRE_RAG_1))
{ {
if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 0) final int playerFireRage = _playerFireRage.getOrDefault(player, 0);
if (playerFireRage < 5)
{ {
player.getVariables().set("REMOVE_FIRE_RAGE", 1); _playerFireRage.put(player, playerFireRage + 1);
player.stopSkillEffects(true, 50050); player.stopSkillEffects(true, FIRE_RAG_1.getSkillId());
player.doCast(FREYA_SAFETY_ZONE.getSkill()); player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!"); npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
break;
} }
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 1)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 2);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 2)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 3);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 3)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 4);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 4)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 5);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 5)
{
npc.broadcastSay(ChatType.NPC_SHOUT, "You cannot use my power again."); npc.broadcastSay(ChatType.NPC_SHOUT, "You cannot use my power again.");
player.sendMessage("Freya: You cannot use my power again."); player.sendMessage("Freya: You cannot use my power again.");
break;
} }
}
else
{
npc.broadcastSay(ChatType.NPC_SHOUT, "I help you only when you affected by Fire Rage skill."); npc.broadcastSay(ChatType.NPC_SHOUT, "I help you only when you affected by Fire Rage skill.");
}
break; break;
} }
case "CAST_FIRE_RAGE_1": case "CAST_FIRE_RAGE_1":
@@ -210,7 +178,6 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
} }
break; break;
} }
} }
return null; return null;
} }
@@ -267,6 +234,7 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
final Instance world = npc.getInstanceWorld(); final Instance world = npc.getInstanceWorld();
if (world != null) if (world != null)
{ {
_playerFireRage.clear();
world.finishInstance(); world.finishInstance();
} }
return super.onKill(npc, player, isSummon); return super.onKill(npc, player, isSummon);

View File

@@ -16,6 +16,9 @@
*/ */
package instances.ResidenceOfIgnis; package instances.ResidenceOfIgnis;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -38,11 +41,8 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
// NPCs // NPCs
private static final int TARA = 34047; private static final int TARA = 34047;
private static final int FREYA = 29109; private static final int FREYA = 29109;
// RAID
private static final int IGNIS = 29105; private static final int IGNIS = 29105;
// Skills
// SKILLS
private static SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1); private static SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1);
private static SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2); private static SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2);
private static SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3); private static SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3);
@@ -53,10 +53,10 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
private static SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8); private static SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8);
private static SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9); private static SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9);
private static SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10); private static SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10);
private static SkillHolder FREYA_SAFETY_ZONE = new SkillHolder(50052, 1); // Just for an effect
// Misc // Misc
private static SkillHolder FREYA_SAFETY_ZONE = new SkillHolder(50052, 1); // Just for an effect
private static final int TEMPLATE_ID = 195; private static final int TEMPLATE_ID = 195;
private final Map<PlayerInstance, Integer> _playerFireRage = new ConcurrentHashMap<>();
public ResidenceOfQueenIgnis() public ResidenceOfQueenIgnis()
{ {
@@ -76,58 +76,26 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
case "ENTER": case "ENTER":
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
player.getVariables().set("REMOVE_FIRE_RAGE", 0);
break; break;
} }
case "REMOVE_FIRE_RAGE": case "REMOVE_FIRE_RAGE":
{ {
if (player.isAffectedBySkill(50050)) if (player.isAffectedBySkill(FIRE_RAG_1))
{ {
if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 0) final int playerFireRage = _playerFireRage.getOrDefault(player, 0);
if (playerFireRage < 5)
{ {
player.getVariables().set("REMOVE_FIRE_RAGE", 1); _playerFireRage.put(player, playerFireRage + 1);
player.stopSkillEffects(true, 50050); player.stopSkillEffects(true, FIRE_RAG_1.getSkillId());
player.doCast(FREYA_SAFETY_ZONE.getSkill()); player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!"); npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
break;
} }
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 1)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 2);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 2)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 3);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 3)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 4);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 4)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 5);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 5)
{
npc.broadcastSay(ChatType.NPC_SHOUT, "You cannot use my power again."); npc.broadcastSay(ChatType.NPC_SHOUT, "You cannot use my power again.");
player.sendMessage("Freya: You cannot use my power again."); player.sendMessage("Freya: You cannot use my power again.");
break;
} }
}
else
{
npc.broadcastSay(ChatType.NPC_SHOUT, "I help you only when you affected by Fire Rage skill."); npc.broadcastSay(ChatType.NPC_SHOUT, "I help you only when you affected by Fire Rage skill.");
}
break; break;
} }
case "CAST_FIRE_RAGE_1": case "CAST_FIRE_RAGE_1":
@@ -210,7 +178,6 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
} }
break; break;
} }
} }
return null; return null;
} }
@@ -267,6 +234,7 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
final Instance world = npc.getInstanceWorld(); final Instance world = npc.getInstanceWorld();
if (world != null) if (world != null)
{ {
_playerFireRage.clear();
world.finishInstance(); world.finishInstance();
} }
return super.onKill(npc, player, isSummon); return super.onKill(npc, player, isSummon);

View File

@@ -16,6 +16,9 @@
*/ */
package instances.ResidenceOfIgnis; package instances.ResidenceOfIgnis;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.l2jmobius.gameserver.enums.ChatType; import org.l2jmobius.gameserver.enums.ChatType;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
@@ -38,11 +41,8 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
// NPCs // NPCs
private static final int TARA = 34047; private static final int TARA = 34047;
private static final int FREYA = 29109; private static final int FREYA = 29109;
// RAID
private static final int IGNIS = 29105; private static final int IGNIS = 29105;
// Skills
// SKILLS
private static SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1); private static SkillHolder FIRE_RAG_1 = new SkillHolder(50050, 1);
private static SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2); private static SkillHolder FIRE_RAG_2 = new SkillHolder(50050, 2);
private static SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3); private static SkillHolder FIRE_RAG_3 = new SkillHolder(50050, 3);
@@ -53,10 +53,10 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
private static SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8); private static SkillHolder FIRE_RAG_8 = new SkillHolder(50050, 8);
private static SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9); private static SkillHolder FIRE_RAG_9 = new SkillHolder(50050, 9);
private static SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10); private static SkillHolder FIRE_RAG_10 = new SkillHolder(50050, 10);
private static SkillHolder FREYA_SAFETY_ZONE = new SkillHolder(50052, 1); // Just for an effect
// Misc // Misc
private static SkillHolder FREYA_SAFETY_ZONE = new SkillHolder(50052, 1); // Just for an effect
private static final int TEMPLATE_ID = 195; private static final int TEMPLATE_ID = 195;
private final Map<PlayerInstance, Integer> _playerFireRage = new ConcurrentHashMap<>();
public ResidenceOfQueenIgnis() public ResidenceOfQueenIgnis()
{ {
@@ -76,58 +76,26 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
case "ENTER": case "ENTER":
{ {
enterInstance(player, npc, TEMPLATE_ID); enterInstance(player, npc, TEMPLATE_ID);
player.getVariables().set("REMOVE_FIRE_RAGE", 0);
break; break;
} }
case "REMOVE_FIRE_RAGE": case "REMOVE_FIRE_RAGE":
{ {
if (player.isAffectedBySkill(50050)) if (player.isAffectedBySkill(FIRE_RAG_1))
{ {
if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 0) final int playerFireRage = _playerFireRage.getOrDefault(player, 0);
if (playerFireRage < 5)
{ {
player.getVariables().set("REMOVE_FIRE_RAGE", 1); _playerFireRage.put(player, playerFireRage + 1);
player.stopSkillEffects(true, 50050); player.stopSkillEffects(true, FIRE_RAG_1.getSkillId());
player.doCast(FREYA_SAFETY_ZONE.getSkill()); player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!"); npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
break;
} }
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 1)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 2);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 2)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 3);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 3)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 4);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 4)
{
player.getVariables().set("REMOVE_FIRE_RAGE", 5);
player.stopSkillEffects(true, 50050);
player.doCast(FREYA_SAFETY_ZONE.getSkill());
npc.broadcastSay(ChatType.NPC_SHOUT, "Bless with you. Lets finish fight!");
}
else if (player.getVariables().getInt("REMOVE_FIRE_RAGE") == 5)
{
npc.broadcastSay(ChatType.NPC_SHOUT, "You cannot use my power again."); npc.broadcastSay(ChatType.NPC_SHOUT, "You cannot use my power again.");
player.sendMessage("Freya: You cannot use my power again."); player.sendMessage("Freya: You cannot use my power again.");
break;
} }
}
else
{
npc.broadcastSay(ChatType.NPC_SHOUT, "I help you only when you affected by Fire Rage skill."); npc.broadcastSay(ChatType.NPC_SHOUT, "I help you only when you affected by Fire Rage skill.");
}
break; break;
} }
case "CAST_FIRE_RAGE_1": case "CAST_FIRE_RAGE_1":
@@ -210,7 +178,6 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
} }
break; break;
} }
} }
return null; return null;
} }
@@ -267,6 +234,7 @@ public class ResidenceOfQueenIgnis extends AbstractInstance
final Instance world = npc.getInstanceWorld(); final Instance world = npc.getInstanceWorld();
if (world != null) if (world != null)
{ {
_playerFireRage.clear();
world.finishInstance(); world.finishInstance();
} }
return super.onKill(npc, player, isSummon); return super.onKill(npc, player, isSummon);