Jump to content
  • 0

Faceworm Queen HP


monody0093

Question


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.01
  • Content Count:  17
  • Reputation:   0
  • Joined:  04/01/22
  • Last Seen:  

I dont know if this is the right place to ask, feel free to move this where ever this belongs to. 

I just want to know how to disable the faceworm queen HP multiplier that depends on the number of people in a party.

Thanks,

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.01
  • Content Count:  17
  • Reputation:   0
  • Joined:  04/01/22
  • Last Seen:  

up

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.01
  • Content Count:  17
  • Reputation:   0
  • Joined:  04/01/22
  • Last Seen:  

I want the faceworm queen HP increases by 2m/party member to 100k/party member
how do I do that or which part to edit?

Thanks,

//===== rAthena Script =======================================
//= Faceworm's Nest
//===== Description: =========================================
//= [Official Conversion]
//= Faceworm Nest Instance
//===== Changelogs: ==========================================
//= 1.0 First version. [exneval]
//= 1.1 Conversion & style change for rAthena. [Capuche]
//============================================================

// Timeless Item Quests
// The Owner Of Old Ring
//============================================================
payon,157,54,5	script	An Old Woman#pa0829	8_F_GRANDMOTHER,{
	if (!checkweight(1201,1)) {
		mes "You have too many kind of belongings. Let's try again after reducing the kind of items.";
		close;
	}
	if (MaxWeight - Weight < 1000) {
		mes "Your belongings are too heavy to continue. Let's try again after reducing the weight.";
		close;
	}
	if (BaseLevel < 140) {
		mes "[Jeum-sun]";
		mes "I am still living in the memory. Make more memories...";
		next;
		mes "[Jeum-sun]";
		mes "Oh are you level 140 yet? I won't talk to any weak adventurers.";
		close;
	}
	switch( checkquest(12326,PLAYTIME) ) {
	case -1:
		mes "[Jeum-sun]";
		mes "When I was a young girl many years ago there was a man who I had crush on. I didn't know to tell him how I felt...";
		next;
		mes "[Jeum-sun]";
		mes "I used to tease his Peco Peco and wanted him to notice that I was interested. This went on and on for a while.";
		next;
		mes "[Jeum-sun]";
		mes "Then we started dating somehow. It's still embarrasing to talk about it.";
		next;
		mes "[Jeum-sun]";
		mes "Anyway, we got married when we became old enough to marry. He used to say sorry for not being able to afford to buy a ring for me.";
		next;
		mes "[Jeum-sun]";
		mes "It has been 40 years since we were married and he still says ^0000ff'Darling~ Do you want to have a ring?'^000000.";
		next;
		mes "[Jeum-sun]";
		mes "I told him.. What good is a ring for an old lady?";
		next;
		mes "[Jeum-sun]";
		mes "I should have stopped him. I still remember his face early.";
		next;
		select("What happened to him?");
		mes "[Jeum-sun]";
		mes "He had not came back since he left home to buy a ring.";
		next;
		mes "^0000ffThe old lady turned her face down with reddened eyes.^000000";
		if (countitem(6650)) {// Shabby_Ring
			next;
			if (select("Stop talking.:Show the ring from the Faceworm's Nest.") == 2) {
				mes "[Jeum-sun]";
				mes "What about this ring?";
				next;
				mes "[Jeum-sun]";
				mes "Oh... Darling~";
				next;
				mes "^0000ffThe lady read an inscription inside the ring and started weeping.";
				mes "[Jeum-sun, my darling flower]^000000";
				next;
				mes "^0000ffYou sense a warm energy emanating. Maybe this is the wish of the man who made this ring.^000000";
				specialeffect EF_SPHERE;
				next;
				mes "The warm energy has inspired you with strength.";
				delitem 6650,1;// Shabby_Ring
				setquest 12326;// The owner of old ring
				getexp 70000,55000;
			}
		}
		close;
	case 0:
	case 1:
		mes "The lady keeps crying over and over holding a ring. It seems to be no use talking to her right now.";
		close;
	case 2:
		mes "Sadly, this woman does not seem to remember the past because of abrupt emotional changes. Let's talk carefully and listen to her story.";
		erasequest 12326;
		close;
	}
}

// The Memory Of Old Photo Album
//============================================================
payon,161,54,3	script	Exotic Merchant#pa0829	4W_M_03,{
	if (!checkweight(1201,1)) {
		mes "You have too many types of belongings. Let's try again after reducing the types of items.";
		close;
	}
	if (MaxWeight - Weight < 1000) {
		mes "Your belongings are too heavy to continue. Let's try again after reducing the weight.";
		close;
	}
	if (BaseLevel < 140) {
		mes "[Sergio]";
		mes "Fortune or fame is not important. The most important thing is family.";
		next;
		mes "[Sergio]";
		mes "Are you at least level 140 yet?";
		close;
	}
	switch( checkquest(12327,PLAYTIME) ) {
	case -1:
		mes "[Sergio]";
		mes "I have a blurry memory of when I used to travel with my father's armed-merchant group.";
		next;
		mes "[Sergio]";
		mes "I vaguely remember everyone of the group were scattered after being attacked by a giant snake-like creature.";
		next;
		mes "[Sergio]";
		mes "I had lost my family at that time. I do not clearly remember even their faces.";
		next;
		mes "[Sergio]";
		mes "Now I've made my own armed-merchant group and got my life back. But the memory of my past keeps haunting me.";
		next;
		mes "[Sergio]";
		mes "I just stopped by this town to possibly find a record of my family and the armed-merchant group but so far I've found nothing.";
		if (countitem(6652)) {
			next;
			if (select("Stop talking.:Show him the Old Photo Album") == 2) {
				mes "[Sergio]";
				mes "Yes! I remembered. This is the one who used to work for my father's armed-merchant group.";
				next;
				mes "[Sergio]";
				mes "Oh my... There are other pictures here too...";
				next;
				mes "^0000ffA smile of lonely satisfaction spreads over the face of Sergio while looking at a photo album.^000000";
				next;
				mes "^0000ffA gentle energy surrounds Sergio.^000000";
				specialeffect EF_SPHERE;
				next;
				mes "You are touched by seeing the satisfaction on Sergio's face.";
				delitem 6652,1;// Aged_Photo_Album
				setquest 12327;// The memory of old photo album
				getexp 70000,55000;
			}
		}
		close;
	case 0:
	case 1:
		mes "Sergio keeps looking at the photo album. Let's leave him alone.";
		close;
	case 2:
		mes "You can talk to Sergio again when you pick up a new photo album from the Faceworm's Nest.";
		erasequest 12327;
		close;
	}
}

// Dol-Seoi's Sorrow
//============================================================
payon,161,50,1	script	Strong Looking Man#pa829	4_M_ORIENT01,{
	if (!checkweight(1201,1)) {
		mes "You have too many types of belongings. Let's try again after reducing the types of items.";
		close;
	}
	if (MaxWeight - Weight < 1000) {
		mes "Your belongings are too heavy to continue. Let's try again after reducing the weight.";
		close;
	}
	if (BaseLevel < 140) {
		mes "[Dol-Seoi]";
		mes "What can I do for you?";
		next;
		mes "[Dol-Seoi]";
		mes "Are you at least level 140 yet?";
		close;
	}
	switch( checkquest(12328,PLAYTIME) ) {
	case -1:
		mes "[Dol-Seoi]";
		mes "I used to be a servant to a very wealthy lady. She was always kind to me but she suffered from a severe cough that wouldn't go away unless she took a special pill.";
		next;
		mes "[Dol-Seoi]";
		mes "I used to get the pill from a group of armed-merchants but I heard that they were attacked by a snake and that's when I couldn't get any more pills.";
		next;
		mes "[Dol-Seoi]";
		mes "I searched everywhere but no one could get that pill for me so eventually my lady passed away. If it wasn't for that slithering...";
		next;
		select("Do you want to revenge?");
		mes "[Dol-Seoi]";
		mes "Well...";
		next;
		mes "[Dol-Seoi]";
		mes "Yes... But, I have nothing to do with that snake. I am just a worthless servant who once served for my lady.";
		next;
		mes "^0000ffYou catch a glimpse of complicated rage and sorrow in his eyes.^000000";
		if (countitem(6653)) {
			next;
			if (select("Stop talking.:Show him the Old Pill.") == 2) {
				mes "[Dol-Seoi]";
				mes "Wait! Where did you get this?";
				next;
				select("I killed a snake...");
				mes "[Dol-Seoi]";
				mes "This pill... My lady, if I had this pill...";
				next;
				mes "^0000ffHe begins to weep like a wounded Muka. She must have meant a lot to him...^000000";
				next;
				mes "^0000ffI feel gentle energy around Dol-Seoi.^000000";
				specialeffect EF_SPHERE;
				delitem 6653,1;// Aged_Tablet
				setquest 12328;// Dol-Seoi's Sorrow
				getexp 70000,55000;
			}
		}
		close;
	case 0:
	case 1:
		mes "Dol-Seoi is standing absent-mindedly clutching the Old Pill. Let's leave him alone now.";
		close;
	case 2:
		mes "You can talk to Dol-Seoi again if you get another Old Pill from the Faceworm's Nest.";
		erasequest 12328;
		close;
	}
}

// Keaton's Bracelet
//============================================================
payon,139,68,4	script	A dreary man#pa0829	4_M_NFDEADMAN,{
	if (!checkweight(1201,1)) {
		mes "You have too many types of belongings. Let's try again after reducing the types of items.";
		close;
	}
	if (MaxWeight - Weight < 1000) {
		mes "Your belongings are too heavy to continue. Let's try again after reducing the weight.";
		close;
	}
	if (BaseLevel < 140) {
		mes "[Keaton]";
		mes "...";
		next;
		mes "[Keaton]";
		mes "Unless you're level 140, I won't have a real conversation with you.";
		close;
	}
	switch( checkquest(12329,PLAYTIME) ) {
	case -1:
		mes "^0000ffIt looks like a dead soul but you don't feel maliciousness from it. His thoughts have been delivered piece by piece so it isn't easy to understand.^000000";
		next;
		mes "^999999[Keaton]";
		mes "Keaton... Not good at speaking.^000000";
		next;
		mes "^999999[Keaton]";
		mes "Keaton has died long time ago. Keaton is not bad.^000000";
		next;
		mes "^999999[Keaton]";
		mes "Keaton... Need bracelet, that is important. Keaton's friend gave the bracelet.^000000";
		next;
		mes "^999999[Keaton]";
		mes "Keaton, will go after a snake to find a bracelet. The bad snake killed keaton.^000000";
		if (countitem(6651)) {
			next;
			if (select("Stop talking.:Show him the Rusty Bracelet.") == 2) {
				mes "^999999[Keaton]";
				mes "It is the bracelet of Keaton!!^000000";
				specialeffect EF_MAPPILLAR2;
				next;
				mes "^999999[Keaton]";
				mes "Keaton...glad. Defeat bad snake!!^000000";
				next;
				mes "^0000ffKeaton seems to shine brighter.^000000";
				delitem 6651,1;// Rusted_Bracalet
				setquest 12329;// Keaton's Bracelet
				getexp 70000,55000;
			}
		}
		close;
	case 0:
	case 1:
		mes "Keaton's soul seems to be smiling. Best to give him whatever peace he can have for now.";
		close;
	case 2:
		mes "Keaton is very sad maybe it is because the bracelet was broken. Bring him any other Rusty Bracelets found in the Faceworm's Nest.";
		erasequest 12329;
		close;
	}
}

dali,83,67,5	script	Old Sign#1	4_BOARD3,{
	.@face_name$ = $120719_str_face$;
	.@face_timer  = $120719_num_face;
	.@face_member = $120903_num_face;
	.@time_m = .@face_timer / 60;
	.@time_s = .@face_timer - (.@time_m * 60);
	if (.@face_name$ == "") {
		mes "There's no sign because no one updates the record.";// Custom text
		close;
	}
	if (.@face_timer < 60)
		.@time_txt$ = callfunc( "F_InsertPlural", .@time_s, "Second" );
	else
		.@time_txt$ = callfunc( "F_InsertPlural", .@time_m, "Minute" ) + " " + callfunc( "F_InsertPlural", .@time_s, "Second" );
	if (.@face_member > 0)
		.@string$ =  " with ^ff0044" + .@face_member + " party " + ( .@face_member > 1 ? "members" : "members" )  + "^000000";
	mes "-- Faceworm's Nest Records --";
	mes "Best time belongs to adventurer ^ff0044" + .@face_name$ + "^000000" + .@string$ + ".";
	mes "Current record time is ^0000ff" + .@time_txt$ + "^000000.";
	close;

OnInit:
	if (!$120719_num_face)
		$120719_num_face = 3600;
	if (rand(1,100) > 97) {
		$120719_num_face = 3600;
		$120719_str_face$ = "";
	}
	end;
}

dali,80,60,4	script	Magic Scholar	4_M_SAGE_C,{
	if (BaseLevel < 140) {
		mes "[Magic Scholar]";
		mes "You are not qualified enough to enter here. How about visiting other places until you become level 140.";
		close;
	}
	.@party_id = getcharid(1);
	.@md_name$ = "Faceworm's Nest";
	if (.@party_id < 1) {
		mes "[Magic Scholar]";
		mes "You don't have a party? Please come back again after creating a party even if you've come alone.";
		close;
	}
	switch( checkquest(12325,PLAYTIME) ) {
	case -1:
		if (is_party_leader() == true) {
			mes "[Magic Scholar]";
			mes "What can I do for you?";
			next;
			switch( select("Reserve Faceworm's Nest:What are you doing here?:Stop Talking.") ) {
			case 1:
				switch( instance_create(.@md_name$) ) {
				case -3:
					dispbottom "Memorial Dungeon, '" + .@md_name$ + "' is already in progress.",0xFFFFFF;
					break;
				case -4:
				case -2:
				case -1:
					mes "[Magic Scholar]";
					mes "Oops, my hands are slip off. It is required to activate the craks again.";
					close;
				}
				mes "[Magic Scholar]";
				mes "The spaces are under control.";
				mes "Please wait for a minute.";
				close;
			case 2:
				break;
			case 3:
				mes "[Magic Scholar]";
				mes "Okay, I got it. Please come back again if you change your mind.";
				close;
			}
		}
		mes "[Magic Scholar]";
		mes "I am researching the dimensional cracks in space here.";
		next;
		mes "[Magic Scholar]";
		mes "My research is to stabilize the space here with magic to utilize it for dimensional travel.";
		next;
		mes "[Magic Scholar]";
		mes "This particular crack in space goes to a memory of the past. Many adventurers have been in there but no one will tell me what is in there...";
		next;
		mes "[Magic Scholar]";
		mes "And there's this strange sign here that records names and times on it which I can only assume belongs to those adventurers.";
		next;
		mes "[Magic Scholar]";
		mes "Anyways, I can activate the passage for you if you're a party leader.";
		close;
	case 0:
	case 1:
		mes "[Magic Scholar]";
		mes "The crack in time is not safe enough to pass back and forth. Please come back again if the after effect timer has passed.";
		close;
	case 2:
		mes "^0000ffThe trace of dimensional space travelling has disappeared. You can now move between dimensions.^000000";
		erasequest 12325;
		close;
	}
}

dali,72,55,4	script	Interdimensional Device	CLEAR_NPC,{
	if (BaseLevel < 140) {
		mes "[Interdimensional Device]";
		mes "Your power level is not high enough to travel the space. Please come back again when you reach at least level 140.";
		close;
	}
	.@party_id = getcharid(1);
	.@md_name$ = "Faceworm's Nest";
	if (.@party_id < 1) {
		mes "[Interdimensional Device]";
		mes "No party? Please come back again after creating a party even if you've come alone.";
		close;
	}
	switch( checkquest(12325,PLAYTIME) ) {
	case -1:
		switch( instance_enter(.@md_name$) ) {
		case IE_OTHER:
			mes "[Interdimensional Device]";
			mes "An unknown error has occurred.";
			close;
		case IE_NOINSTANCE:
			mes "[Interdimensional Device]";
			mes "The passage for space travel is not activated yet.";
			close;
		case IE_NOMEMBER:// Custom text
			mes "[Interdimensional Device]";
			mes "You are not allowed to access the device.";
			close;
		case IE_OK:
			mapannounce "dali", getpartyname(.@party_id) + " party's party member " + strcharinfo(0) + " enters " + .@md_name$ + ".",bc_map,"0x00ff99";
			setquest 12325;// Faceworm's Nest after-effects
			//warp "1@face",112,374;
			end;
		}
	case 0:
	case 1:
		mes "[Interdimensional Device]";
		mes "Traces of recent space travel have been detected. Access is denied.";
		close;
	case 2:
		mes "^0000ffThe trace of dimensional space travelling has disappeared. You can now move between dimensions.^000000";
		erasequest 12325;
		close;
	}
}

// Instance Scripts :: in_face
// 1st Stage
//============================================================
1@face,110,348,6	script	Chaos#0	4_M_CHAOS,{
	cutin "h_chaos01",2;
	if (is_party_leader() == false) {
		mes "[Chaos]";
		mes "I do not know what this is about, but I'm talking to your leader so please wait for a while ok?";
		close2;
		cutin "",255;
		end;
	}
	.@account_id = getcharid(3);
	.@player_name$ = strcharinfo(0);
	mes "[Chaos]";
	mes "Really? I didn't know that a bounty hunter was coming here.";
	npctalk "Chaos: Really? I didn't know that a bounty hunter was coming here.";
	next;
	select("Wait! It's a misunderstanding.");
	cutin "",255;
	mes "[" + .@player_name$ + "]";
	mes "No! I think you're mistaken! We are not bounty hunters...";
	unittalk .@account_id, .@player_name$ + ": No! I think you're mistaken! We are not bounty hunters...";
	next;
	cutin "h_chaos01",2;
	mes "[Chaos]";
	mes "No, No need to make an excuse... The faceworm belongs to nobody.";
	npctalk "Chaos: No, No need to make an excuse... The faceworm belongs to nobody.";
	next;
	select("Faceworm?");
	cutin "",255;
	mes "[" + .@player_name$ + "]";
	mes "Faceworm? I've never heard about it.";
	unittalk .@account_id, .@player_name$ + ": Faceworm? I've never heard about it.";
	close2;
	donpcevent instance_npcname("Chaos#01") + "::OnStart";
	end;
}

1@face,110,348,6	script	Chaos#01	4_M_CHAOS,{
	end;
OnStart:
	.@iris_name$ = instance_npcname("Iris#0");
	donpcevent instance_npcname("#globaltimer22") + "::OnT_s";
	hideoffnpc instance_npcname("Chaos#01");
	hideonnpc instance_npcname("Chaos#0");
	sleep 5000;
	npctalk "Chaos: Hahaha, you really never heard about it? Faceworm is the name of a monster which has recently showed up in this area.";
	sleep 5000;
	npctalk "Chaos: I don't care. I would not care as long as you don't disturb me.";
	sleep 5000;
	npctalk "Iris: Ah~ A gentle breeze~", .@iris_name$;
	sleep 3000;
	npctalk "Iris: Hehe, the weather has been great. I'm so happy~", .@iris_name$;
	sleep 3000;
	npctalk "Iris: How about you Chaos?", .@iris_name$;
	sleep 3000;
	npctalk "Chaos: It will only be for the time being.";
	sleep 3000;
	npctalk "Chaos: A black wind has started blowing.";
	sleep 4000;
	npctalk "Chaos: Iris! I feel like faceworms are around here. Maybe, the queen's nest is in the deepest side of this forest!";
	sleep 5000;
	npctalk "Iris: Ahah~ Let's take care of it as always like usual ok?", .@iris_name$;
	sleep 3000;
	npctalk "Chaos: Yes, let's take care of it and go back. Hey, adventurers. Watch out! I'm sure lots of faceworms will be here soon.";
	sleep 6000;
	hideonnpc instance_npcname("Chaos#01");
	hideonnpc instance_npcname("Iris#0");
	donpcevent instance_npcname("#fwormcontrol1") + "::OnStart";
	mapannounce 'map_name$, "Faceworm time attack has started. Faster kill times gives a higher percentage of rewards.",bc_map,"0xffffff";
	donpcevent instance_npcname("#fwormprize1") + "::OnStart";
	end;
OnInstanceInit:
	hideonnpc instance_npcname("Chaos#01");
	end;
}

1@face,116,346,3	script	Iris#0	4_F_IRIS,{
	cutin "h_iris02",2;
	mes "[Iris]";
	mes "Sorry~ I enjoy a gentle breeze so talk to me next time.";
	close2;
	cutin "",255;
	end;
}

1@face,1,5,3	script	#fwormcontrol1	CLEAR_NPC,{
	end;
OnStart:
	.@mob_c = getmapusers('map_name$) + 1;
	.@event$ = instance_npcname("#fwormcontrol1") + "::OnMyMobDead";
	killmonster 'map_name$, .@event$;
	areamonster 'map_name$,65,330,179,336,"Faceworm",2528, (.@mob_c*2), .@event$;
	areamonster 'map_name$,62,62,68,332,"Faceworm",2528, (.@mob_c*7), .@event$;
	areamonster 'map_name$,66,59,172,65,"Faceworm",2528, (.@mob_c*2), .@event$;
	end;
OnMyMobDead:
	.@mob_dead_num = mobcount( 'map_name$, instance_npcname("#fwormcontrol1") +"::OnMyMobDead" );
	mapannounce 'map_name$, "There " + ( .@mob_dead_num > 1 ? "are" : "is" ) + " " + callfunc( "F_InsertPlural", .@mob_dead_num, "faceworm" ) + " still alive.",bc_map,"0xffffff";
	if (.@mob_dead_num < 3)
		initnpctimer;
	end;
OnTimer1000:
	killmonster 'map_name$, instance_npcname("#fwormcontrol1") + "::OnMyMobDead";
	donpcevent instance_npcname("#fwormboss1") + "::OnStart";
	mapannounce 'map_name$, "A giant faceworm has suddenly appeared.",bc_map,"0xffffff";
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormcontrol1");
	end;
}

1@face,1,4,3	script	#fwormboss1	CLEAR_NPC,{
	end;
OnStart:
	areamonster 'map_name$,140,69,150,79,"Dark Faceworm",2530,1,instance_npcname("#fwormboss1") + "::OnMyMobDead";
	'BOSS[1] = $@mobid[0];
	.@dfacehp = ( 13 - getmapusers('map_name$) ) * 200000;
	.@MOB_HP = 5200000 - .@dfacehp;
	if (.@MOB_HP < 1500000)
		.@MOB_HP = 1500000;
	setunitdata 'BOSS[1], UMOB_HP, .@MOB_HP;
	initnpctimer;
	end;
OnTimer1111:
	.@mapcount = getmapusers('map_name$);
	if (.@mapcount < 1)
		setunitdata 'BOSS[1], UMOB_HP, 5000000;// Note : weird behaviour.
	else if (rand(1,(22-.@mapcount)) < 17) {
		getunitdata 'BOSS[1], .@arr;
		if (.@arr[UMOB_HP] > 3000000 && .@arr[UMOB_HP] < 4900000)
			donpcevent instance_npcname("#fwormboss12") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 10000 && .@arr[UMOB_HP] < 2500001)
			donpcevent instance_npcname("#fwormboss12") + "::OnStart2";
	}
	end;
OnTimer14000:
	stopnpctimer;
	getunitdata 'BOSS[1], .@arr;
	if (.@arr[UMOB_HP] > 10000)
		initnpctimer;
	end;

OnMyMobDead:
	if (mobcount( 'map_name$,instance_npcname("#fwormboss1") +"::OnMyMobDead" ) < 1) {
		hideoffnpc instance_npcname("#fwormprize1");
		enablenpc instance_npcname("#fwormenter1");
		enablenpc instance_npcname("#fwormexit1");
		hideoffnpc instance_npcname("Chaos#1");
		hideoffnpc instance_npcname("Iris#1");
		donpcevent instance_npcname("#fwormboss12") + "::OnEnd";
		mapannounce 'map_name$, "A hole appears after killing the dark faceworm.",bc_map,"0xffffff";
		stopnpctimer;
	}
	end;

OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss1");
	end;
}

1@face,1,4,3	script	#fwormboss12	CLEAR_NPC,{
	end;
OnStart1:
	callsub S_Spawn,3;
OnStart2:
	callsub S_Spawn,6;
S_Spawn:
	initnpctimer;
	.@arg = getarg(0);
	.@event$ = instance_npcname("#fwormboss12") +"::OnMyMobDead";
	if (mobcount( 'map_name$,.@event$ ) > .@arg)
		killmonster 'map_name$, .@event$;
	getunitdata 'BOSS[1], .@arr;
	.@mobx = .@arr[UMOB_X];
	.@moby = .@arr[UMOB_Y];
	monster 'map_name$,(.@mobx-4),.@moby,"Faceworm Egg",2540,1,.@event$;
	monster 'map_name$,(.@mobx+4),.@moby,"Faceworm Egg",2540,1,.@event$;
	if (.@arg == 6) {
		monster 'map_name$,.@mobx,(.@moby+4),"Faceworm Egg",2540,1,.@event$;
		monster 'map_name$,.@mobx,(.@moby-4),"Faceworm Egg",2540,1,.@event$;
	}
	end;
OnTimer12000:
	.@mob_dead_num = mobcount( 'map_name$,instance_npcname("#fwormboss12") +"::OnMyMobDead" );
	if (.@mob_dead_num > 3)
		callsub S_Heal,4,150000;
	else if (.@mob_dead_num > 2)
		callsub S_Heal,3,55000;
	else if (.@mob_dead_num > 1)
		callsub S_Heal,2,20000;
	else if (.@mob_dead_num > 0)
		callsub S_Heal,1,7200;
	donpcevent instance_npcname("#fwormboss12") + "::OnEnd";
	end;
S_Heal:
	.@mapcount = getmapusers('map_name$);
	getunitdata 'BOSS[1], .@arr;
	.@r_hpp = (.@mapcount + 1) * getarg(1);
	.@dfacehp = .@arr[UMOB_HP] + .@r_hpp;
	.@r_hpp2 = 5200000 - ( (13-.@mapcount) * 200000 );
	if (.@dfacehp > .@r_hpp2)
		.@dfacehp = .@r_hpp2;
	setunitdata 'BOSS[1], UMOB_HP, .@dfacehp;
	mapannounce 'map_name$, "Dark faceworm absorbs the energy of " + getarg(0) + " unbroken eggs recovering " + .@r_hpp + " energy.",bc_map,"0xff00ee";
	return;

OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss12") + "::OnMyMobDead";
	stopnpctimer;
	end;
OnMyMobDead:
	end;

OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss12");
	end;
}

1@face,149,92,0	script	#fwormenter1	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,127,95;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormenter1");
	end;
}

1@face,129,86,0	script	#fwormexit1	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,156,76;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormexit1");
	end;
}

// 2nd Stage
//============================================================
1@face,120,97,6	script	Chaos#1	4_M_CHAOS,{
	cutin "h_chaos01",2;
	if (is_party_leader() == false) {
		mes "[Chaos]";
		mes "I do not know what this is about, but I'm talking to your leader so please wait for a while ok?";
		close2;
		cutin "",255;
		end;
	}
	mes "[Chaos]";
	mes "Wow, you're fast enough to follow me.";
	npctalk "Chaos: Wow, you're fast enough to follow me.";
	next;
	select("The big one, just right before...");
	cutin "",255;
	mes "[" + strcharinfo(0) + "]";
	mes "The big one just right before we saw is a boss here?";
	unittalk getcharid(3), strcharinfo(0) + ": The big one just right before we saw is a boss here?";
	next;
	cutin "h_chaos01",2;
	mes "[Chaos]";
	mes "No~~ It can't be the faceworm queen.";
	close2;
	donpcevent instance_npcname("Chaos#11") + "::OnStart";
	cutin "",255;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Chaos#1");
	end;
}

1@face,120,97,6	script	Chaos#11	4_M_CHAOS,{
	end;
OnStart:
	.@iris_name$ = instance_npcname("Iris#1");
	hideoffnpc instance_npcname("Chaos#11");
	hideonnpc instance_npcname("Chaos#1");
	npctalk "Chaos: No~~ It can't be the faceworm queen.";
	sleep 4000;
	npctalk "Chaos: The one we just saw before is a mutant faceworm.";
	sleep 5000;
	npctalk "Chaos: Wait! The dead faceworm's castoff skin might be useful.";
	sleep 3000;
	npctalk "Iris: But, if the fight takes too long. The scales might be damaged. They'll be worthless!", .@iris_name$;
	sleep 5000;
	npctalk "Iris: I heard that skillful hunters are good at taking the scales off super fast.", .@iris_name$;
	sleep 6000;
	npctalk "Iris: Chaos, are you any good at it?", .@iris_name$;
	sleep 3000;
	npctalk "Chaos: No... Not at all! I use Magnum Break only, so the scales will probably get burned...";
	sleep 3000;
	npctalk "Iris: Useless Chaos.", .@iris_name$;
	sleep 3000;
	npctalk "Chaos: Besides, the one we are looking for is not here. I will go back first, so take care of the rest ok?";
	sleep 5000;
	hideonnpc instance_npcname("Chaos#11");
	npctalk "Iris: Chaos! Are you leaving me alone?", .@iris_name$;
	sleep 3000;
	hideonnpc .@iris_name$;
	donpcevent instance_npcname("#fwormcontrol2") + "::OnStart";
	donpcevent instance_npcname("#fwormprize2") + "::OnStart";
	end;
OnInstanceInit:
	hideonnpc instance_npcname("Chaos#11");
	end;
}

1@face,129,97,3	script	Iris#1	4_F_IRIS,{
	cutin "h_iris02",2;
	mes "[Iris]";
	mes "Chaos is a good friend even though he's only able to use Magnum Break...";
	close2;
	cutin "",255;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Iris#1");
	end;
}

1@face,2,5,3	script	#fwormcontrol2	CLEAR_NPC,{
	end;
OnStart:
	.@mob_c = getmapusers('map_name$) + 1;
	.@event$ = instance_npcname("#fwormcontrol2") + "::OnMyMobDead";
	areamonster 'map_name$,107,102,113,154,"Faceworm",2528, (.@mob_c*2), .@event$;
	areamonster 'map_name$,115,175,121,209,"Faceworm",2528, (.@mob_c*2), .@event$;
	areamonster 'map_name$,118,240,204,292,"Faceworm",2528, (.@mob_c*7), .@event$;
	end;
OnMyMobDead:
	.@mob_dead_num = mobcount( 'map_name$,instance_npcname("#fwormcontrol2") +"::OnMyMobDead" );
	mapannounce 'map_name$, "There " + ( .@mob_dead_num > 1 ? "are" : "is" ) + " " + callfunc( "F_InsertPlural", .@mob_dead_num, "faceworm" ) + " still alive.",bc_map,"0xffffff";
	if (.@mob_dead_num < 3)
		initnpctimer;
	end;
OnTimer1000:
	killmonster 'map_name$, instance_npcname("#fwormcontrol2") + "::OnMyMobDead";
	donpcevent instance_npcname("#fwormboss2") + "::OnStart";
	mapannounce 'map_name$, "A giant faceworm has suddenly appeared.",bc_map,"0xffffff";
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormcontrol2");
	end;
}

1@face,2,5,3	script	#fwormboss2	CLEAR_NPC,{
	end;
OnStart:
	areamonster 'map_name$,156,267,166,277,"Dark Faceworm",2530,1,instance_npcname("#fwormboss2") + "::OnMyMobDead";
	'BOSS[2] = $@mobid[0];
	.@dfacehp = ( 13 - getmapusers('map_name$) ) * 200000;
	.@MOB_HP = 5200000 - .@dfacehp;
	if (.@MOB_HP < 1500000)
		.@MOB_HP = 1500000;
	setunitdata 'BOSS[2], UMOB_HP, .@MOB_HP;
	initnpctimer;
	end;
OnTimer1111:
	.@mapcount = getmapusers('map_name$);
	if (.@mapcount < 1)
		setunitdata 'BOSS[2], UMOB_HP, 5000000;
	else if (rand(1,(22-.@mapcount)) < 17) {
		getunitdata 'BOSS[2], .@arr;
		if (.@arr[UMOB_HP] > 2000000 && .@arr[UMOB_HP] < 5000000)
			donpcevent instance_npcname("#fwormboss22") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 10000 && .@arr[UMOB_HP] < 2000000)
			donpcevent instance_npcname("#fwormboss22") + "::OnStart2";
	}
	end;
OnTimer12000:
	stopnpctimer;
	getunitdata 'BOSS[2], .@arr;
	if (.@arr[UMOB_HP] > 10000)
		initnpctimer;
	end;

OnMyMobDead:
	if (mobcount( 'map_name$,instance_npcname("#fwormboss2") +"::OnMyMobDead" ) < 1) {
		enablenpc instance_npcname("#fwormenter2");
		enablenpc instance_npcname("#fwormexit2");
		hideoffnpc instance_npcname("#fwormprize2");
		hideoffnpc instance_npcname("Chaos#2");
		hideoffnpc instance_npcname("Iris#2");
		donpcevent instance_npcname("#fwormboss22") + "::OnEnd";
		mapannounce 'map_name$, "You hear something loud in the south. It must be the nest of the one we just got rid of.",bc_map,"0xffffff";
		stopnpctimer;
	}
	end;

OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss2");
	end;
}

1@face,1,4,3	script	#fwormboss22	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss22") +"::OnMyMobDead";
	stopnpctimer;
	end;
OnStart1:
	initnpctimer;
	if (mobcount( 'map_name$,instance_npcname("#fwormboss22") +"::OnMyMobDead" ) > 6)
		killmonster 'map_name$, instance_npcname("#fwormboss22") + "::OnMyMobDead";
	getunitdata 'BOSS[2], .@arr;
	.@mobx = .@arr[UMOB_X];
	.@moby = .@arr[UMOB_Y];
	monster 'map_name$,.@mobx-4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss22") + "::OnMyMobDead";
	monster 'map_name$,.@mobx+4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss22") + "::OnMyMobDead";
	end;
OnStart2:
	initnpctimer;
	if (mobcount( 'map_name$,instance_npcname("#fwormboss22") +"::OnMyMobDead" ) > 12)
		killmonster 'map_name$, instance_npcname("#fwormboss22") + "::OnMyMobDead";
	getunitdata 'BOSS[2], .@arr;
	.@mobx = .@arr[UMOB_X];
	.@moby = .@arr[UMOB_Y];
	monster 'map_name$,.@mobx-4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss22") + "::OnMyMobDead";
	monster 'map_name$,.@mobx,.@moby+4,"#waterball",2539,1,instance_npcname("#fwormboss22") + "::OnMyMobDead";
	monster 'map_name$,.@mobx+4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss22") + "::OnMyMobDead";
	monster 'map_name$,.@mobx,.@moby-4,"#waterball",2539,1,instance_npcname("#fwormboss22") + "::OnMyMobDead";
	end;
OnTimer20000:
	donpcevent instance_npcname("#fwormboss22") + "::OnEnd";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss22");
	end;
}

1@face,139,100,0	script	#fwormenter2	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,156,117;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormenter2");
	end;
}

1@face,151,106,0	script	#fwormexit2	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,127,95;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormexit2");
	end;
}

// 3rd Stage
//============================================================
1@face,153,113,7	script	Chaos#2	4_M_CHAOS,{
	cutin "h_chaos01",2;
	if (is_party_leader() == false) {
		mes "[Chaos]";
		mes "I do not know what this is about, but I'm talking to your leader so please wait for a while ok?";
		close2;
		cutin "",255;
		end;
	}
	mes "[Chaos]";
	mes "You're pretty good! But you have to be careful from now on. This narrow canyon seems to be full of dangers.";
	npctalk "Chaos: You're pretty good! But you have to be careful from now on. This narrow canyon seems to be full of dangers.";
	close2;
	donpcevent instance_npcname("Chaos#22") + "::OnStart";
	cutin "",255;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Chaos#2");
	end;
}

1@face,153,113,7	script	Chaos#22	4_M_CHAOS,{
	end;
OnStart:
	hideoffnpc instance_npcname("Chaos#22");
	hideonnpc instance_npcname("Chaos#2");
	sleep 4000;
	npctalk "Iris: I do not feel good here. Let's get outta here right now Chaos!", instance_npcname("Iris#2");
	sleep 4000;
	npctalk "Chaos: Ok, let's get out of here. Carefully follow me!";
	sleep 4000;
	hideonnpc instance_npcname("Chaos#22");
	hideonnpc instance_npcname("Iris#2");
	donpcevent instance_npcname("#fwormcontrol3") + "::OnStart";
	donpcevent instance_npcname("#fwormprize3") + "::OnStart";
	end;
OnInstanceInit:
	hideonnpc instance_npcname("Chaos#22");
	end;
}

1@face,160,113,1	script	Iris#2	4_F_IRIS,{
	cutin "h_iris01",2;
	mes "[Iris]";
	mes "This canyon. I am not feeling good here. I don't want to stay anymore.";
	close2;
	cutin "",255;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Iris#2");
	end;
}

1@face,2,5,3	script	#fwormcontrol3	CLEAR_NPC,{
	end;
OnStart:
	.@mon_num = ( getmapusers('map_name$) + 1 ) * 11;
	areamonster 'map_name$,238,274,308,344,"Faceworm",2528,.@mon_num,instance_npcname("#fwormcontrol3") + "::OnMyMobDead";
	end;
OnMyMobDead:
	.@mob_dead_num = mobcount('map_name$,instance_npcname("#fwormcontrol3") + "::OnMyMobDead");
	mapannounce 'map_name$, "There " + ( .@mob_dead_num > 1 ? "are" : "is" ) + " " + callfunc( "F_InsertPlural", .@mob_dead_num, "faceworm" ) + " still alive.",bc_map,"0xffffff";
	if (.@mob_dead_num < 3)
		initnpctimer;
	end;
OnTimer1000:
	killmonster 'map_name$, instance_npcname("#fwormcontrol3") + "::OnMyMobDead";
	donpcevent instance_npcname("#fwormboss3") + "::OnStart";
	mapannounce 'map_name$, "A giant faceworm has suddenly appeared.",bc_map,"0xffffff";
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormcontrol3");
	end;
}

1@face,2,5,3	script	#fwormboss3	CLEAR_NPC,{
	end;
OnStart:
	areamonster 'map_name$,273,303,283,313,"Dark Faceworm",2530,1,instance_npcname("#fwormboss3") + "::OnMyMobDead";
	'BOSS[3] = $@mobid[0];
	.@MOB_HP = 5200000 - ( (13 - getmapusers('map_name$)) * 200000 );
	if (.@MOB_HP < 1500000)
		.@MOB_HP = 1500000;
	setunitdata 'BOSS[3], UMOB_HP, .@MOB_HP;
	initnpctimer;
	end;
OnTimer1111:
	.@mapcount = getmapusers('map_name$);
	if (.@mapcount < 1)
		setunitdata 'BOSS[3], UMOB_HP, 5000000;
	else if (rand(1,(22-.@mapcount)) < 17) {
		getunitdata 'BOSS[3], .@arr;
		if (.@arr[UMOB_HP] > 4200000 && .@arr[UMOB_HP] < 5000000 || .@arr[UMOB_HP] > 3200000 && .@arr[UMOB_HP] < 4000000 || .@arr[UMOB_HP] > 2200000 && .@arr[UMOB_HP] < 3000000)
			donpcevent instance_npcname("#fwormboss32") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 1200000 && .@arr[UMOB_HP] < 2000000 || .@arr[UMOB_HP] > 10000 && .@arr[UMOB_HP] < 1000000)
			donpcevent instance_npcname("#fwormboss32") + "::OnStart2";
	}
	end;
OnTimer7000:
	stopnpctimer;
	getunitdata 'BOSS[3], .@arr;
	if (.@arr[UMOB_HP] > 10000)
		initnpctimer;
	end;
OnMyMobDead:
	if (mobcount( 'map_name$,instance_npcname("#fwormboss3") +"::OnMyMobDead" ) < 1) {
		hideoffnpc instance_npcname("#fwormprize3");
		enablenpc instance_npcname("#fwormenter3");
		enablenpc instance_npcname("#fwormexit3");
		enablenpc instance_npcname("#chaoson");
		donpcevent instance_npcname("#fwormboss32") + "::OnEnd";
		mapannounce 'map_name$, "You hear the pile of stones collapsing. This might be a gateway to go to other spaces.",bc_map,"0xffffff";
		stopnpctimer;
	}
	end;
OnHeal01:
	.@mapcount = getmapusers('map_name$);
	getunitdata 'BOSS[3], .@arr;
	.@r_hpp = ((.@mapcount+1) * 5000) * rand(1,10);
	.@dfacehp = .@arr[UMOB_HP] + .@r_hpp;
	.@r_hpp2 = 5200000 - ((13-.@mapcount) * 200000);
	if (.@dfacehp > .@r_hpp2)
		.@dfacehp = .@r_hpp2;
	setunitdata 'BOSS[3], UMOB_HP, .@dfacehp;
	mapannounce 'map_name$, "Dark faceworm has dropped a sack of fatal poison and recovers " + .@r_hpp + " amount of energy.",bc_map,"0x66ff00";
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss3");
	end;
}

1@face,1,4,3	script	#fwormboss32	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss32") + "::OnMyMobDead";
	end;
OnStart1:
	callsub S_Spawn, 3;
OnStart2:
	callsub S_Spawn, 5;
S_Spawn:
	getunitdata 'BOSS[3], .@arr;
	.@num = getarg(0);
	.@coord_x = .@arr[UMOB_X] + .@num;
	.@coord_y = .@arr[UMOB_Y] - .@num;
	.@vmobx = .@arr[UMOB_X] - .@num;
	do {
		.@vmoby = .@arr[UMOB_Y] + .@num;
		do {
			monster 'map_name$,.@vmobx,.@vmoby,"Venom Bug",2531,1,instance_npcname("#fwormboss32") + "::OnMyMobDead";
			.@vmoby -= 2;
		}
		while( .@vmoby >= .@coord_y );
		.@vmobx += 2;
	}
	while( .@vmobx <= .@coord_x );
	donpcevent instance_npcname("#fwormboss3") + "::OnHeal01";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss32");
	end;
}

1@face,248,185,0	script	#fwormenter3	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,261,170;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormenter3");
	end;
}

1@face,254,175,0	script	#fwormexit3	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,244,192;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormexit3");
	end;
}

// 4th Stage
//============================================================
1@face,261,169,0	script	#chaoson	HIDDEN_WARP_NPC,7,7,{
	end;
OnTouch_:
	disablenpc instance_npcname("#chaoson");
	donpcevent instance_npcname("#announcer1") + "::OnStart";
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaoson");
	end;
}

1@face,1,10,7	script	#announcer1	CLEAR_NPC,{
	end;
OnStart:
	mapannounce 'map_name$, "The voice of Chaos: Hey adventurers, you should be careful! Avoid the poison!",bc_map,"0xffff00";
	sleep 6000;
	mapannounce 'map_name$, "The voice of Chaos: We are looking for another nest so let me know if you find anything.",bc_map,"0xffff00";
	donpcevent instance_npcname("#fwormcontrol4") + "::OnStart";
	donpcevent instance_npcname("#fwormcontrol42") + "::OnStart";
	donpcevent instance_npcname("#fwormprize4") + "::OnStart";
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#announcer1");
	end;
}

1@face,2,5,3	script	#fwormcontrol4	CLEAR_NPC,{
	end;
OnStart:
	.@mob_c = getmapusers('map_name$) + 1;
	.@mon_num = .@mob_c * 6;
	areamonster 'map_name$,250,94,330,174,"Faceworm",2528,.@mon_num,instance_npcname("#fwormcontrol4") + "::OnMyMobDead";
	.@mon_num = .@mob_c * 5;
	areamonster 'map_name$,223,51,303,111,"Faceworm",2528,.@mon_num,instance_npcname("#fwormcontrol4") + "::OnMyMobDead";
	end;
OnMyMobDead:
	.@mob_dead_num = mobcount('map_name$,instance_npcname("#fwormcontrol4") + "::OnMyMobDead");
	mapannounce 'map_name$, "There " + ( .@mob_dead_num > 1 ? "are" : "is" ) + " " + callfunc( "F_InsertPlural", .@mob_dead_num, "faceworm" ) + " still alive.",bc_map,"0xffffff";
	if (.@mob_dead_num < 3)
		initnpctimer;
	end;
OnTimer1000:
	killmonster 'map_name$, instance_npcname("#fwormcontrol4") + "::OnMyMobDead";
	donpcevent instance_npcname("#fwormboss4") + "::OnStart";
	mapannounce 'map_name$, "You hear something screaming to the west.",bc_map,"0xffffff";
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormcontrol4");
	end;
}

1@face,2,6,3	script	#fwormcontrol42	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormcontrol42") + "::OnMyMobDead";
	end;
OnStart:
	.@mon_num = ( getmapusers('map_name$) + 8 ) * 5;
	areamonster 'map_name$,237,71,337,171,"#toxicarea",2536,.@mon_num,instance_npcname("#fwormcontrol42") + "::OnMyMobDead";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormcontrol42");
	end;
}

1@face,2,5,3	script	#fwormboss4	CLEAR_NPC,{
	end;
OnStart:
	areamonster 'map_name$,209,103,219,113,"Dark Faceworm",2530,1,instance_npcname("#fwormboss4") + "::OnMyMobDead";
	'BOSS[4] = $@mobid[0];
	.@dfacehp = ( 13 - getmapusers('map_name$) ) * 200000;
	.@MOB_HP = 5200000 - .@dfacehp;
	if (.@MOB_HP < 1500000)
		.@MOB_HP = 1500000;
	setunitdata 'BOSS[4], UMOB_HP, .@MOB_HP;
	initnpctimer;
	end;
OnTimer1111:
	.@mapcount = getmapusers('map_name$);
	if (.@mapcount < 1)
		setunitdata 'BOSS[4], UMOB_HP, 5000000;
	else if (rand(1,22-.@mapcount) < 17) {
		getunitdata 'BOSS[4], .@arr;
		if (.@arr[UMOB_HP] > 4300000 && .@arr[UMOB_HP] < 5000000 || .@arr[UMOB_HP] > 3300000 && .@arr[UMOB_HP] < 4000000)
			donpcevent instance_npcname("#fwormboss42") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 2300000 && .@arr[UMOB_HP] < 3000000 || .@arr[UMOB_HP] > 1300000 && .@arr[UMOB_HP] < 2000000 || .@arr[UMOB_HP] > 10000 && .@arr[UMOB_HP] < 1000000)
			donpcevent instance_npcname("#fwormboss42") + "::OnStart2";
	}
	end;
OnTimer10000:
	stopnpctimer;
	getunitdata 'BOSS[4], .@arr;
	if (.@arr[UMOB_HP] > 10000)
		initnpctimer;
	else
		donpcevent instance_npcname("#fwormboss42") + "::OnEnd";
	end;
OnMyMobDead:
	if (mobcount( 'map_name$,instance_npcname("#fwormboss4") +"::OnMyMobDead" ) < 1) {
		donpcevent instance_npcname("#fwormcontrol42") + "::OnEnd";
		hideoffnpc instance_npcname("#fwormprize4");
		enablenpc instance_npcname("#fwormenter4");
		enablenpc instance_npcname("#fwormexit4");
		hideoffnpc instance_npcname("Chaos#4");
		hideoffnpc instance_npcname("Iris#4");
		enablenpc instance_npcname("#chaoson2");
		donpcevent instance_npcname("#fwormboss42") + "::OnEnd";
		mapannounce 'map_name$, "You hear the pile of stones collapsing. I think another gateway is found.",bc_map,"0xffffff";
		stopnpctimer;
	}
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss4");
	end;
}

1@face,1,4,3	script	#fwormboss42	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss42") + "::OnMyMobDead";
	stopnpctimer;
	end;
OnStart1:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss42") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 12)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[4], .@arr;
	.@mobx = .@arr[UMOB_X];
	.@moby = .@arr[UMOB_Y];
	monster 'map_name$,.@mobx-3,.@moby+3,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx+3,.@moby+3,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx-3,.@moby-3,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx+3,.@moby-3,"#venomfog",2536,1, .@label$;
	end;
OnStart2:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss42") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 27)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[4], .@arr;
	.@mobx = .@arr[UMOB_X];
	.@moby = .@arr[UMOB_Y];
	monster 'map_name$,.@mobx-5,.@moby+5,"#venomfog",2536,1, .@label$;
	monster 'map_name$,  .@mobx,.@moby+5,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx+5,.@moby+5,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx-5,  .@moby,"#venomfog",2536,1, .@label$;
	monster 'map_name$,  .@mobx,  .@moby,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx+5,  .@moby,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx-5,.@moby-5,"#venomfog",2536,1, .@label$;
	monster 'map_name$,  .@mobx,.@moby-5,"#venomfog",2536,1, .@label$;
	monster 'map_name$,.@mobx+5,.@moby-5,"#venomfog",2536,1, .@label$;
	end;
OnTimer30000:
	donpcevent instance_npcname("#fwormboss42") + "::OnEnd";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss42");
	end;
}

1@face,204,122,0	script	#fwormenter4	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,210,145;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormenter4");
	end;
}

1@face,198,142,0	script	#fwormexit4	WARPNPC,2,2,{
	end;
OnTouch:
	warp 'map_name$,211,114;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#fwormexit4");
	end;
}

// 5th Stage (Final Boss Room)
//============================================================
1@face,213,147,0	script	#chaoson2	HIDDEN_WARP_NPC,7,7,{
	end;
OnTouch_:
	disablenpc instance_npcname("#chaoson2");
	donpcevent instance_npcname("Chaos#4") + "::OnStart";
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaoson2");
	end;
}

1@face,213,153,6	script	Chaos#5	4_M_CHAOS,{
	end;
OnInstanceInit:
	hideonnpc instance_npcname("Chaos#5");
	end;
}

1@face,208,149,7	script	Chaos#4	4_M_CHAOS,{
	cutin "h_chaos01",2;
	mes "[Chaos]";
	mes "Hew. This puddle is weird.";
	close2;
	cutin "",255;
	end;

OnStart:
	.@iris$ = instance_npcname("Iris#4");
	.@chaos5$ = instance_npcname("Chaos#5");
	sleep 2000;
	npctalk "Chaos: Iris, what is this puddle for?";
	sleep 3000;
	npctalk "Iris: Well, I think it is too big to be the nest of a faceworm.", .@iris$;
	sleep 4000;
	npctalk "Chaos: Hmm, okay, should I go down there and check it out?";
	sleep 3000;
	npctalk "Iris: Chaos! Cut the crap.", .@iris$;
	sleep 3000;
	npctalk "Chaos: Why not? It doesn't even look that dangerous!";
	sleep 5000;
	hideonnpc instance_npcname("Chaos#4");
	sleep 3000;
	npctalk "Iris: Arrghh, Chaos you're such a troublemaker.", .@iris$;
	sleep 6000;
	npctalk "Chaos: Ugh! Arrgh!! What is this?", .@chaos5$;
	sleep 2000;
	npctalk "Iris: Chaos! What is it?", .@iris$;
	sleep 2000;
	npctalk "Chaos: Ah", .@chaos5$;
	sleep 100;
	npctalk "Chaos: Argh", .@chaos5$;
	sleep 100;
	npctalk "Chaos: Argghh", .@chaos5$;
	sleep 100;
	npctalk "Chaos: Argghhhhh", .@chaos5$;
	sleep 100;
	npctalk "Chaos: Argghhhhhhh", .@chaos5$;
	sleep 100;
	npctalk "Chaos: Argghhhhhhhhh", .@chaos5$;
	sleep 100;
	npctalk "Chaos: Argghhhhhhhhhhh!!", .@chaos5$;
	sleep 5000;
	hideoffnpc instance_npcname("Chaos#4");
	sleep 3000;
	npctalk "Chaos: Damn, I was close to being eaten alive.";
	sleep 3000;
	npctalk "Iris: I asked you what happened dummy!", .@iris$;
	sleep 3000;
	npctalk "Chaos: Uhh, the faceworm queen is crawling up now and it looks like really pissed off. So let's, uh, get outta here.";
	sleep 6000;
	hideonnpc instance_npcname("Chaos#4");
	sleep 1000;
	npctalk "Iris: Chaos you idiot!!", .@iris$;
	specialeffect EF_DUSTSTORM,AREA, .@chaos5$;
	specialeffect EF_MAPPILLAR2,AREA, .@chaos5$;
	sleep 5000;
	hideonnpc instance_npcname("Iris#4");
	sleep 9000;
	donpcevent instance_npcname("#fwormboss5") + "::OnStart";
	donpcevent instance_npcname("#fwormprize5") + "::OnStart";
	end;
OnInstanceInit:
	hideonnpc instance_npcname("Chaos#4");
	end;
}

1@face,220,149,1	script	Iris#4	4_F_IRIS,{
	cutin "h_iris01",2;
	mes "[Iris]";
	mes "Something seems fishy around here. It's dangerous.";
	close2;
	cutin "",255;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Iris#4");
	end;
}

1@face,1,4,3	script	#fwormboss5	CLEAR_NPC,{
	if (callfunc("F_GM_NPC",1854,0) == 1) {
		mes "" + mobcount('map_name$,instance_npcname("#fwormboss5") + "::OnMyMobDead");
		close;
	}
	end;

OnHeal05:
	callsub S_Heal, 5;
OnHeal04:
	callsub S_Heal, 4, 1000000;
OnHeal03:
	callsub S_Heal, 3, 250000;
OnHeal02:
	callsub S_Heal, 2, 100000;
OnHeal01:
	callsub S_Heal, 1, 50000;
S_Heal:
	getunitdata 'BOSS[5],.@arr;
	.@type = getarg(0);
	.@mapcount = getmapusers('map_name$);
	if (.@type == 5)
		.@r_hpp = (.@mapcount+1) * 20000 * rand(1,10);
	else
		.@r_hpp = .@mapcount * getarg(1);
	.@dfacehp = .@arr[UMOB_HP] + .@r_hpp;
	.@r_hpp2 = 52000000 - ((13-.@mapcount) * 2000000);
	if (.@dfacehp > .@r_hpp2)
		.@dfacehp = .@r_hpp2;
	setunitdata 'BOSS[5], UMOB_HP, .@dfacehp;
	if (.@type == 5)
		mapannounce 'map_name$, "The Faceworm Queen has dropped a sack of fatal poison and recovers " + .@r_hpp + " amount of energy.",bc_map,"0x66ff00",FW_NORMAL,14;
	else
		mapannounce 'map_name$, "The Faceworm Queen absorbs the energy of " + .@type + " unbroken " + ( .@type > 1 ? "eggs" : "egg" ) + " and recovers " + .@r_hpp + " amount of energy.",bc_map,"0x66ff00",FW_NORMAL,14;
	end;
OnDamage:
	getunitdata 'BOSS[5],.@arr;
	.@r_hpp_1 = ( getmapusers('map_name$) + 7 ) * 25;
	.@dr_hpp = rand(20,.@r_hpp_1) * 10000;
	.@dfacehp = .@arr[UMOB_HP] - .@dr_hpp;
	if (.@dfacehp < 5000000)
		.@dfacehp = 5000000;
	setunitdata 'BOSS[5], UMOB_HP, .@dfacehp;
	mapannounce 'map_name$, "Chaos deals " + .@dr_hpp + " deadly damage hit points!!",bc_map,"0xffff33",FW_NORMAL,17;
	end;
OnBerserk2:
	getunitdata 'BOSS[5],.@arr;
	.@MOB_HP2 = (( ('BOSS_HP - .@arr[UMOB_HP]) * 8) / 1000 ) * 100;
	'BOSS_HP = .@arr[UMOB_HP] + .@MOB_HP2;
	killmonster 'map_name$, instance_npcname("#fwormboss5") + "::OnMyMobDead";
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y],"Faceworm Queen",2532,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
	'BOSS[5] = $@mobid[0];
	setunitdata 'BOSS[5], UMOB_HP, 'BOSS_HP;
	// monster 'map_name$,1,6,"Faceworm Queen's Life",2915,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
	mapannounce 'map_name$, "The faceworm rages recovering " + .@MOB_HP2 + " and its attack power is increased.",bc_map,"0xff8888",FW_NORMAL,13;
	end;
OnBerserk:
	getunitdata 'BOSS[5],.@arr;
	if (.@arr[UMOB_X] < 190 || .@arr[UMOB_X] > 230 || .@arr[UMOB_Y] < 135 || .@arr[UMOB_Y] > 175) {
		killmonster 'map_name$, instance_npcname("#fwormboss5") + "::OnMyMobDead";
		monster 'map_name$,.@arr[UMOB_X],.@arr[UMOB_Y],"Faceworm Queen",2532,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
		'BOSS[5] = $@mobid[0];
		setunitdata 'BOSS[5], UMOB_HP, .@arr[UMOB_HP];
		// monster 'map_name$,1,6,"Faceworm Queen's Life",2915,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
		'BOSS_HP = .@arr[UMOB_HP];
		donpcevent instance_npcname("#fwormboss50") + "::OnCalm";
		mapannounce 'map_name$, "It is too far away from the nest. The Faceworm Queen begins raging.",bc_map,"0xff3333",FW_NORMAL,15;
	}
	end;
OnCalm:
	getunitdata 'BOSS[5],.@arr;
	killmonster 'map_name$, instance_npcname("#fwormboss5") + "::OnMyMobDead";
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y],"Faceworm Queen",2529,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
	'BOSS[5] = $@mobid[0];
	setunitdata 'BOSS[5], UMOB_HP, .@arr[UMOB_HP];
	// monster 'map_name$,1,6,"Faceworm Queen's Life",2915,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
	'BOSS_HP = .@arr[UMOB_HP];
	end;
OnChange:
	getunitdata 'BOSS[5],.@arr;
	.@chan_f = rand(1,14);
	if (.@chan_f >= 10)
		end;
	if (.@chan_f > 0 && .@chan_f < 3) {
		.@element$ = "wind";
		.@mob_id = 2535;
	}
	else if (.@chan_f > 2 && .@chan_f < 5) {
		.@element$ = "earth";
		.@mob_id = 2533;
	}
	else if (.@chan_f > 4 && .@chan_f < 7) {
		.@element$ = "water";
		.@mob_id = 2534;
	}
	else if (.@chan_f > 6 && .@chan_f < 10) {
		.@element$ = "its original";
		.@mob_id = 2529;
	}
	mapannounce 'map_name$, "Faceworm Queen is trying to shed its skin to " + .@element$ + " attribute.",bc_map,"0xffffff";
	sleep 1000;
	if (unitexists('BOSS[5]) == false)
		stopnpctimer;
	else {
		killmonster 'map_name$, instance_npcname("#fwormboss5") + "::OnMyMobDead";
		monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y],"Faceworm Queen",.@mob_id,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
		'BOSS[5] = $@mobid[0];
		setunitdata 'BOSS[5], UMOB_HP, .@arr[UMOB_HP];
		// monster 'map_name$,1,6,"Faceworm Queen's Life",2915,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
		'BOSS_HP = .@arr[UMOB_HP];
	}
	end;
OnWarning:
	getunitdata 'BOSS[5],.@arr;
	if (.@arr[UMOB_X] < 190 || .@arr[UMOB_X] > 230 || .@arr[UMOB_Y] < 135 || .@arr[UMOB_Y] > 175)
		mapannounce 'map_name$, "Please do not go farther from the nest. The Faceworm Queen can be violent.",bc_map,"0xff5555",FW_NORMAL,15;
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss5") + "::OnMyMobDead";
	stopnpctimer;
	end;
OnStart:
	monster 'map_name$,213,153,"Faceworm Queen",2529,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
	'BOSS[5] = $@mobid[0];
	// monster 'map_name$,1,6,"Faceworm Queen's Life",2915,1,instance_npcname("#fwormboss5") + "::OnMyMobDead";
	getunitdata 'BOSS[5],.@arr;
	.@dfacehp = ( 13- getmapusers('map_name$) ) * 2000000;
	.@MOB_HP2 = 52000000 - .@dfacehp;
	if (.@MOB_HP2 < 15000000)
		.@MOB_HP2 = 15000000;
	setunitdata 'BOSS[5], UMOB_HP, .@MOB_HP2;
	'BOSS_HP = .@MOB_HP2;
	initnpctimer;
	end;
OnTimer1000:
	if (mobcount( 'map_name$,instance_npcname("#fwormboss5") + "::OnMyMobDead" ) < 1) {
		stopnpctimer;
		end;
	}
	getunitdata 'BOSS[5],.@arr;
	'BOSS_HP = .@arr[UMOB_HP];
	end;
OnTimer5555:
	.@mapcount = getmapusers('map_name$);
	if (.@mapcount < 1) {
		setunitdata 'BOSS[5], UMOB_HP, 50000000;
		for ( .@i = 1; .@i <= 4; ++.@i )
			donpcevent instance_npcname( "#fwormboss5" + .@i ) + "::OnEnd";
		stopnpctimer;
	}
	else if (rand(1,(22-.@mapcount)) < 17) {
		getunitdata 'BOSS[5],.@arr;
		if (.@arr[UMOB_HP] > 45000000 && .@arr[UMOB_HP] < 48000000)
			donpcevent instance_npcname("#fwormboss51") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 40000000 && .@arr[UMOB_HP] < 45000000)
			donpcevent instance_npcname("#fwormboss52") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 35000000 && .@arr[UMOB_HP] < 40000000)
			donpcevent instance_npcname("#fwormboss53") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 30000000 && .@arr[UMOB_HP] < 35000000)
			donpcevent instance_npcname("#fwormboss54") + "::OnStart1";
		else if (.@arr[UMOB_HP] > 25000000 && .@arr[UMOB_HP] < 30000000)
			donpcevent instance_npcname("#fwormboss51") + "::OnStart2";
		else if (.@arr[UMOB_HP] > 20000000 && .@arr[UMOB_HP] < 25000000)
			donpcevent instance_npcname("#fwormboss52") + "::OnStart2";
		else if (.@arr[UMOB_HP] > 15000000 && .@arr[UMOB_HP] < 20000000)
			donpcevent instance_npcname("#fwormboss53") + "::OnStart2";
		else if (.@arr[UMOB_HP] > 10000000 && .@arr[UMOB_HP] < 15000000)
			donpcevent instance_npcname("#fwormboss54") + "::OnStart2";
		else if (.@arr[UMOB_HP] > 5000000 && .@arr[UMOB_HP] < 10000000) {
			if (rand(1,3) == 1)
				donpcevent instance_npcname("#fwormboss53") + "::OnStart1";
			else
				donpcevent instance_npcname("#fwormboss51") + "::OnStart1";
			donpcevent instance_npcname("#fwormboss54") + "::OnStart1";
		}
		else if (.@arr[UMOB_HP] > 500000 && .@arr[UMOB_HP] < 5000000) {
			if (rand(1,3) == 1)
				donpcevent instance_npcname("#fwormboss53") + "::OnStart2";
			else
				donpcevent instance_npcname("#fwormboss51") + "::OnStart2";
			donpcevent instance_npcname("#fwormboss54") + "::OnStart2";
		}
	}
	end;
OnTimer10000:
	donpcevent instance_npcname("#fwormboss5") + "::OnWarning";
	end;
OnTimer12000:
	donpcevent instance_npcname("#fwormboss5") + "::OnChange";
	end;
OnTimer13000:
	if (unitexists('BOSS[5]) == false)
		stopnpctimer;
	getunitdata 'BOSS[5],.@arr;
	if (.@arr[UMOB_HP] > 7000000)
		donpcevent instance_npcname("#support") + "::OnSupport_2";
	end;
OnTimer14000:
	donpcevent instance_npcname("#fwormboss5") + "::OnBerserk";
	end;
OnTimer19000:
	getunitdata 'BOSS[5],.@arr;
	if ('BOSS_HP > .@arr[UMOB_HP]) {
		.@MOB_HP3 = 'BOSS_HP - .@arr[UMOB_HP];
		.@mapcount = getmapusers('map_name$);
		if (.@mapcount && .@MOB_HP3 > ((.@mapcount + 7) * 400000))
			donpcevent instance_npcname("#fwormboss5") + "::OnBerserk2";
	}
	end;
OnTimer25000:
	stopnpctimer;
	getunitdata 'BOSS[5],.@arr;
	if (.@arr[UMOB_HP] > 200000)
		initnpctimer;
	else {
		for ( .@i = 1; .@i <= 4; ++.@i )
			donpcevent instance_npcname( "#fwormboss5" + .@i ) + "::OnEnd";
	}
	end;
OnMyMobDead:
	if (mobcount( 'map_name$,instance_npcname("#fwormboss5") + "::OnMyMobDead" ) < 1) {
		hideoffnpc instance_npcname("#fwormprize5");
		hideoffnpc instance_npcname("Chaos#6");
		hideoffnpc instance_npcname("Iris#6");
		enablenpc instance_npcname("#chaoson3");
		for ( .@i = 0; .@i <= 4; ++.@i )
			donpcevent instance_npcname( "#fwormboss5" + .@i ) + "::OnEnd";
		donpcevent instance_npcname("#fwormboss5") + "::OnEnd";
	}
	end;
}

1@face,2,3,5	script	#support	CLEAR_NPC,{
	end;
OnSupport_2:
	.@sup_m = getmapusers('map_name$) + 10;
	if (.@sup_m < 8)
		.@sup_m = 8;
	.@chan_f = rand(1,.@sup_m);
	if (.@chan_f > 0 && .@chan_f < 3) {
		donpcevent instance_npcname("#chaos_north") + "::OnStart";
		mapannounce 'map_name$, "The voice of Chaos: Hey! Lure it to the north! I will beat it!",bc_map,"0xff44aa",FW_NORMAL,14;
	} else if (.@chan_f > 2 && .@chan_f < 5) {
		donpcevent instance_npcname("#chaos_south") + "::OnStart";
		mapannounce 'map_name$, "The voice of Chaos: Hey! Lure it to the south! I will beat it!",bc_map,"0xff44aa",FW_NORMAL,14;
	} else if (.@chan_f > 4 && .@chan_f < 7) {
		donpcevent instance_npcname("#chaos_east") + "::OnStart";
		mapannounce 'map_name$, "The voice of Chaos: Hey! Lure it to the east! I will beat it!",bc_map,"0xff44aa",FW_NORMAL,14;
	} else if (.@chan_f > 6 && .@chan_f < 9) {
		donpcevent instance_npcname("#chaos_west") + "::OnStart";
		mapannounce 'map_name$, "The voice of Chaos: Hey! Lure it to the west! I will beat it!",bc_map,"0xff44aa",FW_NORMAL,14;
	}
	end;
}

1@face,214,172,0	script	#chaos_north	HIDDEN_WARP_NPC,2,2,{
	end;
OnTouch_:
	if (unitexists('BOSS[5]) == true) {
		getunitdata 'BOSS[5],.@arr;
		if (.@arr[UMOB_X] > 205 && .@arr[UMOB_X] < 223 && .@arr[UMOB_Y] > 163 && .@arr[UMOB_Y] < 181) {
			specialeffect EF_MAGNUMBREAK,AREA,instance_npcname("Chaos#north");
			specialeffect EF_LORD,AREA,instance_npcname("Chaos#north");
			donpcevent instance_npcname("#fwormboss5") + "::OnDamage";
		}
		else
			npctalk "Chaos: You can't even manage to lure the queen to me?";
	}
	disablenpc instance_npcname("#chaos_north");
	donpcevent instance_npcname("Chaos#north") + "::OnEnd";
	end;
OnStart:
	initnpctimer;
	enablenpc instance_npcname("#chaos_north");
	hideoffnpc instance_npcname("Chaos#north");
	end;
OnTimer15000:
	disablenpc instance_npcname("#chaos_north");
	hideonnpc instance_npcname("Chaos#north");
	stopnpctimer;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaos_north");
	end;
}

1@face,214,143,0	script	#chaos_south	HIDDEN_WARP_NPC,2,2,{
	end;
OnTouch_:
	if (unitexists('BOSS[5]) == true) {
		getunitdata 'BOSS[5],.@arr;
		if (.@arr[UMOB_X] > 205 && .@arr[UMOB_X] < 223 && .@arr[UMOB_Y] > 134 && .@arr[UMOB_Y] < 152) {
			specialeffect EF_MAGNUMBREAK,AREA,instance_npcname("Chaos#south");
			specialeffect EF_LORD,AREA,instance_npcname("Chaos#south");
			donpcevent instance_npcname("#fwormboss5") + "::OnDamage";
		}
		else
			npctalk "Chaos: Hey~ We are partners. You can't just keep running alone!";
	}
	disablenpc instance_npcname("#chaos_south");
	donpcevent instance_npcname("Chaos#south") + "::OnEnd";
	end;
OnStart:
	initnpctimer;
	enablenpc instance_npcname("#chaos_south");
	hideoffnpc instance_npcname("Chaos#south");
	end;
OnTimer15000:
	disablenpc instance_npcname("#chaos_south");
	hideonnpc instance_npcname("Chaos#south");
	stopnpctimer;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaos_south");
	end;
}

1@face,226,158,0	script	#chaos_east	HIDDEN_WARP_NPC,2,2,{
	end;
OnTouch_:
	if (unitexists('BOSS[5]) == true) {
		getunitdata 'BOSS[5],.@arr;
		if (.@arr[UMOB_X] > 217 && .@arr[UMOB_X] < 235 && .@arr[UMOB_Y] > 149 && .@arr[UMOB_Y] < 167) {
			specialeffect EF_MAGNUMBREAK,AREA,instance_npcname("Chaos#east");
			specialeffect EF_LORD,AREA,instance_npcname("Chaos#east");
			donpcevent instance_npcname("#fwormboss5") + "::OnDamage";
		}
		else
			npctalk "Chaos: Lure and bring it with you, I can't beat it alone!";
	}
	disablenpc instance_npcname("#chaos_east");
	donpcevent instance_npcname("Chaos#east") + "::OnEnd";
	end;
OnStart:
	initnpctimer;
	enablenpc instance_npcname("#chaos_east");
	hideoffnpc instance_npcname("Chaos#east");
	end;
OnTimer15000:
	disablenpc instance_npcname("#chaos_east");
	hideonnpc instance_npcname("Chaos#east");
	stopnpctimer;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaos_east");
	end;
}

1@face,200,158,0	script	#chaos_west	HIDDEN_WARP_NPC,2,2,{
	end;
OnTouch_:
	if (unitexists('BOSS[5]) == true) {
		getunitdata 'BOSS[5],.@arr;
		if (.@arr[UMOB_X] > 191 && .@arr[UMOB_X] < 209 && .@arr[UMOB_Y] > 149 && .@arr[UMOB_Y] < 167) {
			specialeffect EF_MAGNUMBREAK,AREA,instance_npcname("Chaos#west");
			specialeffect EF_LORD,AREA,instance_npcname("Chaos#west");
			donpcevent instance_npcname("#fwormboss5") + "::OnDamage";
		}
		else
			npctalk "Chaos: Why'd you leave the queen behind? Our lives are at stake here. Pull it together!";
	}
	disablenpc instance_npcname("#chaos_west");
	donpcevent instance_npcname("Chaos#west") + "::OnEnd";
	end;
OnStart:
	initnpctimer;
	enablenpc instance_npcname("#chaos_west");
	hideoffnpc instance_npcname("Chaos#west");
	end;
OnTimer15000:
	disablenpc instance_npcname("#chaos_west");
	hideonnpc instance_npcname("Chaos#west");
	stopnpctimer;
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaos_west");
	end;
}

1@face,214,172,5	script	Chaos#north	4_M_CHAOS,{
	end;
OnEnd:
	initnpctimer;
	end;
OnTimer1000:
	hideonnpc instance_npcname(strnpcinfo(0));
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname(strnpcinfo(0));
	end;
}
1@face,214,143,0	duplicate(Chaos#north)	Chaos#south	4_M_CHAOS
1@face,226,158,3	duplicate(Chaos#north)	Chaos#east	4_M_CHAOS
1@face,200,158,6	duplicate(Chaos#north)	Chaos#west	4_M_CHAOS

1@face,1,4,3	script	#fwormboss50	CLEAR_NPC,{
	end;
OnEnd:
	stopnpctimer;
	end;
OnCalm:
	initnpctimer;
	end;
OnTimer15000:
	donpcevent instance_npcname("#fwormboss5") + "::OnCalm";
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss50");
	end;
}

1@face,1,4,3	script	#fwormboss51	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss51") + "::OnMyMobDead";
	stopnpctimer;
	end;
OnStart1:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss51") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 3)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[5],.@arr;
	monster 'map_name$, .@arr[UMOB_X]-4, .@arr[UMOB_Y], "Faceworm Egg",2540,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+4, .@arr[UMOB_Y], "Faceworm Egg",2540,1, .@label$;
	end;
OnStart2:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss51") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 6)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[5],.@arr;
	monster 'map_name$, .@arr[UMOB_X]-4, .@arr[UMOB_Y], "Faceworm Egg",2540,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]+4, "Faceworm Egg",2540,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+4, .@arr[UMOB_Y], "Faceworm Egg",2540,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]-4, "Faceworm Egg",2540,1, .@label$;
	end;
OnTimer12000:
	.@mob_dead_num = mobcount('map_name$,instance_npcname("#fwormboss51") + "::OnMyMobDead");
	if (.@mob_dead_num > 3)
		donpcevent instance_npcname("#fwormboss5") + "::OnHeal04";
	else if (.@mob_dead_num > 2)
		donpcevent instance_npcname("#fwormboss5") + "::OnHeal03";
	else if (.@mob_dead_num > 1)
		donpcevent instance_npcname("#fwormboss5") + "::OnHeal02";
	else if (.@mob_dead_num > 0)
		donpcevent instance_npcname("#fwormboss5") + "::OnHeal01";
	donpcevent instance_npcname("#fwormboss51") + "::OnEnd";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss51");
	end;
}

1@face,1,4,3	script	#fwormboss52	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss52") + "::OnMyMobDead";
	stopnpctimer;
	end;
OnStart1:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss52") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 6)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[5],.@arr;
	monster 'map_name$, .@arr[UMOB_X]-4, .@arr[UMOB_Y],"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]+4,"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+4, .@arr[UMOB_Y],"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]-4,"#waterball",2539,1, .@label$;
	end;
OnStart2:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss52") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 12)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[5], .@arr;
	monster 'map_name$, .@arr[UMOB_X]-4, .@arr[UMOB_Y],"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]+4,"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+4, .@arr[UMOB_Y],"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]-4,"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]-4, .@arr[UMOB_Y]+4,"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]-4, .@arr[UMOB_Y]-4,"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+4, .@arr[UMOB_Y]+4,"#waterball",2539,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+4, .@arr[UMOB_Y]-4,"#waterball",2539,1, .@label$;
	end;
OnTimer20000:
	donpcevent instance_npcname("#fwormboss52") + "::OnEnd";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss52");
	end;
}

1@face,1,4,3	script	#fwormboss53	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss53") + "::OnMyMobDead";
	end;
OnStart1:
	callsub S_Spawn, 5;
OnStart2:
	callsub S_Spawn, 7;
S_Spawn:
	getunitdata 'BOSS[5], .@arr;
	.@num = getarg(0);
	.@coord_x = .@arr[UMOB_X] + .@num;
	.@coord_y = .@arr[UMOB_Y] - .@num;
	.@vmobx = .@arr[UMOB_X] - .@num;
	do {
		.@vmoby = .@arr[UMOB_Y] + .@num;
		do {
			monster 'map_name$,.@vmobx,.@vmoby,"Venom Bug",2531,1,instance_npcname("#fwormboss53") + "::OnMyMobDead";
			.@vmoby -= 2;
		}
		while( .@vmoby >= .@coord_y );
		.@vmobx += 2;
	}
	while( .@vmobx <= .@coord_x );
	donpcevent instance_npcname("#fwormboss5") + "::OnHeal05";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss53");
	end;
}

1@face,1,4,3	script	#fwormboss54	CLEAR_NPC,{
	end;
OnEnd:
	killmonster 'map_name$, instance_npcname("#fwormboss54") + "::OnMyMobDead";
	stopnpctimer;
	end;
OnStart1:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss54") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 20)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[5],.@arr;
	monster 'map_name$, .@arr[UMOB_X]-3, .@arr[UMOB_Y]+3, "#venomfog",2536,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+3, .@arr[UMOB_Y]+3, "#venomfog",2536,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]-3, .@arr[UMOB_Y]-3, "#venomfog",2536,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+3, .@arr[UMOB_Y]-3, "#venomfog",2536,1, .@label$;
	end;
OnStart2:
	initnpctimer;
	.@label$ = instance_npcname("#fwormboss54") + "::OnMyMobDead";
	if (mobcount( 'map_name$,.@label$ ) > 45)
		killmonster 'map_name$, .@label$;
	getunitdata 'BOSS[5],.@arr;
	monster 'map_name$, .@arr[UMOB_X]-5, .@arr[UMOB_Y]+5, "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]+5, "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+5, .@arr[UMOB_Y]+5, "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]-5, .@arr[UMOB_Y], "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y], "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+5, .@arr[UMOB_Y], "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]-5, .@arr[UMOB_Y]-5, "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X], .@arr[UMOB_Y]-5, "#venomfog",2537,1, .@label$;
	monster 'map_name$, .@arr[UMOB_X]+5, .@arr[UMOB_Y]-5, "#venomfog",2537,1, .@label$;
	end;
OnTimer30000:
	donpcevent instance_npcname("#fwormboss54") + "::OnEnd";
	end;
OnMyMobDead:
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormboss54");
	end;
}

1@face,212,156,0	script	#chaoson3	HIDDEN_WARP_NPC,7,7,{
	end;
OnTouch_:
	disablenpc instance_npcname("#chaoson3");
	donpcevent instance_npcname("Chaos#6") + "::OnStart";
	end;
OnInstanceInit:
	disablenpc instance_npcname("#chaoson3");
	end;
}

1@face,209,159,6	script	Chaos#6	4_M_CHAOS,{
	cutin "h_chaos01",2;
	mes "[Chaos]";
	mes "Hmm.. You are pretty good, I am impressed.";
	close2;
	cutin "",255;
	end;

OnStart:
	.@iris$ = instance_npcname("Iris#6");
	donpcevent instance_npcname("Chaos#east") + "::OnEnd";
	donpcevent instance_npcname("Chaos#west") + "::OnEnd";
	donpcevent instance_npcname("Chaos#south") + "::OnEnd";
	donpcevent instance_npcname("Chaos#north") + "::OnEnd";
	hideoffnpc instance_npcname("Chaos#6");
	hideoffnpc .@iris$;
	sleep 2000;
	npctalk "Chaos: Phew... That was quite a long fight.";
	sleep 3000;
	npctalk "Iris: But that is not the one we were looking for.", .@iris$;
	sleep 4000;
	npctalk "Chaos: We can't help it. Our equipment is damaged so we should retreat for now.";
	sleep 3000;
	npctalk "Iris: Yes, I feel bad that we could not see the Faceworm King. But luckily we weren't hurt.", .@iris$;
	sleep 3000;
	npctalk "Chaos: So... Hey, you over there! You're not too shabby.";
	sleep 3000;
	npctalk "Chaos: Today's hunting is all yours, I won't touch it.";
	sleep 3000;
	npctalk "Chaos: Ahah~ I hoped that there would be some treasure that the merchant prince dropped...";
	sleep 3000;
	npctalk "Iris: Chaos, I am getting tired. Let's go back to the village.", .@iris$;
	sleep 3000;
	npctalk "Chaos: Sorry, shall we go?";
	sleep 3000;
	hideonnpc instance_npcname("Chaos#6");
	hideonnpc .@iris$;
	hideoffnpc instance_npcname("Dimensional Device#6");
	end;
OnInstanceInit:
	hideonnpc instance_npcname("Chaos#6");
	end;
}

1@face,220,159,4	script	Iris#6	4_F_IRIS,{
	cutin "h_iris02",2;
	mes "[Iris]";
	mes "That was dangerous. Hehehe...";
	close2;
	cutin "",255;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Iris#6");
	end;
}

1@face,215,159,4	script	Dimensional Device#6	PORTAL,{
	mes "[Dimensional Device]";
	mes "Your time is finished here. You may look arround or go leave. What do you want to do?";
	next;
	if (select("Stop:Return to Dimensional Gap") == 2)
		warp "dali",85,62;
	end;

OnInstanceInit:
	hideonnpc instance_npcname("Dimensional Device#6");
	end;
}

// Instance Traps :: in_face_l
//============================================================
1@face,61,132,5	script	Suspicious Mound#1	4_SOIL,5,5,{
	end;
OnTouch_:
	setarray .@num[1],
		3,2,1,3,2,1,3,2,1,3,2,1,3,2,1,
		3,2,1,3,2,1,3,2,1,3,2,1,3,2,1,
		3,2,1,3,2,1,3,2,1,3,2,1,3,2,1,
		3,2,1,3,2,1,3,2,1;
	.@npc_name$ = instance_npcname(strnpcinfo(0));
	specialeffect EF_VENOMDUST;
	disablenpc .@npc_name$;
	killmonster 'map_name$, .@npc_name$ + "::OnMyMobDead";
	getmapxy 'map_name$, .@x, .@y, BL_NPC;
	.@mon_num = .@num[atoi(strnpcinfo(2))];
	areamonster 'map_name$,.@x-1,.@y-1,.@x+1,.@y+1,"Faceworm Larva",2541,.@mon_num,.@npc_name$ + "::OnMyMobDead";
	initnpctimer;
	end;
OnTimer45000:
	enablenpc();
	stopnpctimer;
	end;
OnMyMobDead:
	end;
}

1@face,62,195,5	duplicate(Suspicious Mound#1)	Suspicious Mound#2	4_SOIL,5,5
1@face,66,94,5	duplicate(Suspicious Mound#1)	Suspicious Mound#3	4_SOIL,5,5
1@face,68,265,5	duplicate(Suspicious Mound#1)	Suspicious Mound#4	4_SOIL,5,5
1@face,68,108,5	duplicate(Suspicious Mound#1)	Suspicious Mound#5	4_SOIL,5,5
1@face,72,202,5	duplicate(Suspicious Mound#1)	Suspicious Mound#6	4_SOIL,5,5
1@face,75,73,5	duplicate(Suspicious Mound#1)	Suspicious Mound#7	4_SOIL,5,5
1@face,76,241,5	duplicate(Suspicious Mound#1)	Suspicious Mound#8	4_SOIL,5,5
1@face,79,274,5	duplicate(Suspicious Mound#1)	Suspicious Mound#9	4_SOIL,5,5
1@face,79,119,5	duplicate(Suspicious Mound#1)	Suspicious Mound#10	4_SOIL,5,5
1@face,97,59,5	duplicate(Suspicious Mound#1)	Suspicious Mound#11	4_SOIL,5,5
1@face,99,211,5	duplicate(Suspicious Mound#1)	Suspicious Mound#12	4_SOIL,5,5
1@face,100,122,5	duplicate(Suspicious Mound#1)	Suspicious Mound#13	4_SOIL,5,5
1@face,105,190,5	duplicate(Suspicious Mound#1)	Suspicious Mound#14	4_SOIL,5,5
1@face,108,264,5	duplicate(Suspicious Mound#1)	Suspicious Mound#15	4_SOIL,5,5
1@face,108,74,5	duplicate(Suspicious Mound#1)	Suspicious Mound#16	4_SOIL,5,5
1@face,111,178,5	duplicate(Suspicious Mound#1)	Suspicious Mound#17	4_SOIL,5,5
1@face,112,137,5	duplicate(Suspicious Mound#1)	Suspicious Mound#18	4_SOIL,5,5
1@face,112,159,5	duplicate(Suspicious Mound#1)	Suspicious Mound#19	4_SOIL,5,5
1@face,112,236,5	duplicate(Suspicious Mound#1)	Suspicious Mound#20	4_SOIL,5,5
1@face,118,109,5	duplicate(Suspicious Mound#1)	Suspicious Mound#21	4_SOIL,5,5
1@face,119,201,5	duplicate(Suspicious Mound#1)	Suspicious Mound#22	4_SOIL,5,5
1@face,123,257,5	duplicate(Suspicious Mound#1)	Suspicious Mound#23	4_SOIL,5,5
1@face,124,216,5	duplicate(Suspicious Mound#1)	Suspicious Mound#24	4_SOIL,5,5
1@face,125,228,5	duplicate(Suspicious Mound#1)	Suspicious Mound#25	4_SOIL,5,5
1@face,126,290,5	duplicate(Suspicious Mound#1)	Suspicious Mound#26	4_SOIL,5,5
1@face,128,174,5	duplicate(Suspicious Mound#1)	Suspicious Mound#27	4_SOIL,5,5
1@face,133,244,5	duplicate(Suspicious Mound#1)	Suspicious Mound#28	4_SOIL,5,5
1@face,139,218,5	duplicate(Suspicious Mound#1)	Suspicious Mound#29	4_SOIL,5,5
1@face,140,255,5	duplicate(Suspicious Mound#1)	Suspicious Mound#30	4_SOIL,5,5
1@face,148,238,5	duplicate(Suspicious Mound#1)	Suspicious Mound#31	4_SOIL,5,5
1@face,157,293,5	duplicate(Suspicious Mound#1)	Suspicious Mound#32	4_SOIL,5,5
1@face,158,138,5	duplicate(Suspicious Mound#1)	Suspicious Mound#33	4_SOIL,5,5
1@face,158,163,5	duplicate(Suspicious Mound#1)	Suspicious Mound#34	4_SOIL,5,5
1@face,167,277,5	duplicate(Suspicious Mound#1)	Suspicious Mound#35	4_SOIL,5,5
1@face,168,194,5	duplicate(Suspicious Mound#1)	Suspicious Mound#36	4_SOIL,5,5
1@face,170,251,5	duplicate(Suspicious Mound#1)	Suspicious Mound#37	4_SOIL,5,5
1@face,171,62,5	duplicate(Suspicious Mound#1)	Suspicious Mound#38	4_SOIL,5,5
1@face,171,149,5	duplicate(Suspicious Mound#1)	Suspicious Mound#39	4_SOIL,5,5
1@face,172,173,5	duplicate(Suspicious Mound#1)	Suspicious Mound#40	4_SOIL,5,5
1@face,175,296,5	duplicate(Suspicious Mound#1)	Suspicious Mound#41	4_SOIL,5,5
1@face,178,234,5	duplicate(Suspicious Mound#1)	Suspicious Mound#42	4_SOIL,5,5
1@face,183,185,5	duplicate(Suspicious Mound#1)	Suspicious Mound#43	4_SOIL,5,5
1@face,191,289,5	duplicate(Suspicious Mound#1)	Suspicious Mound#44	4_SOIL,5,5
1@face,194,192,5	duplicate(Suspicious Mound#1)	Suspicious Mound#45	4_SOIL,5,5
1@face,196,207,5	duplicate(Suspicious Mound#1)	Suspicious Mound#46	4_SOIL,5,5
1@face,198,257,5	duplicate(Suspicious Mound#1)	Suspicious Mound#47	4_SOIL,5,5
1@face,199,273,5	duplicate(Suspicious Mound#1)	Suspicious Mound#48	4_SOIL,5,5
1@face,211,244,5	duplicate(Suspicious Mound#1)	Suspicious Mound#49	4_SOIL,5,5
1@face,229,200,5	duplicate(Suspicious Mound#1)	Suspicious Mound#50	4_SOIL,5,5
1@face,232,271,5	duplicate(Suspicious Mound#1)	Suspicious Mound#51	4_SOIL,5,5
1@face,250,223,5	duplicate(Suspicious Mound#1)	Suspicious Mound#52	4_SOIL,5,5
1@face,254,324,5	duplicate(Suspicious Mound#1)	Suspicious Mound#53	4_SOIL,5,5
1@face,255,263,5	duplicate(Suspicious Mound#1)	Suspicious Mound#54	4_SOIL,5,5

// Instance Venom Bugs :: in_face_v
//============================================================
1@face,163,130,0	script	#toxicarea1	HIDDEN_WARP_NPC,10,10,{
	end;
OnTouch_:
	setarray .@num[1],25,30,50,30,50,30,40,50,50;
	.@npc_name$ = instance_npcname(strnpcinfo(0));
	specialeffect EF_VENOMDUST;
	disablenpc .@npc_name$;
	killmonster 'map_name$, .@npc_name$ + "::OnMyMobDead";
	.@val = atoi(charat(strnpcinfo(2),9));
	switch(.@val) {
		case 1: setarray .@xy[0],167,142,15; break;
		case 2: setarray .@xy[0],163,161,15; break;
		case 3: setarray .@xy[0],167,185,20; break;
		case 4: setarray .@xy[0],197,203,15; break;
		case 5: setarray .@xy[0],227,203,20; break;
		case 6: setarray .@xy[0],244,232,15; break;
		case 7: setarray .@xy[0],243,259,15; break;
		case 8: setarray .@xy[0],292,277,50; break;
		case 9: setarray .@xy[0],248,322,50; break;
	}
	.@mon_num = .@num[.@val];
	areamonster 'map_name$,.@xy[0]-.@xy[2],.@xy[1]-.@xy[2],.@xy[0]+.@xy[2],.@xy[1]+.@xy[2],"Venom Bug",2531,.@mon_num, .@npc_name$ + "::OnMyMobDead";
	initnpctimer;
	end;
OnTimer15000:
	enablenpc();
	stopnpctimer;
	end;
OnMyMobDead:
	end;
}

1@face,165,147,0	duplicate(#toxicarea1)	#toxicarea2	HIDDEN_WARP_NPC,10,10
1@face,163,166,0	duplicate(#toxicarea1)	#toxicarea3	HIDDEN_WARP_NPC,10,10
1@face,183,197,0	duplicate(#toxicarea1)	#toxicarea4	HIDDEN_WARP_NPC,10,10
1@face,202,204,0	duplicate(#toxicarea1)	#toxicarea5	HIDDEN_WARP_NPC,10,10
1@face,237,220,0	duplicate(#toxicarea1)	#toxicarea6	HIDDEN_WARP_NPC,10,10
1@face,245,241,0	duplicate(#toxicarea1)	#toxicarea7	HIDDEN_WARP_NPC,10,10
1@face,292,277,0	duplicate(#toxicarea1)	#toxicarea8	HIDDEN_WARP_NPC,10,10
1@face,248,322,0	duplicate(#toxicarea1)	#toxicarea9	HIDDEN_WARP_NPC,10,10

// Instance Timer :: in_facetimer
//============================================================
1@face,3,1,5	script	#globaltimer22	CLEAR_NPC,{
	end;
OnT_s:
	initnpctimer;
	end;
OnT_s2:
	.@face_timer = $120719_num_face;
	if (!.@face_timer)
		.@face_timer = 3600;
	.@face_member = getmapusers('map_name$) - 1;
	.@winner_name$ = '120903_str_face$;
	.@current_timer = getnpctimer(0) / 1000;
	if (.@current_timer < 1)
		end;
	.@time_m = .@current_timer / 60;
	.@time_s = .@current_timer % 60;
	if (.@current_timer < 60)
		.@time_txt$ = callfunc( "F_InsertPlural", .@time_s, "Second" );
	else
		.@time_txt$ = callfunc( "F_InsertPlural", .@time_m, "Minute" ) + " " + callfunc( "F_InsertPlural", .@time_s, "Second" );
	if (.@current_timer >= .@face_timer)
		mapannounce 'map_name$, "A time of " + .@time_txt$ + " has been recorded on the board. But it did not beat the best record.",bc_map,"0xffff33";
	else {
		if (!.@face_member)
			announce .@winner_name$ + " beat the best record for completing the Faceworm's Nest (" + .@time_txt$ + ").",bc_all,"0xffff33",FW_NORMAL,15;
		else
			announce .@winner_name$ + " with " + .@face_member + " party " + ( .@face_member > 1 ? "members" : "members" ) + " beat the best record for completing the Faceworm's Nest (" + .@time_txt$ + ").",bc_all,"0xffff33",FW_NORMAL,15;
		$120719_str_face$ = .@winner_name$;
		$120719_num_face = .@current_timer;
		$120903_num_face = .@face_member;
	}
	end;
OnT_s3:
	for ( .@i = 1; .@i <= 27; ++.@i ) {
		if (rand(1,100) > 50)
			hideoffnpc instance_npcname( "Merchant Prince's Box#" + .@i );
	}
	end;
OnTimer3600000:
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#globaltimer22");
	end;
}

// Instance Prizes :: in_face_c
//============================================================
1@face,155,82,3	script	#fwormprize1	4_TREASURE_BOX,{
	.@current_timer = getnpctimer(0) / 1000;
	if (.@current_timer < 1)
		end;
	.@time_m = .@current_timer / 60;
	.@time_s = .@current_timer % 60;
	if (.@current_timer < 60)
		.@time_txt$ = callfunc( "F_InsertPlural", .@time_s, "Second" );
	else
		.@time_txt$ = callfunc( "F_InsertPlural", .@time_m, "Minute" ) + " " + callfunc( "F_InsertPlural", .@time_s, "Second" );
	mapannounce 'map_name$, "The actual time for the battle at this stage remaining is " + .@time_txt$ + ".",bc_map,"0xffff33";

	getmapxy .@map$, .@x, .@y, BL_NPC;
	stopnpctimer;
	specialeffect EF_COIN;
	hideonnpc instance_npcname(strnpcinfo(0));
	switch( atoi(charat(strnpcinfo(2),10)) ) {
	case 1:
		setarray .@val[0],200,200,95;
		break;
	case 2:
		setarray .@val[0],800,400,90;
		break;
	case 3:
		setarray .@val[0],1100,600,85;
		break;
	case 4:
		setarray .@val[0],1250,800,80;
		break;
	}
	if (.@current_timer < 120)
		.@current_timer = 120;
	.@dr_t = .@current_timer - 120;

	// refine
	.@dr_t1 = ( .@dr_t / 15 ) + 1;
	if (.@dr_t1 > 3)
		.@dr_t1 = 3;
	.@r_st1 = 7 - .@dr_t1;
	.@refine = rand( (.@r_st1 - 4), .@r_st1 );// Min = 0, Max = 6

	// card slot 4
	.@dr_t1 = .@dr_t * 10;
	if (.@dr_t1 > (.@val[0]+1))
		.@dr_t1 = .@val[0] + 1;
	.@r_st = (.@val[0]+2) - .@dr_t1;// Min = 1, Max = .@val[0] + 2
	.@ren_e_m = rand(.@r_st,1316);
	     if (.@ren_e_m < 201) .@en_name_4 = 0;
	else if (.@ren_e_m < 301) .@en_name_4 = 4740;	// Vitality1
	else if (.@ren_e_m < 401) .@en_name_4 = 4700;	// Strength1
	else if (.@ren_e_m < 501) .@en_name_4 = 4730;	// Agility1
	else if (.@ren_e_m < 601) .@en_name_4 = 4720;	// Dexterity1
	else if (.@ren_e_m < 701) .@en_name_4 = 4710;	// Inteligence1
	else if (.@ren_e_m < 801) .@en_name_4 = 4750;	// Luck1
	else if (.@ren_e_m < 851) .@en_name_4 = 4741;	// Vitality2
	else if (.@ren_e_m < 901) .@en_name_4 = 4701;	// Strength2
	else if (.@ren_e_m < 951) .@en_name_4 = 4731;	// Agility2
	else if (.@ren_e_m < 1001) .@en_name_4 = 4721;	// Dexterity2
	else if (.@ren_e_m < 1051) .@en_name_4 = 4711;	// Inteligence2
	else if (.@ren_e_m < 1101) .@en_name_4 = 4751;	// Luck2
	else if (.@ren_e_m < 1126) .@en_name_4 = 4742;	// Vitality3
	else if (.@ren_e_m < 1151) .@en_name_4 = 4702;	// Strength3
	else if (.@ren_e_m < 1176) .@en_name_4 = 4732;	// Agility3
	else if (.@ren_e_m < 1201) .@en_name_4 = 4722;	// Dexterity3
	else if (.@ren_e_m < 1226) .@en_name_4 = 4712;	// Inteligence3
	else if (.@ren_e_m < 1251) .@en_name_4 = 4752;	// Luck3
	else if (.@ren_e_m < 1261) .@en_name_4 = 4743;	// Vitality4
	else if (.@ren_e_m < 1271) .@en_name_4 = 4703;	// Strength4
	else if (.@ren_e_m < 1281) .@en_name_4 = 4733;	// Agility4
	else if (.@ren_e_m < 1291) .@en_name_4 = 4723;	// Dexterity4
	else if (.@ren_e_m < 1301) .@en_name_4 = 4713;	// Inteligence4
	else if (.@ren_e_m < 1311) .@en_name_4 = 4753;	// Luck4
	else if (.@ren_e_m < 1312) .@en_name_4 = 4744;	// Vitality5
	else if (.@ren_e_m < 1313) .@en_name_4 = 4704;	// Strength5
	else if (.@ren_e_m < 1314) .@en_name_4 = 4734;	// Agility5
	else if (.@ren_e_m < 1315) .@en_name_4 = 4724;	// Dexterity5
	else if (.@ren_e_m < 1316) .@en_name_4 = 4714;	// Inteligence5
	else if (.@ren_e_m < 1317) .@en_name_4 = 4754;	// Luck5
	
	// card slot 3
	if (.@en_name_4 > 0) {
		.@dr_t1 = @dr_t * 5;
		if (.@dr_t1 > 601)
			.@dr_t1 = 601;
		.@r_st = 602 - .@dr_t1;
		.@ren_e_m = rand(.@r_st,1716);// Min = 1, Max = 602
			 if (.@ren_e_m < 601) .@en_name_3 = 0;
		else if (.@ren_e_m < 701) .@en_name_3 = 4740;	// Vitality1
		else if (.@ren_e_m < 801) .@en_name_3 = 4700;	// Strength1
		else if (.@ren_e_m < 901) .@en_name_3 = 4730;	// Agility1
		else if (.@ren_e_m < 1001) .@en_name_3 = 4720;	// Dexterity1
		else if (.@ren_e_m < 1101) .@en_name_3 = 4710;	// Inteligence1
		else if (.@ren_e_m < 1201) .@en_name_3 = 4750;	// Luck1
		else if (.@ren_e_m < 1251) .@en_name_3 = 4741;	// Vitality2
		else if (.@ren_e_m < 1301) .@en_name_3 = 4701;	// Strength2
		else if (.@ren_e_m < 1351) .@en_name_3 = 4731;	// Agility2
		else if (.@ren_e_m < 1401) .@en_name_3 = 4721;	// Dexterity2
		else if (.@ren_e_m < 1451) .@en_name_3 = 4711;	// Inteligence2
		else if (.@ren_e_m < 1501) .@en_name_3 = 4751;	// Luck2
		else if (.@ren_e_m < 1526) .@en_name_3 = 4742;	// Vitality3
		else if (.@ren_e_m < 1551) .@en_name_3 = 4702;	// Strength3
		else if (.@ren_e_m < 1576) .@en_name_3 = 4732;	// Agility3
		else if (.@ren_e_m < 1601) .@en_name_3 = 4722;	// Dexterity3
		else if (.@ren_e_m < 1626) .@en_name_3 = 4712;	// Inteligence3
		else if (.@ren_e_m < 1651) .@en_name_3 = 4752;	// Luck3
		else if (.@ren_e_m < 1661) .@en_name_3 = 4743;	// Vitality4
		else if (.@ren_e_m < 1671) .@en_name_3 = 4703;	// Strength4
		else if (.@ren_e_m < 1681) .@en_name_3 = 4733;	// Agility4
		else if (.@ren_e_m < 1691) .@en_name_3 = 4723;	// Dexterity4
		else if (.@ren_e_m < 1701) .@en_name_3 = 4713;	// Inteligence4
		else if (.@ren_e_m < 1711) .@en_name_3 = 4753;	// Luck4
		else if (.@ren_e_m < 1712) .@en_name_3 = 4744;	// Vitality5
		else if (.@ren_e_m < 1713) .@en_name_3 = 4704;	// Strength5
		else if (.@ren_e_m < 1714) .@en_name_3 = 4734;	// Agility5
		else if (.@ren_e_m < 1715) .@en_name_3 = 4724;	// Dexterity5
		else if (.@ren_e_m < 1716) .@en_name_3 = 4714;	// Inteligence5
		else if (.@ren_e_m < 1717) .@en_name_3 = 4754;	// Luck5
		
		// card slot 2
		if (.@en_name_3 > 0) {
			.@dr_t1 = .@dr_t * 5;
			if (.@dr_t1 > .@val[1])
				.@dr_t1 = .@val[1];
			.@r_st = (.@val[1]+1) - .@dr_t1;// Min = 1, Max = .@val[1] + 1
			.@ren_e_m = rand(.@r_st,1100);
			if (.@ren_e_m < 1001)
				.@en_name_2 = 0;
			else if (.@ren_e_m < 1100) {
				switch(.@en_name_3) {
				case 4700: case 4701: case 4702:
				case 4703: case 4704:
					.@en_name_2 = 4853;		// S_Str
					break;
				case 4740: case 4741: case 4742:
				case 4743: case 4744:
					.@en_name_2 = 4855;		// S_Vital
					break;
				case 4730: case 4731: case 4732:
				case 4733: case 4734:
					.@en_name_2 = 4854;		// S_Agi
					break;
				case 4720: case 4721: case 4722:
				case 4723: case 4724:
					.@en_name_2 = 4857;		// S_Dex
					break;
				case 4750: case 4751: case 4752:
				case 4753: case 4754:
					.@en_name_2 = 4858;		// S_Luck
					break;
				case 4710: case 4711: case 4712:
				case 4713: case 4714:
					.@en_name_2 = 4856;		// S_Int
					break;
				}
			}
		}
	}
	if (rand(1,100) > .@val[2])
		.@d_item = 20718;	// FaceWorm_Skin_
	else
		.@d_item = 20717;	// FaceWorm_Skin
	makeitem2 .@d_item,1,'map_name$,.@x,.@y,0,.@refine,0,0,.@en_name_2,.@en_name_3,.@en_name_4;
	end;
OnStart:
	initnpctimer;
	end;
OnTimer3600000:
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname(strnpcinfo(0));
	end;
}
1@face,162,271,3	duplicate(#fwormprize1)	#fwormprize2	4_TREASURE_BOX
1@face,278,308,3	duplicate(#fwormprize1)	#fwormprize3	4_TREASURE_BOX
1@face,214,108,3	duplicate(#fwormprize1)	#fwormprize4	4_TREASURE_BOX

1@face,213,157,3	script	#fwormprize5	4_TREASURE_BOX,{
	'120903_str_face$ = strcharinfo(0);
	donpcevent instance_npcname("#globaltimer22") + "::OnT_s2";
	donpcevent instance_npcname("#globaltimer22") + "::OnT_s3";
	specialeffect EF_COIN;
	hideonnpc instance_npcname("#fwormprize5");

	.@current_timer = getnpctimer(0) / 1000;
	if (.@current_timer < 1)
		.@current_timer = 1200;
	if (.@current_timer < 270)
		.@current_timer = 270;
	.@dr_t = .@current_timer - 270;

	// refine rand
	.@dr_t1 = ( .@dr_t / 15 ) + 1;
	if (.@dr_t1 > 4)
		.@dr_t1 = 4;
	.@refine_rand[1] = 12 - .@dr_t1;
	.@refine_rand[0] = .@refine_rand[1] - 7;
	
	// card slot 4 rand
	.@dr_t1 = .@dr_t * 10;
	if (.@dr_t1 > 1851)
		.@dr_t1 = 1851;
	.@slot_4_rand = 1852 - .@dr_t1;

	// card slot 3 rand
	.@dr_t1 = .@dr_t * 10;
	if (.@dr_t1 > 1401)
		.@dr_t1 = 1401;
	.@slot_3_rand = 1402 - .@dr_t1;

	// card slot 2 rand
	.@dr_t1 = .@dr_t * 5;
	if (.@dr_t1 > 999)
		.@dr_t1 = 999;
	.@slot_2_rand = 1000 - .@dr_t1;

	for ( .@i = 1; .@i <= 2; ++.@i ) {
		// refine
		.@refine = rand( .@refine_rand[0],.@refine_rand[1] );// Min = 1, Max = 11

		// card slot 4
		.@ren_e_m = rand( .@slot_4_rand,1934 );
		       if (.@ren_e_m < 201) .@en_name_4 = 0;
		else if (.@ren_e_m < 301) .@en_name_4 = 4740;	// Vitality1
		else if (.@ren_e_m < 401) .@en_name_4 = 4700;	// Strength1
		else if (.@ren_e_m < 501) .@en_name_4 = 4730;	// Agility1
		else if (.@ren_e_m < 601) .@en_name_4 = 4720;	// Dexterity1
		else if (.@ren_e_m < 701) .@en_name_4 = 4710;	// Inteligence1
		else if (.@ren_e_m < 801) .@en_name_4 = 4750;	// Luck1
		else if (.@ren_e_m < 901) .@en_name_4 = 4741;	// Vitality2
		else if (.@ren_e_m < 1001) .@en_name_4 = 4701;	// Strength2
		else if (.@ren_e_m < 1101) .@en_name_4 = 4731;	// Agility2
		else if (.@ren_e_m < 1201) .@en_name_4 = 4721;	// Dexterity2
		else if (.@ren_e_m < 1301) .@en_name_4 = 4711;	// Inteligence2
		else if (.@ren_e_m < 1401) .@en_name_4 = 4751;	// Luck2
		else if (.@ren_e_m < 1451) .@en_name_4 = 4742;	// Vitality3
		else if (.@ren_e_m < 1501) .@en_name_4 = 4702;	// Strength3
		else if (.@ren_e_m < 1551) .@en_name_4 = 4732;	// Agility3
		else if (.@ren_e_m < 1601) .@en_name_4 = 4722;	// Dexterity3
		else if (.@ren_e_m < 1651) .@en_name_4 = 4712;	// Inteligence3
		else if (.@ren_e_m < 1701) .@en_name_4 = 4752;	// Luck3
		else if (.@ren_e_m < 1726) .@en_name_4 = 4743;	// Vitality4
		else if (.@ren_e_m < 1751) .@en_name_4 = 4703;	// Strength4
		else if (.@ren_e_m < 1776) .@en_name_4 = 4733;	// Agility4
		else if (.@ren_e_m < 1801) .@en_name_4 = 4723;	// Dexterity4
		else if (.@ren_e_m < 1826) .@en_name_4 = 4713;	// Inteligence4
		else if (.@ren_e_m < 1851) .@en_name_4 = 4753;	// Luck4
		else if (.@ren_e_m < 1861) .@en_name_4 = 4744;	// Vitality5
		else if (.@ren_e_m < 1871) .@en_name_4 = 4704;	// Strength5
		else if (.@ren_e_m < 1881) .@en_name_4 = 4734;	// Agility5
		else if (.@ren_e_m < 1891) .@en_name_4 = 4724;	// Dexterity5
		else if (.@ren_e_m < 1901) .@en_name_4 = 4714;	// Inteligence5
		else if (.@ren_e_m < 1911) .@en_name_4 = 4754;	// Luck5
		else if (.@ren_e_m < 1914) .@en_name_4 = 4745;	// Vitality6
		else if (.@ren_e_m < 1917) .@en_name_4 = 4705;	// Strength6
		else if (.@ren_e_m < 1920) .@en_name_4 = 4735;	// Agility6
		else if (.@ren_e_m < 1923) .@en_name_4 = 4725;	// Dexterity6
		else if (.@ren_e_m < 1926) .@en_name_4 = 4715;	// Inteligence6
		else if (.@ren_e_m < 1929) .@en_name_4 = 4755;	// Luck6
		else if (.@ren_e_m < 1930) .@en_name_4 = 4746;	// Vitality7
		else if (.@ren_e_m < 1931) .@en_name_4 = 4706;	// Strength7
		else if (.@ren_e_m < 1932) .@en_name_4 = 4736;	// Agility7
		else if (.@ren_e_m < 1933) .@en_name_4 = 4726;	// Dexterity7
		else if (.@ren_e_m < 1934) .@en_name_4 = 4716;	// Inteligence7
		else if (.@ren_e_m < 1935) .@en_name_4 = 4756;	// Luck7
		
		// card slot 3
		if (.@en_name_4 > 0) {
			.@ren_e_m = rand( .@slot_3_rand,1934 );
				 if (.@ren_e_m < 201) .@en_name_3 = 0;
			else if (.@ren_e_m < 301) .@en_name_3 = 4740;	// Vitality1
			else if (.@ren_e_m < 401) .@en_name_3 = 4700;	// Strength1
			else if (.@ren_e_m < 501) .@en_name_3 = 4730;	// Agility1
			else if (.@ren_e_m < 601) .@en_name_3 = 4720;	// Dexterity1
			else if (.@ren_e_m < 701) .@en_name_3 = 4710;	// Inteligence1
			else if (.@ren_e_m < 801) .@en_name_3 = 4750;	// Luck1
			else if (.@ren_e_m < 901) .@en_name_3 = 4741;	// Vitality2
			else if (.@ren_e_m < 1001) .@en_name_3 = 4701;	// Strength2
			else if (.@ren_e_m < 1101) .@en_name_3 = 4731;	// Agility2
			else if (.@ren_e_m < 1201) .@en_name_3 = 4721;	// Dexterity2
			else if (.@ren_e_m < 1301) .@en_name_3 = 4711;	// Inteligence2
			else if (.@ren_e_m < 1401) .@en_name_3 = 4751;	// Luck2
			else if (.@ren_e_m < 1451) .@en_name_3 = 4742;	// Vitality3
			else if (.@ren_e_m < 1501) .@en_name_3 = 4702;	// Strength3
			else if (.@ren_e_m < 1551) .@en_name_3 = 4732;	// Agility3
			else if (.@ren_e_m < 1601) .@en_name_3 = 4722;	// Dexterity3
			else if (.@ren_e_m < 1651) .@en_name_3 = 4712;	// Inteligence3
			else if (.@ren_e_m < 1701) .@en_name_3 = 4752;	// Luck3
			else if (.@ren_e_m < 1726) .@en_name_3 = 4743;	// Vitality4
			else if (.@ren_e_m < 1751) .@en_name_3 = 4703;	// Strength4
			else if (.@ren_e_m < 1776) .@en_name_3 = 4733;	// Agility4
			else if (.@ren_e_m < 1801) .@en_name_3 = 4723;	// Dexterity4
			else if (.@ren_e_m < 1826) .@en_name_3 = 4713;	// Inteligence4
			else if (.@ren_e_m < 1851) .@en_name_3 = 4753;	// Luck4
			else if (.@ren_e_m < 1861) .@en_name_3 = 4744;	// Vitality5
			else if (.@ren_e_m < 1871) .@en_name_3 = 4704;	// Strength5
			else if (.@ren_e_m < 1881) .@en_name_3 = 4734;	// Agility5
			else if (.@ren_e_m < 1891) .@en_name_3 = 4724;	// Dexterity5
			else if (.@ren_e_m < 1901) .@en_name_3 = 4714;	// Inteligence5
			else if (.@ren_e_m < 1911) .@en_name_3 = 4754;	// Luck5
			else if (.@ren_e_m < 1914) .@en_name_3 = 4745;	// Vitality6
			else if (.@ren_e_m < 1917) .@en_name_3 = 4705;	// Strength6
			else if (.@ren_e_m < 1920) .@en_name_3 = 4735;	// Agility6
			else if (.@ren_e_m < 1923) .@en_name_3 = 4725;	// Dexterity6
			else if (.@ren_e_m < 1926) .@en_name_3 = 4715;	// Inteligence6
			else if (.@ren_e_m < 1929) .@en_name_3 = 4755;	// Luck6
			else if (.@ren_e_m < 1930) .@en_name_3 = 4746;	// Vitality7
			else if (.@ren_e_m < 1931) .@en_name_3 = 4706;	// Strength7
			else if (.@ren_e_m < 1932) .@en_name_3 = 4736;	// Agility7
			else if (.@ren_e_m < 1933) .@en_name_3 = 4726;	// Dexterity7
			else if (.@ren_e_m < 1934) .@en_name_3 = 4716;	// Inteligence7
			else if (.@ren_e_m < 1935) .@en_name_3 = 4756;	// Luck7

			// card slot 2
			if (.@en_name_3 > 0) {
				.@ren_e_m = rand( .@slot_2_rand,1100 );
				if (.@ren_e_m < 1001)
					.@en_name_2 = 0;
				else if (.@ren_e_m < 1100) {
					switch(.@en_name_3) {
					case 4700: case 4701: case 4702: case 4703:
					case 4704: case 4705: case 4706:
						.@en_name_2 = 4853;		// S_Str
						break;
					case 4740: case 4741: case 4742: case 4743:
					case 4744: case 4745: case 4746:
						.@en_name_2 = 4855;		// S_Vital
						break;
					case 4730: case 4731: case 4732: case 4733:
					case 4734: case 4735: case 4736:
						.@en_name_2 = 4854;		// S_Agi
						break;
					case 4720: case 4721: case 4722: case 4723:
					case 4724: case 4725: case 4726:
						.@en_name_2 = 4857;		// S_Dex
						break;
					case 4750: case 4751: case 4752: case 4753:
					case 4754: case 4755: case 4756:
						.@en_name_2 = 4858;		// S_Luck
						break;
					case 4710: case 4711: case 4712: case 4713:
					case 4714: case 4715: case 4716:
						.@en_name_2 = 4856;		// S_Int
						break;
					}
				}
			}
		}
		if (rand(1,100) > 40)
			.@d_item = 20718;	// FaceWorm_Skin_
		else
			.@d_item = 20717;	// FaceWorm_Skin
		makeitem2 .@d_item,1,'map_name$,rand(209,217),rand(152,161),0,.@refine,0,0,.@en_name_2,.@en_name_3,.@en_name_4;
	}
	end;
OnStart:
	initnpctimer;
	end;
OnTimer3600000:
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname("#fwormprize5");
	end;
}

// Instance Treasures :: in_face_t
//============================================================
1@face,183,314,3	script	Merchant Prince's Box#1	4_TREASURE_BOX,{
	specialeffect EF_COIN;
	hideonnpc instance_npcname(strnpcinfo(0));
	initnpctimer;
	end;
OnTimer1000:
	.@val = atoi(strnpcinfo(2));
	switch(.@val) {
	case 1:
		setarray .@xy[0],184,321;
		setarray .@item[0],718,22507;	// Dark_Red_Jewel, ShabbyOldScroll
		break;
	case 2:
		setarray .@xy[0],162,337;
		setarray .@item[0],719,6650;	// Violet_Jewel, Shabby_Ring
		break;
	case 3:
		setarray .@xy[0],29,362;
		setarray .@item[0],720,6651;	// Skyblue_Jewel, Rusty_Bracelet
		break;
	case 4:
		setarray .@xy[0],24,288;
		setarray .@item[0],721,6652;	// Azure_Jewel, Old_Photo_Album
		break;
	case 5:
		setarray .@xy[0],58,274;
		setarray .@item[0],722,6653;	// Scarlet_Jewel, Shabby_Pill
		break;
	case 6:
		setarray .@xy[0],73,214;
		setarray .@item[0],725,22507;	// Red_Jewel, ShabbyOldScroll
		break;
	case 7:
		setarray .@xy[0],49,176;
		setarray .@item[0],726,6650;	// Blue_Jewel, Shabby_Ring
		break;
	case 8:
		setarray .@xy[0],259,66;
		setarray .@item[0],727,6651;	// White_Jewel, Rusty_Bracelet
		break;
	case 9:
		setarray .@xy[0],68,38;
		setarray .@item[0],718,6652;	// Dark_Red_Jewel, Old_Photo_Album
		break;
	case 10:
		setarray .@xy[0],178,54;
		setarray .@item[0],719,6653;	// Violet_Jewel, Shabby_Pill
		break;
	case 11:
		setarray .@xy[0],120,137;
		setarray .@item[0],720,22507;	// Skyblue_Jewel, ShabbyOldScroll
		break;
	case 12:
		setarray .@xy[0],110,224;
		setarray .@item[0],721,6650;	// Azure_Jewel, Shabby_Ring
		break;
	case 13:
		setarray .@xy[0],118,294;
		setarray .@item[0],722,6651;	// Scarlet_Jewel, Rusty_Bracelet
		break;
	case 14:
		setarray .@xy[0],126,292;
		setarray .@item[0],725,6652;	// Red_Jewel, Old_Photo_Album
		break;
	case 15:
		setarray .@xy[0],150,162;
		setarray .@item[0],726,6653;	// Blue_Jewel, Shabby_Pill
		break;
	case 16:
		setarray .@xy[0],169,206;
		setarray .@item[0],727,22507;	// White_Jewel, ShabbyOldScroll
		break;
	case 17:
		setarray .@xy[0],262,220;
		setarray .@item[0],718,6650;	// Dark_Red_Jewel, Shabby_Ring
		break;
	case 18:
		setarray .@xy[0],218,350;
		setarray .@item[0],719,6651;	// Violet_Jewel, Rusty_Bracelet
		break;
	case 19:
		setarray .@xy[0],304,263;
		setarray .@item[0],720,6652;	// Skyblue_Jewel, Old_Photo_Album
		break;
	case 20:
		setarray .@xy[0],302,151;
		setarray .@item[0],721,6653;	// Azure_Jewel, Shabby_Pill
		break;
	case 21:
		setarray .@xy[0],305,63;
		setarray .@item[0],722,22507;	// Scarlet_Jewel, ShabbyOldScroll
		break;
	case 22:
		setarray .@xy[0],234,66;
		setarray .@item[0],725,6650;	// Red_Jewel, Shabby_Ring
		break;
	case 23:
		setarray .@xy[0],218,89;
		setarray .@item[0],726,6651;	// Blue_Jewel, Rusty_Bracelet
		break;
	case 24:
		setarray .@xy[0],233,99;
		setarray .@item[0],727,6652;	// White_Jewel, Old_Photo_Album
	case 25:
		setarray .@xy[0],280,158;
		setarray .@item[0],718,6653;	// Dark_Red_Jewel, Shabby_Pill
		break;
	case 26:
		setarray .@xy[0],182,353;
		setarray .@item[0],719,22507;	// Violet_Jewel, ShabbyOldScroll
		break;
	case 27:
		setarray .@xy[0],43,220;
		setarray .@item[0],720,6650;	// Skyblue_Jewel, Shabby_Ring
		break;
	}
	setarray .@max[1],
		5,4,6,3,7,4,3,5,5,4,6,3,7,4,3,
		5,5,4,6,3,7,4,3,5,5,4,6;
	.@idnum = rand(1,.@max[.@val]);
	for ( .@i = 0; .@i < .@idnum; ++.@i ) {
		.@idx = rand(.@xy[0],.@xy[0]+4);
		.@idy = rand(.@xy[1],.@xy[1]+4);
		makeitem .@item[0],1,'map_name$,.@idx,.@idy;
	}
	makeitem .@item[1],1,'map_name$,.@xy[0]+2,.@xy[1]+3;
	if (rand(1,1000) > 400)
		makeitem 6648,1,'map_name$,.@xy[0]+1,.@xy[1]+2;	// Shabby_Crown
	if (rand(1,1000) > 700)
		makeitem 7228,1,'map_name$,.@xy[0]+2,.@xy[1]+2;	// Gold_Bullion
	if (rand(1,1000) > 900)
		makeitem 7229,1,'map_name$,.@xy[0]+3,.@xy[1]+2;	// Silver_Bullion
	stopnpctimer;
	end;
OnInstanceInit:
	hideonnpc instance_npcname(strnpcinfo(0));
	end;
}
1@face,164,343,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#2	4_TREASURE_BOX
1@face,31,364,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#3	4_TREASURE_BOX
1@face,26,290,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#4	4_TREASURE_BOX
1@face,56,269,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#5	4_TREASURE_BOX
1@face,80,213,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#6	4_TREASURE_BOX
1@face,51,174,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#7	4_TREASURE_BOX
1@face,261,62,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#8	4_TREASURE_BOX
1@face,70,36,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#9	4_TREASURE_BOX
1@face,182,51,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#10	4_TREASURE_BOX
1@face,128,139,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#11	4_TREASURE_BOX
1@face,108,232,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#12	4_TREASURE_BOX
1@face,117,303,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#13	4_TREASURE_BOX
1@face,134,294,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#14	4_TREASURE_BOX
1@face,152,159,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#15	4_TREASURE_BOX
1@face,177,208,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#16	4_TREASURE_BOX
1@face,260,220,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#17	4_TREASURE_BOX
1@face,216,357,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#18	4_TREASURE_BOX
1@face,310,263,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#19	4_TREASURE_BOX
1@face,307,158,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#20	4_TREASURE_BOX
1@face,307,56,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#21	4_TREASURE_BOX
1@face,240,64,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#22	4_TREASURE_BOX
1@face,214,90,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#23	4_TREASURE_BOX
1@face,237,108,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#24	4_TREASURE_BOX
1@face,284,165,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#25	4_TREASURE_BOX
1@face,184,363,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#26	4_TREASURE_BOX
1@face,48,220,3	duplicate(Merchant Prince's Box#1)	Merchant Prince's Box#27	4_TREASURE_BOX

// Instance GM Function :: in_face_ad
//==========================================
1@face,1,1,3	script	#forestspirit1	CLEAR_NPC,{
	if (callfunc("F_GM_NPC",1854,0) == 1) {
		mes "[Time Manager]";
		mes "What time would you like to return?";
		next;
		switch( select("Cancel:1st Stage Start:2nd Stage Start:3rd Stage Start:4th Stage Start:Boss Start:Treasures")) {
		case 1:
			break;
		case 2:
			hideonnpc instance_npcname("Chaos#0");
			hideonnpc instance_npcname("Iris#0");
			donpcevent instance_npcname("#fwormcontrol1") + "::OnStart";
			mapannounce 'map_name$, "Faceworm time attack has started. Faster kill times gives a higher percentage of rewards.",bc_map,"0xffffff";
			donpcevent instance_npcname("#globaltimer22") + "::OnT_s";
			donpcevent instance_npcname("#fwormprize1") + "::OnStart";
			warp 'map_name$,110,348;
			break;
		case 3:
			enablenpc instance_npcname("#fwormenter1");
			enablenpc instance_npcname("#fwormexit1");
			hideoffnpc instance_npcname("Chaos#1");
			hideoffnpc instance_npcname("Iris#1");
			mapannounce 'map_name$, "A hole appears after killing the dark faceworm.",bc_map,"0xffffff";
			warp 'map_name$,127,95;
			break;
		case 4:
			enablenpc instance_npcname("#fwormenter2");
			enablenpc instance_npcname("#fwormexit2");
			hideoffnpc instance_npcname("Chaos#2");
			hideoffnpc instance_npcname("Iris#2");
			mapannounce 'map_name$, "You hear something loud in the south. It must be the nest of the one we just got rid of.",bc_map,"0xffffff";
			warp 'map_name$,156,117;
			break;
		case 5:
			enablenpc instance_npcname("#fwormenter3");
			enablenpc instance_npcname("#fwormexit3");
			enablenpc instance_npcname("#chaoson");
			mapannounce 'map_name$, "You hear the pile of stones collapsing. This might be a gateway to go to other spaces.",bc_map,"0xffffff";
			warp 'map_name$,261,170;
			break;
		case 6:
			enablenpc instance_npcname("#fwormenter4");
			enablenpc instance_npcname("#fwormexit4");
			hideoffnpc instance_npcname("Chaos#4");
			hideoffnpc instance_npcname("Iris#4");
			enablenpc instance_npcname("#chaoson2");
			mapannounce 'map_name$, "You hear the pile of stones collapsing. I think another gateway is found.",bc_map,"0xffffff";
			warp 'map_name$,210,145;
			break;
		case 7:
			hideoffnpc instance_npcname("#fwormprize5");
			donpcevent instance_npcname("#fwormprize5") + "::OnStart";
			warp 'map_name$,210,145;
			break;
		}
	}
	close;
}

1@face,3,1,3	script	#forestspiritboss1	CLEAR_NPC,{
	mes "" + getmapusers('map_name$) + " people.";
	if (callfunc("F_GM_NPC",1854,0) == 1) {
		mes "[Boss Manager]";
		mes "What time would you like to return?";
		next;
		switch( select("Cancel:1st Boss:2nd Boss:3rd Boss:4th Boss:Final Boss")) {
		case 1:
			break;
		case 2:
			hideonnpc instance_npcname("Chaos#0");
			hideonnpc instance_npcname("Iris#0");
			donpcevent instance_npcname("#fwormboss1") + "::OnStart";
			donpcevent instance_npcname("#globaltimer22") + "::OnT_s";
			donpcevent instance_npcname("#fwormprize1") + "::OnStart";
			warp 'map_name$,140,70;
			break;
		case 3:
			donpcevent instance_npcname("#fwormboss2") + "::OnStart";
			donpcevent instance_npcname("#fwormprize2") + "::OnStart";
			warp 'map_name$,160,270;
			break;
		case 4:
			donpcevent instance_npcname("#fwormboss3") + "::OnStart";
			donpcevent instance_npcname("#fwormprize3") + "::OnStart";
			warp 'map_name$,270,300;
			break;
		case 5:
			donpcevent instance_npcname("#fwormboss4") + "::OnStart";
			donpcevent instance_npcname("#fwormprize4") + "::OnStart";
			warp 'map_name$,210,105;
			break;
		case 6:
			donpcevent instance_npcname("#fwormboss5") + "::OnStart";
			donpcevent instance_npcname("#fwormprize5") + "::OnStart";
			warp 'map_name$,214,148;
			break;
		}
	}
	close;

OnInstanceInit:
	'map_name$ = instance_mapname("1@face");
	monster 'map_name$,0,0,"Greatest General",1277,50;
	monster 'map_name$,0,0,"Beetle King",1494,25;
	monster 'map_name$,0,0,"Savage",1166,25;
	end;
}

 

Link to comment
Share on other sites

  • 0

  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.01
  • Content Count:  90
  • Reputation:   2
  • Joined:  02/25/19
  • Last Seen:  

id suggest searching for the number "2000000" in the document and see where that is and what it does, that should put you on the right path

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...