Jump to content

monody0093

Members
  • Posts

    17
  • Joined

  • Last visited

Posts posted by monody0093

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

     

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

  3. 8 hours ago, Gidz Cross said:

    It seems you are using maps with mapflags nocostume in it. Go to your mapflagsfolder. Open nocostume.txt and you can remove the declared maps there.

    Trunk\npc\mapflag\nocostume.txt

     

    Thank you!

     

  4. Sorry for the noob question and if i asked this question in the wrong place feel free to move this topic to where it really belongs.

    Okay how do I make costumes visible in pvp rooms because it hides the costumes everytime I went inside the pvproom.

    Thanks,

  5. On 5/12/2021 at 12:43 AM, AinsLord said:

    update to this heres mine with most of mini are listed im still trying to add the monsters that are not normally spawned

    .Blacklist$ =           // Blacklisted mob IDs.
    		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
    		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
    		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
    		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
    		"1975,1976,1977,1978,1979,1089,1096,1388,1641,1830,"+
    		"1839,1307,1283,1302,1582,1091,1093,1205,1783,1681,"+
    		"1120,1929,1259,1990,1626,1643,1645,1720,1919,1921,"+
    		"1918,1920,1640,1090,1289,1262,1203,1956,1700,1295,"+
    		"1320,1894,1702,1701,1754,1755,1644,1703,1829,1991,"+
    		"1705,1710,1707,1712,1706,1711,1704,1709,1960,1961,"+
    		"1959,1958,1204,1092,1765,1642";

     

    are you still updating your blacklist? if so can you share it? I have copied your blacklist as of now, if you don't mind.

  6. Hello can someone add some things to this script like:

    K/D statistic
    K/D ranking

    Here is the script:
     

    prontera,168,191,5    script    PvP Room    4_M_BLACKMAN,{
        .@npc$ = "["+strnpcinfo(0)+"]";
        
        mes .@npc$;
        mes "Would you like to enter the PvP Room?";
        next;
        switch(select("Enter Room [Current Users ~ "+getmapusers("pvp_y_2-2")+" ~]:Leave")) {    // Change pvp_y_2-2 into your PvP Map
        
            case 1:
                warp "pvp_y_2-2",0,0;    // Change pvp_y_2-2 into your PvP Map
                announce ""+strcharinfo(0)+" entered PVP ROOM !",bc_all;
                end;
                
            case 2:
                close;
        }

    OnInit:
        waitingroom "PVP Warper",0;
        end;
    }


    Thanks you,

×
×
  • Create New...