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; }