prontera,150,151,4 script Bard 1_M_BARD,{
mes .npcname$;
if ( BQComplete ) // If completed.
{
mes ("You completed the Bard Quest.");
close();
}
if ( !BQuest1 || !BQuest2 || !BQuest3 || !BQuest4 )
{ // Checks to see if you haven't completed all 4 quests yet.
mes ("Please help me. Not really me, my friend. I know where you can find them. \r");
mes ("Once you complete all 4 of their tasks, seek me again.");
next;
mes .npcname$;
mes ("Locations:");
.@size = 4;
for ( .@i = 1; .@i <= .@size; .@i++ ) {
mes (""+.@i+") "+$q_loc$[.@i]+"");
}
close();
}
mes ("Wow you seemed to have gathered all of the Music Scores!");
next();
if ( Weight >= MaxWeight/2 )
{
mes .npcname$;
mes ("Uh oh, it seems like you have too much weight, please store some items to recieve my reward.");
close();
}
mes .npcname$;
mes ("I'll take those Music Scores off of ya!");
mes ("Here's a little something for helping me out.");
close2();
.@size = getarraysize ( .SheetsID );
for ( .@i = 1; .@i < .@size; .@i++ ) {
delitem (.SheetsID[.@i], 1); // Deletes the 4 Music Scores.
}
getitem (501, 1); // Gets reward.
BQComplete++; // Completes the Quest.
end();
OnInit:
.npcname$ = "[Bard]";
setarray .SheetsID[1],6343,6340,6342,6341;
end();
}
prontera,150,150,4 script Quest1 1_M_BARD,{
if ( BQuest1 ) // Checks to see if quest is finished or not.
{
mes .npcname$;
mes ("You have already fulfilled my request! Thanks a ton.");
close();
}
if ( !BQStart1 ) // Checks to see if you've never talked to the NPC before.
{
mes ("Hello "+strcharinfo(0)+".");
mes ("I was wondering if you are willing to help me locate some items.");
mes ("It's all for a greater purpose.");
next();
mes .npcname$;
mes ("Here's what we need:");
.@size = getarraysize( .ItemList ); // gets array size of the Item List.
for ( .@i = 1; .@i <= .@size; .@i++ ) // loops
{
mes (""+getitemname( .ItemList[.@i] )+" x "+.ItemAm[.@i]+".");
}
next();
mes .npcname$;
mes ("Come talk to me again if you wish to see the list of items or if you have gathered them all.");
BQStart1++;
close();
} else
if ( BQStart1 ) // Checks to see if you've already talked to the NPC already.
{
.@size = getarraysize( .ItemList );
for ( .@i = 1; .@i <= .@size; .@i++ )
{
if( countitem( .ItemList[.@i] ) < .ItemAm[.@i] ) // Output what you need and what you have in your inventory.
{
mes .npcname$;
mes ("Sorry but you have "+getitemname(.ItemList[.@i])+" x "+countitem(.ItemList[.@i])+".");
mes ("You need "+getitemname(.ItemList[.@i])+" x "+.ItemAm[.@i]+".");
close();
}
}
mes .npcname$;
mes ("You have all the items!");
close2();
BQuest1++;
.@size = getarraysize( .ItemList );
for ( .@i = 1; .@i <= .@size; .@i++ )
{
delitem (.ItemList[.@i], .ItemAm[.@i]);
}
end();
}
end();
OnInit:
.npcname$ = "[Quest1]";
setarray .ItemList[1],501,502,503;
setarray .ItemAm[1],1,2,3;
getmapxy ( .@map$,.@x,.@y,1 );
$q_loc$[1] = .@map$+"|"+.@x+"|"+.@y;
end();
}
prontera,150,152,4 script Quest2 1_M_BARD,{
if ( BQuest2 ) {
mes .npcname$;
mes ("You fulfilled my requests, thanks a ton "+strcharinfo(0)+"!");
close();
}
if ( !BQStart2 ) {
BQStart2++;
mes .npcname$;
mes ("Hey there "+strcharinfo(0)+".");
mes ("There's something I gotta tell ya'.");
next();
mes .npcname$;
mes ("I would like it if you could possibly kill 10 of any of the following monsters for me.");
mes ("Come back if you ever want to see the list of monsters again!");
next();
MobListing:
for ( .@i = 1; .@i <= getarraysize(.MobID); .@i++ )
{
mes (""+strmobinfo(1,.MobID[.@i])+"");
}
close();
} else
mes .npcname$;
mes ("Here's the list of the mobs again.");
callsub ("MobListing");
end();
OnNPCKillEvent:
if ( BQuest2 ) { // Checks if the quest is finished.
end();
}
if ( !BQStart2 ) { // Checks if you have talked to the NPC first to initiate the KillEvent.
end();
}
.@killedRID = killedrid;
.@size = getarraysize( .MobID );
for ( .@i = 1; .@i <= .@size; .@i++ ) {
if ( .@killedRID == .MobID[.@i] ) {
BQMobCount++;
dispbottom ("[Bard Quest] Obtained ("+BQMobCount+")/("+.BQMaxMob+") Mob kills.");
}
}
if ( BQMobCount >= .BQMaxMob ) {
sleep2 (1000);
dispbottom ("[Bard Quest] Mob Kill Completed.");
BQuest2++;
end();
}
end();
OnInit:
.npcname$ = "[Bard Quest 2]";
setarray .MobID[1],1002,1004,1005;
.BQMaxMob = 10;
getmapxy( .@map$,.@x,.@y,1 );
$q_loc$[2] = .@map$+"|"+.@x+"|"+.@y;
end();
}
prontera,150,153,4 script Quest3 1_M_BARD,{
if ( BQuest3 ) {
mes .npcname$;
mes ("You've already fulfilled my request, thanks a ton "+strcharinfo(0)+"!");
close();
}
if (!BQStart3 )
{
mes .npcname$;
mes ("Hello "+strcharinfo(0)+".");
mes ("I'll help you get that Bard Hat if you can answer a couple questions!");
next();
mes .npcname$;
.@QSize = getarraysize( .QList$ );
for ( .@i = 1; .@i < .@QSize; .@i++ )
{
mes (""+.@i+") "+.QList$[.@i]);
}
next();
mes .npcname$;
mes ("Come and talk to me again when you feel you're prepared to answer my riddles.");
BQStart3++;
close();
}
mes .npcname$;
mes ("So are you prepared to answer my riddles?");
next();
switch(select("Yes please.","No thanks."))
{
case 1:
.@QSize = getarraysize( .QList$ );
for ( .@i = 1; .@i < .@QSize; .@i++) {
mes .npcname$;
mes (""+.@i+") "+.QList$[.@i]);
input .@input$;
if ( .@input$ != .AList$[.@i]) {
mes ("Seem's like you put in a wrong answer for that question.");
mes ("Better luck next time.");
close();
}
next();
}
mes .npcname$;
mes ("Wow you got all of them correct!");
mes ("I guess I don't have the oldest tricks in the book!");
emotion(e_sad);
BQuest3++;
close();
case 2:
close();
}
OnInit:
.npcname$ = "[ Bard Quest 3 ]";
setarray .QList$[1]
,"How much is 1+1"
,"How much is 2+2"
,"How many fingers am I holding up?"
,"What's my name?"
,"What is our maintown?";
setarray .AList$[1]
,"2"
,"4"
,"5"
,""+strnpcinfo(1)+""
,"Prontera|prontera";
getmapxy( .@map$,.@x,.@y,1 );
$q_loc$[3] = .@map$+"|"+.@x+"|"+.@y;
end();
}
prontera,150,154,4 script Quest4 1_M_BARD,{
end();
OnInit:
getmapxy( .@map$,.@x,.@y,1 );
$q_loc$[4] = .@map$+"|"+.@x+"|"+.@y;
end();
}