// TMW2 scripts.
// Authors:
// Jesusalva
// Description:
// Heremit
// Variables:
// $ARKIM_ST
// How many Bat Teeth/Wings were given
// q1
// Controls your own progress helping Arkim - Unused, might give place to some real quest later.
// q2
// Controls your own progress helping Arkim - Items today
// q3
// Controls your own progress helping Arkim - Your timer
015-3,170,169,0 script Arkim NPC_TERRY,{
function pmap_intro;
function pmap_wrong;
function pmap_right;
mesn;
mesq lg("Hello, young girl...", "Hello, young boy...");
next;
L_Loop:
.@q1=getq(HurnscaldQuest_Arkim);
.@q3=getq3(HurnscaldQuest_Arkim);
mesn;
mesq l("I am doing a great research with Bats, and thus far I collected @@ Bat Wings and Teeths.", $ARKIM_ST);
next;
// It was yesterday
if (.@q3 < $@ARKIM_QTIMER) {
setq2 HurnscaldQuest_Arkim, 0;
setq3 HurnscaldQuest_Arkim, $@ARKIM_QTIMER;
}
// Daily limit reached
.@q2=getq2(HurnscaldQuest_Arkim);
if (.@q2 >= (BaseLevel-17)/3) goto L_Timer;
select
rif(countitem(BatWing) >= 1, l("Donate a Bat Wing")),
rif(countitem(BatTeeth) >= 1, l("Donate a Bat Teeth")),
l("I better leave this crazy man to his ordeals..."),
l("Had you any breakthrough?");
mes "";
switch (@menu) {
case 1:
delitem BatWing, 1;
getexp 25, 0;
Zeny=Zeny+50;
break;
case 2:
delitem BatTeeth, 1;
getexp 36, 0;
Zeny=Zeny+70;
break;
case 3:
goto L_Assign;
close; // Will never reach.
break;
case 4:
goto L_Research;
break;
}
$ARKIM_ST=$ARKIM_ST+1;
setq2 HurnscaldQuest_Arkim, .@q2+1;
goto L_Loop;
L_Timer:
if (BaseLevel < 20)
mesc l("You need at least level 20 to help.");
mesn;
mesq l("You've helped me plenty. Please come back in @@", FuzzyTime($@ARKIM_TIMER+(60*60*24),2,2));
goto L_Assign;
close; // Will never reach.
// TODO
L_Research:
mesn;
mesq l("Let me see... The more Wings and Teethes I collect, the more my research shall advance.");
next;
select
l("Thanks."),
rif($ARKIM_ST >= 1400, l("Cursed Arrows")),
rif($ARKIM_ST >= 2800, l("Poison Arrows")),
rif($ARKIM_ST >= 1200, l("Piberries Infusion")),
rif($ARKIM_ST >= 2600, l("Fate's Potion")),
rif($ARKIM_ST >= 4000, l("Clotho Liquor")),
rif($ARKIM_ST >= 4700, l("Lachesis Brew")),
rif($ARKIM_ST >= 6600, l("Atropos Mixture")),
rif($ARKIM_ST >= 7500, l("Dark Desert Mushroom"));
mes "";
mesn;
switch (@menu) {
case 1:
mesq l("Good bye!");
goto L_Assign;
close; // Will never reach.
break;
case 2:
mesq l("The @@ are specially dangerous, and archers love them.", getitemlink(CursedArrow));
next;
mesn;
mesq l("These are being crafted by Alan.");
break;
case 3:
mesq l("The @@ are specially dangerous, and archers love them.", getitemlink(PoisonArrow));
next;
mesn;
mesq l("These are being crafted by Alan.");
break;
case 4:
case 5:
case 6:
case 7:
case 8:
mesq l("The @@ is a powerful healing drink.", getitemlink(PiberriesInfusion-4+@menu));
next;
mesn;
switch (@menu) {
case 4:
mesq l("@@ is developing these potions.", "Wyara"); break;
case 5:
mesq l("@@ is developing these potions.", "Fate, in Nivalis,"); break; // TODO: Missing NPC
case 6:
mesq l("@@ is developing these potions.", "Frostia Dwarves"); break;
case 7:
mesq l("@@ is developing these potions.", "Frostia Dwarves"); break;
default:
mesq l("@@ is developing these potions.", "Jesusalva"); // TODO: Lachesis and Atropos
break;
}
break;
case 9:
mesq l("Ah! @@. A very rare drop!", getitemlink(DarkDesertMushrooom));
next;
mesn;
mesq l("You can find it in the bandit market, but it is EXPENSIVE.");
break;
}
next;
goto L_Research;
L_Assign:
// NOTE: Map will be destroyed after first time, MAKE SURE TO MEMORIZE.
// Or you'll need to find ANOTHER copy, but this one won't be burned.
if (getq(HurnscaldQuest_PirateCave) >= 2 && countitem(PirateTreasureMap)) {
mesc l("Should we ask about the %s before leaving?", getitemlink(PirateTreasureMap));
select
l("Ask."),
l("Don't ask.");
mes "";
if (@menu == 1) goto L_PirateMap;
}
GHQ_Assign(Bat, "Bat");
end;
L_PirateMap:
.@q = getq(HurnscaldQuest_PirateCave);
if (.@q == 2) pmap_intro();
else if (.@q == 3) pmap_intro();
else if (.@q == 4) pmap_wrong();
// IMPLICIT FALLTHROUGH
.@q = getq(HurnscaldQuest_PirateCave);
if (.@q == 5) pmap_right();
close;
function pmap_intro {
mesn;
mesq l("There's no one who knows Butterfly Caves better than me, child. These are MY caves, after all.");
next;
mesn;
mesc l("%s makes a confused face.", .name$);
mesq l("But your silly map must be wrong. These passages do not connect themselves like this, but this should not be an issue, as they're not relevant.");
next;
mesn;
mesq l("To reach this place... You just need to follow the path after the waterfall. Come back to me after that.");
compareandsetq HurnscaldQuest_PirateCave, 2, 3;
close;
}
function pmap_wrong {
mesn;
mesq l("Welcome back, children. So, how was your treasure hunt? Did you manage to find the path?");
next;
mesn strcharinfo(0);
select
l("NO!"),
l("Not at all!"),
l("You barely know these caves."),
l("You send me the wrong way.");
mes "";
mesn;
mesq l("Calm down, don't get mad! I was wrong in trusting this map, it is definitely faulty. Lemme see it again...");
if (!countitem(PirateTreasureMap)) close; // Last chance...
next;
mesn;
mesc l("%s eyebrow furrows, as he brings the map closer to a torch.", .name$);
mesq l("These paths are all wrong! What is the problem with this map?!");
next;
mesc l("The map starts getting darker with the heat of the flame, and curiously, new shapes starts to form...");
next;
mesn;
mesq l("Aha! So that's what it was! The map was hiding its secrets in drawings made with acid. An old technique... But a very useful one.");
next;
delitem PirateTreasureMap, 1;
setq HurnscaldQuest_PirateCave, 5;
getexp 0, 600;
mesc l("Suddenly, the map %s!", col(l("burst up in flames"), 1));
mesc l("Seems like Arkim held it too close to the flame...");
next;
mesn;
mes "\""+l("I have some good and some bad news for you.");
mes l("The good one, is that now I know the right path.");
mes l("The bad one, is that you'll have to guide yourself without the map.")+"\"";
next;
return;
}
function pmap_right {
mes ".:: " + l("Direction for Pirate Caves") + " ::.";
mes "1. "+l("Go through the waterfall path.");
mes "2. "+l("Use the abandoned passage to the north... Usually, no one uses it.");
mes "3. "+l("After that, follow the path until you reach a great chamber...");
mes "4. "+l("Then take the middle entrance.");
next;
mesn;
mesq l("I wish you good luck. I remember these caves... They're dangerous. Make sure to be prepared before venturing further.");
close;
}
OnInit:
.sex=G_MALE;
.distance=5;
$@ARKIM_QTIMER=gettimeparam(GETTIME_DAYOFMONTH);
$@ARKIM_TIMER=gettimetick(2);
$@ARKIM_TIMER-=gettime(1);
$@ARKIM_TIMER-=gettime(2)*60;
$@ARKIM_TIMER-=gettime(3)*3600;
end;
OnHour00:
$@ARKIM_QTIMER=gettimeparam(GETTIME_DAYOFMONTH);
$@ARKIM_TIMER=gettimetick(2);
end;
}