Updated NpcStringId class.

This commit is contained in:
MobiusDevelopment 2022-12-08 07:45:23 +00:00
parent ca344b5854
commit 69178eba2d
49 changed files with 6054 additions and 4982 deletions

View File

@ -69,7 +69,7 @@ public class FrightenedRagnaOrc extends AbstractNpcAI
@Override
public String onKill(Npc npc, Player player, boolean isSummon)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.A_CURSE_UPON_YOU_2 : NpcStringId.I_REALLY_DIDN_T_WANT_TO_FIGHT;
final NpcStringId msg = getRandomBoolean() ? NpcStringId.A_CURSE_UPON_YOU_2 : NpcStringId.I_DON_T_WANT_TO_FIGHT_YOU_2;
npc.broadcastSay(ChatType.NPC_GENERAL, msg);
cancelQuestTimer("say", npc, null);
cancelQuestTimer("reward", npc, player);
@ -88,7 +88,7 @@ public class FrightenedRagnaOrc extends AbstractNpcAI
cancelQuestTimer("say", npc, null);
return null;
}
final NpcStringId msg = getRandomBoolean() ? NpcStringId.I_DON_T_WANT_TO_FIGHT : NpcStringId.IS_THIS_REALLY_NECESSARY;
final NpcStringId msg = getRandomBoolean() ? NpcStringId.I_DON_T_WANT_TO_FIGHT_YOU : NpcStringId.IS_THIS_REALLY_NECESSARY;
npc.broadcastSay(ChatType.NPC_GENERAL, msg);
break;
}

View File

@ -40,9 +40,9 @@ public class TavernEmployee extends AbstractNpcAI
// Text
private static final NpcStringId[] SPAM_TEXT1 =
{
NpcStringId.SIGH_BUSY_AS_ALWAYS,
NpcStringId.SO_MUCH_TO_DO,
NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_COOKING_TODAY,
NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
@ -61,9 +61,9 @@ public class TavernEmployee extends AbstractNpcAI
};
private static final NpcStringId[] SPAM_TEXT3 =
{
NpcStringId.SIGH_BUSY_AS_ALWAYS,
NpcStringId.SO_MUCH_TO_DO,
NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_COOKING_TODAY,
NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
@ -84,9 +84,9 @@ public class TavernEmployee extends AbstractNpcAI
};
private static final NpcStringId[] SPAM_TEXT5 =
{
NpcStringId.SIGH_BUSY_AS_ALWAYS,
NpcStringId.SO_MUCH_TO_DO,
NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_COOKING_TODAY,
NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
@ -101,9 +101,9 @@ public class TavernEmployee extends AbstractNpcAI
};
private static final NpcStringId[] SPAM_TEXT6 =
{
NpcStringId.SIGH_BUSY_AS_ALWAYS,
NpcStringId.SO_MUCH_TO_DO,
NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_COOKING_TODAY,
NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,

View File

@ -45,7 +45,7 @@ public class PlainsOfDion extends AbstractNpcAI
NpcStringId.S1_HOW_DARE_YOU_INTERRUPT_OUR_FIGHT_HEY_GUYS_HELP,
NpcStringId.S1_HEY_WE_RE_HAVING_A_DUEL_HERE,
NpcStringId.THE_DUEL_IS_OVER_ATTACK,
NpcStringId.FOUL_KILL_THE_COWARD,
NpcStringId.KILL_THE_COWARD,
NpcStringId.HOW_DARE_YOU_INTERRUPT_A_SACRED_DUEL_YOU_MUST_BE_TAUGHT_A_LESSON
};

View File

@ -124,7 +124,7 @@ public class Seyo extends AbstractNpcAI
{
final int itemCount = getRandom(10, 16);
giveItems(player, STONE_FRAGMENT, itemCount);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_PULLED_ONE_WITH_S2_DIGITS_LUCKY_NOT_BAD, player.getName(), String.valueOf(itemCount));
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_HAS_PULLED_ONE_WITH_S2_DIGITS_LUCKY, player.getName(), String.valueOf(itemCount));
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}

View File

@ -42,7 +42,7 @@ public class Commando extends AbstractNpcAI
{
if (event.equals("NPC_SHOUT"))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_RE_COLLECTING_SEEKER_OF_ADEN);
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_RE_LOOKING_FOR_RANGERS_FROM_ADEN);
startQuestTimer("NPC_SHOUT", (10 + getRandom(5)) * 1000, npc, null);
}
return super.onAdvEvent(event, npc, player);

View File

@ -256,7 +256,7 @@ public class IceQueensCastleBattle extends AbstractInstance
frey.setInvul(true);
frey.setRandomWalking(false);
frey.disableCoreAI(true);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
manageTimer(world, 60, NpcStringId.TIME_UNTIL_THE_NEXT_BATTLE);
world.setStatus(2);
world.setParameter("freya", frey);
startQuestTimer("STAGE_2_START", 60000, controller, null);
@ -625,7 +625,7 @@ public class IceQueensCastleBattle extends AbstractInstance
{
case 0:
{
npc.broadcastSay(ChatType.SHOUT, NpcStringId.ARCHER_GIVE_YOUR_BREATH_FOR_THE_INTRUDER);
npc.broadcastSay(ChatType.SHOUT, NpcStringId.GUARD_KILL_THE_INTRUDERS);
break;
}
case 1:
@ -1054,7 +1054,7 @@ public class IceQueensCastleBattle extends AbstractInstance
case GLAKIAS_HARD:
{
manageDespawnMinions(world);
manageTimer(world, 60, NpcStringId.TIME_REMAINING_UNTIL_NEXT_BATTLE);
manageTimer(world, 60, NpcStringId.TIME_UNTIL_THE_NEXT_BATTLE);
cancelQuestTimer("STAGE_2_FAILED", controller, null);
startQuestTimer("STAGE_3_MOVIE", 60000, controller, null);
break;

View File

@ -248,7 +248,7 @@ public class IstinaCavern extends AbstractInstance
npc.setTargetable(true);
npc.setInvul(false);
npcVars.set("COUNTING_ENABLED", true);
showOnScreenMsg(instance, NpcStringId.START_CHARGING_MANA_BALLISTA, ExShowScreenMessage.MIDDLE_CENTER, 4000);
showOnScreenMsg(instance, NpcStringId.THE_MAGICAL_BALLISTA_IS_CHARGING, ExShowScreenMessage.MIDDLE_CENTER, 4000);
}
else
{

View File

@ -65,7 +65,7 @@ public class KimerianCommon extends AbstractInstance
NpcStringId.THEY_ARE_ROOKIE_REBELLIONS,
NpcStringId.RESISTANCE_UNDERLINGS,
NpcStringId.TREASON_IS_PUNISHABLE_BY_DEATH,
NpcStringId.WHO_DO_YOU_THINK_YOU_ARE_TO_TRY_MY_AUTHORITY,
NpcStringId.DO_YOU_REALLY_WANT_TO_TEST_MY_ABILITIES,
};
private static final int TEMPLATE_ID = 161;

View File

@ -97,7 +97,7 @@ public final class LimitBarrier extends AbstractNpcAI
{
if (player != null)
{
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_FAILED_TO_DESTROY_THE_LIMIT_BARRIER_THE_RAID_BOSS_FULLY_RECOVERS_ITS_CON, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_FAILED_TO_DESTROY_THE_LIMIT_BARRIER_THE_RAID_BOSS_HAS_FULLY_RECOVERED_ITS_HEALTH, 2, 5000, true));
}
npc.setCurrentHp(npc.getStat().getMaxHp(), true);
npc.stopSkillEffects(SkillFinishType.REMOVED, LIMIT_BARRIER.getSkillId());
@ -135,7 +135,7 @@ public final class LimitBarrier extends AbstractNpcAI
npc.abortAttack();
npc.abortCast();
npc.doCast(LIMIT_BARRIER.getSkill());
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_BARRIER_IN_15_SEC, 2, 5000, true));
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
}
}
@ -147,7 +147,7 @@ public final class LimitBarrier extends AbstractNpcAI
npc.abortAttack();
npc.abortCast();
npc.doCast(LIMIT_BARRIER.getSkill());
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_BARRIER_IN_15_SEC, 2, 5000, true));
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
}
}
@ -159,7 +159,7 @@ public final class LimitBarrier extends AbstractNpcAI
npc.abortAttack();
npc.abortCast();
npc.doCast(LIMIT_BARRIER.getSkill());
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_BARRIER_IN_15_SEC, 2, 5000, true));
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
}
}

View File

@ -130,7 +130,7 @@ public class SinEater extends AbstractNpcAI
@Override
public void onSummonSpawn(Summon summon)
{
broadcastSummonSay(summon, getRandomBoolean() ? NpcStringId.HEY_IT_SEEMS_LIKE_YOU_NEED_MY_HELP_DOESN_T_IT : NpcStringId.ALMOST_GOT_IT_OUCH_STOP_DAMN_THESE_BLOODY_MANACLES);
broadcastSummonSay(summon, getRandomBoolean() ? NpcStringId.HEY_IT_SEEMS_LIKE_YOU_NEED_MY_HELP_DOESN_T_IT : NpcStringId.ALMOST_GOT_IT_DAMN_THESE_BLOODY_MANACLES);
startQuestTimer("TALK", 60000, null, summon.getOwner());
}

View File

@ -47,7 +47,7 @@ public class WarriorFishingBlock extends AbstractNpcAI
// NPC Strings
private static final NpcStringId[] NPC_STRINGS_ON_SPAWN =
{
NpcStringId.CROAK_CROAK_IS_THERE_FOOD_LIKE_S1_HERE,
NpcStringId.IS_THERE_FOOD_LIKE_S1_HERE,
NpcStringId.S1_HOW_LUCKY_I_AM,
NpcStringId.PRAY_THAT_YOU_CAUGHT_A_WRONG_FISH_S1
};

View File

@ -125,7 +125,7 @@ public class SavingSanta extends LongTimeEvent
NpcStringId.OH_HO_HO_OH_HO_HO_THANK_YOU_LADIES_AND_GENTLEMEN_I_WILL_REPAY_YOU_FOR_SURE,
NpcStringId.HAPPY_HOLIDAYS_WELL_DONE,
NpcStringId.HAPPY_HOLIDAYS_THANK_YOU_FOR_RESCUING_ME_FROM_THAT_WRETCHED_TURKEY,
NpcStringId.S1_I_HAVE_PREPARED_A_GIFT_FOR_YOU,
NpcStringId.I_VE_PREPARED_A_GIFT_FOR_YOU_S1,
NpcStringId.I_HAVE_A_GIFT_FOR_S1,
NpcStringId.TAKE_A_LOOK_AT_THE_INVENTORY_I_HOPE_YOU_LIKE_THE_GIFT_I_GAVE_YOU,
NpcStringId.TAKE_A_LOOK_AT_THE_INVENTORY_PERHAPS_THERE_MIGHT_BE_A_BIG_PRESENT,

View File

@ -84,11 +84,11 @@ public class DarkCloudMansion extends AbstractInstance
NpcStringId.PICK_ME,
NpcStringId.TRUST_ME,
NpcStringId.NOT_THAT_DUDE_I_M_THE_REAL_ONE,
NpcStringId.DON_T_BE_FOOLED_DON_T_BE_FOOLED_I_M_THE_REAL_ONE
NpcStringId.DON_T_BE_FOOLED_I_M_THE_REAL_ONE
};
private static final NpcStringId[] DECAY_CHAT =
{
NpcStringId.I_M_THE_REAL_ONE_PHEW,
NpcStringId.I_M_THE_REAL_ONE_2,
NpcStringId.CAN_T_YOU_EVEN_FIND_OUT,
NpcStringId.FIND_ME
};

View File

@ -465,7 +465,7 @@ public class EvilIncubator extends AbstractInstance
spawnedNpcs = world.spawnGroup("wave_" + waveId);
waveId++;
world.setParameter("WORLD_WAVE", waveId);
showOnScreenMsg(world, NpcStringId.CREATURES_RESURRECTED_DEFEND_YOURSELF, ExShowScreenMessage.TOP_CENTER, 5000, true);
showOnScreenMsg(world, NpcStringId.EVIL_INCUBATOR_GET_READY_TO_FIGHT_EVIL_FORCES, ExShowScreenMessage.TOP_CENTER, 5000, true);
break;
}
case 7:
@ -487,7 +487,7 @@ public class EvilIncubator extends AbstractInstance
spawnedNpcs = world.spawnGroup("wave_" + waveId);
waveId++;
world.setParameter("WORLD_WAVE", waveId);
showOnScreenMsg(world, NpcStringId.CREATURES_RESURRECTED_DEFEND_YOURSELF, ExShowScreenMessage.TOP_CENTER, 5000, true);
showOnScreenMsg(world, NpcStringId.EVIL_INCUBATOR_GET_READY_TO_FIGHT_EVIL_FORCES, ExShowScreenMessage.TOP_CENTER, 5000, true);
getTimers().addTimer("SPAWN_WAVE", 20000, e -> manageWaveSpawn(world));
break;
}
@ -496,7 +496,7 @@ public class EvilIncubator extends AbstractInstance
spawnedNpcs = world.spawnGroup("wave_" + waveId);
waveId++;
world.setParameter("WORLD_WAVE", waveId);
showOnScreenMsg(world, NpcStringId.I_DEATH_WOUND_CHAMPION_OF_SHILLIEN_SHALL_END_YOUR_WORLD, ExShowScreenMessage.TOP_CENTER, 5000, true);
showOnScreenMsg(world, NpcStringId.I_SHALL_GRANT_YOU_DEATH_IT_S_THE_ONLY_GIFT_FROM_THE_GODDESS_OF_DESTRUCTION, ExShowScreenMessage.TOP_CENTER, 5000, true);
getTimers().addTimer("SPAWN_WAVE", 20000, e -> manageWaveSpawn(world));
final Npc boss = addSpawn(CLASS_BOSS.get(world.getFirstPlayer().getClassId()).intValue(), BOSS_LOC, false, 0, false, world.getId());
world.broadcastPacket(new Earthquake(boss, 50, 10));

View File

@ -327,7 +327,7 @@ public class Fortuna extends AbstractInstance
{
world.setStatus(15);
world.spawnGroup("fortuna_15");
showOnScreenMsg(world, NpcStringId.ENRAGED_MASTER_KINEN_APPEARS, ExShowScreenMessage.BOTTOM_RIGHT, 6000, true);
showOnScreenMsg(world, NpcStringId.ENRAGED_MASTER_KINEN, ExShowScreenMessage.BOTTOM_RIGHT, 6000, true);
}
startQuestTimer("check_fortuna_status", 5000, npc, null);
break;

View File

@ -445,7 +445,7 @@ public class KartiasLabyrinth extends AbstractInstance
if (npc.isScriptValue(0) && (npc.getCurrentHpPercent() < 10))
{
npc.setScriptValue(1);
showOnScreenMsg(instance, NpcStringId.BURNING_BLOOD_S_EFFECT_IS_FELT, ExShowScreenMessage.TOP_CENTER, 5000, true);
showOnScreenMsg(instance, NpcStringId.YOU_FEEL_THE_BURNING_BLOOD_EFFECT, ExShowScreenMessage.TOP_CENTER, 5000, true);
MIRROR_SKILL_1.getSkill().applyEffects(attacker, attacker);
MIRROR_SKILL_2.getSkill().applyEffects(attacker, attacker);
manageProgressInInstance(instance);

View File

@ -124,7 +124,7 @@ public class KastiaExceptional extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_4, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_4_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(4);
world.spawnGroup("wave_4");
}
@ -135,7 +135,7 @@ public class KastiaExceptional extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_5, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_5_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(5);
world.spawnGroup("wave_5");
}
@ -146,7 +146,7 @@ public class KastiaExceptional extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_6, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_6_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(6);
world.spawnGroup("wave_6");
}
@ -157,7 +157,7 @@ public class KastiaExceptional extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_7, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_7_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(7);
world.spawnGroup("wave_7");
}

View File

@ -124,7 +124,7 @@ public class KastiaExtreme extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_4, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_4_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(4);
world.spawnGroup("wave_4");
}
@ -135,7 +135,7 @@ public class KastiaExtreme extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_5, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_5_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(5);
world.spawnGroup("wave_5");
}
@ -146,7 +146,7 @@ public class KastiaExtreme extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_6, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_6_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(6);
world.spawnGroup("wave_6");
}
@ -157,7 +157,7 @@ public class KastiaExtreme extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_7, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_7_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(7);
world.spawnGroup("wave_7");
}

View File

@ -124,7 +124,7 @@ public class KastiaHard extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_4, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_4_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(4);
world.spawnGroup("wave_4");
}
@ -135,7 +135,7 @@ public class KastiaHard extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_5, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_5_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(5);
world.spawnGroup("wave_5");
}
@ -146,7 +146,7 @@ public class KastiaHard extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_6, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_6_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(6);
world.spawnGroup("wave_6");
}
@ -157,7 +157,7 @@ public class KastiaHard extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_7, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_7_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(7);
world.spawnGroup("wave_7");
}

View File

@ -124,7 +124,7 @@ public class KastiaLow extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_4, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_4_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(4);
world.spawnGroup("wave_4");
}
@ -135,7 +135,7 @@ public class KastiaLow extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_5, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_5_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(5);
world.spawnGroup("wave_5");
}
@ -146,7 +146,7 @@ public class KastiaLow extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_6, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_6_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(6);
world.spawnGroup("wave_6");
}
@ -157,7 +157,7 @@ public class KastiaLow extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_7, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_7_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(7);
world.spawnGroup("wave_7");
}

View File

@ -124,7 +124,7 @@ public class KastiaMedium extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_4, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_4_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(4);
world.spawnGroup("wave_4");
}
@ -135,7 +135,7 @@ public class KastiaMedium extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_5, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_5_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(5);
world.spawnGroup("wave_5");
}
@ -146,7 +146,7 @@ public class KastiaMedium extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_6, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_6_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(6);
world.spawnGroup("wave_6");
}
@ -157,7 +157,7 @@ public class KastiaMedium extends AbstractInstance
{
if (world.getAliveNpcCount() == 0)
{
showOnScreenMsg(world, NpcStringId.STAGE_7, ExShowScreenMessage.TOP_CENTER, 10000, true);
showOnScreenMsg(world, NpcStringId.LV_7_2, ExShowScreenMessage.TOP_CENTER, 10000, true);
world.setStatus(7);
world.spawnGroup("wave_7");
}

View File

@ -162,7 +162,7 @@ public class StoryOfFreya extends AbstractInstance
if (getRandom(10) < 5)
{
world.spawnGroup("knight");
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.ICE_KNIGHTS_GOT_IN_DEFEAT_THE_ICE_KNIGHTS, ExShowScreenMessage.TOP_CENTER, 20000, true));
world.broadcastPacket(new ExShowScreenMessage(NpcStringId.FROZEN_LABYRINTH_KNIGHTS_HAVE_ATTACKED_US_DEFEAT_THEM, ExShowScreenMessage.TOP_CENTER, 20000, true));
}
else
{

View File

@ -182,7 +182,7 @@ public class Nursery extends AbstractInstance
}
npcVars.set("GAME_POINTS", npcVars.getInt("GAME_POINTS", 0) + addPoints);
showOnScreenMsg(instance, NpcStringId.SOLDIER_TIE_ABSORBED_REPRODUCTIVE_ENERGY_FROM_YOUR_BODY_AND_CONVERTED_S1_PIECES_OF_BIO_ENERGY, ExShowScreenMessage.TOP_CENTER, 3000, String.valueOf(addPoints));
showOnScreenMsg(instance, NpcStringId.SOLDIER_TIE_HAS_ABSORBED_REGENERATIVE_ENERGY_FROM_YOUR_BODY_AND_CONVERTED_IT_TO_BIO_ENERGY_X_S1, ExShowScreenMessage.TOP_CENTER, 3000, String.valueOf(addPoints));
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, ENERGY_SKILL_1.getSkill());
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, ENERGY_SKILL_2.getSkill());
player.getEffectList().stopSkillEffects(SkillFinishType.REMOVED, ENERGY_SKILL_3.getSkill());

View File

@ -115,7 +115,7 @@ public abstract class LetterQuest extends Quest
else
{
addCondNotRace(Race.ERTHEIA, "");
_startMessage = NpcStringId.KEKROPUS_LETTER_HAS_ARRIVED_CLICK_THE_QUESTION_MARK_ICON_TO_READ;
_startMessage = NpcStringId.YOU_HAVE_A_LETTER_FROM_KEKROPUS_CLICK_THE_QUESTION_MARK_ICON_TO_READ_IT;
}
}
@ -180,7 +180,7 @@ public abstract class LetterQuest extends Quest
}
else if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(player))
{
showOnScreenMsg(player, NpcStringId.YOU_CANNOT_TELEPORT_WHILE_IN_COMBAT_MODE, ExShowScreenMessage.TOP_CENTER, 5000);
showOnScreenMsg(player, NpcStringId.YOU_CANNOT_TELEPORT_WHILE_IN_COMBAT, ExShowScreenMessage.TOP_CENTER, 5000);
}
else if (player.isTransformed())
{

View File

@ -231,7 +231,7 @@ public class Q11025_PathOfDestinyProving extends Quest
player.getVariables().set(REWARD_CHECK_VAR3, true);
if (INSTANT_LEVEL_40 && (player.getLevel() < LEVEL_40))
{
addExpAndSp(player, (ExperienceData.getInstance().getExpForLevel(LEVEL_40) +1) - player.getExp(), 0);
addExpAndSp(player, (ExperienceData.getInstance().getExpForLevel(LEVEL_40) + 1) - player.getExp(), 0);
}
else
{
@ -611,7 +611,7 @@ public class Q11025_PathOfDestinyProving extends Quest
if (qs.isCond(4))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.DEFEAT_SKELETONS_3.getId(), true, qs.getInt(KILL_COUNT_VAR)));
holder.add(new NpcLogListHolder(NpcStringId.KILL_SKELETONS_3.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
else if (qs.isCond(11))

View File

@ -45,7 +45,7 @@ public class PlainsOfDion extends AbstractNpcAI
NpcStringId.S1_HOW_DARE_YOU_INTERRUPT_OUR_FIGHT_HEY_GUYS_HELP,
NpcStringId.S1_HEY_WE_RE_HAVING_A_DUEL_HERE,
NpcStringId.THE_DUEL_IS_OVER_ATTACK,
NpcStringId.FOUL_KILL_THE_COWARD,
NpcStringId.KILL_THE_COWARD,
NpcStringId.HOW_DARE_YOU_INTERRUPT_A_SACRED_DUEL_YOU_MUST_BE_TAUGHT_A_LESSON
};

View File

@ -119,7 +119,7 @@ public class EnergyOfInsolence extends AbstractNpcAI
}
case POWER_ANGEL_AMON:
{
npcStringId = spawning ? NpcStringId.I_WONDER_WHO_IT_IS_THAT_IS_LURKING_ABOUT : NpcStringId.WHY_WOULD_YOU_BUILD_A_TOWER_IN_OUR_TERRITORY;
npcStringId = spawning ? NpcStringId.I_WONDER_WHO_IT_IS_THAT_IS_LURKING_ABOUT : NpcStringId.HOW_DARE_YOU_INVADE_OUR_LAND_I_WON_T_LET_IT_PASS;
}
}
npc.broadcastSay(ChatType.NPC_SHOUT, npcStringId);

View File

@ -161,7 +161,7 @@ public final class LimitBarrier extends AbstractNpcAI
{
if (player != null)
{
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_FAILED_TO_DESTROY_THE_LIMIT_BARRIER_THE_RAID_BOSS_FULLY_RECOVERS_ITS_HEALTH, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.YOU_HAVE_FAILED_TO_DESTROY_THE_LIMIT_BARRIER_THE_RAID_BOSS_HAS_FULLY_RECOVERED_ITS_HEALTH, 2, 5000, true));
}
npc.setCurrentHp(npc.getStat().getMaxHp(), true);
npc.stopSkillEffects(SkillFinishType.REMOVED, LIMIT_BARRIER.getSkillId());
@ -199,7 +199,7 @@ public final class LimitBarrier extends AbstractNpcAI
npc.abortAttack();
npc.abortCast();
npc.doCast(LIMIT_BARRIER.getSkill());
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_BARRIER_IN_15_SEC, 2, 5000, true));
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
}
}
@ -211,7 +211,7 @@ public final class LimitBarrier extends AbstractNpcAI
npc.abortAttack();
npc.abortCast();
npc.doCast(LIMIT_BARRIER.getSkill());
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_BARRIER_IN_15_SEC, 2, 5000, true));
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
}
}
@ -223,7 +223,7 @@ public final class LimitBarrier extends AbstractNpcAI
npc.abortAttack();
npc.abortCast();
npc.doCast(LIMIT_BARRIER.getSkill());
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_LIMIT_BARRIER_IN_15_SECONDS, 2, 5000, true));
npc.broadcastPacket(new ExShowScreenMessage(NpcStringId.THE_RAID_BOSS_USES_THE_LIMIT_BARRIER_FOCUS_YOUR_ATTACKS_TO_DESTROY_THE_BARRIER_IN_15_SEC, 2, 5000, true));
startQuestTimer("RESTORE_FULL_HP", 15000, npc, attacker);
}
}

View File

@ -359,7 +359,7 @@ public class ClanHallManager extends AbstractNpcAI
htmltext = getHtm(player, "ClanHallManager-funcConfirm" + funcId + ".html");
htmltext = htmltext.replace("%funcId%", String.valueOf(funcId));
htmltext = htmltext.replace("%funcLv%", String.valueOf(funcLv));
htmltext = htmltext.replace("%funcCost%", "<fstring p1=\"" + template.getCost().getCount() + "\" p2=\"" + template.getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_DAY_S.getId() + "</fstring>");
htmltext = htmltext.replace("%funcCost%", "<fstring p1=\"" + template.getCost().getCount() + "\" p2=\"" + template.getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_D.getId() + "</fstring>");
}
}
}
@ -501,7 +501,7 @@ public class ClanHallManager extends AbstractNpcAI
if (func != null)
{
htmltext = htmltext.replaceAll("%" + name + "recovery%", String.valueOf((int) func.getTemplate().getValue()) + "%");
htmltext = htmltext.replaceAll("%" + name + "price%", "<fstring p1=\"" + func.getTemplate().getCost().getCount() + "\" p2=\"" + func.getTemplate().getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_DAY_S.getId() + "</fstring>");
htmltext = htmltext.replaceAll("%" + name + "price%", "<fstring p1=\"" + func.getTemplate().getCost().getCount() + "\" p2=\"" + func.getTemplate().getDurationAsDays() + "\">" + NpcStringId.FONT_COLOR_FFAABB_S1_FONT_ADENA_S2_D.getId() + "</fstring>");
htmltext = htmltext.replace("%" + name + "expire%", "Withdraw the fee for the next time at " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(func.getExpiration())));
htmltext = htmltext.replaceAll("%" + name + "deactive%", "[<a action=\"bypass -h Quest ClanHallManager manageFunctions removeFunction confirm " + func.getType().toString() + "\">Deactivate</a>]");
}

View File

@ -130,7 +130,7 @@ public class SinEater extends AbstractNpcAI
@Override
public void onSummonSpawn(Summon summon)
{
broadcastSummonSay(summon, getRandomBoolean() ? NpcStringId.HEY_IT_SEEMS_LIKE_YOU_NEED_MY_HELP_DOESN_T_IT : NpcStringId.ALMOST_GOT_IT_OUCH_STOP_DAMN_THESE_BLOODY_MANACLES);
broadcastSummonSay(summon, getRandomBoolean() ? NpcStringId.HEY_IT_SEEMS_LIKE_YOU_NEED_MY_HELP_DOESN_T_IT : NpcStringId.ALMOST_GOT_IT_DAMN_THESE_BLOODY_MANACLES);
startQuestTimer("TALK", 60000, null, summon.getOwner());
}

View File

@ -301,7 +301,7 @@ public class MonsterArena extends AbstractInstance
// Make machine talk.
final Npc machine = world.getNpc(MACHINE);
machine.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HA_NOT_BAD);
machine.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HMM_NOT_BAD_2);
// Save progress to global variables.
GlobalVariablesManager.getInstance().increaseInt(GlobalVariablesManager.MONSTER_ARENA_VARIABLE + machine.getScriptValue(), 1);

View File

@ -183,7 +183,7 @@ public class Q00255_Tutorial extends Quest
{
qs.startQuest();
qs.setMemoState(1);
showOnScreenMsg(player, NpcStringId.SPEAK_WITH_THE_NEWBIE_HELPER, ExShowScreenMessage.TOP_CENTER, 5000);
showOnScreenMsg(player, NpcStringId.TALK_TO_NEWBIE_HELPER, ExShowScreenMessage.TOP_CENTER, 5000);
playTutorialVoice(player, STARTING_VOICE_HTML.get(player.getClassId().getId()).getSound());
showTutorialHtml(player, STARTING_VOICE_HTML.get(player.getClassId().getId()).getHtml());
}
@ -363,7 +363,7 @@ public class Q00255_Tutorial extends Quest
{
if (qs.isMemoState(1))
{
showOnScreenMsg(event.getPlayer(), NpcStringId.SPEAK_WITH_THE_NEWBIE_HELPER, ExShowScreenMessage.TOP_CENTER, 5000);
showOnScreenMsg(event.getPlayer(), NpcStringId.TALK_TO_NEWBIE_HELPER, ExShowScreenMessage.TOP_CENTER, 5000);
final int classId = event.getPlayer().getClassId().getId();
addRadar(event.getPlayer(), HELPER_LOCATION.get(classId).getX(), HELPER_LOCATION.get(classId).getY(), HELPER_LOCATION.get(classId).getZ());
showTutorialHtml(event.getPlayer(), "tutorial_04.html");

View File

@ -188,7 +188,7 @@ public class Q10295_RespectForGraves extends Quest
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_IN_THE_CEMETERY_2.getId(), true, qs.getInt(KILL_COUNT_VAR)));
holder.add(new NpcLogListHolder(NpcStringId.LEVEL_52_ACCOMPLISHED, player.getLevel() > 51 ? 1 : 0));
holder.add(new NpcLogListHolder(NpcStringId.REACH_LV_52, player.getLevel() > 51 ? 1 : 0));
return holder;
}
return super.getNpcLogList(player);

View File

@ -194,7 +194,7 @@ public class Q10296_LetsPayRespectsToOurFallenBrethren extends Quest
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_IN_THE_FIELDS_OF_MASSACRE_2.getId(), true, qs.getInt(KILL_COUNT_VAR)));
holder.add(new NpcLogListHolder(NpcStringId.LEVEL_58_ACCOMPLISHED, player.getLevel() > 57 ? 1 : 0));
holder.add(new NpcLogListHolder(NpcStringId.REACH_LV_58, player.getLevel() > 57 ? 1 : 0));
return holder;
}
return super.getNpcLogList(player);

View File

@ -189,7 +189,7 @@ public class Q10298_TracesOfBattle extends Quest
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_ON_THE_WAR_TORN_PLAINS.getId(), true, qs.getInt(KILL_COUNT_VAR)));
holder.add(new NpcLogListHolder(NpcStringId.LEVEL_70_ACCOMPLISHED, player.getLevel() > 69 ? 1 : 0));
holder.add(new NpcLogListHolder(NpcStringId.REACH_LV_70, player.getLevel() > 69 ? 1 : 0));
return holder;
}
return super.getNpcLogList(player);

View File

@ -61,7 +61,7 @@ public class Q10302_FoilPlansOfTheLizardmen extends Quest
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN);
setQuestNameNpcStringId(NpcStringId.KILL_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN);
}
@Override
@ -178,7 +178,7 @@ public class Q10302_FoilPlansOfTheLizardmen extends Quest
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.ERADICATE_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN.getId(), true, qs.getInt(KILL_COUNT_VAR)));
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_IN_THE_PLAINS_OF_THE_LIZARDMEN.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);

View File

@ -1,4 +0,0 @@
<html><body>High Priest Orven:<br>
It's called a Tower of Insolence.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-02.htm">Learn more</Button>
</body></html>

View File

@ -1,4 +0,0 @@
<html><body>High Priest Orven:<br>
I want to ask you for help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-03.htm">"What should I do?"</Button>
</body></html>

View File

@ -1,4 +0,0 @@
<html><body>High Priest Orven:<br>
Thank you for answering my plea.<br>
Go to the Tower of Insolence and defeat the monsters that roam near. Valid targets: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -1,4 +0,0 @@
<html><body>High Priest Orven:<br>
Hello my friend. Do you want to explore a dangerous tower near Aden?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10303_SymbolOfHubris 30857-01.htm">Shrug</Button>
</body></html>

View File

@ -1,192 +0,0 @@
/*
* 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 quests.Q10303_SymbolOfHubris;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.holders.ItemHolder;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* @author petryxa
*/
public class Q10303_SymbolOfHubris extends Quest
{
// NPC
private static final int ORVEN = 30857;
// Monsters
private static final int[] MONSTERS =
{
21989,
21990,
21991,
21992,
21993,
21994,
21995,
21996,
21997,
21998,
21999,
};
// Items
private static final ItemHolder SOE_HIGH_PRIEST_OVEN = new ItemHolder(91768, 1);
private static final ItemHolder SAYHA_COOKIE = new ItemHolder(93274, 10);
private static final ItemHolder SAYHA_STORM = new ItemHolder(91712, 8);
private static final ItemHolder MAGIC_LAMP_CHARGING_POTION = new ItemHolder(91757, 1);
// Misc
private static final int MIN_LEVEL = 78;
private static final String KILL_COUNT_VAR = "KillCount";
public Q10303_SymbolOfHubris()
{
super(10303);
addStartNpc(ORVEN);
addTalkId(ORVEN);
addKillId(MONSTERS);
addCondMinLevel(MIN_LEVEL, "no_lvl.html");
registerQuestItems(SOE_HIGH_PRIEST_OVEN.getId());
setQuestNameNpcStringId(NpcStringId.KILL_MONSTERS_IN_THE_TOWER_OF_INSOLENCE);
}
@Override
public String onAdvEvent(String event, Npc npc, Player player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = null;
switch (event)
{
case "30857.htm":
case "30857-01.htm":
case "30857-02.htm":
{
htmltext = event;
break;
}
case "30857-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward":
{
if (qs.isCond(2))
{
addExpAndSp(player, 100000000, 2700000);
giveItems(player, SAYHA_COOKIE);
giveItems(player, SAYHA_STORM);
giveItems(player, MAGIC_LAMP_CHARGING_POTION);
htmltext = "30857-05.html";
qs.exitQuest(false, true);
}
break;
}
}
return htmltext;
}
@Override
public String onTalk(Npc npc, Player player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
htmltext = "30857.htm";
}
else if (qs.isStarted())
{
if (qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
htmltext = "no_kill.html";
}
else
{
htmltext = "30857-01.htm";
}
}
else if (qs.isCond(2))
{
htmltext = "30857-04.html";
}
}
else if (qs.isCompleted())
{
htmltext = getAlreadyCompletedMsg(player);
}
return htmltext;
}
@Override
public String onKill(Npc npc, Player killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
final int killCount = qs.getInt(KILL_COUNT_VAR) + 1;
if (killCount < 1000)
{
qs.set(KILL_COUNT_VAR, killCount);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
sendNpcLogList(killer);
}
else
{
qs.setCond(2, true);
giveItems(killer, SOE_HIGH_PRIEST_OVEN);
qs.unset(KILL_COUNT_VAR);
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public boolean checkPartyMember(Player member, Npc npc)
{
final QuestState qs = getQuestState(member, false);
return ((qs != null) && qs.isStarted());
}
@Override
public Set<NpcLogListHolder> getNpcLogList(Player player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && qs.isCond(1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.KILL_MONSTERS_IN_THE_TOWER_OF_INSOLENCE.getId(), true, qs.getInt(KILL_COUNT_VAR)));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -1,4 +0,0 @@
<html><body>High Priest Orven:<br>
I think there are still too many monsters.<br>
Go to the <font color="LEVEL">Tower of Insolence</font> and defeat the monsters that roam near. Monsters to hunt: <font color="LEVEL">Ghost of the Tower, Tower Watchman, Ghastly Warrior, Archer of Despair, Judge of Despair, Crendion, Swordsman of Ordeal, Hound of Destruction, Royal Guard of Insolence</font>.<br>
</body></html>

View File

@ -1,4 +0,0 @@
<html><body>Hight Priest Orven:<br>
I think you are not strong enough for this quest. Gain more experience and then come back.<br>
(This quest is available to characters of Lv. 78+.)<br>
</body></html>

View File

@ -36,7 +36,6 @@ import quests.Q10299_GetIncrediblePower.Q10299_GetIncrediblePower;
import quests.Q10300_ExploringTheCrumaTower.Q10300_ExploringTheCrumaTower;
import quests.Q10301_NotSoSilentValley.Q10301_NotSoSilentValley;
import quests.Q10302_FoilPlansOfTheLizardmen.Q10302_FoilPlansOfTheLizardmen;
import quests.Q10303_SymbolOfHubris.Q10303_SymbolOfHubris;
import quests.Q10304_ChangesintheDragonValley.Q10304_ChangesintheDragonValley;
import quests.Q10305_DragonsSuspiciousMovements.Q10305_DragonsSuspiciousMovements;
import quests.Q10306_StopSelMahumsTroops.Q10306_StopSelMahumsTroops;
@ -101,7 +100,6 @@ public class QuestMasterHandler
Q10300_ExploringTheCrumaTower.class,
Q10301_NotSoSilentValley.class,
Q10302_FoilPlansOfTheLizardmen.class,
Q10303_SymbolOfHubris.class,
Q10304_ChangesintheDragonValley.class,
Q10305_DragonsSuspiciousMovements.class,
Q10306_StopSelMahumsTroops.class,

View File

@ -51,7 +51,7 @@ public class OlympiadAnnouncer implements Runnable
{
case NON_CLASSED:
{
npcString = NpcStringId.THE_WORLD_OLYMPIAD_WILL_BEGIN_IN_ARENA_S1_SOON;
npcString = NpcStringId.THE_DUELS_BETWEEN_PLAYERS_OF_ANY_CLASS_WILL_START_SHORTLY_IN_ARENA_S1;
break;
}
case CLASSED: