Custom Ghost Walking buff when TvT member resurrects.

This commit is contained in:
MobiusDev
2017-12-12 00:02:16 +00:00
parent 07e95bb19a
commit 8f2b258395
15 changed files with 339 additions and 30 deletions

View File

@@ -67,6 +67,7 @@ public class TvT extends Event
// NPC
private static final int MANAGER = 70010;
// Skills
private static final SkillHolder GHOST_WALKING = new SkillHolder(100000, 1); // Custom Ghost Walking
private static final SkillHolder KNIGHT = new SkillHolder(15648, 1); // Knight's Harmony (Adventurer)
private static final SkillHolder WARRIOR = new SkillHolder(15649, 1); // Warrior's Harmony (Adventurer)
private static final SkillHolder WIZARD = new SkillHolder(15650, 1); // Wizard's Harmony (Adventurer)
@@ -466,11 +467,19 @@ public class TvT extends Event
{
player.setIsPendingRevive(true);
player.teleToLocation(BLUE_SPAWN_LOC, false, PVP_WORLD);
// Make player invulnerable for 30 seconds.
GHOST_WALKING.getSkill().applyEffects(player, player);
// Reset existing activity timers.
resetActivityTimers(player); // In case player died in peace zone.
}
else if (RED_TEAM.contains(player))
{
player.setIsPendingRevive(true);
player.teleToLocation(RED_SPAWN_LOC, false, PVP_WORLD);
// Make player invulnerable for 30 seconds.
GHOST_WALKING.getSkill().applyEffects(player, player);
// Reset existing activity timers.
resetActivityTimers(player); // In case player died in peace zone.
}
}
break;
@@ -570,8 +579,7 @@ public class TvT extends Event
((((zone == BLUE_PEACE_ZONE) && (character.getTeam() == Team.BLUE)) || //
((zone == RED_PEACE_ZONE) && (character.getTeam() == Team.RED)))))
{
startQuestTimer("KickPlayer" + character.getObjectId(), PVP_WORLD.getDoor(BLUE_DOOR_ID).isOpen() ? INACTIVITY_TIME * 60000 : (INACTIVITY_TIME * 60000) + (WAIT_TIME * 60000), null, character.getActingPlayer());
startQuestTimer("KickPlayerWarning" + character.getObjectId(), PVP_WORLD.getDoor(BLUE_DOOR_ID).isOpen() ? (INACTIVITY_TIME / 2) * 60000 : ((INACTIVITY_TIME / 2) * 60000) + (WAIT_TIME * 60000), null, character.getActingPlayer());
resetActivityTimers(character.getActingPlayer());
}
}
return null;
@@ -582,8 +590,14 @@ public class TvT extends Event
{
if (character.isPlayer() && character.getActingPlayer().isOnCustomEvent())
{
cancelQuestTimer("KickPlayer" + character.getObjectId(), null, character.getActingPlayer());
cancelQuestTimer("KickPlayerWarning" + character.getObjectId(), null, character.getActingPlayer());
final L2PcInstance player = character.getActingPlayer();
cancelQuestTimer("KickPlayer" + character.getObjectId(), null, player);
cancelQuestTimer("KickPlayerWarning" + character.getObjectId(), null, player);
// Removed invulnerability shield.
if (player.isAffectedBySkill(GHOST_WALKING))
{
player.getEffectList().stopSkillEffects(true, GHOST_WALKING.getSkill());
}
}
return super.onExitZone(character, zone);
}
@@ -718,6 +732,14 @@ public class TvT extends Event
}
}
private void resetActivityTimers(L2PcInstance player)
{
cancelQuestTimer("KickPlayer" + player.getObjectId(), null, player);
cancelQuestTimer("KickPlayerWarning" + player.getObjectId(), null, player);
startQuestTimer("KickPlayer" + player.getObjectId(), PVP_WORLD.getDoor(BLUE_DOOR_ID).isOpen() ? INACTIVITY_TIME * 60000 : (INACTIVITY_TIME * 60000) + (WAIT_TIME * 60000), null, player);
startQuestTimer("KickPlayerWarning" + player.getObjectId(), PVP_WORLD.getDoor(BLUE_DOOR_ID).isOpen() ? (INACTIVITY_TIME / 2) * 60000 : ((INACTIVITY_TIME / 2) * 60000) + (WAIT_TIME * 60000), null, player);
}
private void manageForfeit()
{
cancelQuestTimer("10", null, null);