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 find the missing Music Scores. I know where you can find them.";
mes "There's certain people who have them, I can't tell you EXACTLY where they're at, but...";
next;
mes .npcname$;
mes "Locations:";
.@size = 4;
for ( .@i = 1; .@i <= .@size; .@i++ ) {
mes ""+.@i+") "+$q_loc$[.@i]+"";
}
close;
}
mes .npcname$;
mes "Wow you seemed to have gathered all of the Music Scores!";
next;
if ( Weight >= MaxWeight/50 )
{
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;
delitem 505, 4; // Deletes the 4 Music Scores.
getitem 509, 100; // Gets reward.
BQComplete++; // Completes the Quest.
end;
OnInit:
.npcname$ = "[Bard]";
end;
}
prontera,150,150,4 script Quest1 1_M_BARD,{
if ( Class != Job_Bard ) // Checks to see if you are bard or not.
{
mes .npcname$;
mes "Sorry but you need to be a Bard to talk to me.";
close;
}
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 ( !BQTalked ) // 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.";
BQTalked++;
close;
} else
if ( BQTalked ) // 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,{
end;
OnInit:
getmapxy(.@map$,.@x,.@y,1);
$q_loc$[2] = .@map$+"|"+.@x+"|"+.@y;
}
prontera,150,153,4 script Quest3 1_M_BARD,{
end;
OnInit:
getmapxy(.@map$,.@x,.@y,1);
$q_loc$[3] = .@map$+"|"+.@x+"|"+.@y;
}
prontera,150,154,4 script Quest4 1_M_BARD,{
end;
OnInit:
getmapxy(.@map$,.@x,.@y,1);
$q_loc$[4] = .@map$+"|"+.@x+"|"+.@y;
}