Addition of story quest buffs.

This commit is contained in:
MobiusDevelopment
2019-11-12 20:29:37 +00:00
parent 275048f1b4
commit 7f543d23e9
5 changed files with 67 additions and 54 deletions

View File

@@ -37,13 +37,11 @@ public class AdventurersGuide extends AbstractNpcAI
33950, 33950,
}; };
// Items // Items
private static final int ADENA = 57; private static final int ADENA = 57;
private static final int GEMSTONE_R = 19440; private static final int GEMSTONE_R = 19440;
// Skills // Skills
private static final SkillHolder BLESS_PROTECTION = new SkillHolder(5182, 1); // Blessing of Protection private static final SkillHolder BLESS_PROTECTION = new SkillHolder(5182, 1); // Blessing of Protection
private static final SkillHolder FANTASIA = new SkillHolder(32840, 1); // Fantasia Harmony - Adventurer private static final SkillHolder FANTASIA = new SkillHolder(32840, 1); // Fantasia Harmony - Adventurer
private static final SkillHolder[] GROUP_BUFFS = private static final SkillHolder[] GROUP_BUFFS =
{ {
new SkillHolder(15642, 1), // Horn Melody (Adventurer) new SkillHolder(15642, 1), // Horn Melody (Adventurer)
@@ -54,16 +52,16 @@ public class AdventurersGuide extends AbstractNpcAI
new SkillHolder(15652, 1), // Daring Sonata (Adventurer) new SkillHolder(15652, 1), // Daring Sonata (Adventurer)
new SkillHolder(15653, 1), // Refreshing Sonata (Adventurer) new SkillHolder(15653, 1), // Refreshing Sonata (Adventurer)
}; };
private static final SkillHolder[] DONATE_BUFFS = private static final SkillHolder[] DONATE_BUFFS =
{ {
new SkillHolder(15642, 4), // Horn Melody (Adventurer) new SkillHolder(15642, 4), // Horn Melody (Adventurer)
new SkillHolder(15643, 4), // Drum Melody (Adventurer) new SkillHolder(15643, 4), // Drum Melody (Adventurer)
new SkillHolder(15644, 4), // Pipe Organ Melody (Adventurer) new SkillHolder(15644, 4), // Pipe Organ Melody (Adventurer)
new SkillHolder(15645, 4), // Guitar Melody (Adventurer) new SkillHolder(15645, 4), // Guitar Melody (Adventurer)
new SkillHolder(15651, 1), // Prevailing Sonata (Adventurer) new SkillHolder(15651, 1), // Prevailing Sonata (Adventurer)
new SkillHolder(15652, 1), // Daring Sonata (Adventurer) new SkillHolder(15652, 1), // Daring Sonata (Adventurer)
new SkillHolder(15653, 1), // Refreshing Sonata (Adventurer) new SkillHolder(15653, 1), // Refreshing Sonata (Adventurer)
}; };
// Misc // Misc
private static int MAX_LEVEL_BUFFS = 99; private static int MAX_LEVEL_BUFFS = 99;
private static int MIN_LEVEL_PROTECTION = 40; private static int MIN_LEVEL_PROTECTION = 40;
@@ -113,49 +111,49 @@ public class AdventurersGuide extends AbstractNpcAI
case "fantasia": case "fantasia":
{ {
if (player.getLevel() > MAX_LEVEL_BUFFS) if (player.getLevel() > MAX_LEVEL_BUFFS)
{ {
return "guide-noBuffs.html"; return "guide-noBuffs.html";
} }
for (SkillHolder holder : GROUP_BUFFS) for (SkillHolder holder : GROUP_BUFFS)
{ {
SkillCaster.triggerCast(npc, player, holder.getSkill()); SkillCaster.triggerCast(npc, player, holder.getSkill());
} }
htmltext = applyBuffs(npc, player, FANTASIA.getSkill()); htmltext = applyBuffs(npc, player, FANTASIA.getSkill());
break; break;
} }
case "fantasia_donate_adena": case "fantasia_donate_adena":
{ {
if (getQuestItemsCount(player, ADENA) >= 3000000) if (getQuestItemsCount(player, ADENA) >= 3000000)
{ {
takeItems(player, ADENA, 3000000); takeItems(player, ADENA, 3000000);
for (SkillHolder holder : DONATE_BUFFS) for (SkillHolder holder : DONATE_BUFFS)
{ {
SkillCaster.triggerCast(npc, player, holder.getSkill()); SkillCaster.triggerCast(npc, player, holder.getSkill());
} }
htmltext = applyBuffs(npc, player, FANTASIA.getSkill()); htmltext = applyBuffs(npc, player, FANTASIA.getSkill());
} }
else else
{ {
htmltext = "guide-noItems.html"; htmltext = "guide-noItems.html";
} }
break; break;
} }
case "fantasia_donate_gemstones": case "fantasia_donate_gemstones":
{ {
if (getQuestItemsCount(player, GEMSTONE_R) >= 5) if (getQuestItemsCount(player, GEMSTONE_R) >= 5)
{ {
takeItems(player, GEMSTONE_R, 5); takeItems(player, GEMSTONE_R, 5);
for (SkillHolder holder : DONATE_BUFFS) for (SkillHolder holder : DONATE_BUFFS)
{ {
SkillCaster.triggerCast(npc, player, holder.getSkill()); SkillCaster.triggerCast(npc, player, holder.getSkill());
} }
htmltext = applyBuffs(npc, player, FANTASIA.getSkill()); htmltext = applyBuffs(npc, player, FANTASIA.getSkill());
} }
else else
{ {
htmltext = "guide-noItems.html"; htmltext = "guide-noItems.html";
} }
break; break;
} }
} }
return htmltext; return htmltext;

View File

@@ -148,13 +148,14 @@ public class Q11025_PathOfDestinyProving extends Quest
if (qs.isCond(6)) if (qs.isCond(6))
{ {
giveAdena(player, 5000, true); giveAdena(player, 5000, true);
showOnScreenMsg(player, NpcStringId.CLASS_TRANSFER_IS_AVAILABLE_NCLICK_THE_CLASS_TRANSFER_ICON_IN_THE_NOTIFICATION_WINDOW_TO_TRANSFER_YOUR_CLASS, ExShowScreenMessage.TOP_CENTER, 10000);
qs.exitQuest(false, true); qs.exitQuest(false, true);
if (CategoryData.getInstance().isInCategory(CategoryType.SECOND_CLASS_GROUP, player.getClassId().getId()) || // if (CategoryData.getInstance().isInCategory(CategoryType.SECOND_CLASS_GROUP, player.getClassId().getId()) || //
(CategoryData.getInstance().isInCategory(CategoryType.FIRST_CLASS_GROUP, player.getClassId().getId()) && (player.getRace() == Race.ERTHEIA))) (CategoryData.getInstance().isInCategory(CategoryType.FIRST_CLASS_GROUP, player.getClassId().getId()) && (player.getRace() == Race.ERTHEIA)))
{ {
showOnScreenMsg(player, NpcStringId.CLASS_TRANSFER_IS_AVAILABLE_NCLICK_THE_CLASS_TRANSFER_ICON_IN_THE_NOTIFICATION_WINDOW_TO_TRANSFER_YOUR_CLASS, ExShowScreenMessage.TOP_CENTER, 10000);
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET); player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
} }
giveStoryBuffReward(npc, player);
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -115,7 +115,7 @@ public class Q11031_TrainingBeginsNow extends Quest
{ {
qs.setCond(3, true); qs.setCond(3, true);
player.sendPacket(new ExTutorialShowId(25)); // Adventurers Guide player.sendPacket(new ExTutorialShowId(25)); // Adventurers Guide
// TODO: Buff player support in Quest class. giveStoryBuffReward(npc, player);
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -124,6 +124,8 @@ public class Q11032_CurseOfUndying extends Quest
{ {
if (qs.isCond(2)) if (qs.isCond(2))
{ {
addExpAndSp(player, 787633, 708);
qs.exitQuest(false, true);
// Ertheias do not change. // Ertheias do not change.
if (player.getRace() != Race.ERTHEIA) if (player.getRace() != Race.ERTHEIA)
{ {
@@ -133,8 +135,7 @@ public class Q11032_CurseOfUndying extends Quest
player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET); player.sendPacket(ExRequestClassChangeUi.STATIC_PACKET);
} }
} }
addExpAndSp(player, 787633, 708); giveStoryBuffReward(npc, player);
qs.exitQuest(false, true);
htmltext = event; htmltext = event;
break; break;
} }

View File

@@ -112,7 +112,17 @@ public class Quest extends AbstractScript implements IIdentifiable
private static final int RESET_HOUR = 6; private static final int RESET_HOUR = 6;
private static final int RESET_MINUTES = 30; private static final int RESET_MINUTES = 30;
private static final SkillHolder STORY_QUEST_BUFF_REWARD = new SkillHolder(27580, 1); private static final SkillHolder[] STORY_QUEST_BUFFS =
{
new SkillHolder(15642, 1), // Horn Melody (Adventurer)
new SkillHolder(15643, 1), // Drum Melody (Adventurer)
new SkillHolder(15644, 1), // Pipe Organ Melody (Adventurer)
new SkillHolder(15645, 1), // Guitar Melody (Adventurer)
new SkillHolder(15651, 1), // Prevailing Sonata (Adventurer)
new SkillHolder(15652, 1), // Daring Sonata (Adventurer)
new SkillHolder(15653, 1), // Refreshing Sonata (Adventurer)
new SkillHolder(32840, 1), // Fantasia Harmony - Adventurer
};
/** /**
* @return the reset hour for a daily quest, could be overridden on a script. * @return the reset hour for a daily quest, could be overridden on a script.
@@ -3298,11 +3308,14 @@ public class Quest extends AbstractScript implements IIdentifiable
} }
public void giveStoryQuestReward(Npc npc, PlayerInstance player) public void giveStoryBuffReward(Npc npc, PlayerInstance player)
{ {
if (Config.ENABLE_STORY_QUEST_BUFF_REWARD) if (Config.ENABLE_STORY_QUEST_BUFF_REWARD)
{ {
SkillCaster.triggerCast(npc, player, STORY_QUEST_BUFF_REWARD.getSkill()); for (SkillHolder holder : STORY_QUEST_BUFFS)
{
SkillCaster.triggerCast(npc, player, holder.getSkill());
}
} }
} }
} }