// TMW2 scripts. // Author: // Jesusalva // Description: // Leads the Alliance in the Fortress Town 025-1,96,26,0 script Commander Povo NPC_BRGUARD_SPEAR,{ mesn; mesq l("Greetings %s, I am %s, the man in charge for the Alliance occupation of Fortress Town.", (strcharinfo(0) == $MOST_HEROIC$ ? lg("Hero") : lg("Adventurer")), .name$); next; // Endtrail mes ""; mesc l("@@ You need to wait further releases to continue this quest!", b(l("WARNING:"))), 1; close; OnInit: .sex = G_MALE; .distance = 5; end; } ///////////////////////////////////////////////////////////////////////////////// 025-1,59,86,0 script Commander Cadis NPC_BRGUARD_SWORD,{ function cadisReward; 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; if (getq(FortressQuest_Over100) == 1) goto L_Over100; if (getq(FortressQuest_RangedHunt) == 1) goto L_RangedHunt; 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."); mesc l("%s: Once accepted, you must complete them before taking another one.", b(l("WARNING"))); // Well, we *could* make it more GHQ-like but lazy devs are lazy. next; do { select l("I'm not interested."), rif(!getq(FortressQuest_SlimeHunter), l("The Great Slime Hunt")), rif(!getq(FortressQuest_Over100), l("The Great Over 100 Hunt")), rif(!getq(FortressQuest_RangedHunt), l("The Great Ranged Hunt")); mes ""; switch (@menu) { case 1: close; case 2: mesn; mesq l("You'll have to slay %s %s for me! I don't care which ones, just SLAY THEM!", fnum(.million), l("slimes")); next; select l("Accept"), l("Reject"); mes ""; if (@menu == 1) { setq1 FortressQuest_SlimeHunter, 1; mesn; mesq l("Then get to work already!"); close; } break; case 3: mesn; mesq l("You'll have to slay %s %s for me! I don't care which ones, just SLAY THEM!", fnum(.million), l("monsters of at least level 100")); mesc l("Each monster will be counted as %d kills.", 2); next; select l("Accept"), l("Reject"); mes ""; if (@menu == 1) { setq1 FortressQuest_Over100, 1; mesn; mesq l("Then get to work already!"); close; } break; case 4: mesn; mesq l("You'll have to slay %s %s for me! I don't care which ones, just SLAY THEM!", fnum(.million), l("ranged monsters")); mesc l("Minimum range: %d", 3); next; select l("Accept"), l("Reject"); mes ""; if (@menu == 1) { setq1 FortressQuest_RangedHunt, 1; mesn; mesq l("Then get to work already!"); close; } break; } } while (true); close; L_SlimeHunter: cadisReward(FortressQuest_SlimeHunter, l("Slimes")); close; L_Over100: cadisReward(FortressQuest_Over100, l("over 100 mobs")); close; L_RangedHunt: cadisReward(FortressQuest_RangedHunt, l("ranged mobs")); close; function cadisReward { .@kill=getq2(getarg(0)); .@rewa=getq3(getarg(0)); mesn; mesq l("Thus far you've slain %s/%s %s for me!", fnum(.@kill), fnum(.million), b(getarg(1, "monsters"))); inventoryplace NPCEyes, 4, Iten, 2; // ***** ***** ***** Rewards ***** ***** ***** if (.@kill >= .tier1 && .@rewa < 1) { mesc l("Milestone reached: %s kills", fnum(.tier1)); setq3 getarg(0), 1; getitem MercenaryBoxsetDD, 3; getitem SacredImmortalityPotion, 2; getitem MercenaryBoxsetE, 1; } if (.@kill >= .tier2 && .@rewa < 2) { mesc l("Milestone reached: %s kills", fnum(.tier2)); setq3 getarg(0), 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 getarg(0), 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 getarg(0), 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 getarg(0), 2; setq3 getarg(0), 5; getitem MercenaryBoxsetEE, 5; getitem StrangeCoin, 100; getitem EarthPowder, 3; getitem any(LuckFruit, DexterityFruit, IntelligenceFruit, VitalityFruit, AgilityFruit, StrengthFruit), 1; getitem MysteriousFruit, 1; } return; } 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 %s out of a million.", fnum(getq2(FortressQuest_SlimeHunter)), l("slimes")); } } if (getq(FortressQuest_Over100) == 1) { // Register the kill as doubled (to make easier) if (getmonsterinfo(.@mobId, MOB_LV) >= 100) { setq2 FortressQuest_Over100, getq2(FortressQuest_Over100)+2; // Report every 1000 kills if (getq2(FortressQuest_Over100) % 1000 == 0) dispbottom l("Cadis : You have slain %s %s out of a million.", fnum(getq2(FortressQuest_SlimeHunter)), l("mobs over lv 100")); } } if (getq(FortressQuest_RangedHunt) == 1) { // Register the kill if (getmonsterinfo(.@mobId, MOB_RANGE) >= 3) { setq2 FortressQuest_RangedHunt, getq2(FortressQuest_RangedHunt)+1; // Report every 1000 kills if (getq2(FortressQuest_RangedHunt) % 1000 == 0) dispbottom l("Cadis : You have slain %s %s out of a million.", fnum(getq2(FortressQuest_SlimeHunter)), l("ranged mobs")); } } return; }