// TMW2 Script // Author: // Saulc // Jesusalva // DangerDuck // Description: // Random NPC without any purpose but to give SerfHat. Uh. // TODO: Could be repeatable quest (eg. 60 GP for a cake every day, so you can have a 10 GP profit selling cakes) 003-1,90,144,0 script Sarah NPC_FEMALE_TONORI,{ function quest_completed; function quest_open; function quest_started; function AssignGHQ; // Main Loop do { .@q = getq(TulimsharQuest_Sarah); if (.@q == 1) quest_completed(); select rif(!.@q, l("Hello, I'm new here! Can I help you?")), menuaction(l("Quit")); switch (@menu) { case 1: quest_started(); break; } } while (@menu != 2); closedialog; goodbye; close; // Quest completed function quest_completed { speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("It was so tasty, I can't eat anything more... Thank you."); AssignGHQ(); return; } // Quest Core function quest_started { speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Oh, Welcome then."); speech S_LAST_NEXT, l("Can you bring me 5 pieces of Cherry Cake? Pretty please?"); do { select l("Here they are!"), menuaction(l("Quit")); switch (@menu) { case 1: quest_open(); break; case 2: mesc l("Protip: @@ is dropped by @@. It is a tough monster, you might need some strategy to kill it. @@ can be bought in shops.", getitemlink(CherryCake), getmonsterlink(GiantMaggot)); mesc l("%s can also be obtained from %s, at a lower drop rate.", getitemlink(CherryCake), getmonsterlink(Duck)); next; break; } } while (@menu != 2); return; } // Quest check function quest_open { if (countitem(CherryCake) >= 5) { speech S_FIRST_BLANK_LINE, l("You brought me 5 @@ ! Here is your @@, as promised.",getitemlink(CherryCake), getitemlink(SerfHat)); delitem CherryCake,5; getitem SerfHat,1; getexp 80, 2; setq TulimsharQuest_Sarah, 1; close; } else { speech S_FIRST_BLANK_LINE, l("Sorry, that is not the cake I love."); close; } return; } // Grand Hunter Quest (post-quest) function AssignGHQ { GHQ_Assign(Duck, "Holiday"); end; } OnInit: .@npcId = getnpcid(.name$); setunitdata(.@npcId, UDT_HEADTOP, TerraniteArmor); setunitdata(.@npcId, UDT_HEADMIDDLE, RaidTrousers); setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyesT); setunitdata(.@npcId, UDT_WEAPON, CandorBoots); // Boots setunitdata(.@npcId, UDT_HAIRSTYLE, 19); setunitdata(.@npcId, UDT_HAIRCOLOR, 16); .sex = G_FEMALE; .distance = 5; end; }