// This file is part of the Tutorial
// Author: Jenalya, Wushin
-|script|#ValonConfig|-1,
{
end;
OnInit:
set $@ValonStartBit, (1 << 6);
set $@ValonEndBit, (1 << 7);
setarray $@ValonMob, 1002,1050,1046,1003;
setarray $@ValonMobName$, "Maggots","House Maggots","Tame Scorpions","Scorpion";
setarray $@ValonMobCnt, 10,5,3,1;
end;
}
function|script|ValonState|,
{
set @valon_mob, ((TUTORIAL & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
set @valon_count, ((TUTORIAL & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT);
set @valon_start, (TUTORIAL & $@ValonStartBit);
set @valon_end, (TUTORIAL & $@ValonEndBit);
return;
}
function|script|AddValonMobMask|,
{
set @valon_tmp, (@valon_mob + 1);
if (@valon_tmp > 15)
set @valon_tmp, 15;
set TUTORIAL, (TUTORIAL & ~(NIBBLE_2_MASK) | (@valon_tmp << NIBBLE_2_SHIFT));
set @valon_tmp, 0;
return;
}
function|script|ResetValonCntMask|,
{
set TUTORIAL, (TUTORIAL & ~(NIBBLE_3_MASK) | (0 << NIBBLE_3_SHIFT));
return;
}
function|script|AddValonCntMask|,
{
set @valon_tmp, (@valon_count + 1);
if (@valon_tmp > 15)
set @valon_tmp, 15;
set TUTORIAL, (TUTORIAL & ~(NIBBLE_3_MASK) | (@valon_tmp << NIBBLE_3_SHIFT));
set @valon_tmp, 0;
callfunc "ValonProgress";
return;
}
function|script|ValonProgress|,
{
callfunc "ValonState";
if ((@valon_start) && (!(@valon_end)))
message strcharinfo(0), $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob];
return;
}
042-1.gat,51,111,0|script|ValonDebug|156,
{
mes "[Valon Debug]";
mes "Reset?";
menu
"Yes.", L_Reset,
"No.", L_End;
L_Reset:
set TUTORIAL, (TUTORIAL & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT));
set TUTORIAL, (TUTORIAL & ~(NIBBLE_3_MASK) | (0 << NIBBLE_3_SHIFT));
set TUTORIAL, TUTORIAL &~ $@ValonStartBit;
set TUTORIAL, TUTORIAL &~ $@ValonEndBit;
mes "Reset!";
goto L_End;
L_End:
end;
OnInit:
if (!debug)
disablenpc "ValonDebug";
end;
}
042-1.gat,48,111,0|script|Valon|156,
{
callfunc "ValonState";
if (@valon_end)
goto L_QuestComplete;
if (!(@valon_start) && (@valon_count))
goto L_QuestAskAgain;
if (((@valon_start) && (!(@valon_end))) && (@valon_count >= $@ValonMobCnt[@valon_mob]))
goto L_NextMob;
if ((@valon_start) && (!(@valon_end)))
goto L_QuestStarted;
goto L_QuestAsk;
L_QuestAskAgain:
mes "[Valon]";
mes "\"Hello, Adventurer! Have you come back to help?\"";
menu
"Yes. I will help with the desert beasts.", L_Accept,
"Maybe some other time.", L_NoThanks;
L_QuestAsk:
mes "[Valon]";
mes "\"Hello!";
mes "You're looking for adventures, right?\"";
next;
mes "\"But you shouldn't underestimate this desert, it is dangerous.\"";
next;
mes "\"It's crawling with scorpions, and the heat has overcome adventurers tougher than you are.\"";
next;
mes "\"I should know I gaurd this gate from all manner of desert beasts.\"";
next;
mes "\"Maybe you would like help and earn your stripes?\"";
next;
mes "\"The Council of Wizard's does offer a reward for helping...\"";
menu
"YES!!! let me at them!", L_Accept,
"Maybe some other time.", L_NoThanks;
L_NoThanks:
callfunc "AddValonCntMask";
goto L_Close;
L_Accept:
callfunc "ResetValonCntMask";
set TUTORIAL, TUTORIAL | $@ValonStartBit;
goto L_NewMob;
L_NextMob:
getexp 40, 0;
mes "\"I see you killed all the " + $@ValonMobName$[@valon_mob] + " needed.\"";
next;
mes "\"The Wizard's thank thee as well.\"";
set Zeny, Zeny + 25;
next;
callfunc "ResetValonCntMask";
callfunc "AddValonMobMask";
callfunc "ValonState";
if (@valon_mob == getarraysize($@ValonMob))
goto L_QuestOver;
goto L_NewMob;
L_NewMob:
mes "\"Let's see whats on the list. Ah ok, I need you to kill me " + $@ValonMobCnt[@valon_mob] + " " + $@ValonMobName$[@valon_mob] + "\"";
next;
mes "\"I'll be waiting here, come back and see after you've killed those mobs.\"";
goto L_Close;
L_QuestStarted:
mes "[Valon]";
mes "Hail adventurer! You are well on your way to mastering the beasts of the desert.\"";
next;
mes "\"You need to kill " + $@ValonMobName$[@valon_mob] + ": " + @valon_count + "/" + $@ValonMobCnt[@valon_mob] + "\"";
next;
mes "\"Come back and see me when the job is done.\"";
goto L_Close;
L_QuestOver:
mes "[Valon]";
mes "\"Thanks once again for helping with the monsters in the desert.\"";
getexp 50, 0;
set TUTORIAL, TUTORIAL | $@ValonEndBit;
goto L_Close;
L_QuestComplete:
mes "[Valon]";
mes "\"Thanks once again for helping with the monsters in the desert.\"";
goto L_Close;
L_Close:
close;
}