// 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("Elmo has given you an EXP UP and DROP UP Boost until level 20!"), 2;
mesc l("It also expires after two hours. In such case, talk to him again!"), 2;
// Actually, why don't we apply it right now...?
.@BONUS=NewcomerEXPDROPUP();
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.");
LOCATION$ = "Candor";
setq ShipQuests_Julia, 3;
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_Referral:
// Referral program
if (#REFERRAL_PROG == 0 && $REFERRAL_ENABLED) {
next;
clear;
showavatar NPC_LOF_RICH;
mesc l("But before, a message from our developers!"), 3;
next;
mesn l("TMW2 Staff");
mesc l("Hello, and welcome to TMW2: Moubootaur Legends!"), 3;
next;
mesn l("TMW2 Staff");
mesc l("Did you came here by someone advise? If yes, write their name down here!"), 3;
next;
mesc l("If this is not the case, just click on \"Send\"."), 3;
.@ref$="";
do
{
input .@ref$;
//debugmes "Player invite: "+.@ref$;
mes "";
if (.@ref$ != "") {
.@ref=gf_accid(strip(.@ref$));
if (.@ref > 0) {
if (.@ref == getcharid(3)) {
mesn l("TMW2 Staff");
mesc l("Hahah, silly, that's yourself!"), 3;
mesc l("Try again!"), 3;
next;
.@ref$="";
} else {
#REFERRAL_PROG=.@ref;
getitembound FriendGift, 1, 1;
mesn l("TMW2 Staff");
mesc l("Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3;
mesc l("Your friend also sent you a gift - open it when you get level 5!"), 3;
next;
}
} else {
mesn l("TMW2 Staff");
mesc l("Oops, there is nobody known as @@ on this game.", .@ref$), 3;
mesc l("Could you try again? There could be a typo!"), 3;
next;
.@ref$="";
}
} else {
.@ref$="None";
mesn l("TMW2 Staff");
mesc l("I see. Well, welcome to the game! If you have any doubt, shout on #world for help!"), 3;
next;
}
} while (.@ref$ == "");
showavatar NPC_NARD;
}
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.")),
rif(#REFERRAL_PROG == 0 && $REFERRAL_ENABLED && BaseLevel <= 10,
l("I forgot to say earlier, but indeed, I was invited by someone!")),
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_Referral;
if (@menu == 3)
goto L_CandorIsland;
if (@menu == 4)
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;
}