Jump to content
  • 1

Upgrade Annieruru Mission Board?


Dolphin86

Question


  • Group:  Members
  • Topic Count:  252
  • Topics Per Day:  0.06
  • Content Count:  700
  • Reputation:   15
  • Joined:  01/07/12
  • Last Seen:  

hye guys, i would request if anyone or the author Annieruru herself could remake the old Mission Board?

as the old ones dint have access to preview the item reward, and yes i do know emistry did manage to make it but it require SQL

i would prefer without sql, just plain script, here are the script, and if i did repost this script without permission from Annieruru before-handed, i am deeply apologize

mod have full rights to remove or delete this post

//	~~~~~ Please use this latest int__ function that support negative numbers ~~~~~
function	script	int__	{
	.@i = getstrlen( .@str$ = getarg(0) ) -3;
	.@is_negative = charat( .@str$, 0 ) == "-";
	while ( .@i > .@is_negative ) {
		.@str$ = insertchar( .@str$, ",", .@i );
		.@i -= 3;
	}
	return .@str$;
}

//===== eAthena Script ============================================
//= Mission Board
//===== By: =======================================================
//= AnnieRuru
//===== Current Version: ==========================================
//= 2.4b
//===== Compatible With: ==========================================
//= hercules & rathena 2018-04-15
//===== Description: ==============================================
//= allow admin to setup their own quests dynamically
//===== Topic =====================================================
//= http://herc.ws/board/topic/15578-mission-board-only-once-doesnt-work/
//===== Additional Comments: ======================================
//= very outdated script ... but yet ... its still a popular script ...
//=================================================================

-	script	mission board#127::ms_b_	-1,{
	mes "["+ strnpcinfo(1) +"]";
	if ( atoi( strnpcinfo(2) ) <= 0 || atoi( strnpcinfo(2) ) > 127 ) {
		mes "This board is currently down";
		mes "Please report to GM";
		mes "Reason: Invalid NPC ID";
		close;
	}
	if ( .duplicate_id ) {
		set .@size, getarraysize(.duplicate_id);
		for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) {
			if ( .duplicate_id[.@i] == atoi( strnpcinfo(2) ) ) {
				mes "This board is currently down";
				mes "Please report to GM";
				mes "Reason: duplicate NPC ID#"+ strnpcinfo(2);
				close;
			}
		}
	}
	if ( .loading == 1 ) {
		mes "The board is currently loading mission data, please try again!";
		close;
	}
	if ( @ms_b_loading == 1 ) {
		mes "The board is currently loading player data";
		mes "Please wait";
		close;
	}
	mes "The Mission Board will instruct you to hunt certain monsters or items. Completing missions will result into rewards such as EXP and Midgard Coins";
	next;
	mes "["+ strnpcinfo(1) +"]";
	mes "Every player may pick up to ^FF00004^000000 missions from the Mission Board.";
	mes "Missions that end with '^FF0000Slayer^000000' are kill count missions and those that end with '^FF0000Collector^000000' are item gathering missions.";
	next;
	mes "["+ strnpcinfo(1) +"]";
	mes "^FF0000Please remember that, when accepting a mission, you need to be within the assigned level range when you ACCEPT and SUBMIT it!^000000";
	set @slot, 0;
	next;
	for ( set .@i, 1; .@i <= 4; set .@i, .@i +1 ) {
		if ( getd("@ms_b_m_"+ .@i) ) {
			if ( getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@i +"[0]") +"$[0]") == "" ) {
				dispbottom "Mission Board: Your Mission#"+ .@i +" has been deleted because it is no longer available.";
				deletearray getd("@ms_b_m_"+ .@i);
				setd "ms_b_m_"+ .@i +"$", "";
				deltimer "ms_b_::OnQuest"+ .@i +"TimeUp";
			}
			else if ( getd("@ms_b_m_"+ .@i +"[1]") && getd("@ms_b_m_"+ .@i +"[1]") <= gettimetick(2) ) {
				dispbottom "Mission #"+ .@i +": "+ getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@i +"[0]") +"$[0]") +" has expired!";
				deletearray getd("@ms_b_m_"+ .@i);
				setd "ms_b_m_"+ .@i +"$", "";
				deltimer "ms_b_::OnQuest"+ .@i +"TimeUp";
			}
		}
	}
	set .@size, getarraysize( getd("@ms_b_n_"+ strnpcinfo(2)) );
	for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 ) {
		if ( getd("@ms_b_n_"+ strnpcinfo(2) +"[0]") != atoi( gettimestr("%Y%m%d", 9) ) && getd(".ms_b_m_"+ getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 1 ||
			getd(".ms_b_m_"+ getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 0 ) {
				deletearray getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]"), 1;
				set .@i, .@i -1 ;
				set .@size, .@size -1;
		}
	}
	if ( getd("@ms_b_n_"+ strnpcinfo(2) +"[1]") ) {
		setd "ms_b_n_"+ strnpcinfo(2) +"$",    gettimestr("%Y%m%d", 9);
		set .@size, getarraysize( getd("@ms_b_n_"+ strnpcinfo(2) ) );
		for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
			setd "ms_b_n_"+ strnpcinfo(2) +"$", getd("ms_b_n_"+ strnpcinfo(2) +"$") +"#"+ getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]");
		setd "ms_b_n_"+ strnpcinfo(2) +"$", getd("ms_b_n_"+ strnpcinfo(2) +"$") +"#";
	}
	else
		setd "ms_b_n_"+ strnpcinfo(2) +"$", "";
	switch ( select ( "- Submit completed mission", "- Drop a mission", "- Accept a mission", ( getgmlevel() < 99 )?"":"^FF0000Administrator Settings^000000" ) ) {
		case 1:
			mes "["+ strnpcinfo(1) +"]";
			mes "Please select the mission you wish to submit:";
			set @slot, select(
				"#1 "+( ( @ms_b_m_1[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_1[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#2 "+( ( @ms_b_m_2[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_2[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#3 "+( ( @ms_b_m_3[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_3[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#4 "+( ( @ms_b_m_4[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_4[0] +"$[0]"):"^FF0000Empty" )+"^000000");
			if ( getd("@ms_b_m_"+ @slot +"[0]") == 0 ) {
				mes "It appears that you have selected a empty slot!";
				close;
			}
			callsub L_showprogress;
			mes "Are you sure you want to submit the selected mission?";
			next;
			if ( select ( "Yes", "No" ) == 2 ) close;
			mes "["+ strnpcinfo(1) +"]";
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[11]") != atoi( strnpcinfo(2) ) ) {
				mes "Please submit this mission to:";
				mes "^0000FF"+ .ms_b_name$[ getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[11]") ] +"^000000";
				close;
			}
			set .@size, getarraysize( getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
			for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
				if ( getd("@ms_b_m_"+ @slot +"["+( .@i/2 +2 )+"]") < getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1)+"]") ) {
					mes "You do not meet the requirements to submit this mission. Please submit the mission once you've killed the required amount of monsters!";
					close;
				}
			}
			set .@size, getarraysize( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
			for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
				if ( countitem( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]") )  < getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1)+"]") ) {
					mes "You do not meet the requirements to submit this mission. Please submit this mission once you've gathered the required item(s)!";
					close;
				}
			}
			if ( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") ) ) {
				getinventorylist;
				deletearray @inventorylist_id, @inventorylist_count;
				deletearray @inventorylist_amount, @inventorylist_count;
				deletearray @inventorylist_equip, @inventorylist_count;
				deletearray @inventorylist_refine, @inventorylist_count;
				deletearray @inventorylist_identify, @inventorylist_count;
				deletearray @inventorylist_attribute, @inventorylist_count;
				deletearray @inventorylist_card1, @inventorylist_count;
				deletearray @inventorylist_card2, @inventorylist_count;
				deletearray @inventorylist_card3, @inventorylist_count;
				deletearray @inventorylist_card4, @inventorylist_count;
				set .@size, getarraysize( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
					set .@itemWeight, .@itemWeight + getiteminfo( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]"), 6 ) * getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]");
				}
				if ( @inventorylist_count > 95 || Weight + .@itemWeight > MaxWeight ) {
					mes "It appears that you are overWeight, please clean up some inventory space.";
					set @inventorylist_count, 0;
					close;
				}
				set @inventorylist_count, 0;
			}
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[3]") && ( BaseLevel < getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[3]") || BaseLevel > getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[4]") ) ) {
				mes "You're not within the level range to submit this mission!";
				close;
			}
			mes "Congratulations, the mission has been completed!";
			mes " ";
			set .@size, getarraysize( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
			for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
				delitem getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]"), getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1)+"]");
			mes "[Rewards]";
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[7]") ) {
				mes "Base Exp : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[7]") ) +"^000000";
				dispbottom "Mission Reward - Base EXP : "+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[7]") );
				set BaseExp, BaseExp + getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[7]");
			}
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[8]") ) {
				mes "Job Exp : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[8]") ) +"^000000";
				dispbottom "Mission Reward - Job EXP : "+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[8]") );
				set JobExp, JobExp + getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[8]");
			}
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[9]") ) {
				mes "Zeny : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[9]") ) +"^000000";
				dispbottom "Mission Reward - "+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[9]") ) +" Zeny";
				set Zeny, Zeny + getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[9]");
			}
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[10]") ) {
				mes "Cash Point : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[10]") ) +"^000000";
				dispbottom "Mission Reward - "+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[10]") ) +" Cash Points";
				set #CASHPOINTS, #CASHPOINTS + getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[10]");
			}
			set .@size, getarraysize( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
			for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
				mes "Item : ^0000FF"+ getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]") +" "+ getitemname( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]") ) +"^000000";
				getitem getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]"), getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]");
			}
			if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[6]") ) {
				set .@size, getarraysize( getd("@ms_b_n_"+ strnpcinfo(2) ) );
				setd "@ms_b_n_"+ strnpcinfo(2) +"[0]", gettimestr("%Y%m%d", 9);
				setd "@ms_b_n_"+ strnpcinfo(2) +"["+ .@size +"]", getd("@ms_b_m_"+ @slot +"[0]");
				setd "ms_b_n_"+ strnpcinfo(2) +"$",    gettimestr("%Y%m%d", 9);
				for ( set .@i, 1; .@i <= .@size; set .@i, .@i +1 )
					setd "ms_b_n_"+ strnpcinfo(2) +"$", getd("ms_b_n_"+ strnpcinfo(2) +"$") +"#"+ getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]");
				setd "ms_b_n_"+ strnpcinfo(2) +"$", getd("ms_b_n_"+ strnpcinfo(2) +"$") +"#";
			}
			deletearray getd("@ms_b_m_"+ @slot);
			setd "ms_b_m_"+ @slot +"$", "";
			deltimer "ms_b_::OnQuest"+ @slot +"TimeUp";
			set @slot, 0;
			close;
		case 2:
			mes "["+ strnpcinfo(1) +"]";
			mes "Please select the slot with the mission that you wish to drop:";
			set @slot, select(
				"#1 "+( ( @ms_b_m_1[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_1[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#2 "+( ( @ms_b_m_2[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_2[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#3 "+( ( @ms_b_m_3[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_3[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#4 "+( ( @ms_b_m_4[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_4[0] +"$[0]"):"^FF0000Empty" )+"^000000");
			if ( getd("@ms_b_m_"+ @slot +"[0]") == 0 ) {
				mes "It appears that you have selected a empty slot!";
				close;
			}
			callsub L_showprogress;
			mes "Are you sure that you want to give up this mission?";
			mes "^777777NOTE: Any progress you've made for this mission will be lost!^000000";
			next;
			if ( select ( "Yes", "No" ) == 2 ) close;
			mes "["+ strnpcinfo(1) +"]";
			mes "^0000FF"+ getd("$ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"$[0]") +"^000000";
			mes " ";
			mes "Mission has given up successfully";
			deletearray getd("@ms_b_m_"+ @slot);
			setd "ms_b_m_"+ @slot +"$", "";
			deltimer "ms_b_::OnQuest"+ @slot +"TimeUp";
			set @slot, 0;
			close;
		case 3:
			mes "["+ strnpcinfo(1) +"]";
			mes "Please select a (empty) slot:";
			if ( getd(".ms_b_n_"+ strnpcinfo(2) ) == 0 ) {
				mes "There is no mission available";
				close;
			}
			set .@slot, select(
				"#1 "+( ( @ms_b_m_1[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_1[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#2 "+( ( @ms_b_m_2[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_2[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#3 "+( ( @ms_b_m_3[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_3[0] +"$[0]"):"^FF0000Empty" )+"^000000",
				"#4 "+( ( @ms_b_m_4[0] )?"^0000FF"+ getd("$ms_b_m_"+ @ms_b_m_4[0] +"$[0]"):"^FF0000Empty" )+"^000000");
			if ( getd("@ms_b_m_"+ .@slot +"[0]") ) {
				mes "The slot that you've selected is already taken by another mission. Please select another (empty) slot!";
				close;
			}
			mes "Select a mission to accept below:";
			mes "^00CC00Green missions^000000 are within your level range and can be accepted.";
			mes "^FF0000Red missions^000000 can not be accepted. The reason(s) can be: you're not within the level range or the daily cool-down delay hasn't passed yet.";
			if ( basejob == Job_Novice || basejob == Job_SuperNovice ) set .@basejob, pow(2,0);
			else if ( basejob == Job_Swordman ) set .@basejob, pow(2,1);
			else if ( basejob == Job_Mage ) set .@basejob, pow(2,2);
			else if ( basejob == Job_Archer ) set .@basejob, pow(2,3);
			else if ( basejob == Job_Acolyte ) set .@basejob, pow(2,4);
			else if ( basejob == Job_Merchant ) set .@basejob, pow(2,5);
			else if ( basejob == Job_Thief ) set .@basejob, pow(2,6);
			else if ( basejob == Job_Knight ) set .@basejob, pow(2,7);
			else if ( basejob == Job_Priest ) set .@basejob, pow(2,8);
			else if ( basejob == Job_Wizard ) set .@basejob, pow(2,9);
			else if ( basejob == Job_Blacksmith ) set .@basejob, pow(2,10);
			else if ( basejob == Job_Hunter ) set .@basejob, pow(2,11);
			else if ( basejob == Job_Assassin ) set .@basejob, pow(2,12);
			else if ( basejob == Job_Crusader ) set .@basejob, pow(2,13);
			else if ( basejob == Job_Monk ) set .@basejob, pow(2,14);
			else if ( basejob == Job_Sage ) set .@basejob, pow(2,15);
			else if ( basejob == Job_Rogue ) set .@basejob, pow(2,16);
			else if ( basejob == Job_Alchemist ) set .@basejob, pow(2,17);
			else if ( basejob == Job_Bard || basejob == Job_Dancer ) set .@basejob, pow(2,18);
			else if ( basejob == Job_Taekwon ) set .@basejob, pow(2,19);
			else if ( basejob == Job_Star_Gladiator ) set .@basejob, pow(2,20);
			else if ( basejob == Job_Soul_Linker ) set .@basejob, pow(2,21);
			else if ( basejob == Job_Gunslinger ) set .@basejob, pow(2,22);
			else if ( basejob == Job_Ninja ) set .@basejob, pow(2,23);
			next;
			while (1) {
				set .@menu$, "";
				set .@i, 0;
				set .@size1, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2)) );
				set .@size2, getarraysize( getd("@ms_b_n_"+ strnpcinfo(2)) );
				while ( .@i < .@size1 ) {
					set .@j, 1;
					while ( .@j < .@size2 && getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@j +"]") != getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") )
						set .@j, .@j +1 ;
					set .@color$, "^00AA00";
					if ( .@j != .@size2 && .@size2 ||
						@ms_b_m_1[0] == getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") ||
						@ms_b_m_2[0] == getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") ||
						@ms_b_m_3[0] == getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") ||
						@ms_b_m_4[0] == getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") ||
						getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[3]") && ( BaseLevel < getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[3]") || BaseLevel > getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[4]") ) ||
						getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[2]") && getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[2]") & .@basejob == 0 )
						set .@color$, "^FF0000";
					set .@menu$, .@menu$ + .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"$") +":";
					set .@i, .@i +1 ;
				}
				set .@menu, select(.@menu$) -1;
				set .@m_id, getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu +"]");
				mes "["+ strnpcinfo(1) +"]";
				mes "^0000FF"+ getd("$ms_b_m_"+ .@m_id +"$[0]") +"^000000";
				mes "Description: ^0000FF"+ getd("$ms_b_m_"+ .@m_id +"$[1]") +"^000000";
				if ( getd(".ms_b_m_"+ .@m_id +"[6]") ) {
					for ( set .@i, 1; .@i < .@size2; set .@i, .@i +1 ) {
						if ( getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") == .@m_id ) break;
					}
					mes "Status : "+( ( .@i == .@size2 || getd("@ms_b_n_"+ strnpcinfo(2)) == 0 )?"^FF0000Incomplete":"^00CC00Completed" )+"^000000";
				}
				mes " ";
				set .@size, getarraysize( getd(".ms_b_t_"+ .@m_id) );
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					mes "Require Mobs : ^0000FF"+ getd(".ms_b_t_"+ .@m_id +"["+ (.@i +1) +"]") +" "+ getmonsterinfo( getd(".ms_b_t_"+ .@m_id +"["+ .@i +"]") , 0) +"^000000";
				set .@size, getarraysize( getd(".ms_b_ir_"+ .@m_id) );
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					mes "Require Items : ^0000FF"+ getd(".ms_b_ir_"+ .@m_id +"["+ (.@i +1) +"]") +" "+ getitemname( getd(".ms_b_ir_"+ .@m_id +"["+ .@i +"]") ) +"^000000";
				mes " ";
				if ( getd(".ms_b_m_"+ .@m_id +"[6]") || getd(".ms_b_m_"+ .@m_id +"[3]") || getd(".ms_b_m_"+ .@m_id +"[5]") || getd(".ms_b_m_"+ .@m_id +"[2]") ) {
					mes "[^FF0000Limitations^000000]";
					if ( getd(".ms_b_m_"+ .@m_id +"[6]") )
						mes "Can do : "+( ( getd(".ms_b_m_"+ .@m_id +"[6]") == 1 )?"^00CC00Everyday":"^FF0000Only Once" )+"^000000";
					if ( getd(".ms_b_m_"+ .@m_id +"[3]") )
						mes "Base Level :"+( ( getd(".ms_b_m_"+ .@m_id +"[3]") )?"  ^0000FF"+ getd(".ms_b_m_"+ .@m_id +"[3]") +( ( getd(".ms_b_m_"+ .@m_id +"[3]") != getd(".ms_b_m_"+ .@m_id +"[4]") )?"~"+ getd(".ms_b_m_"+ .@m_id +"[4]"):"" )+"^000000":"" );
					if ( getd(".ms_b_m_"+ .@m_id +"[5]") )
						mes "Time Limit : ^FF0000"+( ( getd(".ms_b_m_"+ .@m_id +"[5]") /60 )?getd(".ms_b_m_"+ .@m_id +"[5]") /60 +" hour"+( ( getd(".ms_b_m_"+ .@m_id +"[5]") %60 )?" ":"" ):"" )+( ( getd(".ms_b_m_"+ .@m_id +"[5]") %60 )?getd(".ms_b_m_"+ .@m_id +"[5]") %60 +" min":"" )+"^000000";
					if ( getd(".ms_b_m_"+ .@m_id +"[2]") ) {
						deletearray .@joblimit;
						for ( set .@i, 0; .@i < 24; set .@i, .@i +1 ) {
							if ( getd(".ms_b_m_"+ .@m_id +"[2]") & pow( 2, .@i ) ) {
								set .@joblimit[ getarraysize(.@joblimit) ], .@i +1;
							}
						}
						set .@joblimit$, .jobname$[ .@joblimit[0] -1 ];
						set .@size, getarraysize(.@joblimit);
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
							set .@joblimit$, .@joblimit$ +", "+ .jobname$[ .@joblimit[.@i] -1 ];
						mes "Job Limit : ^00CC00"+ .@joblimit$ +"^000000";
					}
					mes " ";
				}
				mes "[^009900Rewards^000000]";
				if ( getd(".ms_b_m_"+ .@m_id +"[7]") )
					mes "Base Exp : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ .@m_id +"[7]") ) +"^000000";
				if ( getd(".ms_b_m_"+ .@m_id +"[8]") )
					mes "Job Exp : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ .@m_id +"[8]") ) +"^000000";
				if ( getd(".ms_b_m_"+ .@m_id +"[9]") )
					mes "Zeny : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ .@m_id +"[9]") ) +"^000000";
				if ( getd(".ms_b_m_"+ .@m_id +"[10]") )
					mes "Cash Point : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ .@m_id +"[10]") ) +"^000000";
				set .@size, getarraysize( getd(".ms_b_ia_"+ .@m_id ) );
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					mes "Item : ^0000FF"+ getd(".ms_b_ia_"+ .@m_id +"["+ (.@i +1) +"]") +" "+ getitemname( getd(".ms_b_ia_"+ .@m_id +"["+ .@i +"]") ) +"^000000";
				next;
				if ( select ( "- Accept this mission", "- Pick another mission" ) == 1 ) {
					for ( set .@i, 1; .@i < .@size2; set .@i, .@i +1 ) {
						if ( getd("@ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") == .@m_id ) {
							mes "["+ strnpcinfo(1) +"]";
							mes "It appears that you have already completed this mission. This mission can either only be completed once, or the daily cool-down delay hasn't passed yet!";
							set .@break, 1;
							next;
							break;
						}
					}
					if ( .@break == 0 && ( @ms_b_m_1[0] == .@m_id || @ms_b_m_2[0] == .@m_id || @ms_b_m_3[0] == .@m_id || @ms_b_m_4[0] == .@m_id ) ) {
						mes "["+ strnpcinfo(1) +"]";
						mes "You already taken this mission";
						set .@break, 1;
						next;
					}
					if ( .@break == 0 && getd(".ms_b_m_"+ .@m_id +"[3]") && ( BaseLevel < getd(".ms_b_m_"+ .@m_id +"[3]") || BaseLevel > getd(".ms_b_m_"+ .@m_id +"[4]") ) ) {
						mes "["+ strnpcinfo(1) +"]";
						mes "You're not within the level range to accept this mission!";
						set .@break, 1;
						next;
					}
					if ( .@break == 0 && getd(".ms_b_m_"+ .@m_id +"[2]") ) {
						if ( getd(".ms_b_m_"+ .@m_id +"[2]") & .@basejob == 0 ) {
							mes "["+ strnpcinfo(1) +"]";
							mes "Your current job class is not allowed to do this mission";
							set .@break, 1;
							next;
						}
					}
					if ( .@break == 0 ) break;
				}
				set .@break, 0;
			}
			mes "["+ strnpcinfo(1) +"]";
			mes "You have accepted the following mission:";
			mes "^0000FF"+ getd("$ms_b_m_"+ .@m_id +"$[0]") +"^000000";
			if ( getd(".ms_b_m_"+ .@m_id +"[5]") ) {
				mes "Time Left : ^FF0000"+( ( getd(".ms_b_m_"+ .@m_id +"[5]") /60 )?getd(".ms_b_m_"+ .@m_id +"[5]") /60 +" hour"+( ( getd(".ms_b_m_"+ .@m_id +"[5]") %60 )?" ":"" ):"" )+( ( getd(".ms_b_m_"+ .@m_id +"[5]") %60 )?getd(".ms_b_m_"+ .@m_id +"[5]") %60 +" min":"" )+"^000000";
				addtimer getd(".ms_b_m_"+ .@m_id +"[5]") * 60 * 1000, "ms_b_::OnQuest"+ .@slot +"TimeUp";
				setd "@ms_b_m_"+ .@slot +"[1]", gettimetick(2) + getd(".ms_b_m_"+ .@m_id +"[5]") * 60;
			}
			setd "@ms_b_m_"+ .@slot +"[0]", .@m_id;
			setd "ms_b_m_"+ .@slot +"$", getd("@ms_b_m_"+ .@slot +"[0]") +"#"+ getd("@ms_b_m_"+ .@slot +"[1]");
			close;
		case 4:
			if ( getgmlevel() < 99 ) end;
			while (1) {
				mes "["+ strnpcinfo(1) +"]";
				mes "Please select an option below:";
				next;
				switch ( select ( "Setup a mission", "Edit a mission", "Remove a mission", "Swap mission order" ) ) {
					case 1:
						if ( $ms_b_id >= 99999 ) {
							mes "["+ strnpcinfo(1) +"]";
							mes "This is the end, you can't create anymore missions";
							close;
						}
						else if ( getarraysize( getd(".ms_b_n_"+ strnpcinfo(2) ) ) == 40 ) {
							mes "["+ strnpcinfo(1) +"]";
							mes "Each NPC are only allowed to setup 40 missions";
							next;
							break;
						}
						deletearray @tmp_ms_b_m_$;
						deletearray @tmp_ms_b_m_;
						deletearray @tmp_ms_b_t_;
						deletearray @tmp_ms_b_ir_;
						deletearray @tmp_ms_b_ia_;
						if ( callsub( L_setupmission, 0 ) == 0 ) {
							deletearray @tmp_ms_b_m_$;
							deletearray @tmp_ms_b_m_;
							deletearray @tmp_ms_b_t_;
							deletearray @tmp_ms_b_ir_;
							deletearray @tmp_ms_b_ia_;
							break;
						}
						set $ms_b_id, $ms_b_id +1 ;
						setd ".ms_b_n_"+ strnpcinfo(2) +"["+ getarraysize( getd(".ms_b_n_"+ strnpcinfo(2) ) ) +"]", $ms_b_id;
						setd "$ms_b_n_"+ strnpcinfo(2) +"$", getd(".ms_b_n_"+ strnpcinfo(2) +"[0]");
						set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2) ) );
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
							setd "$ms_b_n_"+ strnpcinfo(2) +"$", getd("$ms_b_n_"+ strnpcinfo(2) +"$") +"#"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]");
						set @tmp_ms_b_m_[11], strnpcinfo(2);
						copyarray getd(".ms_b_m_"+ $ms_b_id +"$"), @tmp_ms_b_m_$, 128;
						copyarray getd(".ms_b_m_"+ $ms_b_id), @tmp_ms_b_m_, 128;
						copyarray getd(".ms_b_t_"+ $ms_b_id ), @tmp_ms_b_t_, 128;
						copyarray getd(".ms_b_ir_"+ $ms_b_id ), @tmp_ms_b_ir_, 128;
						copyarray getd(".ms_b_ia_"+ $ms_b_id ), @tmp_ms_b_ia_, 128;
						setarray getd("$ms_b_m_"+ $ms_b_id +"$"),
							@tmp_ms_b_m_$[0],
							@tmp_ms_b_m_$[1],
							( ( @tmp_ms_b_m_[2] )?@tmp_ms_b_m_[2]:"" )+"#"+( ( @tmp_ms_b_m_[3] )?@tmp_ms_b_m_[3]:"" )+"#"+( ( @tmp_ms_b_m_[4] )?@tmp_ms_b_m_[4]:"" )+"#"+( ( @tmp_ms_b_m_[5] )?@tmp_ms_b_m_[5]:"" )+"#"+( ( @tmp_ms_b_m_[6] )?@tmp_ms_b_m_[6]:"" )+"#"+( ( @tmp_ms_b_m_[7] )?@tmp_ms_b_m_[7]:"" )+"#"+( ( @tmp_ms_b_m_[8] )?@tmp_ms_b_m_[8]:"" )+"#"+( ( @tmp_ms_b_m_[9] )?@tmp_ms_b_m_[9]:"" )+"#"+( ( @tmp_ms_b_m_[10] )?@tmp_ms_b_m_[10]:"" )+"#"+( ( @tmp_ms_b_m_[11] )?@tmp_ms_b_m_[11]:"" )+"#"+( ( @tmp_ms_b_m_[12] )?@tmp_ms_b_m_[12]:"" )+"#"+( ( @tmp_ms_b_m_[13] )?@tmp_ms_b_m_[13]:"" ),
							( ( @tmp_ms_b_t_[0] )?@tmp_ms_b_t_[0]:"" )+"#"+( ( @tmp_ms_b_t_[1] )?@tmp_ms_b_t_[1]:"" )+"#"+( ( @tmp_ms_b_t_[2] )?@tmp_ms_b_t_[2]:"" )+"#"+( ( @tmp_ms_b_t_[3] )?@tmp_ms_b_t_[3]:"" )+"#"+( ( @tmp_ms_b_t_[4] )?@tmp_ms_b_t_[4]:"" )+"#"+( ( @tmp_ms_b_t_[5] )?@tmp_ms_b_t_[5]:"" )+"#"+( ( @tmp_ms_b_t_[6] )?@tmp_ms_b_t_[6]:"" )+"#"+( ( @tmp_ms_b_t_[7] )?@tmp_ms_b_t_[7]:"" )+"#"+( ( @tmp_ms_b_t_[8] )?@tmp_ms_b_t_[8]:"" )+"#"+( ( @tmp_ms_b_t_[9] )?@tmp_ms_b_t_[9]:"" )+"#"+( ( @tmp_ms_b_t_[10] )?@tmp_ms_b_t_[10]:"" )+"#"+( ( @tmp_ms_b_t_[11] )?@tmp_ms_b_t_[11]:"" )+"#"+( ( @tmp_ms_b_t_[12] )?@tmp_ms_b_t_[12]:"" )+"#"+( ( @tmp_ms_b_t_[13] )?@tmp_ms_b_t_[13]:"" )+"#"+( ( @tmp_ms_b_t_[14] )?@tmp_ms_b_t_[14]:"" )+"#"+( ( @tmp_ms_b_t_[15] )?@tmp_ms_b_t_[15]:"" )+"#"+( ( @tmp_ms_b_ir_[0] )?@tmp_ms_b_ir_[0]:"" )+"#"+( ( @tmp_ms_b_ir_[1] )?@tmp_ms_b_ir_[1]:"" )+"#"+( ( @tmp_ms_b_ir_[2] )?@tmp_ms_b_ir_[2]:"" )+"#"+( ( @tmp_ms_b_ir_[3] )?@tmp_ms_b_ir_[3]:"" )+"#"+( ( @tmp_ms_b_ir_[4] )?@tmp_ms_b_ir_[4]:"" )+"#"+( ( @tmp_ms_b_ir_[5] )?@tmp_ms_b_ir_[5]:"" )+"#"+( ( @tmp_ms_b_ir_[6] )?@tmp_ms_b_ir_[6]:"" )+"#"+( ( @tmp_ms_b_ir_[7] )?@tmp_ms_b_ir_[7]:"" )+"#"+( ( @tmp_ms_b_ir_[8] )?@tmp_ms_b_ir_[8]:"" )+"#"+( ( @tmp_ms_b_ir_[9] )?@tmp_ms_b_ir_[9]:"" )+"#"+( ( @tmp_ms_b_ia_[0] )?@tmp_ms_b_ia_[0]:"" )+"#"+( ( @tmp_ms_b_ia_[1] )?@tmp_ms_b_ia_[1]:"" )+"#"+( ( @tmp_ms_b_ia_[2] )?@tmp_ms_b_ia_[2]:"" )+"#"+( ( @tmp_ms_b_ia_[3] )?@tmp_ms_b_ia_[3]:"" )+"#"+( ( @tmp_ms_b_ia_[4] )?@tmp_ms_b_ia_[4]:"" )+"#"+( ( @tmp_ms_b_ia_[5] )?@tmp_ms_b_ia_[5]:"" )+"#"+( ( @tmp_ms_b_ia_[6] )?@tmp_ms_b_ia_[6]:"" )+"#"+( ( @tmp_ms_b_ia_[7] )?@tmp_ms_b_ia_[7]:"" )+"#"+( ( @tmp_ms_b_ia_[8] )?@tmp_ms_b_ia_[8]:"" )+"#"+( ( @tmp_ms_b_ia_[9] )?@tmp_ms_b_ia_[9]:"" );
						deletearray @tmp_ms_b_m_$;
						deletearray @tmp_ms_b_m_;
						deletearray @tmp_ms_b_t_;
						deletearray @tmp_ms_b_ir_;
						deletearray @tmp_ms_b_ia_;
						mes " ";
						mes "Mission has setup successfully";
						next;
						break;
					case 2:
						mes "["+ strnpcinfo(1) +"]";
						if ( getd(".ms_b_n_"+ strnpcinfo(2) ) == 0 ) {
							mes "There is no mission available to edit.";
							next;
							break;
						}
						mes "Select a mission below to edit:";
						next;
						if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 0 ) set .@color$, "^0000FF";
						else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 1 ) set .@color$, "^00CC00";
						else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 2 ) set .@color$, "^FF0000";
						set .@menu$, "^996600"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +". "+ .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"$");
						set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2)) );
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 ) {
							if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 0 ) set .@color$, "^0000FF";
							else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 1 ) set .@color$, "^00CC00";
							else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 2 ) set .@color$, "^FF0000";
							set .@menu$, .@menu$ +":^996600"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +". "+ .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"$");
						}
						set .@menu$, .@menu$ +":^000000 - back";
						set .@menu, select(.@menu$) -1;
						if ( .@menu == .@size ) break;
						set @m_id, getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu +"]");
						deletearray @tmp_ms_b_m_$;
						deletearray @tmp_ms_b_m_;
						deletearray @tmp_ms_b_t_;
						deletearray @tmp_ms_b_ir_;
						deletearray @tmp_ms_b_ia_;
						copyarray @tmp_ms_b_m_$, getd("$ms_b_m_"+ @m_id +"$"), 128;
						copyarray @tmp_ms_b_m_, getd(".ms_b_m_"+ @m_id ), 128;
						copyarray @tmp_ms_b_t_, getd(".ms_b_t_"+ @m_id ), 128;
						copyarray @tmp_ms_b_ir_, getd(".ms_b_ir_"+ @m_id ), 128;
						copyarray @tmp_ms_b_ia_, getd(".ms_b_ia_"+ @m_id ), 128;
						if ( callsub( L_setupmission, 1 ) == 0 ) {
							deletearray @tmp_ms_b_m_$;
							deletearray @tmp_ms_b_m_;
							deletearray @tmp_ms_b_t_;
							deletearray @tmp_ms_b_ir_;
							deletearray @tmp_ms_b_ia_;
							set @m_id, 0;
							break;
						}
						copyarray getd(".ms_b_m_"+ @m_id +"$"), @tmp_ms_b_m_$, 128;
						copyarray getd(".ms_b_m_"+ @m_id), @tmp_ms_b_m_, 128;
						copyarray getd(".ms_b_t_"+ @m_id ), @tmp_ms_b_t_, 128;
						copyarray getd(".ms_b_ir_"+ @m_id ), @tmp_ms_b_ir_, 128;
						copyarray getd(".ms_b_ia_"+ @m_id ), @tmp_ms_b_ia_, 128;
						setarray getd("$ms_b_m_"+ @m_id +"$"),
							@tmp_ms_b_m_$[0],
							@tmp_ms_b_m_$[1],
							( ( @tmp_ms_b_m_[2] )?@tmp_ms_b_m_[2]:"" )+"#"+( ( @tmp_ms_b_m_[3] )?@tmp_ms_b_m_[3]:"" )+"#"+( ( @tmp_ms_b_m_[4] )?@tmp_ms_b_m_[4]:"" )+"#"+( ( @tmp_ms_b_m_[5] )?@tmp_ms_b_m_[5]:"" )+"#"+( ( @tmp_ms_b_m_[6] )?@tmp_ms_b_m_[6]:"" )+"#"+( ( @tmp_ms_b_m_[7] )?@tmp_ms_b_m_[7]:"" )+"#"+( ( @tmp_ms_b_m_[8] )?@tmp_ms_b_m_[8]:"" )+"#"+( ( @tmp_ms_b_m_[9] )?@tmp_ms_b_m_[9]:"" )+"#"+( ( @tmp_ms_b_m_[10] )?@tmp_ms_b_m_[10]:"" )+"#"+( ( @tmp_ms_b_m_[11] )?@tmp_ms_b_m_[11]:"" )+"#"+( ( @tmp_ms_b_m_[12] )?@tmp_ms_b_m_[12]:"" )+"#"+( ( @tmp_ms_b_m_[13] )?@tmp_ms_b_m_[13]:"" ),
							( ( @tmp_ms_b_t_[0] )?@tmp_ms_b_t_[0]:"" )+"#"+( ( @tmp_ms_b_t_[1] )?@tmp_ms_b_t_[1]:"" )+"#"+( ( @tmp_ms_b_t_[2] )?@tmp_ms_b_t_[2]:"" )+"#"+( ( @tmp_ms_b_t_[3] )?@tmp_ms_b_t_[3]:"" )+"#"+( ( @tmp_ms_b_t_[4] )?@tmp_ms_b_t_[4]:"" )+"#"+( ( @tmp_ms_b_t_[5] )?@tmp_ms_b_t_[5]:"" )+"#"+( ( @tmp_ms_b_t_[6] )?@tmp_ms_b_t_[6]:"" )+"#"+( ( @tmp_ms_b_t_[7] )?@tmp_ms_b_t_[7]:"" )+"#"+( ( @tmp_ms_b_t_[8] )?@tmp_ms_b_t_[8]:"" )+"#"+( ( @tmp_ms_b_t_[9] )?@tmp_ms_b_t_[9]:"" )+"#"+( ( @tmp_ms_b_t_[10] )?@tmp_ms_b_t_[10]:"" )+"#"+( ( @tmp_ms_b_t_[11] )?@tmp_ms_b_t_[11]:"" )+"#"+( ( @tmp_ms_b_t_[12] )?@tmp_ms_b_t_[12]:"" )+"#"+( ( @tmp_ms_b_t_[13] )?@tmp_ms_b_t_[13]:"" )+"#"+( ( @tmp_ms_b_t_[14] )?@tmp_ms_b_t_[14]:"" )+"#"+( ( @tmp_ms_b_t_[15] )?@tmp_ms_b_t_[15]:"" )+"#"+( ( @tmp_ms_b_ir_[0] )?@tmp_ms_b_ir_[0]:"" )+"#"+( ( @tmp_ms_b_ir_[1] )?@tmp_ms_b_ir_[1]:"" )+"#"+( ( @tmp_ms_b_ir_[2] )?@tmp_ms_b_ir_[2]:"" )+"#"+( ( @tmp_ms_b_ir_[3] )?@tmp_ms_b_ir_[3]:"" )+"#"+( ( @tmp_ms_b_ir_[4] )?@tmp_ms_b_ir_[4]:"" )+"#"+( ( @tmp_ms_b_ir_[5] )?@tmp_ms_b_ir_[5]:"" )+"#"+( ( @tmp_ms_b_ir_[6] )?@tmp_ms_b_ir_[6]:"" )+"#"+( ( @tmp_ms_b_ir_[7] )?@tmp_ms_b_ir_[7]:"" )+"#"+( ( @tmp_ms_b_ir_[8] )?@tmp_ms_b_ir_[8]:"" )+"#"+( ( @tmp_ms_b_ir_[9] )?@tmp_ms_b_ir_[9]:"" )+"#"+( ( @tmp_ms_b_ia_[0] )?@tmp_ms_b_ia_[0]:"" )+"#"+( ( @tmp_ms_b_ia_[1] )?@tmp_ms_b_ia_[1]:"" )+"#"+( ( @tmp_ms_b_ia_[2] )?@tmp_ms_b_ia_[2]:"" )+"#"+( ( @tmp_ms_b_ia_[3] )?@tmp_ms_b_ia_[3]:"" )+"#"+( ( @tmp_ms_b_ia_[4] )?@tmp_ms_b_ia_[4]:"" )+"#"+( ( @tmp_ms_b_ia_[5] )?@tmp_ms_b_ia_[5]:"" )+"#"+( ( @tmp_ms_b_ia_[6] )?@tmp_ms_b_ia_[6]:"" )+"#"+( ( @tmp_ms_b_ia_[7] )?@tmp_ms_b_ia_[7]:"" )+"#"+( ( @tmp_ms_b_ia_[8] )?@tmp_ms_b_ia_[8]:"" )+"#"+( ( @tmp_ms_b_ia_[9] )?@tmp_ms_b_ia_[9]:"" );
						deletearray @tmp_ms_b_m_$;
						deletearray @tmp_ms_b_m_;
						deletearray @tmp_ms_b_t_;
						deletearray @tmp_ms_b_ir_;
						deletearray @tmp_ms_b_ia_;
						set @m_id, 0;
						mes " ";
						mes "Mission has edited successfully";
						next;
						break;
					case 3:
						mes "["+ strnpcinfo(1) +"]";
						if ( getd(".ms_b_n_"+ strnpcinfo(2) ) == 0 ) {
							mes "There is no mission available to remove.";
							next;
							break;
						}
						mes "Select a mission below to delete:";
						next;
						if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 0 ) set .@color$, "^0000FF";
						else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 1 ) set .@color$, "^00CC00";
						else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 2 ) set .@color$, "^FF0000";
						set .@menu$, "^996600"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +". "+ .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"$");
						set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2)) );
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 ) {
							if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 0 ) set .@color$, "^0000FF";
							else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 1 ) set .@color$, "^00CC00";
							else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 2 ) set .@color$, "^FF0000";
							set .@menu$, .@menu$ +":^996600"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +". "+ .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"$");
						}
						set .@menu$, .@menu$ +":^000000 - back";
						set .@menu, select(.@menu$) -1;
						if ( .@menu == .@size ) break;
						mes "["+ strnpcinfo(1) +"]";
						mes "Are you sure that you want to delete the selected mission?";
						mes " ";
						set .@m_id, getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu +"]");
						if ( getd(".ms_b_m_"+ .@m_id +"[6]") == 0 ) set .@color$, "^0000FF";
						else if ( getd(".ms_b_m_"+ .@m_id +"[6]") == 1 ) set .@color$, "^00CC00";
						else if ( getd(".ms_b_m_"+ .@m_id +"[6]") == 2 ) set .@color$, "^FF0000";
						mes "^996600"+ .@m_id +". "+ .@color$ + getd("$ms_b_m_"+ .@m_id +"$") +"^000000";
						mes "Description: ^0000FF"+ getd("$ms_b_m_"+ .@m_id +"$[1]") +"^000000";
						next;
						if ( select ( "No", "Yes" ) == 1 ) break;
						mes "["+ strnpcinfo(1) +"]";
						mes "Mission has deleted successfully";
						mes " ";
						mes "^996600"+ .@m_id +". "+ .@color$ + getd("$ms_b_m_"+ .@m_id +"$") +"^000000";
						deletearray getd(".ms_b_m_"+ .@m_id +"$");
						deletearray getd(".ms_b_m_"+ .@m_id );
						deletearray getd(".ms_b_t_"+ .@m_id );
						deletearray getd(".ms_b_ir_"+ .@m_id );
						deletearray getd(".ms_b_ia_"+ .@m_id );
						deletearray getd("$ms_b_m_"+ .@m_id +"$");
						deletearray getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu +"]"), 1;
						setd "$ms_b_n_"+ strnpcinfo(2) +"$", ( ( getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") )?getd(".ms_b_n_"+ strnpcinfo(2) +"[0]"):"" );
						set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2) ) );
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
							setd "$ms_b_n_"+ strnpcinfo(2) +"$", getd("$ms_b_n_"+ strnpcinfo(2) +"$") +"#"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"#";
						next;
						break;
					case 4:
						mes "["+ strnpcinfo(1) +"]";
						if ( getd(".ms_b_n_"+ strnpcinfo(2) ) == 0 ) {
							mes "There is no mission available to swap";
							next;
							break;
						}
						mes "Select a mission below to swap:";
						next;
						if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 0 ) set .@color$, "^0000FF";
						else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 1 ) set .@color$, "^00CC00";
						else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"[6]") == 2 ) set .@color$, "^FF0000";
						set .@menu$, "^996600"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +". "+ .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"[0]") +"$");
						set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2)) );
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 ) {
							if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 0 ) set .@color$, "^0000FF";
							else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 1 ) set .@color$, "^00CC00";
							else if ( getd(".ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"[6]") == 2 ) set .@color$, "^FF0000";
							set .@menu$, .@menu$ +":^996600"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +". "+ .@color$ + getd("$ms_b_m_"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]") +"$");
						}
						set .@menu$, .@menu$ +":^000000 - back";
						set .@menu, select(.@menu$) -1;
						if ( .@menu == .@size ) break;
						mes "["+ strnpcinfo(1) +"]";
						mes "mission selected :";
						set .@m_id1, getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu +"]");
						if ( getd(".ms_b_m_"+ .@m_id1 +"[6]") == 0 ) set .@color1$, "^0000FF";
						else if ( getd(".ms_b_m_"+ .@m_id1 +"[6]") == 1 ) set .@color1$, "^00CC00";
						else if ( getd(".ms_b_m_"+ .@m_id1 +"[6]") == 2 ) set .@color1$, "^FF0000";
						mes "^996600"+ .@m_id1 +". "+ .@color1$ + getd("$ms_b_m_"+ .@m_id1 +"$") +"^000000";
						mes " ";
						mes "Please select another mission to be swapped:";
						next;
						set .@menu2, select(.@menu$) -1;
						if ( .@menu2 == .@size ) break;
						mes "["+ strnpcinfo(1) +"]";
						mes "Missions has swapped successfully";
						set .@m_id2, getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu2 +"]");
						if ( getd(".ms_b_m_"+ .@m_id2 +"[6]") == 0 ) set .@color2$, "^0000FF";
						else if ( getd(".ms_b_m_"+ .@m_id2 +"[6]") == 1 ) set .@color2$, "^00CC00";
						else if ( getd(".ms_b_m_"+ .@m_id2 +"[6]") == 2 ) set .@color2$, "^FF0000";
						mes "^996600"+ .@m_id1 +". "+ .@color1$ + getd("$ms_b_m_"+ .@m_id1 +"$") +"^000000";
						mes "^996600"+ .@m_id2 +". "+ .@color2$ + getd("$ms_b_m_"+ .@m_id2 +"$") +"^000000";
						setd ".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu +"]", .@m_id2;
						setd ".ms_b_n_"+ strnpcinfo(2) +"["+ .@menu2 +"]", .@m_id1;
						setd "$ms_b_n_"+ strnpcinfo(2) +"$", getd(".ms_b_n_"+ strnpcinfo(2) +"[0]");
						set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2) ) );
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
							setd "$ms_b_n_"+ strnpcinfo(2) +"$", getd("$ms_b_n_"+ strnpcinfo(2) +"$") +"#"+ getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]");
						next;
						break;
				}
			}
	}
	close;
OnQuest1TimeUp:
	dispbottom "Mission #1: "+ getd("$ms_b_m_"+ @ms_b_m_1[0] +"$[0]") +" has Time Up";
	deletearray @ms_b_m_1;
	set ms_b_m_1$, "";
	end;
OnQuest2TimeUp:
	dispbottom "Mission #2: "+ getd("$ms_b_m_"+ @ms_b_m_2[0] +"$[0]") +" has Time Up";
	deletearray @ms_b_m_2;
	set ms_b_m_2$, "";
	end;
OnQuest3TimeUp:
	dispbottom "Mission #3: "+ getd("$ms_b_m_"+ @ms_b_m_3[0] +"$[0]") +" has Time Up";
	deletearray @ms_b_m_3;
	set ms_b_m_3$, "";
	end;
OnQuest4TimeUp:
	dispbottom "Mission #4: "+ getd("$ms_b_m_"+ @ms_b_m_4[0] +"$[0]") +" has Time Up";
	deletearray @ms_b_m_4;
	set ms_b_m_4$, "";
	end;
L_showprogress:
	mes "^0000FF"+ getd("$ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"$[0]") +"^000000";
	mes "Description: ^0000FF"+ getd("$ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"$[1]") +"^000000";
	mes " ";
	mes "[^804000Mission Progress^000000]";
	if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[5]") ) {
		set .@left, getd("@ms_b_m_"+ @slot +"[1]") - gettimetick(2);
		set .@hour, .@left / 3600;
		set .@min, .@left % 3600 / 60;
		set .@sec, .@left % 60;
		mes "Time Left:  ^FF0000"+( ( .@hour )?.@hour +" hour ":"" )+( ( .@hour || .@min )?.@min +" min ":"" )+ .@sec +" sec^000000";
	}
	set .@size, getarraysize( getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
	for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
		mes "Mobs : ^0000FF"+ getmonsterinfo( getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]") , 0) +"^000000 ["+( ( getd("@ms_b_m_"+ @slot +"["+( .@i/2 +2 )+"]") > getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]") )?getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]"):getd("@ms_b_m_"+ @slot +"["+( .@i/2 +2 )+"]") ) +"/"+ getd(".ms_b_t_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]") +"]";
	set .@size, getarraysize( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
	for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
		mes "Items : ^0000FF"+ getitemname( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]") ) +"^000000 ["+ countitem( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]") ) +"/"+ getd(".ms_b_ir_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]") +"]";
	mes " ";
	mes "[^009900Rewards^000000]";
	if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[7]") )
		mes "Base Exp : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[7]") ) +"^000000";
	if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[8]") )
		mes "Job Exp : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[8]") ) +"^000000";
	if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[9]") )
		mes "Zeny : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[9]") ) +"^000000";
	if ( getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[10]") )
		mes "Cash Point : ^0000FF"+ callfunc("int__", getd(".ms_b_m_"+ getd("@ms_b_m_"+ @slot +"[0]") +"[10]") ) +"^000000";
	set .@size, getarraysize( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") ) );
	for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
	mes "Item : ^0000FF"+ getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ (.@i +1) +"]") +" "+ getitemname( getd(".ms_b_ia_"+ getd("@ms_b_m_"+ @slot +"[0]") +"["+ .@i +"]") ) +"^000000";
	mes " ";
	return;
L_setupmission:
	while (1) {
		mes "["+ strnpcinfo(1) +"]";
		mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
		mes "Description: "+( ( @tmp_ms_b_m_$[1] != "" )?"^0000FF"+ @tmp_ms_b_m_$[1]:"^FF0000Incomplete" )+"^000000";
		mes " ";
		if ( @tmp_ms_b_t_ == 0 && @tmp_ms_b_ir_ == 0 )
			mes "Require mobs : ^FF0000Incomplete^000000";
		set .@size, getarraysize(@tmp_ms_b_t_);
		for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
			mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
		if ( @tmp_ms_b_t_ == 0 && @tmp_ms_b_ir_ == 0 )
			mes "Require items : ^FF0000Incomplete^000000";
		set .@size, getarraysize(@tmp_ms_b_ir_);
		for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
			mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
		mes " ";
		if ( @tmp_ms_b_m_[6] || @tmp_ms_b_m_[3] || @tmp_ms_b_m_[5] || @tmp_ms_b_m_[2] ) {
			mes "[^FF0000Limitations^000000]";
			if ( @tmp_ms_b_m_[6] )
				mes "Can do : "+( ( @tmp_ms_b_m_[6] == 1 )?"^00CC00Everyday":"^FF0000Only Once" )+"^000000";
			if ( @tmp_ms_b_m_[3] )
				mes "Base Level :"+( ( @tmp_ms_b_m_[3] )?"  ^0000FF"+ @tmp_ms_b_m_[3] +( ( @tmp_ms_b_m_[3] != @tmp_ms_b_m_[4] )?"~"+ @tmp_ms_b_m_[4]:"" )+"^000000":"" );
			if ( @tmp_ms_b_m_[5] )
				mes "Time Limit : ^FF0000"+( ( @tmp_ms_b_m_[5] /60 )?@tmp_ms_b_m_[5] /60 +" hour"+( ( @tmp_ms_b_m_[5] %60 )?" ":"" ):"" )+( ( @tmp_ms_b_m_[5] %60 )?@tmp_ms_b_m_[5] %60 +" min":"" )+"^000000";
			if ( @tmp_ms_b_m_[2] ) {
				deletearray .@joblimit;
				for ( set .@i, 0; .@i < 24; set .@i, .@i +1 ) {
					if ( @tmp_ms_b_m_[2] & pow( 2, .@i ) ) {
						set .@joblimit[ getarraysize(.@joblimit) ], .@i +1;
					}
				}
				set .@joblimit$, .jobname$[ .@joblimit[0] -1 ];
				set .@size, getarraysize(.@joblimit);
				for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
					set .@joblimit$, .@joblimit$ +", "+ .jobname$[ .@joblimit[.@i] -1 ];
				mes "Job Limit : ^00CC00"+ .@joblimit$ +"^000000";
			}
			mes " ";
		}
		mes "[^009900Rewards^000000]";
		if ( @tmp_ms_b_m_[7] || @tmp_ms_b_m_[8] || @tmp_ms_b_m_[9] || @tmp_ms_b_m_[10] || @tmp_ms_b_ia_ )
			set .@color_reward$, "";
		else {
			mes "^FF0000Incomplete^000000";
			set .@color_reward$, "  - ^FF0000Incomplete^000000";
		}
		if ( @tmp_ms_b_m_[7] )
			mes "Base Exp : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[7] ) +"^000000";
		if ( @tmp_ms_b_m_[8] )
			mes "Job Exp : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[8] ) +"^000000";
		if ( @tmp_ms_b_m_[9] )
			mes "Zeny : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[9] ) +"^000000";
		if ( @tmp_ms_b_m_[10] )
			mes "Cash Point : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[10] ) +"^000000";
		set .@size, getarraysize(@tmp_ms_b_ia_);
		for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
			mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
		next;
		if ( @tmp_ms_b_m_$[0] != "" && @tmp_ms_b_m_$[1] != "" && ( @tmp_ms_b_t_ || @tmp_ms_b_ir_ ) &&
			( @tmp_ms_b_m_[7] || @tmp_ms_b_m_[8] || @tmp_ms_b_m_[9] || @tmp_ms_b_m_[10] || @tmp_ms_b_ia_ ) )
			set .@color_all$, "^00CC00";
		else
			set .@color_all$, "^FF0000";
		set .@setupmenu, select (
			"Important Settings"+( ( @tmp_ms_b_m_$[0] != "" && @tmp_ms_b_m_$[1] != "" && ( @tmp_ms_b_t_ || @tmp_ms_b_ir_ ) )?"":"  - ^FF0000Incomplete^000000" ),
			"Mission Limitations",
			"Rewards"+ .@color_reward$,
			.@color_all$ +"Complete "+( ( getarg(0) )?"Edit":"Setup" )+"^000000",
			"- back" );
		switch ( .@setupmenu ) {
			case 1:
				while (1) {
					mes "["+ strnpcinfo(1) +"]";
					mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
					mes "Description: "+( ( @tmp_ms_b_m_$[1] != "" )?"^0000FF"+ @tmp_ms_b_m_$[1]:"^FF0000Incomplete" )+"^000000";
					mes " ";
					if ( @tmp_ms_b_t_ == 0 && @tmp_ms_b_ir_ == 0 )
						mes "Require mobs : ^FF0000Incomplete^000000";
					set .@size, getarraysize(@tmp_ms_b_t_);
					for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
						mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
					if ( @tmp_ms_b_t_ == 0 && @tmp_ms_b_ir_ == 0 )
						mes "Require items : ^FF0000Incomplete^000000";
					set .@size, getarraysize(@tmp_ms_b_ir_);
					for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
						mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
					next;
					set .@importantmenu, select (
						"Mission Name"+( ( @tmp_ms_b_m_$[0] != "" )?"":"  - ^FF0000Incomplete^000000" ),
						"Description"+( ( @tmp_ms_b_m_$[1] != "" )?"":"  - ^FF0000Incomplete^000000" ),
						"Require Mobs",
						"Require Items",
						"- back" );
					switch ( .@importantmenu ) {
						case 1:
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Input the mission name";
							next;
							input .@tmp$;
							mes "["+ strnpcinfo(1) +"]";
							if ( getstrlen(.@tmp$) > 60 ) {
								mes "Mission name must not more than 60 characters";
								next;
								break;
							}
							else if ( compare ( .@tmp$, ":" ) || compare ( .@tmp$, "^" ) ) {
								mes "Mission name must not allow to use these symbols";
								mes "-> : <- colon";
								mes "-> ^ <- caret";
								next;
								break;
							}
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes "Description: "+( ( @tmp_ms_b_m_$[1] != "" )?"^0000FF"+ @tmp_ms_b_m_$[1]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Are you sure to change the name to";
							mes "^0000FF"+ .@tmp$ +"^000000";
							next;
							if ( select ( "Yes", "No" ) == 2 ) break;
							set @tmp_ms_b_m_$[0], .@tmp$;
							break;
						case 2:
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes "Description: "+( ( @tmp_ms_b_m_$[1] != "" )?"^0000FF"+ @tmp_ms_b_m_$[1]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Input the descriptions";
							next;
							set .@tmp1$, "";
							set .@tmp2$, "";
							set .@tmp3$, "";
							set .@tmp, 0;
							do {
								set .@tmp, .@tmp +1 ;
								input getd(".@tmp"+ .@tmp +"$");
							} while ( getstrlen( getd(".@tmp"+ .@tmp +"$") ) > 50 && .@tmp < 3 );
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes "Description: "+( ( @tmp_ms_b_m_$[1] != "" )?"^0000FF"+ @tmp_ms_b_m_$[1]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Are you sure to change description to";
							mes "^0000FF"+ .@tmp1$ + .@tmp2$ + .@tmp3$ +"^000000";
							next;
							if ( select ( "Yes", "No" ) == 2 ) break;
							set @tmp_ms_b_m_$[1], .@tmp1$ + .@tmp2$ + .@tmp3$;
							break;
						case 3:
							if ( getarg(0) ) {
								mes "["+ strnpcinfo(1) +"]";
								mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
								mes " ";
								mes "Require Mobs are not allow to edit";
								next;
								break;
							}
							while (1) {
								mes "["+ strnpcinfo(1) +"]";
								mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
								mes " ";
								if ( @tmp_ms_b_t_ == 0 )
									mes "Require mobs :";
								set .@size, getarraysize(@tmp_ms_b_t_);
								for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
									mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
								next;
								set .@mobmenu, select ( "Add a monster requirement", "Remove a monster requirement", "- back" );
								switch ( .@mobmenu ) {
									case 1:
										mes "["+ strnpcinfo(1) +"]";
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_t_ == 0 )
											mes "Require mobs :";
										set .@size, getarraysize(@tmp_ms_b_t_);
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
										mes " ";
										if ( .@size == 16 ) {
											mes "Require mobs are only allow up to 8 different kinds";
											next;
											break;
										}
										mes "Input monster ID";
										next;
										input .@tmp, 0, 9999;
										mes "["+ strnpcinfo(1) +"]";
										if ( .@tmp == 0 ) {
											mes "Invalid monster ID";
											next;
											break;
										}
										else if ( getmonsterinfo(.@tmp, 1) == -1 ) {
											mes "Invalid monster ID";
											next;
											break;
										}
										if ( @tmp_ms_b_t_ == 0 )
											mes "Require mobs :";
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
										mes " ";
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
											if ( .@tmp == @tmp_ms_b_t_[.@i] ) break;
										}
										if ( .@i != .@size ) {
											mes "Monster ^0000FF"+ getmonsterinfo(.@tmp, 0) +"^000000 is Repeated";
											next;
											break;
										}
										mes "Require mobs : ^0000FF"+ getmonsterinfo(.@tmp, 0) +"^000000";
										mes "Input an amount need to be hunt";
										next;
										input .@tmp2, 0, 999;
										if ( .@tmp2 == 0 ) {
											mes "["+ strnpcinfo(1) +"]";
											mes "Invalid amount";
											next;
										}
										else
											setarray @tmp_ms_b_t_[ .@size ], .@tmp, .@tmp2;
										break;
									case 2:
										mes "["+ strnpcinfo(1) +"]";
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_t_ == 0 ) {
											mes "There are no monster to remove";
											next;
											break;
										}
										set .@size, getarraysize(@tmp_ms_b_t_);
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
										mes " ";
										mes "Select a mob to delete";
										next;
										set .@menu$, "^0000FF"+ @tmp_ms_b_t_[1] +" "+ getmonsterinfo(@tmp_ms_b_t_, 0);
										for ( set .@i, 2; .@i < .@size; set .@i, .@i +2 )
											set .@menu$, .@menu$ +":"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0);
										set .@menu$, .@menu$ +"^000000:- back";
										set .@menu, select(.@menu$) -1;
										if ( .@menu == .@size /2 ) break;
										deletearray @tmp_ms_b_t_[ .@menu *2 ], 2;
									case 3:
								}
								if ( .@mobmenu == 3 ) break;
							}
							break;
						case 4:
							while (1) {
								mes "["+ strnpcinfo(1) +"]";
								mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
								mes " ";
								if ( @tmp_ms_b_ir_ == 0 )
									mes "Require items :";
								set .@size, getarraysize(@tmp_ms_b_ir_);
								for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
									mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
								next;
								set .@item_require_menu, select ( "add item requirement", "remove a require item", "- back" );
								switch ( .@item_require_menu ) {
									case 1:
										mes "["+ strnpcinfo(1) +"]";
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_ir_ == 0 )
											mes "Require items : ";
										set .@size, getarraysize(@tmp_ms_b_ir_);
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
										mes " ";
										if ( .@size == 10 ) {
											mes "Require items are only allow up to 5 different kinds";
											next;
											break;
										}
										mes "Input item ID";
										next;
										input .@tmp, 0, 32767;
										mes "["+ strnpcinfo(1) +"]";
										if ( getitemname(.@tmp) == "null" ) {
											mes "Invalid item ID";
											next;
											break;
										}
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_ir_ == 0 )
											mes "Require items : ";
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
										mes " ";
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
											if ( .@tmp == @tmp_ms_b_ir_[.@i] ) break;
										}
										if ( .@i != .@size ) {
											mes "Item ^0000FF"+ getitemname(.@tmp) +"^000000 is repeated";
											next;
											break;
										}
										mes "Require items : ^0000FF"+ getitemname(.@tmp) +"^000000";
										mes "input the amount required for this item";
										next;
										input .@tmp2, 0, 30000;
										if ( .@tmp2 == 0 ) {
											mes "["+ strnpcinfo(1) +"]";
											mes "Invalid amount";
											next;
										}
										else
											setarray @tmp_ms_b_ir_[ .@size ], .@tmp, .@tmp2;
										break;
									case 2:
										mes "["+ strnpcinfo(1) +"]";
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_ir_ == 0 ) {
											mes "There are no item to be remove";
											next;
											break;
										}
										set .@size, getarraysize(@tmp_ms_b_ir_);
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
										mes " ";
										mes "Select an item to delete";
										next;
										set .@menu$, "^0000FF"+ @tmp_ms_b_ir_[1] +" "+ getitemname(@tmp_ms_b_ir_);
										for ( set .@i, 2; .@i < .@size; set .@i, .@i +2 )
											set .@menu$, .@menu$ +":"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]);
										set .@menu$, .@menu$ +"^000000:- back";
										set .@menu, select(.@menu$) -1;
										if ( .@menu == .@size /2 ) break;
										deletearray @tmp_ms_b_ir_[ .@menu *2 ], 2;
									case 3:
								}
								if ( .@item_require_menu == 3 ) break;
							}
						case 5:
					}
					if ( .@importantmenu == 5 ) break;
				}
				break;
			case 2:
				while (1) {
					mes "["+ strnpcinfo(1) +"]";
					mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
					mes " ";
					mes "[^FF0000Limitations^000000]";
					mes "Can do : "+( ( @tmp_ms_b_m_[6] == 0 )?"^0000FFRepeatedly": ( @tmp_ms_b_m_[6] == 1 )?"^00CC00Everyday":"^FF0000Only Once" )+"^000000";
					mes "Base Level :"+( ( @tmp_ms_b_m_[3] )?"  ^0000FF"+ @tmp_ms_b_m_[3] +( ( @tmp_ms_b_m_[3] != @tmp_ms_b_m_[4] )?"~"+ @tmp_ms_b_m_[4]:"" )+"^000000":"" );
					mes "Time Limit : "+( ( @tmp_ms_b_m_[5] )?"^FF0000"+( ( @tmp_ms_b_m_[5] /60 )?@tmp_ms_b_m_[5] /60 +" hour"+( ( @tmp_ms_b_m_[5] %60 )?" ":"" ):"" )+( ( @tmp_ms_b_m_[5] %60 )?@tmp_ms_b_m_[5] %60 +" min":"" )+"^000000":"" );
					if ( @tmp_ms_b_m_[2] == 0 )
						mes "Job Limit : ^FF0000<none>^000000";
					else {
						deletearray .@joblimit;
						for ( set .@i, 0; .@i < 24; set .@i, .@i +1 ) {
							if ( @tmp_ms_b_m_[2] & pow( 2, .@i ) ) {
								set .@joblimit[ getarraysize(.@joblimit) ], .@i +1;
							}
						}
						set .@joblimit$, .jobname$[ .@joblimit[0] -1 ];
						set .@size, getarraysize(.@joblimit);
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
							set .@joblimit$, .@joblimit$ +", "+ .jobname$[ .@joblimit[.@i] -1 ];
						mes "Job Limit : ^00CC00"+ .@joblimit$ +"^000000";
					}
					next;
					set .@limitmenu, select ( "Mission Status (Can do)", "Base Level", "Time Limit", "Job limitation", "- back" );
					switch ( .@limitmenu ) {
						case 1:
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Can do : "+( ( @tmp_ms_b_m_[6] == 0 )?"^0000FFRepeatedly": ( @tmp_ms_b_m_[6] == 1 )?"^00CC00Everyday":"^FF0000Only Once" )+"^000000";
							mes "Please select a status";
							next;
							switch ( select ( "^0000FFRepeatedly^000000", "^00CC00Everyday^000000", "^FF0000Only Once^000000" ) ) {
								case 1: set @tmp_ms_b_m_[6], 0; break;
								case 2: set @tmp_ms_b_m_[6], 1; break;
								case 3: set @tmp_ms_b_m_[6], 2;
							}
							break;
						case 2:
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Base Level :";
							mes " ";
							mes "Input starting range";
							next;
							input .@tmp, 0, 1000;
							if ( .@tmp == 0 ) {
								mes "["+ strnpcinfo(1) +"]";
								mes "invalid value";
								set @tmp_ms_b_m_[3], 0;
								set @tmp_ms_b_m_[4], 0;
								next;
								break;
							}
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Base Level : ^0000FF"+ .@tmp +"~^000000";
							mes " ";
							mes "Input ending range";
							next;
							input .@tmp2, 0, 1000;
							if ( .@tmp2 == 0 ) {
								mes "["+ strnpcinfo(1) +"]";
								mes "invalid value";
								set @tmp_ms_b_m_[3], 0;
								set @tmp_ms_b_m_[4], 0;
								next;
								break;
							}
							else if ( .@tmp > .@tmp2 ) {
								mes "["+ strnpcinfo(1) +"]";
								mes "Ending range cannot higher than starting range";
								next;
								break;
							}
							else
								setarray @tmp_ms_b_m_[3], .@tmp, .@tmp2;
							break;
						case 3:
							mes "["+ strnpcinfo(1) +"]";
							mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
							mes " ";
							mes "Time Limit : "+( ( @tmp_ms_b_m_[5] )?"^FF0000"+( ( @tmp_ms_b_m_[5] /60 )?@tmp_ms_b_m_[5] /60 +" hour"+( ( @tmp_ms_b_m_[5] %60 )?" ":"" ):"" )+( ( @tmp_ms_b_m_[5] %60 )?@tmp_ms_b_m_[5] %60 +" min":"" )+"^000000":"" );
							mes "      1 = 1 minute";
							mes "    60 = 1 hour";
							mes "1440 = 1 day";
							next;
							input @tmp_ms_b_m_[5], 0, 1440;
							break;
						case 4:
							while (1) {
								mes "["+ strnpcinfo(1) +"]";
								mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
								mes " ";
								if ( @tmp_ms_b_m_[2] == 0 )
									mes "Job Limit : ^FF0000<none>^000000";
								else {
									deletearray .@joblimit;
									for ( set .@i, 0; .@i < 24; set .@i, .@i +1 ) {
										if ( @tmp_ms_b_m_[2] & pow( 2, .@i ) ) {
											set .@joblimit[ getarraysize(.@joblimit) ], .@i +1;
										}
									}
									set .@joblimit$, .jobname$[ .@joblimit[0] -1 ];
									set .@size, getarraysize(.@joblimit);
									for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
										set .@joblimit$, .@joblimit$ +", "+ .jobname$[ .@joblimit[.@i] -1 ];
									mes "Job Limit : ^00CC00"+ .@joblimit$ +"^000000";
								}
								next;
								set .@menu$, ( ( @tmp_ms_b_m_[2] & pow( 2, 0 ) )?"^00CC00":"^FF0000" )+ .jobname$;
								for ( set .@i, 1; .@i < 24; set .@i,.@i +1 )
									set .@menu$, .@menu$ +":"+( ( @tmp_ms_b_m_[2] & pow( 2, .@i ) )?"^00CC00":"^FF0000" )+ .jobname$[.@i];
								set .@menu$, .@menu$ +":^000000- back";
								set .@menu, select(.@menu$) -1;
								if ( .@menu == 24 ) break;
								set @tmp_ms_b_m_[2], @tmp_ms_b_m_[2] ^ pow( 2, .@menu );
							}
							break;
						case 5:
					}
					if ( .@limitmenu == 5 ) break;
				}
				break;
			case 3:
				while (1) {
					mes "["+ strnpcinfo(1) +"]";
					mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
					mes " ";
					mes "[^009900Rewards^000000]";
					mes "Base Exp : "+( ( @tmp_ms_b_m_[7] )?"^0000FF"+ callfunc("int__", @tmp_ms_b_m_[7] ):"^FF00000" ) +"^000000";
					mes "Job Exp : "+( ( @tmp_ms_b_m_[8] )?"^0000FF"+ callfunc("int__", @tmp_ms_b_m_[8] ):"^FF00000" ) +"^000000";
					mes "Zeny : "+( ( @tmp_ms_b_m_[9] )?"^0000FF"+ callfunc("int__", @tmp_ms_b_m_[9] ):"^FF00000" ) +"^000000 ";
					mes "Cash Point : "+( ( @tmp_ms_b_m_[10] )?"^0000FF"+ callfunc("int__", @tmp_ms_b_m_[10] ):"^FF00000" ) +"^000000";
					if ( @tmp_ms_b_ia_ == 0 )
						mes "Item : ";
					set .@size, getarraysize(@tmp_ms_b_ia_);
					for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
						mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
					next;
					set .@rewardmenu, select ( "Base Exp", "Job Exp", "Zeny", "Cash Points", "Item Rewards", "- back" );
					switch ( .@rewardmenu ) {
						case 1:
							input @tmp_ms_b_m_[7], 0, 2000000000;
							break;
						case 2:
							input @tmp_ms_b_m_[8], 0, 2000000000;
							break;
						case 3:
							input @tmp_ms_b_m_[9], 0, 2000000000;
							break;
						case 4:
							input @tmp_ms_b_m_[10], 0, 2000000000;
							break;
						case 5:
							while (1) {
								mes "["+ strnpcinfo(1) +"]";
								mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
								mes " ";
								if ( @tmp_ms_b_ia_ == 0 )
									mes "Item :";
								set .@size, getarraysize(@tmp_ms_b_ia_);
								for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
									mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
								next;
								set .@item_reward_menu, select ( "Add an item reward", "Remove an item reward", "- back" );
								switch ( .@item_reward_menu ) {
									case 1:
										mes "["+ strnpcinfo(1) +"]";
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_ia_ == 0 )
											mes "Item : ";
										set .@size, getarraysize(@tmp_ms_b_ia_);
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
										mes " ";
										if ( .@size == 10 ) {
											mes "Items Rewards are only allow up to 5 different kinds";
											next;
											break;
										}
										mes "Input item id";
										next;
										input .@tmp, 0, 32767;
										mes "["+ strnpcinfo(1) +"]";
										if ( getitemname(.@tmp) == "null" ) {
											mes "Invalid item id";
											next;
											break;
										}
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_ia_ == 0 )
											mes "Item : ";
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
										mes " ";
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
											if ( .@tmp == @tmp_ms_b_ia_[.@i] ) break;
										}
										if ( .@i != .@size ) {
											mes "Item ^0000FF"+ getitemname(.@tmp) +"^000000 is repeated";
											next;
											break;
										}
										mes "Item : ^0000FF"+ getitemname(.@tmp) +"^000000";
										mes "Input the amount rewards for this item";
										next;
										input .@tmp2, 0, 30000;
										if ( .@tmp2 == 0 ) {
											mes "["+ strnpcinfo(1) +"]";
											mes "Invalid amount";
											next;
										}
										else
											setarray @tmp_ms_b_ia_[ .@size ], .@tmp, .@tmp2;
										break;
									case 2:
										mes "["+ strnpcinfo(1) +"]";
										mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
										mes " ";
										if ( @tmp_ms_b_ia_ == 0 ) {
											mes "There is no item rewards to remove";
											next;
											break;
										}
										set .@size, getarraysize(@tmp_ms_b_ia_);
										for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
											mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
										mes " ";
										mes "Select an item rewards to delete";
										next;
										set .@menu$, "^0000FF"+ @tmp_ms_b_ia_[1] +" "+ getitemname(@tmp_ms_b_ia_);
										for ( set .@i, 2; .@i < .@size; set .@i, .@i +2 )
											set .@menu$, .@menu$ +":"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]);
										set .@menu$, .@menu$ +"^000000:- back";
										set .@menu, select(.@menu$) -1;
										if ( .@menu == .@size /2 ) break;
										deletearray @tmp_ms_b_ia_[ .@menu *2 ], 2;
									case 3:
								}
								if ( .@item_reward_menu == 3 ) break;
							}
						case 6:
					}
					if ( .@rewardmenu == 6 ) break;
				}
				break;
			case 4:
				mes "["+ strnpcinfo(1) +"]";
				if ( @tmp_ms_b_m_$[0] != "" && @tmp_ms_b_m_$[1] != "" && ( @tmp_ms_b_t_ || @tmp_ms_b_ir_ ) &&
					( @tmp_ms_b_m_[7] || @tmp_ms_b_m_[8] || @tmp_ms_b_m_[9] || @tmp_ms_b_m_[10] || @tmp_ms_b_ia_ ) ) {
					mes "mission ID: ^996600"+( ( getarg(0) == 0 )?$ms_b_id +1:@m_id )+"^000000";
					mes "Name : ^0000FF"+ @tmp_ms_b_m_$[0] +"^000000";
				}
				else {
					mes "Name : "+( ( @tmp_ms_b_m_$[0] != "" )?"^0000FF"+ @tmp_ms_b_m_$[0]:"^FF0000Incomplete" )+"^000000";
					mes " ";
					mes "Some field are still Incomplete !";
					next;
					break;
				}
				mes "Description: ^0000FF"+ @tmp_ms_b_m_$[1] +"^000000";
				mes " ";
				set .@size, getarraysize(@tmp_ms_b_t_);
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					mes "Require mobs : ^0000FF"+ @tmp_ms_b_t_[.@i +1] +" "+ getmonsterinfo(@tmp_ms_b_t_[.@i], 0) +"^000000";
				set .@size, getarraysize(@tmp_ms_b_ir_);
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					mes "Require items : ^0000FF"+ @tmp_ms_b_ir_[.@i +1] +" "+ getitemname(@tmp_ms_b_ir_[.@i]) +"^000000";
					mes " ";
				if ( @tmp_ms_b_m_[6] || @tmp_ms_b_m_[3] || @tmp_ms_b_m_[5] || @tmp_ms_b_m_[2] ) {
					mes "[^FF0000Limitations^000000]";
					if ( @tmp_ms_b_m_[6] )
						mes "Can do : "+( ( @tmp_ms_b_m_[6] == 1 )?"^00CC00Everyday":"^FF0000Only Once" )+"^000000";
					if ( @tmp_ms_b_m_[3] )
						mes "Base Level :"+( ( @tmp_ms_b_m_[3] )?"  ^0000FF"+ @tmp_ms_b_m_[3] +( ( @tmp_ms_b_m_[3] != @tmp_ms_b_m_[4] )?"~"+ @tmp_ms_b_m_[4]:"" )+"^000000":"" );
					if ( @tmp_ms_b_m_[5] )
						mes "Time Limit : ^FF0000"+( ( @tmp_ms_b_m_[5] /60 )?@tmp_ms_b_m_[5] /60 +" hour"+( ( @tmp_ms_b_m_[5] %60 )?" ":"" ):"" )+( ( @tmp_ms_b_m_[5] %60 )?@tmp_ms_b_m_[5] %60 +" min":"" )+"^000000";
					if ( @tmp_ms_b_m_[2] ) {
						deletearray .@joblimit;
						for ( set .@i, 0; .@i < 24; set .@i, .@i +1 ) {
							if ( @tmp_ms_b_m_[2] & pow( 2, .@i ) ) {
								set .@joblimit[ getarraysize(.@joblimit) ], .@i +1;
							}
						}
						set .@joblimit$, .jobname$[ .@joblimit[0] -1 ];
						set .@size, getarraysize(.@joblimit);
						for ( set .@i, 1; .@i < .@size; set .@i, .@i +1 )
							set .@joblimit$, .@joblimit$ +", "+ .jobname$[ .@joblimit[.@i] -1 ];
						mes "Job Limit : ^00CC00"+ .@joblimit$ +"^000000";
					}
					mes " ";
				}
				mes "[^009900Rewards^000000]";
				if ( @tmp_ms_b_m_[7] )
					mes "Base Exp : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[7] ) +"^000000";
				if ( @tmp_ms_b_m_[8] )
					mes "Job Exp : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[8] ) +"^000000";
				if ( @tmp_ms_b_m_[9] )
					mes "Zeny : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[9] ) +"^000000";
				if ( @tmp_ms_b_m_[10] )
					mes "Cash Point : ^0000FF"+ callfunc("int__", @tmp_ms_b_m_[10] ) +"^000000";
				set .@size, getarraysize(@tmp_ms_b_ia_);
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					mes "Item : ^0000FF"+ @tmp_ms_b_ia_[.@i +1] +" "+ getitemname(@tmp_ms_b_ia_[.@i]) +"^000000";
				return 1;
			case 5:
				return 0;
		}
	}
	end;
OnInit:
	bindatcmd "mission", "mission::OnWhisperGlobal";
	set .loading, 1;
	set .total_npc, .total_npc +1 ;
	if ( atoi( strnpcinfo(2) ) <= 0 || atoi( strnpcinfo(2) ) > 127 ) {
		debugmes "Mission Board: invalid npc id #"+ strnpcinfo(2);
		goto L_load_finish;
	}
	else if ( .ms_b_name$[ atoi( strnpcinfo(2) ) ] != "" ) {
		debugmes "Mission Board: duplicate npc id #"+ strnpcinfo(2);
		set .duplicate_id[ getarraysize(.duplicate_id) ], atoi( strnpcinfo(2) );
		goto L_load_finish;
	}
	set .ms_b_name$[ atoi( strnpcinfo(2) ) ], strnpcinfo(1);
	explode .@ms_b_n_$, getd("$ms_b_n_"+ strnpcinfo(2) +"$"), "#";
	set .@ex_size, getarraysize(.@ms_b_n_$);
	set .@i, 0;
	while ( .@i < .@ex_size ) {
		setd ".ms_b_n_"+ strnpcinfo(2) +"["+ .@i +"]", atoi( .@ms_b_n_$[.@i] );
		set .@i, .@i +1 ;
	}
	set .@size, getarraysize( getd(".ms_b_n_"+ strnpcinfo(2) ) );
	while ( .@id < .@size ) {
		set .@m_id, getd(".ms_b_n_"+ strnpcinfo(2) +"["+ .@id +"]");
		explode .@ms_b_m_$[2], getd("$ms_b_m_"+ .@m_id +"$[2]"), "#";
		set .@ex_size, getarraysize(.@ms_b_m_$);
		set .@i, 0;
		while ( .@i < .@ex_size ) {
			setd ".ms_b_m_"+ .@m_id +"["+ .@i +"]", atoi( .@ms_b_m_$[.@i] );
			set .@i, .@i +1 ;
		}
		explode .@ms_b_t_$, getd("$ms_b_m_"+ .@m_id +"$[3]"), "#";
		set .@ex_size, getarraysize(.@ms_b_t_$);
		set .@i, 0;
		while ( .@i < .@ex_size ) {
			setd ".ms_b_t_"+ .@m_id +"["+ .@i +"]", atoi( .@ms_b_t_$[.@i] );
			set .@i, .@i +1 ;
		}        
		copyarray getd(".ms_b_ir_"+ .@m_id), getd(".ms_b_t_"+ .@m_id +"[16]"), 10;
		copyarray getd(".ms_b_ia_"+ .@m_id), getd(".ms_b_t_"+ .@m_id +"[26]"), 10;
		deletearray getd(".ms_b_t_"+ .@m_id +"[16]"), 20;
		set .@id, .@id +1 ;
		sleep 1;
	}
L_load_finish:
	set .finish, .finish +1;
	if ( .finish == .total_npc ) {
		set .finish, 0;
		set .total_npc, 0;
		set .loading, 0;
		setarray .jobname$,    "(Super) Novice","Swordman","Mage","Archer","Acolyte","Merchant","Thief","Knight","Priest","Wizard","Blacksmith","Hunter","Assassin","Crusader","Monk","Sage","Rogue","Alchemist","Bard/Dancer","Taekwon","Star Gladiator","Soul Linker","Gunslinger","Ninja";
	}
	end;
}

-	script	mission	-1,{
OnWhisperGlobal:
	if ( getvariableofnpc( .loading, "ms_b_") == 1 ) {
		dispbottom "Mission Board: Loading Mission Data ......";
		end;
	}
	if ( @ms_b_loading == 1 ) {
		dispbottom "Mission Board: Loading Player Data ......";
		end;
	}
	for ( set .@i, 1; .@i <= 4; set .@i, .@i +1 ) {
		if ( getd("@ms_b_m_"+ .@i) ) {
			if ( getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@i +"[0]") +"$[0]") == "" ) {
				dispbottom "Mission Board: Your Mission#"+ .@i +" has deleted because it is no longer available";
				deletearray getd("@ms_b_m_"+ .@i);
				setd "ms_b_m_"+ .@i +"$", "";
				deltimer "ms_b_::OnQuest"+ .@i +"TimeUp";
			}
			else if ( getd("@ms_b_m_"+ .@i +"[1]") && getd("@ms_b_m_"+ .@i +"[1]") <= gettimetick(2) ) {
				dispbottom "Mission #1: "+ getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@i +"[0]") +"$[0]") +" has Time Up";
				deletearray getd("@ms_b_m_"+ .@i);
				setd "ms_b_m_"+ .@i +"$", "";
				deltimer "ms_b_::OnQuest"+ .@i +"TimeUp";
			}
		}
	}
	dispbottom "[Mission Progress]";
	if ( @ms_b_m_1 == 0 && @ms_b_m_2 == 0 && @ms_b_m_3 == 0 && @ms_b_m_4 == 0 ) {
		dispbottom "You haven't accepted any mission(s) yet!";
		end;
	}
	for ( set .@j, 1; .@j <= 4; set .@j, .@j +1 ) {
		if ( getd("@ms_b_m_"+ .@j +"[0]") ) {
			dispbottom "-----------------------";
			dispbottom "Mission #"+ .@j +":  "+ getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@j +"[0]") +"$[0]");
			if ( getvariableofnpc( getd(".ms_b_m_"+ getd("@ms_b_m_"+ .@j +"[0]") +"[5]"), "ms_b_" ) ) {
				set .@left, getd("@ms_b_m_"+ .@j +"[1]") - gettimetick(2);
				set .@hour, .@left / 3600;
				set .@min, .@left % 3600 / 60;
				set .@sec, .@left % 60;
				dispbottom "Time Left:  "+( ( .@hour )?.@hour +" hour ":"" )+( ( .@hour || .@min )?.@min +" min ":"" )+ .@sec +" sec";
			}
			if ( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") ), "ms_b_" ) ) {
	
				set .@size, getarraysize( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") ), "ms_b_" ) );
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					dispbottom "Monsters killed: "+ getmonsterinfo( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ) , 0) +" ["+( ( getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") > getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ (.@i +1) +"]"), "ms_b_" ) )?getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ (.@i +1) +"]"), "ms_b_" ):getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") ) +"/"+ getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ (.@i +1) +"]"), "ms_b_" ) +"]";
			}
			if ( getvariableofnpc( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ .@j +"[0]") ), "ms_b_" ) ) {
				set .@size, getarraysize( getvariableofnpc( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ .@j +"[0]") ), "ms_b_" ) );
				for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 )
					dispbottom "Items Collected: "+ getitemname( getvariableofnpc( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ) ) +" ["+ countitem( getvariableofnpc( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ) ) +"/"+ getvariableofnpc( getd(".ms_b_ir_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ (.@i +1) +"]"), "ms_b_" ) +"]";
			}
		}
	}
	dispbottom "   -----------------------";
	end;
OnNPCKillEvent:
	set .@killedrid, killedrid;
	if ( getvariableofnpc( .loading, "ms_b_") == 1 ) end;
	if ( getcharid(1) == 0 ) {
		if ( @ms_b_loading == 1 ) end;
		for ( set .@j, 1; .@j <= 4; set .@j, .@j +1 ) {
			if ( getd("@ms_b_m_"+ .@j +"[0]") ) {
				if ( getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@j +"[0]") +"$[0]") == "" ) {
					dispbottom "Mission Board: Your Mission#"+ .@j +" has deleted because it is no longer available";
					deletearray getd("@ms_b_m_"+ .@j);
					setd "ms_b_m_"+ .@j +"$", "";
					deltimer "ms_b_::OnQuest"+ .@j +"TimeUp";
				}
				else {
					set .@size, getarraysize( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") ), "ms_b_" ) );
					for ( set .@i, 0; .@i < .@size; set .@i, .@i +2 ) {
						if ( .@killedrid == getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ) && getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") < getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+( .@i +1 )+"]"), "ms_b_" ) ) {
							setd "@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]", getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") +1;
							dispbottom "Mission #"+ .@j +". You have killed "+ getmonsterinfo( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ), 0 ) +" ["+ getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") +"/"+ getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+( .@i +1 )+"]"), "ms_b_" ) +"]";
							setd "ms_b_m_"+ .@j +"$", getd("@ms_b_m_"+ .@j +"[0]") +"#"+( ( getd("@ms_b_m_"+ .@j +"[1]") )?getd("@ms_b_m_"+ .@j +"[1]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[2]") )?getd("@ms_b_m_"+ .@j +"[2]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[3]") )?getd("@ms_b_m_"+ .@j +"[3]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[4]") )?getd("@ms_b_m_"+ .@j +"[4]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[5]") )?getd("@ms_b_m_"+ .@j +"[5]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[6]") )?getd("@ms_b_m_"+ .@j +"[6]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[7]") )?getd("@ms_b_m_"+ .@j +"[7]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[8]") )?getd("@ms_b_m_"+ .@j +"[8]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[9]") )?getd("@ms_b_m_"+ .@j +"[9]"):"" );
						}
					}
				}
			}
		}
		end;
	}
	getmapxy .@map1$, .@x1, .@y1, 0;
	getpartymember getcharid(1), 1;
	getpartymember getcharid(1), 2;
	set .@k, 0;
	while ( .@k < $@partymembercount ) {
		if ( isloggedin( $@partymemberaid[.@k], $@partymembercid[.@k] ) ) {
			attachrid $@partymemberaid[.@k];
			getmapxy .@map2$, .@x2, .@y2, 0;
			if ( @ms_b_loading == 0 && .@map1$ == .@map2$ && distance(.@x1,.@y1,.@x2,.@y2) <= 30 && Hp ) {
				set .@j, 1;
				while ( .@j <= 4 ) {
					if ( getd("@ms_b_m_"+ .@j +"[0]") ) {
						if ( getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@j +"[0]") +"$[0]") == "" ) {
							dispbottom "Mission Board: Your Mission#"+ .@j +" has deleted because it is no longer available";
							deletearray getd("@ms_b_m_"+ .@j);
							setd "ms_b_m_"+ .@j +"$", "";
							deltimer "ms_b_::OnQuest"+ .@j +"TimeUp";
						}
						else {
							set .@i, 0;
							set .@size, getarraysize( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") ), "ms_b_" ) );
							while ( .@i < .@size ) {
								if ( .@killedrid == getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ) && getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") < getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+( .@i +1 )+"]"), "ms_b_" ) ) {
									setd "@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]", getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") +1;
									dispbottom "Mission #"+ .@j +". You have killed "+ getmonsterinfo( getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+ .@i +"]"), "ms_b_" ), 0 ) +" ["+ getd("@ms_b_m_"+ .@j +"["+( .@i/2 +2 )+"]") +"/"+ getvariableofnpc( getd(".ms_b_t_"+ getd("@ms_b_m_"+ .@j +"[0]") +"["+( .@i +1 )+"]"), "ms_b_" ) +"]";
									setd "ms_b_m_"+ .@j +"$", getd("@ms_b_m_"+ .@j +"[0]") +"#"+( ( getd("@ms_b_m_"+ .@j +"[1]") )?getd("@ms_b_m_"+ .@j +"[1]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[2]") )?getd("@ms_b_m_"+ .@j +"[2]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[3]") )?getd("@ms_b_m_"+ .@j +"[3]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[4]") )?getd("@ms_b_m_"+ .@j +"[4]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[5]") )?getd("@ms_b_m_"+ .@j +"[5]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[6]") )?getd("@ms_b_m_"+ .@j +"[6]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[7]") )?getd("@ms_b_m_"+ .@j +"[7]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[8]") )?getd("@ms_b_m_"+ .@j +"[8]"):"" )+"#"+( ( getd("@ms_b_m_"+ .@j +"[9]") )?getd("@ms_b_m_"+ .@j +"[9]"):"" );
								}
								set .@i, .@i +2 ;
							}
						}
					}
					set .@j, .@j +1 ;
				}
			}
		}
		set .@k, .@k +1 ;
	}
	end;
OnPCLoginEvent:
	set @ms_b_loading, 1;
	set .@j, 1;
	while ( .@j <= 4 ) {
		if ( getd("ms_b_m_"+ .@j +"$") != "" ) {
			explode getd(".@ms_b_m_"+ .@j +"$"), getd("ms_b_m_"+ .@j +"$"), "#";
			set .@ex_size, getarraysize( getd(".@ms_b_m_"+ .@j +"$") );
			set .@i, 0;
			while ( .@i < .@ex_size ) {
				setd "@ms_b_m_"+ .@j +"["+ .@i +"]", atoi( getd(".@ms_b_m_"+ .@j +"$["+ .@i +"]") );
				set .@i, .@i +1 ;
			}
		}
		set .@j, .@j +1 ;
	}
	sleep2 1;
	set .@l, 0;
	while ( .@npc_id < 128 ) {
		if ( getvariableofnpc( .ms_b_name$[.@npc_id], "ms_b_" ) != "" ) {
			explode getd(".@ms_b_n_"+ .@npc_id +"$"), getd("ms_b_n_"+ .@npc_id +"$"), "#";
			set .@ex_size, getarraysize( getd(".@ms_b_n_"+ .@npc_id +"$") );
			set .@i, 0;
			while ( .@i < .@ex_size ) {
				setd "@ms_b_n_"+ .@npc_id +"["+ .@i +"]", atoi( getd(".@ms_b_n_"+ .@npc_id +"$["+ .@i +"]") );
				set .@i, .@i +1 ;
			}
			sleep2 1;
		}
		set .@npc_id, .@npc_id +1 ;
	}
	sleep2 1;
	set @ms_b_loading, 0;
	if ( getvariableofnpc( .loading, "ms_b_" ) == 0 ) {
		set .@j, 1;
		while ( .@j <= 4 ) {
			if ( getd("@ms_b_m_"+ .@j +"[0]") ) {
				if ( getd("$ms_b_m_"+ getd("@ms_b_m_"+ .@j +"[0]") +"$[0]") == "" ) {
					dispbottom "Mission Board: Your Mission#"+ .@j +" has deleted because it is no longer available";
					deletearray getd("@ms_b_m_"+ .@j);
					setd "ms_b_m_"+ .@j +"$", "";
				}
				else if ( getd("@ms_b_m_"+ .@j +"[1]") ) {
					if ( getd("@ms_b_m_"+ .@j +"[1]") > gettimetick(2) )
						addtimer ( getd("@ms_b_m_"+ .@j +"[1]") - gettimetick(2) ) *1000, "ms_b_::OnQuest"+ .@j +"TimeUp";
					else
						doevent "ms_b_::OnQuest"+ .@j +"TimeUp";
				}
			}
			set .@j, .@j +1 ;
		}
	}
	end;
}

//    create more missions by using npc duplicates
//    display name can be anything, but the hidden name #1 #2 #35 must be a number within 1 ~ 126
//    Note: npc display name plus the hidden name must not more than 23 characters
veil,90,112,6	duplicate(ms_b_)	Useable Item Quest#3	805
veil,89,115,6	duplicate(ms_b_)	Headgear Quest#4	805
veil,88,118,6	duplicate(ms_b_)	Costume Quest#5	805

 

IetLU32eWGQdoQIwS_OlO0VpsglYt10G1lyvcP0ovXIF0gMrSqivmuC0gNb1JV80BwLhkFqIYTEG0nziuinPQg.jpg.bfda88d02e78a8b0bfebfd2a8271aec0.jpg

 

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

2.5 add F_MesItemInfo
https://drive.google.com/file/d/1qwY8ZZFhEsLd28OZYaQvSIhyX2dVe8IJ/view

 

I also add into item requirement field, just because I feel like it =/

  • Upvote 1
  • Love 2
  • MVP 1
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

latest version is 2.4c actually
http://upaste.me/7c9c496344829d36f

 

52 minutes ago, dolphincute said:

hye guys, i would request if anyone or the author Annieruru herself could remake the old Mission Board?

as the old ones dint have access to preview the item reward, and yes i do know emistry did manage to make it but it require SQL

I remember the item require and item reward feature was done back eathena days in year 2010

screen2019rAthena007.jpg

when you submit a quest, OR accepting a quest, SCROLL DOWN the npc dialog to see them

btw type this to show the mission progress, that's how I usually debug my script

@mission

 

 

EDIT: Holy Sh^t, I think Ima gonna spend another 3 days making a topic telling what this script can do and can't do

Edited by AnnieRuru
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  23
  • Topics Per Day:  0.01
  • Content Count:  228
  • Reputation:   19
  • Joined:  10/27/12
  • Last Seen:  

5 hours ago, AnnieRuru said:

latest version is 2.4c actually
http://upaste.me/7c9c496344829d36f

Mind if I ask how to convert this

*pow(<number>,<power>)

to hercules script way??

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

http://herc.ws/board/topic/15329-deprecation-notice/?do=findComment&amp;comment=84976

2.4d Hercules only
https://drive.google.com/file/d/1G5gGxcxzZmSHE_r_XlofseqtSsj-ji7L/view

run regular expression find

pow.(([0-9]*),([0-9]*).);

and replace with

\2**\3;

the rest insert manually

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  252
  • Topics Per Day:  0.06
  • Content Count:  700
  • Reputation:   15
  • Joined:  01/07/12
  • Last Seen:  

15 hours ago, AnnieRuru said:

latest version is 2.4c actually
http://upaste.me/7c9c496344829d36f

 

I remember the item require and item reward feature was done back eathena days in year 2010

screen2019rAthena007.jpg

when you submit a quest, OR accepting a quest, SCROLL DOWN the npc dialog to see them

btw type this to show the mission progress, that's how I usually debug my script


@mission

 

 

EDIT: Holy Sh^t, I think Ima gonna spend another 3 days making a topic telling what this script can do and can't do

i did not see the preview functions?

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

are you saying that emistry has .... preview item feature that my script lacks ?
forgive me I have forgotten which stuffs I had fixed on the emistry's script

I lost emistry's mission board version 1.6, anyone still having that ?

On 8/31/2014 at 3:20 AM, AnnieRuru said:

1.6 [paste=ftsocdeysre]
- fix the getserverdef script command
- increase sleep time inside OnInit to make lesser chance of getting unsorted ID
- in commented lines, stop listing the monsters when the kill count reached
- in commented lines, added listing for the mission name instead of mission ID

though, type @mission is a preferable choice

I tested the one floating on the forum, they are mostly filled with bugs

 

try describe what are the feature you are looking after

 

Edited by AnnieRuru
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

@AnnieRuru I think what she meant by preview was similar to <ITEMLINK> script command. like how you check the items descriptions or maybe display it on players character.

Edited by Radian
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  252
  • Topics Per Day:  0.06
  • Content Count:  700
  • Reputation:   15
  • Joined:  01/07/12
  • Last Seen:  

17 hours ago, Radian said:

@AnnieRuru I think what she meant by preview was similar to <ITEMLINK> script command. like how you check the items descriptions or maybe display it on players character.

yes that, well when player accept the quest player can view the item, same way as we open an item descriptions, only for the item reward that is

Edited by dolphincute
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  162
  • Topics Per Day:  0.05
  • Content Count:  1546
  • Reputation:   192
  • Joined:  07/23/14
  • Last Seen:  

1 hour ago, AnnieRuru said:

2.5 add F_MesItemInfo
https://drive.google.com/file/d/1qwY8ZZFhEsLd28OZYaQvSIhyX2dVe8IJ/view

 

I also add into item requirement field, just because I feel like it =/

This is perfect @AnnieRuru !! this should be added to the trunk of rAthena.

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  257
  • Topics Per Day:  0.08
  • Content Count:  737
  • Reputation:   18
  • Joined:  11/21/15
  • Last Seen:  

sorry to bump in to this post but @AnnieRuru can this be taken once a day ba 1 char per account only?

 

Edit: found it thanksss ❤️

EDIT again : can this be 1char per account only miss @AnnieRuru

Edited by AinsLord
more info
Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  9
  • Reputation:   0
  • Joined:  08/09/17
  • Last Seen:  

Hi @AinsLord.

How to make its 1 char per account.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...