// TMW2/LoF Script // This is from LoF Forums, to replace LoF Paxel //---------------------------------------------------- // PRSM Helmet quest (seasonal quest) // Create Quest: Darlord (Depredador) //---------------------------------------------------- // Old Paxel turned Raw Coal in Coal... But we don't have Raw Coal. // He probably used the nice furnace NPC too... We will need another NPC to use that... 017-1,131,22,0 script Paxel NPC_PLAYER,{ .@q=getq(SQuest_Paxel); if(.@q == 2) goto L_Done; if (season() != SEASON_SPRING && !$@GM_OVERRIDE) goto L_OutOfSeason; if(.@q == 1) goto L_Ask2; if (BaseLevel >= 60) goto L_Ask1; L_OutOfSeason: mesn; mesq l("Hello! Calm wind today!"); menu l("Yes, but I like windy days."), L_Wind, l("Hmm... sorry but gotta go..."), L_Go; close; L_Go: mesn; mesq l("Ok, good trip then."); close; L_Wind: mesn; mesq l("I don't like them, I can't fly straight."); next; mesn; if (BaseLevel < 60) mesq l("Well, not like you could understand that with your level! %%a"); else mesq l("This is why I love spring!"); close; // ---------------------------------------------------- // Desert Helmet quest start // ---------------------------------------------------- L_Ask1: mesn; mesq l("Hello @@! Do you have some @@ with you?", strcharinfo(0), getitemlink(TerraniteOre)); menu rif(countitem(TerraniteOre),l("Yes... right... what about Terranite Ore?")), L_Quest1, rif(countitem(TerraniteOre),l("Yes, but I have grown attached to Terranite Ore...")), L_No, l("Right, but now I have business in other places."), L_Rude; close; L_Quest1: mesn; mesq l("Terranite Ore is a really special item. People without helmets can't understand @@'s real power, anyway if you could give me some of them you would understand why they are so special.", getitemlink(TerraniteOre)); menu l("Certainly, you can have all my Terranite Ore."), L_Check1, l("Sorry but I am not interested in that."), L_No; close; L_No: mesn; mesq l("Ok, come back me when you want to know the @@ real power!", getitemlink(TerraniteOre)); close; L_Rude: mesn; mesq l("Well, good luck with your business."); close; // ---------------------------------------------------- // Arc 1: Terranite Ores // ---------------------------------------------------- L_Check1: if (countitem(TerraniteOre) < 12) goto L_More_Needed1; delitem TerraniteOre, 12; getexp 15000, 150; setq SQuest_Paxel, 1; mesn; mesq l("Perfect! you have enough Terranite Ore, I will take them for now but I need other items in order to bring them to life."); L_Ask2: mesn; mesq l("I need a suitable base helmet, some herbs to use my magical dye, and gold:"); mesc l("@@/1 @@", countitem(WarlordHelmet), getitemlink(WarlordHelmet)); mesc l("@@/100 @@", countitem(PinkAntenna), getitemlink(PinkAntenna)); mesc l("@@/?? @@", countitem(CobaltHerb), getitemlink(CobaltHerb)); mesc l("@@/@@ GP", format_number(Zeny), format_number(10000)); menu l("Please have a look, I have what you asked"), L_Check2, l("On my way to get what you need."), -; close; // ---------------------------------------------------- // Arc 2: Prsm Helmet // ---------------------------------------------------- L_Check2: if (countitem(PinkAntenna) < 100 || countitem(WarlordHelmet) < 1 || countitem(CobaltHerb) < 60) goto L_More_Needed2; if (Zeny < 10000) { mesn; mesq l("You can't afford my work! Do some odd jobs and come back."); close; } inventoryplace PrsmHelmet, 1; delitem PinkAntenna, 100; delitem WarlordHelmet, 1; delitem TerraniteOre, 20; getexp 60000, 0; getitem PrsmHelmet, 1; setq SQuest_Paxel, 2; mesn; mesq l("There you go, a special and rare @@!", getitemlink(PrsmHelmet)); close; // ---------------------------------------------------- // Failure: Insufficient material // ---------------------------------------------------- L_More_Needed1: mesn; mesq l("Your @@ is not enough, please look for more.", getitemlink(TerraniteOre)); close; L_More_Needed2: mesn; mesq l("I am sorry but i can see that you don't have all that I asked you."); next; mesn; mesq l("Please bring me that or I won't be able to make something really special for you."); close; // ---------------------------------------------------- // Quest complete // ---------------------------------------------------- L_Done: mesn; mesq l("Hello winged friend! How is the wind today?"); menu rif(season() == SPRING || $@GM_OVERRIDE, l("It's spring, when the wind is always good.")), L_Spring, l("Calm, perfect for a fly!"), L_Fly, l("Gale, not good to fly."), L_Wind2; close; L_Fly: mesn; mesq l("Haha yes, you are right!"); close; L_Wind2: mesn; mesq l("Yep, I never fly in these days."); close; // TODO: Maybe we can add something else here L_Spring: mesn; mesq l("Hahah, good to hear! Do you know some items are only dropped on spring? You should go after them!"); close; // Saulc/Omatt/Prsm minigame OnTouch: addtimer(100, "Paxel::OnOmattizator"); end; OnOmattizator: if (!isin("017-1", 131, 22, 0)) end; if (!issit()) addtimer(100, "Paxel::OnOmattizator"); npctalk3 l("Unsit me at once!"); emotion E_FURIOUS; addtimer(1000, "Paxel::OnOmattizator2"); end; OnOmattizator2: if (!isin("017-1", 131, 22, 0)) end; if (!issit()) addtimer(100, "Paxel::OnOmattizator"); npctalk3 l("Unsit me OR I'LL KILL YOU in name of my father, Prsm!"); emotion E_FURIOUS; addtimer(3000, "Paxel::OnOmattizator3"); end; OnOmattizator3: if (!isin("017-1", 131, 22, 0)) end; if (!issit()) addtimer(100, "Paxel::OnOmattizator"); npctalk3 l("I HAVE WARNED YOU!!!!!"); emotion E_FURIOUS; addtimer(1000, "Paxel::OnOmattizator4"); end; OnOmattizator4: if (!isin("017-1", 131, 22, 0)) end; if (!issit()) addtimer(100, "Paxel::OnOmattizator"); .@q=getq(General_EasterEggs); npctalk3 l("DIE!"); if (!(.@q & EE_PRSM)) { setq General_EasterEggs, .@q|EE_PRSM; dispbottom l("For finding an Easter Egg, you got Strange Coins!"); getitem StrangeCoin, 3; } slide 130, 23; emotion E_FURIOUS; percentheal -100, -100; end; OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, PrsmHelmet); setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate); setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes); setunitdata(.@npcId, UDT_WEAPON, JeansChaps); setunitdata(.@npcId, UDT_HAIRSTYLE, 24); setunitdata(.@npcId, UDT_HAIRCOLOR, 14); .sex=G_MALE; .distance=5; end; }