// TMW2 Script. // Author: // Jesusalva // Description: // Lena // Variables: // $HELENA_ST // Tracks how many set of Treasure Keys were given by all players thus far. // Affects beer prices on Hurnscald. // HurnscaldQuest_Bandits // q1 -> Current status // q2 -> Treasure Key Timer // q3 -> Bandit Hood Timer 012-2,47,40,0 script Helena NPC_FEMALE,{ .@q=getq(HurnscaldQuest_Bandits); // Stage 1: Level 30, collect Treasure Key if (BaseLevel < 30) goto L_TooWeak; if (.@q == 0) goto L_Start; if (.@q == 1) goto L_Return; // Stage 2: Level 40, collect Bandit Hood if (BaseLevel < 40) goto L_Weak; if (.@q == 2) goto L_Quest; if (.@q == 3) goto L_Hood; // Stage 3: Level 45, defeat Bandit Lord if (BaseLevel < 45) goto L_Busy; if (.@q == 4) goto L_BanditLord; if (.@q == 5) goto L_Busy; if (.@q == 6) goto L_Busy; if (.@q == 7) goto L_Finish; goto L_Daily; L_Daily: .@k=getq2(HurnscaldQuest_Bandits); .@h=getq3(HurnscaldQuest_Bandits); mesn; mesq l("Ah, %s my friend! Are you here to help us with 5 %ss Or perhaps you have 5 more %s to show that Hurnscald is getting safer?", strcharinfo(0), getitemlink(TreasureKey), getitemlink(BanditHood)); mes ""; select rif((.@k < santime()) && countitem(TreasureKey) >= 5, l("I have 5 Treasure Keys with me.")), rif((.@h < santime()) && countitem(BanditHood) >= 5, l("I have 5 Bandit Hoods with me.")), l("Nothing at the moment."); mes ""; switch (@menu) { case 1: setq2 HurnscaldQuest_Bandits, santime()+(60*60*24); delitem TreasureKey, 5; Zeny=Zeny+600; // 600/550 = 9.09% bonus //Zeny=Zeny+800; // 800/550 = 45.45% bonus getexp 2000, 0; $HELENA_ST=$HELENA_ST+2; mesn; mesq l("Many thanks! %%s"); next; goto L_Daily; case 2: setq3 HurnscaldQuest_Bandits, santime()+(60*60*24); delitem BanditHood, 5; Zeny=Zeny+250; // 250/155 = 61.29% bonus getexp 3000, 5; $HELENA_ST=$HELENA_ST+1; mesn; mesq l("Many thanks! %%s"); next; goto L_Daily; } close; L_TooWeak: mesn; mesq lg("Good day, adventureress.", "Good day, adventurer."); next; mesn; mesq l("We have some serious problems involving bandits. I need someone strong to help me, and you don't qualify. Yet."); close; L_Weak: mesn; mesq l("You still need to grow a few levels more before being able to help me out again."); close; L_Busy: mesn; mesq l("Sorry, %s. Please come back later, I am busy.", strcharinfo(0)); close; L_DoIt: mesn; mesq l("%s, we are counting on you! We, the whole town of Hurnscald!", strcharinfo(0)); close; ///////////////////////// Stage 1 L_Start: mesn; mesq l("Bandits ransacked this tavern and left with a giant haul."); next; mesn; mesq l("We chased after them after they fled into the deep tunnels of the mines. It was a heated battle but we have slain them all and got the chests with our stuff back."); next; mesn; mesq l("The problem is... The slimes ate all the keys for the chests. Blasted slimes! This is not the first time such thing happened."); next; // 5 รท 4.5% = 112 Copper Slimes. You can kill Yellow Slimes too mesn; mesq l("If you bring us 5 %ss I'll be forever grateful.", getitemlink(TreasureKey)); select l("Don't worry ma'am, I'll recover the Treasure Keys at once."), l("Slimes... Sorry, not my cup of tea..."); mes ""; if (@menu == 2) close; setq HurnscaldQuest_Bandits, 1; mesn; mesq l("I'll be expecting you back."); close; L_Return: mesn; mesq l("Did you bring me what I asked? You have %d/5 %s.", countitem(TreasureKey), getitemlink(TreasureKey)); mes ""; select rif(countitem(TreasureKey) >= 5, l("Yes, take it.")), rif(countitem(TreasureKey) < 5, l("No, I'll be back with them.")), l("Hm, can we talk again later?"); mes ""; if (@menu != 1) close; delitem TreasureKey, 5; Zeny=Zeny+1000; getexp 1599,0; // 20% from needed exp setq HurnscaldQuest_Bandits, 2; mesn; mesq l("Finally! The regulars were close to rioting due to lack of ale."); next; mesn; mesq l("Here are %s GP for your efforts. Thanks for making Hurnscald a better place to live.", fnum(1000)); next; mesn; mesq l("This might happen again in the future, so we are always gathering them, just in case."); next; mesn; mesq l("If you continue gathering %ss, we are able to lower our ale price! %%2", getitemlink(TreasureKey)); close; ///////////////////////// Stage 2 L_Quest: mesn; mesq l("%s, good thing you are here.", strcharinfo(0)); next; mesn; mesq l("Bandits are a huge threat to Hurnscald. We're just a small farming town, and they're countless."); next; mesn; mesq l("I did travel to their cave, wondering why they hide their faces. I found out most of them are monsters after I ripped their hoods off."); next; mesn; mesq l("A few of them are rebels, outcasts and the like but the vast majority are monsters."); next; mesn; mesq l("Unfortunately, they placed a curse on me using a %s preventing me from entering their cave ever again.", getitemlink(BlueManaPearl)); next; if (countitem(BlueManaPearl) >= 1) { mesn; mesq l("Be very, very careful with your %s. Handling it incorrectly may be fatal and many people died to that.", getitemlink(BlueManaPearl)); next; } mesn; mesq l("Thankfully that item is very rare, so they will not be able to place a curse on you. Probably."); next; mesq l("I want somebody to slay the bandit leader, but if you want to do it, you must prove yourself first."); next; select l("I would gladly aid you to get rid of that scourge."), l("Sorry, I forgot my courage in my other set of pants."); mes ""; if (@menu == 2) close; setq HurnscaldQuest_Bandits, 3; mesn; mesq l("Perfect!"); next; // 8% drop. 10 / 8% = avg. 125 bandits to kill // And for once, I won't require these bandits to be from Hurnscald Bandit Cave. mesn; mesq l("As a warm-up, bring me 10 %ss. I'll pay you some money for that, of course.", getitemlink(BanditHood)); close; L_Hood: mesn; mesq l("%s, did you bring me the hoods I asked for? I see you have %d/10 %ss.", strcharinfo(0), countitem(BanditHood), getitemlink(BanditHood)); mes ""; select rif(countitem(BanditHood) >= 10, l("Yes, take them.")), rif(countitem(BanditHood) < 10, l("No, I'll be back with them.")), l("Hm, can we talk again later?"); mes ""; if (@menu != 1) close; inventoryplace LeatherPatch, 1, Beer, 1; delitem BanditHood, 10; getitem LeatherPatch, 1; getitem Beer, 1; Zeny=Zeny+2000; getexp 6842,0; // 20% from needed exp setq HurnscaldQuest_Bandits, 4; mesn; mesq l("Great job. I was worried you would ruin their hoods in combat."); next; mesn; mesq l("Here are 2000 GP for your efforts. Thanks for making Hurnscald a better place to live."); next; mesc l("I also gave you a fresh ale and a %s. Bows are awkward to handle, so you should talk to the Blacksmith to make you a %s.", getitemlink(LeatherPatch), getitemlink(LeatherQuiver)); close; ///////////////////////// Stage 3 L_BanditLord: mesn; mesq l("I won't say you can't do it, %s. But I will just say killing the Bandit Lord is no easy task.", strcharinfo(0)); next; mesn; mesq l("The %s is not only a fearsome and ruthless opponent, he has some tricks up his sleeve.", getmonsterlink(BanditLord)); next; mesn; mesq l("He will summon allies if he thinks you have the upper hand, depending on how you fight."); next; mesq l("If you go for melee, he will summon archers to keep his distance. If you use a bow, he will summon normal bandits to cut your throat."); next; mesn; mesq l("I know another Bandit Lord will take his place, but the loss of their leader will make the bandits scatter long enough."); next; mesn; mesq l("Will you help me- no, I mean, will you help us, the whole town of Hurnscald?"); next; select l("Sorry, I need to better prepare myself."), l("I would gladly give my life for such noble goal."); mes ""; if (@menu == 1) close; setq HurnscaldQuest_Bandits, 5; mesn; mesq l("...You are brave. Or very foolish. Many people tried and failed."); next; mesn; mesq l("The den of the bandit lord is located northeast from here in a cave, hidden quite deep inside."); next; mesq l("I have a guard stationed not far from there. Ask him for the key."); next; mesn; mesq l("Good luck, you'll need it. This is a difficult task, so don't hesitate in running away if you need to."); close; L_Finish: mesn; mesq l("...The bandits are in disarray. And you arrive victorious. I have to admit, I thought had fallen, just like the other ones."); next; mesn; mesq l("I am pleasantly surprised. Good job. Perhaps we will all be able to sleep in peace this night!"); next; inventoryplace ForestArmor, 1, Beer, 3; inventoryplace Beer, 3; getitem Beer, 3; getitem ForestArmor, 1; getexp 5842,93; // 10% from needed exp + JExp level 6 setq HurnscaldQuest_Bandits, 8; mesn; mesq l("You deserve this old %s of mine. They are great for skilled rangers and offer good protection.", getitemlink(ForestArmor)); next; mesn; mesq l("You are always welcome in the tavern and I would truly like to see you come by for some ale sometime."); next; mesq l("Of course, there are also always daily chores to do, if you are more interested in that. %%Q"); close; OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, FairyHat); setunitdata(.@npcId, UDT_HEADMIDDLE, ForestArmor); setunitdata(.@npcId, UDT_HEADBOTTOM, CottonSkirt); setunitdata(.@npcId, UDT_WEAPON, LousyMoccasins); setunitdata(.@npcId, UDT_HAIRSTYLE, 17); setunitdata(.@npcId, UDT_HAIRCOLOR, 7); .sex = G_FEMALE; .distance = 5; end; }