// TMW2 scripts. // Authors: // Qwerty Dragon // Reid // Jesusalva // Description: // Captain Nard dialogs. // Nard is a fair merchant ship's captain. // Original Nard's from Evol by Qwerty Dragon and Reid 002-3,36,25,0 script Nard NPC_NARD,{ showavatar NPC_NARD; // this is handled by avatars.xml .@narrator = getq(General_Narrator); L_Checker: if (.@narrator) goto L_Travel; if (getq(ShipQuests_Julia) >= 3) goto L_NotYet; // Introduction mesn; mesq l("Hello."); next; mesq l("Let me introduce myself, I am Nard, captain of this ship."); next; mesq lg("I am pleased to see that you have woken up and are active. Elmo came here to tell me this good news!"); next; mesq l("So, how do you feel? I see that Juliet did a marvellous job! You look like you're in good health now."); next; select lg("I feel ok."), l("Who's this Juliet?"), lg("I'm a bit sick..."); mes ""; switch (@menu) { case 1: mesn; mesq l("Good to know."); next; break; case 2: mesn; mesq lg("You have an awful case of amnesia. She is the nurse and shipkeeper of this ship, and took care of you when you were unconscious."); next; break; case 3: mesn; mesq l("Well, you'll need to get used to. Being seasick is annoying, so you might want to leave the ship as soon as possible."); next; break; } mesn; mesq l("We have made a stop at a little island, before making it on to the port of Tulimshar."); next; mesn; mesq l("Ship travels are not free. Also, I have a few friends on the Island, and I would like you to check out on them."); next; showavatar NPC_ELMO; setcamnpc instance_npcname("Elmo"); mesn l("Elmo"); mesq l("I, Elmo, captain's deputy, will help you to make the maximum possible money in Candor!"); mesc l("Talk to Elmo to get an EXP UP Boost until level 15!"), 2; // Actually, why don't we apply it right now...? .@AVG_LEVEL=($@hoblvl_value[0]+$@hoblvl_value[1]+$@hoblvl_value[2])/3; .@BONUS=min(25, .@AVG_LEVEL/4); sc_end SC_CASH_PLUSEXP; sc_end SC_CASH_RECEIVEITEM; sc_start SC_CASH_PLUSEXP, 3600000, .@BONUS; sc_start SC_CASH_RECEIVEITEM, 3600000, .@BONUS; specialeffect FX_SPECIAL, SELF, getcharid(3); mesc l("EXP Gain raised in @@% for one hour!", .@BONUS), 2; next; showavatar NPC_NARD; setcamnpc; mesn; mesq l("After that, we're going to Tulimshar. Tulim is the most important city on the world, and the Alliance have an office there."); next; mesn; mesq l("The Alliance can help you in finding out about who you are, why you are here, or from where you came from. So, about the tasks I want completed."); next; .@price=800; mesc b(l(".:: Main Quest 1-3 ::.")), 3; msObjective(getq(CandorQuest_HAS) >= 4, l("* Help Ayasha to take care of the kids.")); msObjective(getq(CandorQuest_Trainer) >= 12, l("* Get trained by Valon, in the big house.")); msObjective(getq(CandorQuest_Barrel) >= 4, l("* Ask Zegas, the mayoress, if she needs help.")); msObjective(Zeny >= .@price, l("* Collect @@/@@ GP", Zeny, .@price)); L_FirstLogin: next; clear; showavatar NPC_LOF_RICH; mesc l("But before, a message from our developers!"), 3; next; mesn l("TMW2 Staff"); mesc l("First of all: Thank you for playing during this event."), 1; mesc l("You may now choose your bonus."), 1; mesc l("The bonus will be added to a @@, you must equip it.", getitemlink(PlushMouboo)), 3; mesc b(l("IT CANNOT BE CHANGED LATER")), 1; next; do { select l("I'm just skipping dialogs, sorry"), l("HP +75% (not recommended)"), l("EXP +50%"), l("DMG +50%"); mes ""; if (@menu != 1) { getitembound(PlushMouboo, 1, 4); delinventorylist(); // Needed, because we'll rely on rfind() getinventorylist(); .@index=array_rfind(@inventorylist_id, PlushMouboo); switch (@menu) { case 2: .@vartp=VAR_MAXHPPERCENT; .@bonus=75; break; case 3: .@vartp=IOPT_EXPGAIN; .@bonus=50; break; case 4: .@vartp=VAR_ATKPERCENT; .@bonus=50; break; default: Exception("Invalid menu entry: "+@menu, RB_SPEECH|RB_DEBUGMES|RB_PLEASEREPORT); .@vartp=any(VAR_ATKPERCENT, IOPT_EXPGAIN); .@bonus=50; break; } setitemoptionbyindex(.@index, 0, .@vartp, .@bonus); } } while (@menu == 1); Zeny+=50000; getitem TimeFlask, 1; getitem FatesPotion, 30; getitem ReturnPotion, 100; LOCATION$ = "Candor"; setq ShipQuests_Julia, 3; close; L_NeedHelp: mes ""; mesn; mesq l("You're pretty much stranded on this forsaken island if you don't help me!"); next; mesq l("Also, I believe hard work always pay off."); next; goto L_NotYet; L_CandorIsland: mes ""; mesn; mesq l("I come here frequently to trade. It is not deserted nor boring."); next; mesq l("This is ##BCandor Island##b. A very small rich community lives here."); next; mesq l("If they were any bigger, monsters would come and kill everyone."); next; goto L_NotYet; L_NotYet: .@price=800; mesc b(l(".:: Main Quest 1-1 ::.")), 3; msObjective(getq(CandorQuest_HAS) >= 4, l("* Help Ayasha to take care of the kids.")); msObjective(getq(CandorQuest_Trainer) >= 12, l("* Get trained by Valon, in the big house.")); msObjective(getq(CandorQuest_Barrel) >= 4, l("* Ask Zegas, the mayoress, if she needs help.")); msObjective(Zeny >= .@price, l("* Collect @@/@@ GP", Zeny, .@price)); mes ""; select rif(Zeny >= .@price, l("I've brought the money you've asked for.")), l("Captain, why have you brought me to a deserted boring island?!"), l("I don't want to help your \"friends\", bring me to somewhere useful!"), l("Please excuse me, captain."); mes ""; if (@menu == 2) goto L_CandorIsland; if (@menu == 3) goto L_NeedHelp; mesn; if (getq(CandorQuest_HAS) < 4 || getq(CandorQuest_Barrel) < 4 || getq(CandorQuest_Trainer) < 12) { mesq l("You didn't help all my friends yet, and without trainment, I can't send you to such dangerous place as Tulimshar."); mesc l("NOTE: It is possible to play the game as a crafter/merchant/fisherman, avoiding to kill as much as possible. However, it is not possible to play the game with a total kill count of zero."); close; } // If you did less than 50% Candor quests, please be warned. if (reputation("Candor") < 50) { mesc l("WARNING: You have done less than 50% of Candor Quests!"), 1; mesc l("It may be expensive to return here. Are you sure?"), 1; next; if (askyesno() == ASK_NO) close; } if (Zeny >= .@price) { inventoryplace TulimMap, 1; mesq l("Ten, fifty, thousand... Yep, this is the amount I've asked for."); next; setq General_Narrator, 1; Zeny = Zeny-.@price; LOCATION$="Tulim"; getitem TulimMap, 1; mesq l("Set sail! We're going to Tulimshar!"); next; showavatar; setcam 0, 0; mesc l("Some time later..."); next; restorecam; showavatar NPC_NARD; // this is handled by avatars.xml mesn; mesq l("Welcome to Tulimshar, @@!", strcharinfo(0)); mesc l("Nard gives you a map of the city so you don't get lost."); next; if (GSET_SOULMENHIR_MANUAL) { mesn; mesq l("You can explore the city as you want, but if I were you, I would ##Btouch the Soul Menhir##b, north of here, to don't respawn at Candor."); next; } else { mesn; mesq l("If you die, you'll appear near Tulimshar's Soul Menhir, which is the nearest Menhir to you. You can use @@ if you ever want to change this behavior.", b("@ucp")); next; } mesn; mesq l("Other than that, you can explore the city as you want, but as you had a memory loss, You should visit the townhall."); next; mesn; mesq l("When you get out of the ship, it is the first building you'll see. Talk to ##BLua##b, she is an alliance representative."); next; mesn; mesq l("The Alliance have records of everyone. And if you need another trip, talk to me!"); mesc l("PROTIP: Every quest you complete in a location, will make ship travels to and from them cheaper!"); } else { mesq l("You still haven't completed your tasks."); mes ""; mesc l("You still need @@ GP for the trip to Tulimshar.", (.@price-Zeny)); } close; L_Travel: // Current nard_reputation() value for 100% discount: 15 .@price=800; .@price-=min(780, nard_reputation()*54); mesn; mesq l("Hi @@.", strcharinfo(0)); next; mesq l("You are currently at @@.", LOCATION$); mes ""; mes l("A ship travel will cost you @@ GP.", .@price); if (ST_TIER == 8) mesc l("What are you doing? Go talk to @@ and bring me a @@!", b("Elanore"), getitemlink(Lifestone)); if (Zeny >= .@price || ((ST_TIER == 7 || ST_TIER == 9) && gettimetick(2) < QUEST_ELEVARTEMPO)) { menu rif(Zeny >= .@price && LOCATION$ != "Candor", l("To Candor Island.")), L_TCandor, rif(Zeny >= .@price && LOCATION$ != "Tulim", l("To Tulimshar.")), L_TTulim, rif(ST_TIER == 7 && gettimetick(2) < QUEST_ELEVARTEMPO ,l("Help me, I need Jesusaves Grimorie!")), L_Tier2, rif(ST_TIER == 9 && countitem(Lifestone) && gettimetick(2) < QUEST_ELEVARTEMPO ,l("Help me, I need Jesusaves Grimorie!")), L_Tier2Ok, l("No, I'll save my money."), -; } else { mes l("You still need @@ GP to afford it.", (.@price-Zeny)); } close; L_TCandor: Zeny=Zeny-.@price; PC_DEST$="Candor"; mes ""; mesn; mesq l("Candor Island, then? Yes, that is a pretty island, right?"); next; mesq l("I was planning to go there soon, anyway. All aboard!"); close2; addtimer nard_time(PC_DEST$), "#NardShip::OnEvent"; @timer_navio_running = 1; warp "002-5", 39, 26; end; L_TTulim: Zeny=Zeny-.@price; PC_DEST$="Tulim"; @timer_navio_running = 1; mes ""; mesn; mesq l("Tulimshar, right? The oldest human city-state!"); next; mesq l("I was planning to go there soon, anyway. All aboard!"); close2; addtimer nard_time(PC_DEST$), "#NardShip::OnEvent"; @timer_navio_running = 1; warp "002-5", 39, 26; end; L_Tier2: mes ""; mesn; mesq l("WHAT?! ARE YOU OUT OF MIND?!?!"); next; mesn; if (nard_reputation() < 8) { mesq l("THAT GRIMORIE IS A SUPER DUPER MEGA UPER RARE BOOK, I CANNOT GIVE IT TO ANYBODY ASKING ME ABOUT!!"); next; mesn; mesq l("GET OUT OF HERE, YOUR NOBODY!"); close; } mesq l("That is a rare, precious book, which writes itself!"); next; mesn; mesq l("I cannot just give it to you for nothing. Run to Elanore and fetch me a @@. You need to make a new one, an old one I won't accept.", getitemlink(Lifestone)); ST_TIER=8; close; L_Tier2Ok: mes ""; mesn; mesc l("*tut*"); next; inventoryplace JesusalvaGrimorium, 1; delitem Lifestone, 1; getitem JesusalvaGrimorium, 1; getexp 200, 0; ST_TIER=10; mesn; mesq l("Here, take it. If the mana goes out of your body, I'll have your class master to return the book to me."); close; L_Close: close; OnInit: .sex = G_MALE; .distance = 5; end; }