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 ( 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,{
if ( BQuest2 ) {
mes .npcname$;
mes "You fulfilled my requests, thanks a ton "+strcharinfo(0)+"!";
close;
}
if ( !BQ2Start ) {
BQ2Start++;
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.";
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 ( !BQ2Start ) { // 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,{
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;
}