Example of outter NPC starts Mini-Dungeon:
Initialize Quest Variable to 7 when quest accepted.
Port into given location based on day of the week.
Maaain_Map,x,y,direction script Weekly Event Host::host_test NPC_ID,{
mes "[Weekly Quest Host]";
mes "Greetings, please ask.";
mes "{I am here to...}";
menu "Battle Foes",battle,"Turn In Markers",prize,"Nevermind",-;
mes "[Weekly Quest Host]";
mes "Well, another day young adventurer... another day.";
close;
battle: // warp to zone based on day
mes "[Weekly Quest Host]";
// Check the day
if (p.hasItem(item_of_day))==1) goto fail;
mes "Take care!";
p.warp(zone_of_day);
close;
fail:
mes"[Weekly Quest Host]";
mes"You have this Day's Marker already.";
close;
prize:
mes "[Weekly Quest Host]";
// Check the day
if (p.hasItem(Mon) && p.hasItem(Tue) && ... ) goto win;
mes "Hmm... something is not quite right...";
close;
win:
mes "[Weekly Quest Host]";
mes "Congratulations!";
next;
p.withdrawItem(Mon)//repeat for all days
p.giveItem(Prize0//calculate prize from random table?
mes "[Weekly Quest Host]";
mes "Take care!";
close;
}
Example of NPC inside Mini-Dungeon:
(Cloned to Each Day of the Week)
Monday_Map,x,y,direction script Weekly Quest Paige::inside_test NPC_ID,{
mes "[Paige Mortimer]";
mes "Ah, let me pull up your file.";
if (p.hasItem(Monday_Item)==1) goto complete; // player has done this days challenge
mes "Looks like you have not completed your Monday challenge."; // if not...
next;
mes "[Paige Mortimer]";
mes "What say you?"; // ask if ready
menu "I am here to fight!",fight,"Please take me out!",-;
mes "Well, goodbye."; // not ready? outted.
p.warp(Home);
close;
fight: // ready
mes "[Paige Mortimer]";
mes "Well then, let me summon the competitor!";
map.summon(Monday); // summon mob
next;
mes "[Paige Mortimer]";
mes "Goodluck!";
close;
complete:
mes "You have already completed this dungeon.";
p.warp(Home);
close;
}