// Airlia, daughter of the cemetary caretaker
// Future extensions:
// * Add banter and random replies for the unlimited subquests
// * Airlia quest = 2 unlocks options with Fighters of the Undead NPCs (in Cemetery), such as the 'Kill Sir Truk' quest
// * Airlia quest = 2 unlocks other options, perhaps with future Warrior Guild prospects (this is long term)
009-2.gat,123,71,0 script Airlia 108,{
// Subquest 1a: Caretaker's daughter (initial, once)
set @LETTER_REWARD_GOLD_INITIAL, 1000;
set @LETTER_REWARD_EXP_INITIAL, 2000;
set @Q_STATUS_RECIEVED_FIRST_LETTER, 2;
set @Q_STATUS_DELIVERED_FIRST_LETTER, 3;
// Subquest 1b: Continued delivery of letters (unlimited)
set @LETTER_REWARD_GOLD, 42;
set @LETTER_REWARD_EXP, 500;
set @Q_STATUS_HAS_NO_NEW_LETTER, 4;
set @Q_STATUS_HAS_NEW_LETTER, 5;
// Subquest 2a: Fetch those undead drops (initial, once)
// TODO: Set sane values below
set @FETCH_AMOUNT_INITIAL, 42;
set @FETCH_LABEL_INITIAL$, "Iten";
set @FETCH_NAME_INITIAL$, "Iten";
set @FETCH_REWARD_GOLD_INITIAL, 0;
set @FETCH_REWARD_EXP_INITIAL, 42;
set @Q_STATUS_HELP_AIRLIA, 1;
set @Q_STATUS_INITIAL_FETCH_REWARDED, 2;
// Subquest 2b: Fetch those undead drops (unlimited)
// TODO: Set sane values below
set @FETCH_AMOUNT, @FETCH_AMOUNT_INITIAL;
set @FETCH_LABEL$, @FETCH_LABEL_INITIAL$;
set @FETCH_NAME$, @FETCH_NAME_INITIAL$;
set @FETCH_REWARD_GOLD, 1;
set @FETCH_REWARD_EXP, 0;
if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED) goto L_Rewarded;
if (QUEST_Airlia == @Q_STATUS_HELP_AIRLIA) goto L_Fetch;
if (QUEST_Graveyard_Caretaker > @Q_STATUS_RECIEVED_FIRST_LETTER) goto L_Airlia_intro;
L_Caretaker:
mes "[Airlia]";
mes "\"Greetings. Do you need a housing permit, or to license your mount?\"";
next;
if (QUEST_Graveyard_Caretaker < @Q_STATUS_RECIEVED_FIRST_LETTER)
menu
"Sorry, no.", -,
"My what?", L_Caretaker_mount;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_RECIEVED_FIRST_LETTER)
menu
"Sorry, no.", -,
"I have a letter from your father.", L_Caretaker_first_reward,
"My what?", L_Caretaker_mount;
mes "[Airlia]";
mes "\"Nobody ever does...\"";
close;
L_Caretaker_mount:
// The mention of mounts will certainly gather some interest from players,
// this section may be extended.
close;
L_Caretaker_first_reward:
mes "[Airlia]";
mes "\"Oh! Thank you very, very much! Please take this for your trouble.\"";
if (@LETTER_REWARD_GOLD_INITIAL > 0)
mes "[" + @LETTER_REWARD_GOLD_INITIAL + " GP]";
if (@LETTER_REWARD_EXP_INITIAL > 0)
mes "[" + @LETTER_REWARD_EXP_INITIAL + " experience points]";
set zeny, zeny + @LETTER_REWARD_GOLD_INITIAL;
getexp @LETTER_REWARD_EXP_INITIAL, 0;
set QUEST_Graveyard_Caretaker, @Q_STATUS_DELIVERED_FIRST_LETTER;
close;
L_Caretaker_later_rewards:
mes "[Airlia]";
mes "\"Oh! Thank you very, very much! Please take this for your trouble.\"";
if (@LETTER_REWARD_GOLD > 0)
mes "[" + @LETTER_REWARD_GOLD + " GP]";
if (@LETTER_REWARD_EXP > 0)
mes "[" + @LETTER_REWARD_EXP + " experience points]";
set zeny, zeny + @LETTER_REWARD_GOLD;
getexp @LETTER_REWARD_EXP, 0;
set QUEST_Graveyard_Caretaker, @Q_STATUS_HAS_NO_NEW_LETTER;
close;
L_Airlia_intro:
mes "[Airlia]";
mes "\"My poor father, doomed to that awful cemetery.\"";
next;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NO_NEW_LETTER)
menu
"...", -;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
"...", -,
"Oh, I have a letter from him.", L_Caretaker_later_rewards;
mes "[Airlia]";
mes "\"You know, there are many who believe that each time the undead rise after being killed, they lose mana.";
mes "Eventually, there will not be enough mana for them to rise again and they can be at rest. Do you believe this is true?\"";
next;
menu
"I believe so, yes.", L_Airlia_intro_mana_loss,
"Maybe...", L_Airlia_intro_mana_loss,
"No, that is not proven.", -;
mes "[Airlia]";
mes "\"Oh...\"";
close;
L_Airlia_intro_mana_loss:
mes "[Airlia]";
mes "\"When I am not working, I recruit help for the esteemed Fighters of the Undead, or FoU.";
mes "They are an official group effort of the Warriors' Guild and Magicians, you know, a very prestigious group.\"";
next;
menu
"...", L_Airlia_intro_fou,
"I have heard of them.", L_Airlia_intro_fou,
"Keep up the good work. I have to go now, bye.", -;
close;
L_Airlia_intro_fou:
mes "[Airlia]";
mes "\"If we drain those evil creatures of their mana, I can get my father back. He is getting very old. Will you help us?\"";
next;
menu
"Of course I will.", L_Airlia_intro_fight,
"Sure, I guess.", L_Airlia_intro_fight,
"Thanks, but no thanks. I have other business to attend to.", -;
close;
L_Airlia_intro_fight:
mes "[Airlia]";
mes "\"Great, just kill any of the undead creatures you can and bring me proof of your work, and I will put in a word for you with the guild.\"";
next;
menu
"I'm on it.", -,
"What sort of proof?", L_Airlia_intro_proof;
set QUEST_Airlia, @Q_STATUS_HELP_AIRLIA;
close;
L_Airlia_intro_proof:
mes "[Airlia]";
mes "\"Let's say " + @FETCH_AMOUNT_INITIAL + " [" + @FETCH_NAME_INITIAL$ + "]s. You don't know how much this means to me, thank you.\"";
set QUEST_Airlia, @Q_STATUS_HELP_AIRLIA;
close;
L_Fetch:
mes "[Airlia]";
mes "\"Thank you for helping my father.\"";
next;
if (QUEST_Airlia < @Q_STATUS_INITIAL_FETCH_REWARDED)
menu
"You are welcome.", -,
"I have collected " + @FETCH_AMOUNT_INITIAL + " [" + @FETCH_NAME_INITIAL$ + "]s.", L_Fetch_initial_reward;
if (QUEST_Airlia == @Q_STATUS_INITIAL_FETCH_REWARDED)
menu
"You are welcome.", -,
"I have collected " + @FETCH_AMOUNT + " [" + @FETCH_NAME$ + "]s.", L_Fetch_later_rewards;
close;
L_Fetch_initial_reward:
if (countitem(@FETCH_LABEL_INITIAL$) < @FETCH_AMOUNT_INITIAL) goto L_Fetch_not_enough;
mes "[Airlia]";
mes "\"Excellent work. You are definitely a great warrior. I will tell the guild of your deeds.\"";
if (@FETCH_REWARD_GOLD_INITIAL > 0)
mes "[" + @FETCH_REWARD_GOLD_INITIAL + " GP]";
if (@FETCH_REWARD_EXP_INITIAL > 0)
mes "[" + @FETCH_REWARD_EXP_INITIAL + " experience points]";
delitem @FETCH_LABEL_INITIAL$, @FETCH_AMOUNT_INITIAL;
set zeny, zeny + @FETCH_REWARD_GOLD_INITIAL;
getexp @FETCH_REWARD_EXP_INITIAL, 0;
set QUEST_Airlia, @Q_STATUS_INITIAL_FETCH_REWARDED;
next;
mes "[Airlia]";
// TODO: Write the dialogue when I'm not tired...
mes "\"Oh, before you leave. We all must do what we can to stop this tragedy.";
mes "If you are willing to keep draining the undead of mana, I willl give you what gold I can afford as a token of my gratitude.\"";
close;
L_Fetch_later_rewards:
if (countitem(@FETCH_LABEL$) < @FETCH_AMOUNT) goto L_Fetch_not_enough;
mes "[Airlia]";
mes "\"Excellent work. You are definitely a great warrior.\"";
if (@FETCH_REWARD_GOLD > 0)
mes "[" + @FETCH_REWARD_GOLD + " GP]";
if (@FETCH_REWARD_EXP > 0)
mes "[" + @FETCH_REWARD_EXP + " experience points]";
delitem @FETCH_LABEL$, @FETCH_AMOUNT;
set zeny, zeny + @FETCH_REWARD_GOLD;
getexp @FETCH_REWARD_EXP, 0;
close;
L_Fetch_not_enough:
mes "[Airlia]";
mes "\"I'm sorry, I didn't realize you couldn't count. Perhaps when I have some free time, I can help you learn if you'd like.\"";
close;
L_Rewarded:
mes "[Airlia]";
mes "\"Thank you for your help.\"";
next;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NO_NEW_LETTER)
menu
"I have collected " + @FETCH_AMOUNT + " [" + @FETCH_NAME$ + "]s.", L_Fetch_later_rewards;
if (QUEST_Graveyard_Caretaker == @Q_STATUS_HAS_NEW_LETTER)
menu
"I have another letter from your father.", L_Caretaker_later_rewards,
"I have collected " + @FETCH_AMOUNT + " [" + @FETCH_NAME$ + "]s.", L_Fetch_later_rewards;
close;
}