// TMW2 scripts. // Authors: // Reid // Travolta // Saulc // Description: // Fishman NPC // Quest variable: // TulimsharQuests_Fishman // Quest stages: // 0 - not started // 1 - Eugene asked for items // 2 - completed 003-1,80,127,0 script Eugene NPC_EUGENE,{ narrator S_LAST_NEXT, l("You see a raijin boy, sitting on the edge of the dock."), l("He's holding a fishing rod, while gazing out at the sea."); .@q = getq(TulimsharQuests_Fishman); if (.@q == 1) goto L_CheckItems; if (.@q == 2) goto L_QuestDone; speech S_LAST_BLANK_LINE, l("Ahoi."), l("Hey, check out my brand new fishing rod. I bought it just today."), l("I was so excited, I wanted to try it as soon as possible."), l("So in a hurry, I forgot to take enough bait for fishing."), lg("Be a friend and bring me @@ @@.", "Be a friend and bring me @@ @@.", .BaitCount, getitemlink(.BaitID)); switch (select(l("I'll be back in no time."), l("Sorry, I'm doing other things at the moment."))) { case 1: setq TulimsharQuests_Fishman, 1; speech S_FIRST_BLANK_LINE, l("Thank you. I'll wait here."); next; mesc l("Protip: @@ are dropped by @@. That monster helps each other, so don't attack when they are in packs.", getitemlink(.BaitID), getmonsterlink(LittleBlub)); close; case 2: speech S_FIRST_BLANK_LINE, l("But I'm almost out of @@...", getitemlink(.BaitID)); close; } L_CheckItems: if (countitem(.BaitID) < .BaitCount) { speech l("Sorry, but you don't have what I need."), l("I need @@ @@.", .BaitCount, getitemlink(.BaitID)); close; } speech l("That's exactly what I needed!"), l("To thank you, accept my old fishing rod."), l("It's not as good as my new one, but still very useful."), l("Just look at that water! There's a whole bunch of fish down there."), l("Oh, and you will need this book too, it will help you learn the basics of fishing."), lg("You might even get lucky, and get a @@.", "You might even get lucky, and get a @@.", getitemlink(GrassCarp)), l("Have a good time fishing!"); delitem .BaitID, .BaitCount; getitem FishingRod, 1; getitem FishingGuideVolI, 1; getexp 62, 5; setq TulimsharQuests_Fishman, 2, 99, gettimeparam(GETTIME_DAYOFMONTH); close; L_QuestDone: // Time check/fix .@q3=getq3(TulimsharQuests_Fishman); if (.@q3 < gettimeparam(GETTIME_DAYOFMONTH)) setq TulimsharQuests_Fishman, 2, 0, gettimeparam(GETTIME_DAYOFMONTH); .@maxcarps=1+(BaseLevel/8); .@q2=getq2(TulimsharQuests_Fishman); // Idea for future: Eugene telling fishman jokes. speech l("Ahoy, @@!", strcharinfo(0)), l("Are the fish biting today?"); select l("Yes, everything is going great, thank you!"), l("Actually, I have bad luck. Could you sell me a box full of fresh fish?"); switch (@menu) { case 1: if (.@q2 < .@maxcarps) goto L_Sidequest; speech S_FIRST_BLANK_LINE, l("Glad to hear. I swear, the fish I picked before you arrive was THAT big!"); close; case 2: speech S_FIRST_BLANK_LINE, l("Earlier I hadn't any, but now that I have the baits, I will be glad to sell some to you!"); npcshopattach(.name$); openshop; closedialog; } close; L_Sidequest2: mesn; mesc l("Eugene bows politely, but he thinks he can use more."); goto L_SidequestSub; L_Sidequest: mesn; mesq l("Maybe I'm using a too low quality bait, I can't fish %s.", getitemlink(GrassCarp)); next; L_SidequestSub: mesn; mesq l("I offer you %d GP for one. What do you say?", .SuperPrice); if (!countitem(GrassCarp)) close; if (askyesno() == ASK_NO) close; delitem GrassCarp, 1; Zeny+=.SuperPrice; setq2 TulimsharQuests_Fishman, .@q2+1; .@q2=getq2(TulimsharQuests_Fishman); // Maybe you can repeat, if so, do this immediately if (.@q2 < .@maxcarps) goto L_Sidequest2; // Maxed for the day, give you a hint mesn; mesq l("Thanks. Maybe I should stop using Maggot Slime as a bait."); close; OnInit: .BaitID = SmallTentacles; .BaitCount = 10; // 600% profit (normal is 500%, but fishing is harder) .SuperPrice = getiteminfo(GrassCarp, ITEMINFO_SELLPRICE)*6; tradertype(NST_MARKET); sellitem SmallFishingNet, -1, 1; sellitem FishBox, -1, 5; sellitem CommonCarp, -1, 3; .sex = G_MALE; .distance = 6; end; OnClock0611: OnClock1200: OnClock1801: OnClock0003: restoreshopitem SmallFishingNet, 1; restoreshopitem FishBox, 5; restoreshopitem CommonCarp, 3; end; // Pay your taxes! OnBuyItem: debugmes("Purchase confirmed"); PurchaseTaxes(); end; OnSellItem: debugmes("Sale confirmed"); SaleTaxes(); end; }