From d021f436122b5417ae6774d90a30a972a888bcf5 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sun, 24 Jan 2021 16:47:37 -0300 Subject: Commander Cadis and his stupidly impossible quest which YuckFou will finish in... I dunno, but I'm hoping it to last at least three days, preferably a week~a month. --- npc/025-1/commander.txt | 131 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) (limited to 'npc/025-1/commander.txt') diff --git a/npc/025-1/commander.txt b/npc/025-1/commander.txt index 06df58db3..366d986ec 100644 --- a/npc/025-1/commander.txt +++ b/npc/025-1/commander.txt @@ -20,3 +20,134 @@ OnInit: end; } +///////////////////////////////////////////////////////////////////////////////// +025-1,59,86,0 script Commander Cadis NPC_BRGUARD_SWORD,{ + mesn; + mesq l("Greetings %s, I am %s, I am in charge of monster extermination.", (strcharinfo(0) == $MOST_HEROIC$ ? lg("Hero") : lg("Adventurer")), .name$); + next; + // Check for ongoing quests + if (getq(FortressQuest_SlimeHunter) == 1) + goto L_SlimeHunter; + mesn; + mesq l("I have extremely difficult quests for you; They are more painful than a Grand Hunter Quest, because I don't admit wimps fighting with me."); + next; + mesn; + mesq l("You will be rewarded by me shall you succeed in any of the tasks."); + next; + do + { + select + l("I'm not interested."), + rif(!getq(FortressQuest_SlimeHunter), l("The Great Slime Hunt")); + mes ""; + switch (@menu) { + case 1: + close; + case 2: + mesn; + mesq l("You'll have to slay %s slimes for me! I don't care which ones, just SLAY THEM!", fnum(.million)); + next; + select + l("Accept"), + l("Reject"); + mes ""; + if (@menu == 1) { + setq1 FortressQuest_SlimeHunter, 1; + mesn; + mesq l("Then get to work already!"); + close; + } + break; + } + } + close; + +L_SlimeHunter: + .@kill=getq2(FortressQuest_SlimeHunter); + .@rewa=getq3(FortressQuest_SlimeHunter); + mesn; + mesq l("Thus far you've slain %s/%s %s for me!", fnum(.@kill), fnum(.million), b(l("Slimes"))); + inventoryplace NPCEyes, 4, Iten, 2; + + // ***** ***** ***** Rewards ***** ***** ***** + if (.@kill >= .tier1 && .@rewa < 1) { + mesc l("Milestone reached: %s kills", fnum(.tier1)); + setq3 FortressQuest_SlimeHunter, 1; + getitem MercenaryBoxsetDD, 3; + getitem SacredImmortalityPotion, 2; + getitem MercenaryBoxsetE, 1; + } + + if (.@kill >= .tier2 && .@rewa < 2) { + mesc l("Milestone reached: %s kills", fnum(.tier2)); + setq3 FortressQuest_SlimeHunter, 2; + getitem MercenaryBoxsetEE, 1; + getitem MagicApple, 1; + getitem EquipmentBlueprintE, 1; + getitem IridiumOre, 2; + } + + if (.@kill >= .tier3 && .@rewa < 3) { + mesc l("Milestone reached: %s kills", fnum(.tier3)); + setq3 FortressQuest_SlimeHunter, 3; + getitem MercenaryBoxsetEE, 2; + getitem StrangeCoin, 50; + getitem EarthPowder, 2; + getitem PlatinumOre, 1; + } + + if (.@kill >= .tier4 && .@rewa < 4) { + mesc l("Milestone reached: %s kills", fnum(.tier4)); + setq3 FortressQuest_SlimeHunter, 4; + getitem MercenaryBoxsetEE, 3; + getitem ElixirOfLife, 5; + getitem EarthPowder, 2; + getitem PlatinumOre, 1; + } + + + // Quest complete + if (.@kill >= .million) { + mesc b(l("Quest complete: Congratulations!")), 3; + setq1 FortressQuest_SlimeHunter, 2; + setq3 FortressQuest_SlimeHunter, 5; + getitem MercenaryBoxsetEE, 5; + getitem StrangeCoin, 100; + getitem EarthPowder, 3; + getitem any(LuckFruit, DexterityFruit, IntelligenceFruit, VitalityFruit, AgilityFruit, StrengthFruit), 1; + getitem MysteriousFruit, 1; + //getitem PrismGift, 1; + } + close; + +OnInit: + .sex = G_MALE; + .distance = 5; + .million = 1000000; + + .tier1 = 10000; + .tier2 = 50000; + .tier3 = 250000; + .tier4 = 500000; + end; +} + +// Commander Cadis Questcheck +function script CadisQuestCheck { + if (!playerattached()) + return; + + .@mobId=getarg(0, killedrid); + + if (getq(FortressQuest_SlimeHunter) == 1) { + // Register the kill + if (compare("slime", strtolower(strmobinfo(1, .@mobId)))) + setq2 FortressQuest_SlimeHunter, getq2(FortressQuest_SlimeHunter)+1; + // Report every 1000 kills + if (getq2(FortressQuest_SlimeHunter) % 1000 == 0) + dispbottom l("Cadis : You have slain %s slimes out of a million.", fnum(getq2(FortressQuest_SlimeHunter))); + } + + return; +} + -- cgit v1.2.3-60-g2f50