Faceworm Instance

LyDe

New member
Messages
7
Points
0
Age
32
Hey guys, I'm looking for a script of Faceworm instance and actually I found one, but there is a lot of error in map-server.



//===== rAthena Script =======================================
//= Faceworm's Nest
//===== By: ==================================================
//= exneval
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
//= [Official Conversion]
//= Faceworm Nest Instance
//===== Additional Comments: =================================
//= 1.0 First version.
//============================================================

// 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;
    }
    set .@face_time,isbegin_quest(12326,PLAYTIME);
    if (!.@face_time) {
        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)) {
            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;
                getexp 70000,55000;
            }
        }
    } else if (.@face_time == 1)
        mes "The lady keeps crying over and over holding a ring. It seems to be no use talking to her right now.";
    else if (.@face_time == 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;
    }
    set .@face_time,isbegin_quest(12327,PLAYTIME);
    if (!.@face_time) {
        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;
                setquest 12327;
                getexp 70000,55000;
            }
        }
    } else if (.@face_time == 1)
        mes "Sergio keeps looking at the photo album. Let's leave him alone.";
    else if (.@face_time == 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;
    }
    set .@face_time,isbegin_quest(12328,PLAYTIME);
    if (!.@face_time) {
        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;
                setquest 12328;
                getexp 70000,55000;
            }
        }
    } else if (.@face_time == 1)
        mes "Dol-Seoi is standing absent-mindedly clutching the Old Pill. Let's leave him alone now.";
    else if (.@face_time == 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;
    }
    set .@face_time,isbegin_quest(12329,PLAYTIME);
    if (!.@face_time) {
        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;
                setquest 12329;
                getexp 70000,55000;
            }
        }
    } else if (.@face_time == 1)
        mes "Keaton's soul seems to be smiling. Best to give him whatever peace he can have for now.";
    else if (.@face_time == 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,{
    set .@face_str$,$120719_str_face$;
    set .@face_num,$120719_num_face;
    set .@face_num2,$120903_num_face;
    set .@time_m,.@face_num/60;
    set .@time_s,.@face_num-(.@time_m*60);
    if (.@face_num < 60)
        set .@time_txt$,.@time_s+" "+(.@time_s>1?"Seconds":"Second");
    else
        set .@time_txt$,.@time_m+" "+(.@time_m>1?"Minutes":"Minute")+" "+.@time_s+" "+(.@time_s>1?"Seconds":"Second");
    if (.@face_str$ == "" || .@face_str$ == "0") {
        mes "There's no sign because no one updates the record."; //Custom text
        close;
    } else {
        if (!.@face_num2) {
            mes "-- Faceworm's Nest Records --";
            mes "Best time belongs to adventurer ^ff0044"+.@face_str$+"^000000.";
             mes "Current record time is ^0000ff"+.@time_txt$+"^000000.";
            close;
        } else {
            mes "-- Faceworm's Nest Records --";
            mes "Best time belongs to adventurer ^ff0044"+.@face_str$+"^000000 with ^ff0044"+.@face_num2+" party "+(.@face_num2>1?"members":"member")+"^000000.";
             mes "Current record time is ^0000ff"+.@time_txt$+"^000000.";
            close;
        }
    }
    end;
OnInit:
    if (!$120719_num_face)
        set $120719_num_face,3600;
    if (rand(1,100) > 97) {
        set $120719_num_face,3600;
        set $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;
    }
    set .@party_id,getcharid(1);
    set .@ins_mas,getpartyleader(.@party_id,2);
    set .@p_name$,getpartyname(.@party_id);
    set .@p_reader$,strcharinfo(0);
    set .@md_name$,"Faceworm's Nest";
    set .@face_time,isbegin_quest(12325,PLAYTIME);
    if (!instance_check_party(.@party_id)) {
        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;
    }
    if (!.@face_time) {
        if (getcharid(0) == .@ins_mas) {
            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;
    } else if (.@face_time == 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;
    } else if (.@face_time == 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;
    }
    set .@party_id,getcharid(1);
    set .@ins_mas,getpartyleader(.@party_id,2);
    set .@p_name$,getpartyname(.@party_id);
    set .@p_reader$,strcharinfo(0);
    set .@md_name$,"Faceworm's Nest";
    set .@face_time,isbegin_quest(12325,PLAYTIME);
    if (!instance_check_party(.@party_id)) {
        mes "[Interdimensional Device]";
        mes "No party? Please come back again after creating a party even if you've come alone.";
        close;
    }
    if (!.@face_time) {
        switch (instance_enter(.@md_name$)) {
            case 3:
                mes "[Interdimensional Device]";
                mes "An unknown error has occurred.";
                close;
            case 2:
                mes "[Interdimensional Device]";
                mes "The passage for space travel is not activated yet.";
                close;
            case 1: //Custom text
                mes "[Interdimensional Device]";
                mes "You are not allowed to access the device.";
                close;
            case 0:
                mapannounce "dali",.@p_name$+" party's party member "+.@p_reader$+" enters "+.@md_name$+".",bc_map,"0x00ff99";
                setquest 12325;
                //warp "1@face",112,374;
                end;
        }
    } else if (.@face_time == 1) {
        mes "[Interdimensional Device]";
        mes "Traces of recent space travel have been detected. Access is denied.";
        close;
    } else if (.@face_time == 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 (getcharid(0) != getpartyleader(getcharid(1),2)) {
        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 "h_chaos01",255;
        end;
    }
    mes "[Chaos]";
    mes "Really? I didn't know that a bounty hunter was coming here.";
    unittalk getnpcid(0),"Chaos: Really? I didn't know that a bounty hunter was coming here.";
    next;
    select("Wait! It's a misunderstanding.");
    cutin "h_chaos01",255;
    mes "["+strcharinfo(0)+"]";
    mes "No! I think you're mistaken! We are not bounty hunters...";
    unittalk getcharid(3),strcharinfo(0)+": 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.";
    unittalk getnpcid(0),"Chaos: No, No need to make an excuse... The faceworm belongs to nobody.";
    next;
    select("Faceworm?");
    cutin "h_chaos01",255;
    mes "["+strcharinfo(0)+"]";
    mes "Faceworm? I've never heard about it.";
    unittalk getcharid(3),strcharinfo(0)+": Faceworm? I've never heard about it.";
    close2;
    donpcevent instance_npcname("Chaos#01")+"::OnStart";
    end;

OnInstanceInit:
    donpcevent instance_npcname("Chaos#0")+"::OnEnable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#0");
    end;
OnDisable:
    hideonnpc instance_npcname("Chaos#0");
    end;
}

1@face,110,348,6    script    Chaos#01    4_M_CHAOS,{
    end;
OnStart:
    set .@map$,instance_mapname("1@face");
    donpcevent instance_npcname("#globaltimer22")+"::OnT_s";
    donpcevent instance_npcname("Chaos#01")+"::OnEnable";
    donpcevent instance_npcname("Chaos#0")+"::OnDisable";
    sleep 5000;
    unittalk getnpcid(0),"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;
    unittalk getnpcid(0),"Chaos: I don't care. I would not care as long as you don't disturb me.";
    sleep 5000;
    unittalk getnpcid(0,instance_npcname("Iris#0")),"Iris: Ah~ A gentle breeze~";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#0")),"Iris: Hehe, the weather has been great. I'm so happy~";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#0")),"Iris: How about you Chaos?";
    sleep 3000;
    unittalk getnpcid(0),"Chaos: It will only be for the time being.";
    sleep 3000;
    unittalk getnpcid(0),"Chaos: A black wind has started blowing.";
    sleep 4000;
    unittalk getnpcid(0),"Chaos: Iris! I feel like faceworms are around here. Maybe, the queen's nest is in the deepest side of this forest!";
    sleep 5000;
    unittalk getnpcid(0,instance_npcname("Iris#0")),"Iris: Ahah~ Let's take care of it as always like usual ok?";
    sleep 3000;
    unittalk getnpcid(0),"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;
    donpcevent instance_npcname("Chaos#01")+"::OnDisable";
    donpcevent instance_npcname("Iris#0")+"::OnDisable";
    donpcevent instance_npcname("#fwormcontrol1")+"::OnStart";
    mapannounce .@map$,"Faceworm time attack has started. Faster kill times gives a higher percentage of rewards.",bc_map,"0xffffff";
    donpcevent instance_npcname("#fwormprize1")+"::OnStart";
    end;
OnInstanceInit:
    donpcevent instance_npcname("Chaos#01")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#01");
    end;
OnDisable:
    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 "h_iris02",255;
    end;

OnInstanceInit:
    donpcevent instance_npcname("Iris#0")+"::OnEnable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Iris#0");
    end;
OnDisable:
    hideonnpc instance_npcname("Iris#0");
    end;
}

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

1@face,1,4,3    script    #fwormboss1    CLEAR_NPC,{
    end;
OnHeal04:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    getunitdata '1BOSS,.@arr;
    set .@MOB_HP,.@arr[2];
    set .@r_hpp,(.@mapcount+1)*150000;
    set .@dfacehp,.@MOB_HP+.@r_hpp;
    set .@r_hpp2,5200000-((13-.@mapcount)*200000);
    if (.@dfacehp > .@r_hpp2)
        set .@dfacehp,.@r_hpp2;
    setunitdata '1BOSS,2,.@dfacehp;
    mapannounce .@map$,"Dark faceworm absorbs the energy of 4 unbroken eggs recovering "+.@r_hpp+" energy.",bc_map,"0xff00ee";
    end;
OnHeal03:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    getunitdata '1BOSS,.@arr;
    set .@MOB_HP,.@arr[2];
    set .@r_hpp,(.@mapcount+1)*55000;
    set .@dfacehp,.@MOB_HP+.@r_hpp;
    set .@r_hpp2,5200000-((13-.@mapcount)*200000);
    if (.@dfacehp > .@r_hpp2)
        set .@dfacehp,.@r_hpp2;
    setunitdata '1BOSS,2,.@dfacehp;
    mapannounce .@map$,"Dark faceworm absorbs the energy of 3 unbroken eggs recovering "+.@r_hpp+" energy.",bc_map,"0xff00ee";
    end;
OnHeal02:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    getunitdata '1BOSS,.@arr;
    set .@MOB_HP,.@arr[2];
    set .@r_hpp,(.@mapcount+1)*20000;
    set .@dfacehp,.@MOB_HP+.@r_hpp;
    set .@r_hpp2,5200000-((13-.@mapcount)*200000);
    if (.@dfacehp > .@r_hpp2)
        set .@dfacehp,.@r_hpp2;
    setunitdata '1BOSS,2,.@dfacehp;
    mapannounce .@map$,"Dark faceworm absorbs the energy of 2 unbroken eggs recovering "+.@r_hpp+" energy.",bc_map,"0xff00ee";
    end;
OnHeal01:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    getunitdata '1BOSS,.@arr;
    set .@MOB_HP,.@arr[2];
    set .@r_hpp,(.@mapcount+1)*7200;
    set .@dfacehp,.@MOB_HP+.@r_hpp;
    set .@r_hpp2,5200000-((13-.@mapcount)*200000);
    if (.@dfacehp > .@r_hpp2)
        set .@dfacehp,.@r_hpp2;
    setunitdata '1BOSS,2,.@dfacehp;
    mapannounce .@map$,"Dark faceworm absorbs the energy of 1 unbroken egg recovering "+.@r_hpp+" energy.",bc_map,"0xff00ee";
    end;
OnStart:
    set .@map$,instance_mapname("1@face");
    areamonster .@map$,140,69,150,79,"Dark Faceworm",2530,1,instance_npcname("#fwormboss1")+"::OnMyMobDead";
    set '1BOSS,$@mobid[0];
    set .@mapcount,getmapusers(.@map$);
    set .@dfacehp,(13-.@mapcount)*200000;
    set .@MOB_HP,5200000-.@dfacehp;
    if (.@MOB_HP < 1500000)
        set .@MOB_HP,1500000;
    setunitdata '1BOSS,2,.@MOB_HP;
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss1")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss1");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss1");
    end;
OnMyMobDead:
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss1")+"::OnMyMobDead");
    if (!.@mob_dead_num) {
        donpcevent instance_npcname("#fwormprize1")+"::OnEnable";
        donpcevent instance_npcname("#fwormenter1")+"::OnEnable";
        donpcevent instance_npcname("#fwormexit1")+"::OnEnable";
        donpcevent instance_npcname("Chaos#1")+"::OnEnable";
        donpcevent instance_npcname("Iris#1")+"::OnEnable";
        donpcevent instance_npcname("#fwormboss12")+"::OnEnd";
        mapannounce .@map$,"A hole appears after killing the dark faceworm.",bc_map,"0xffffff";
        stopnpctimer;
    }
    end;
OnTimer1111:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    if (.@mapcount) {
        if (rand(1,22-.@mapcount) < 17) {
            getunitdata '1BOSS,.@arr;
            set .@MOB_HP,.@arr[2];
            if (.@MOB_HP > 3000000 && .@MOB_HP < 4900000)
                donpcevent instance_npcname("#fwormboss12")+"::OnStart1";
            else if (.@MOB_HP > 10000 && .@MOB_HP < 2500001)
                donpcevent instance_npcname("#fwormboss12")+"::OnStart2";
        }
    } else
        setunitdata '1BOSS,2,5000000;
    end;
OnTimer14000:
    stopnpctimer;
    getunitdata '1BOSS,.@arr;
    set .@MOB_HP,.@arr[2];
    if (.@MOB_HP > 10000)
        initnpctimer;
    end;
}

1@face,1,4,3    script    #fwormboss12    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    stopnpctimer;
    end;
OnStart1:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss12")+"::OnMyMobDead");
    if (.@mob_dead_num > 3)
        killmonster .@map$,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    getunitdata '1BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    end;
OnStart2:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss12")+"::OnMyMobDead");
    if (.@mob_dead_num > 6)
        killmonster .@map$,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    getunitdata '1BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby+4,"Faceworm Egg",2540,1,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby-4,"Faceworm Egg",2540,1,instance_npcname("#fwormboss12")+"::OnMyMobDead";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss12")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss12");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss12");
    end;
OnMyMobDead:
    end;
OnTimer12000:
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss12")+"::OnMyMobDead");
    if (.@mob_dead_num > 3)
        donpcevent instance_npcname("#fwormboss1")+"::OnHeal04";
    else if (.@mob_dead_num > 2)
        donpcevent instance_npcname("#fwormboss1")+"::OnHeal03";
    else if (.@mob_dead_num > 1)
        donpcevent instance_npcname("#fwormboss1")+"::OnHeal02";
    else if (.@mob_dead_num > 0)
        donpcevent instance_npcname("#fwormboss1")+"::OnHeal01";
    donpcevent instance_npcname("#fwormboss12")+"::OnEnd";
    end;
}

1@face,149,92,0    script    #fwormenter1    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,127,95;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormenter1")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormenter1");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormenter1");
    end;
}

1@face,129,86,0    script    #fwormexit1    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,156,76;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormexit1")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormexit1");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormexit1");
    end;
}

// 2nd Stage
//============================================================
1@face,120,97,6    script    Chaos#1    4_M_CHAOS,{
    cutin "h_chaos01",2;
    if (getcharid(0) != getpartyleader(getcharid(1),2)) {
        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 "h_chaos01",255;
        end;
    }
    mes "[Chaos]";
    mes "Wow, you're fast enough to follow me.";
    unittalk getnpcid(0),"Chaos: Wow, you're fast enough to follow me.";
    next;
    select("The big one, just right before...");
    cutin "h_chaos01",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 "h_chaos01",255;
    end;

OnInstanceInit:
    donpcevent instance_npcname("Chaos#1")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#1");
    end;
OnDisable:
    hideonnpc instance_npcname("Chaos#1");
    end;
}

1@face,120,97,6    script    Chaos#11    4_M_CHAOS,{
    end;
OnStart:
    donpcevent instance_npcname("Chaos#11")+"::OnEnable";
    donpcevent instance_npcname("Chaos#1")+"::OnDisable";
    unittalk getnpcid(0),"Chaos: No~~ It can't be the faceworm queen.";
    sleep 4000;
    unittalk getnpcid(0),"Chaos: The one we just saw before is a mutant faceworm.";
    sleep 5000;
    unittalk getnpcid(0),"Chaos: Wait! The dead faceworm's castoff skin might be useful.";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#1")),"Iris: But, if the fight takes too long. The scales might be damaged. They'll be worthless!";
    sleep 5000;
    unittalk getnpcid(0,instance_npcname("Iris#1")),"Iris: I heard that skillful hunters are good at taking the scales off super fast.";
    sleep 6000;
    unittalk getnpcid(0,instance_npcname("Iris#1")),"Iris: Chaos, are you any good at it?";
    sleep 3000;
    unittalk getnpcid(0),"Chaos: No... Not at all! I use Magnum Break only, so the scales will probably get burned...";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#1")),"Iris: Useless Chaos.";
    sleep 3000;
    unittalk getnpcid(0),"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;
    donpcevent instance_npcname("Chaos#11")+"::OnDisable";
    unittalk getnpcid(0,instance_npcname("Iris#1")),"Iris: Chaos! Are you leaving me alone?";
    sleep 3000;
    donpcevent instance_npcname("Iris#1")+"::OnDisable";
    donpcevent instance_npcname("#fwormcontrol2")+"::OnStart";
    donpcevent instance_npcname("#fwormprize2")+"::OnStart";
    end;
OnInstanceInit:
    donpcevent instance_npcname("Chaos#11")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#11");
    end;
OnDisable:
    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 "h_iris02",255;
    end;

OnInstanceInit:
    donpcevent instance_npcname("Iris#1")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Iris#1");
    end;
OnDisable:
    hideonnpc instance_npcname("Iris#1");
    end;
}

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

1@face,2,5,3    script    #fwormboss2    CLEAR_NPC,{
    end;
OnStart:
    set .@map$,instance_mapname("1@face");
    areamonster .@map$,156,267,166,277,"Dark Faceworm",2530,1,instance_npcname("#fwormboss2")+"::OnMyMobDead";
    set '2BOSS,$@mobid[0];
    set .@mapcount,getmapusers(.@map$);
    set .@dfacehp,(13-.@mapcount)*200000;
    set .@MOB_HP,5200000-.@dfacehp;
    if (.@MOB_HP < 1500000)
        set .@MOB_HP,1500000;
    setunitdata '2BOSS,2,.@MOB_HP;
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss2")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss2");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss2");
    end;
OnMyMobDead:
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss2")+"::OnMyMobDead");
    if (!.@mob_dead_num) {
        donpcevent instance_npcname("#fwormprize2")+"::OnEnable";
        donpcevent instance_npcname("#fwormenter2")+"::OnEnable";
        donpcevent instance_npcname("#fwormexit2")+"::OnEnable";
        donpcevent instance_npcname("Chaos#2")+"::OnEnable";
        donpcevent instance_npcname("Iris#2")+"::OnEnable";
        donpcevent instance_npcname("#fwormboss22")+"::OnEnd";
        mapannounce .@map$,"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;
OnTimer1111:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    if (.@mapcount) {
        if (rand(1,22-.@mapcount) < 17) {
            getunitdata '2BOSS,.@arr;
            set .@MOB_HP,.@arr[2];
            if (.@MOB_HP > 2000000 && .@MOB_HP < 5000000)
                donpcevent instance_npcname("#fwormboss22")+"::OnStart1";
            else if (.@MOB_HP > 10000 && .@MOB_HP < 2000000)
                donpcevent instance_npcname("#fwormboss22")+"::OnStart2";
        }
    } else
        setunitdata '2BOSS,2,5000000;
    end;
OnTimer12000:
    stopnpctimer;
    getunitdata '2BOSS,.@arr;
    set .@MOB_HP,.@arr[2];
    if (.@MOB_HP > 10000)
        initnpctimer;
    end;
}

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

1@face,139,100,0    script    #fwormenter2    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,156,117;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormenter2")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormenter2");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormenter2");
    end;
}

1@face,151,106,0    script    #fwormexit2    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,127,95;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormexit2")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormexit2");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormexit2");
    end;
}

// 3rd Stage
//============================================================
1@face,153,113,7    script    Chaos#2    4_M_CHAOS,{
    cutin "h_chaos01",2;
    if (getcharid(0) != getpartyleader(getcharid(1),2)) {
        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 "h_chaos01",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.";
    unittalk getnpcid(0),"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 "h_chaos01",255;
    end;

OnInstanceInit:
    donpcevent instance_npcname("Chaos#2")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#2");
    end;
OnDisable:
    hideonnpc instance_npcname("Chaos#2");
    end;
}

1@face,153,113,7    script    Chaos#22    4_M_CHAOS,{
    end;
OnStart:
    donpcevent instance_npcname("Chaos#22")+"::OnEnable";
    donpcevent instance_npcname("Chaos#2")+"::OnDisable";
    sleep 4000;
    unittalk getnpcid(0,instance_npcname("Iris#2")),"Iris: I do not feel good here. Let's get outta here right now Chaos!";
    sleep 4000;
    unittalk getnpcid(0),"Chaos: Ok, let's get out of here. Carefully follow me!";
    sleep 4000;
    donpcevent instance_npcname("Chaos#22")+"::OnDisable";
    donpcevent instance_npcname("Iris#2")+"::OnDisable";
    donpcevent instance_npcname("#fwormcontrol3")+"::OnStart";
    donpcevent instance_npcname("#fwormprize3")+"::OnStart";
    end;
OnInstanceInit:
    donpcevent instance_npcname("Chaos#22")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#22");
    end;
OnDisable:
    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 "h_iris01",255;
    end;

OnInstanceInit:
    donpcevent instance_npcname("Iris#2")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Iris#2");
    end;
OnDisable:
    hideonnpc instance_npcname("Iris#2");
    end;
}

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

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

1@face,1,4,3    script    #fwormboss32    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss32")+"::OnMyMobDead";
    end;
OnStart1:
    set .@map$,instance_mapname("1@face");
    getunitdata '3BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    set .@vmobx,.@mobx-3;
    while (1) {
        set .@vmoby,.@moby+3;
        while (2) {
            monster .@map$,.@vmobx,.@vmoby,"Venom Bug",2531,1,instance_npcname("#fwormboss32")+"::OnMyMobDead";
            set .@vmoby,.@vmoby-2;
            if (.@vmoby < (.@moby-3))
                break;
        }
        set .@vmobx,.@vmobx+2;
        if (.@vmobx > (.@mobx+3))
            break;
    }
    donpcevent instance_npcname("#fwormboss3")+"::OnHeal01";
    end;
OnStart2:
    set .@map$,instance_mapname("1@face");
    getunitdata '3BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    set .@vmobx,.@mobx-5;
    while (1) {
        set .@vmoby,.@moby+5;
        while (2) {
            monster .@map$,.@vmobx,.@vmoby,"Venom Bug",2531,1,instance_npcname("#fwormboss32")+"::OnMyMobDead";
            set .@vmoby,.@vmoby-2;
            if (.@vmoby < (.@moby-5))
                break;
        }
        set .@vmobx,.@vmobx+2;
        if (.@vmobx > (.@mobx+5))
            break;
    }
    donpcevent instance_npcname("#fwormboss3")+"::OnHeal01";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss32")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss32");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss32");
    end;
OnMyMobDead:
    end;
}

1@face,248,185,0    script    #fwormenter3    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,261,170;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormenter3")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormenter3");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormenter3");
    end;
}

1@face,254,175,0    script    #fwormexit3    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,244,192;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormexit3")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormexit3");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormexit3");
    end;
}

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

1@face,1,10,7    script    #announcer1    CLEAR_NPC,{
    end;
OnStart:
    set .@map$,instance_mapname("1@face");
    mapannounce .@map$,"The voice of Chaos: Hey adventurers, you should be careful! Avoid the poison!",bc_map,"0xffff00";
    sleep 6000;
    mapannounce .@map$,"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:
    donpcevent instance_npcname("#announcer1")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#announcer1");
    end;
OnDisable:
    hideonnpc instance_npcname("#announcer1");
    end;
}

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

1@face,2,6,3    script    #fwormcontrol42    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormcontrol42")+"::OnMyMobDead";
    end;
OnStart:
    set .@map$,instance_mapname("1@face");
    set .@mob_c,getmapusers(.@map$)+8;
    set .@mon_num,.@mob_c*5;
    areamonster .@map$,237,71,337,171,"#toxicarea",2536,.@mon_num,instance_npcname("#fwormcontrol42")+"::OnMyMobDead";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormcontrol42")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormcontrol42");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormcontrol42");
    end;
OnMyMobDead:
    end;
}

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

1@face,1,4,3    script    #fwormboss42    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    stopnpctimer;
    end;
OnStart1:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss42")+"::OnMyMobDead");
    if (.@mob_dead_num > 12)
        killmonster .@map$,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    getunitdata '4BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-3,.@moby+3,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx+3,.@moby+3,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx-3,.@moby-3,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx+3,.@moby-3,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    end;
OnStart2:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss42")+"::OnMyMobDead");
    if (.@mob_dead_num > 27)
        killmonster .@map$,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    getunitdata '4BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-5,.@moby+5,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby+5,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx+5,.@moby+5,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx-5,.@moby,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx+5,.@moby,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx-5,.@moby-5,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby-5,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    monster .@map$,.@mobx+5,.@moby-5,"#venomfog",2536,1,instance_npcname("#fwormboss42")+"::OnMyMobDead";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss42")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss42");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss42");
    end;
OnMyMobDead:
    end;
OnTimer30000:
    donpcevent instance_npcname("#fwormboss42")+"::OnEnd";
    end;
}

1@face,204,122,0    script    #fwormenter4    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,210,145;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormenter4")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormenter4");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormenter4");
    end;
}

1@face,198,142,0    script    #fwormexit4    WARPNPC,2,2,{
    end;
OnTouch:
    set .@map$,instance_mapname("1@face");
    warp .@map$,211,114;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormexit4")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#fwormexit4");
    end;
OnDisable:
    disablenpc instance_npcname("#fwormexit4");
    end;
}

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

1@face,213,153,6    script    Chaos#5    4_M_CHAOS,{
    end;
OnInstanceInit:
    donpcevent instance_npcname("Chaos#5")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#5");
    end;
OnDisable:
    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 "h_chaos01",255;
    end;

OnStart:
    sleep 2000;
    unittalk getnpcid(0),"Chaos: Iris, what is this puddle for?";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#4")),"Iris: Well, I think it is too big to be the nest of a faceworm.";
    sleep 4000;
    unittalk getnpcid(0),"Chaos: Hmm, okay, should I go down there and check it out?";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#4")),"Iris: Chaos! Cut the crap.";
    sleep 3000;
    unittalk getnpcid(0),"Chaos: Why not? It doesn't even look that dangerous!";
    sleep 5000;
    donpcevent instance_npcname("Chaos#4")+"::OnDisable";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#4")),"Iris: Arrghh, Chaos you're such a troublemaker.";
    sleep 6000;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Ugh! Arrgh!! What is this?";
    sleep 2000;
    unittalk getnpcid(0,instance_npcname("Iris#4")),"Iris: Chaos! What is it?";
    sleep 2000;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Ah";
    sleep 100;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Argh";
    sleep 100;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Argghh";
    sleep 100;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Argghhhhh";
    sleep 100;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Argghhhhhhh";
    sleep 100;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Argghhhhhhhhh";
    sleep 100;
    unittalk getnpcid(0,instance_npcname("Chaos#5")),"Chaos: Argghhhhhhhhhhh!!";
    sleep 5000;
    donpcevent instance_npcname("Chaos#4")+"::OnEnable";
    sleep 3000;
    unittalk getnpcid(0),"Chaos: Damn, I was close to being eaten alive.";
    sleep 3000;
    unittalk getnpcid(0,instance_npcname("Iris#4")),"Iris: I asked you what happened dummy!";
    sleep 3000;
    unittalk getnpcid(0),"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;
    donpcevent instance_npcname("Chaos#4")+"::OnDisable";
    sleep 1000;
    unittalk getnpcid(0,instance_npcname("Iris#4")),"Iris: Chaos you idiot!!";
    specialeffect EF_DUSTSTORM,AREA,instance_npcname("Chaos#5");
    specialeffect EF_MAPPILLAR2,AREA,instance_npcname("Chaos#5");
    sleep 5000;
    donpcevent instance_npcname("Iris#4")+"::OnDisable";
    sleep 9000;
    donpcevent instance_npcname("#fwormboss5")+"::OnStart";
    donpcevent instance_npcname("#fwormprize5")+"::OnStart";
    end;
OnInstanceInit:
    donpcevent instance_npcname("Chaos#4")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Chaos#4");
    end;
OnDisable:
    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 "h_iris01",255;
    end;

OnInstanceInit:
    donpcevent instance_npcname("Iris#4")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Iris#4");
    end;
OnDisable:
    hideonnpc instance_npcname("Iris#4");
    end;
}

1@face,1,4,3    script    #fwormboss5    CLEAR_NPC,{
    callfunc "F_GM_NPC";
    if (callfunc("F_GM_NPC",1854,0) == 1) {
        set .@map$,instance_mapname("1@face");
        set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss5")+"::OnMyMobDead");
        mes ""+.@mob_dead_num;
        close;
    }

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

1@face,2,3,5    script    #support    CLEAR_NPC,{
    end;
OnSupport_2:
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    set .@sup_m,.@mapcount+10;
    if (.@sup_m < 8)
        set .@sup_m,8;
    set .@chan_f,rand(1,.@sup_m);
    if (.@chan_f > 0 && .@chan_f < 3) {
        donpcevent instance_npcname("#chaos_north")+"::OnStart";
        mapannounce .@map$,"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$,"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$,"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$,"The voice of Chaos: Hey! Lure it to the west! I will beat it!",bc_map,"0xff44aa",FW_NORMAL,14;
    }
    end;
OnInstanceInit:
    donpcevent instance_npcname("#support")+"::OnEnable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#support");
    end;
OnDisable:
    hideonnpc instance_npcname("#support");
    end;
}

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

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

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

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

1@face,214,172,5    script    Chaos#north    4_M_CHAOS,{
    end;
OnEnd:
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname(strnpcinfo(0));
    end;
OnDisable:
    hideonnpc instance_npcname(strnpcinfo(0));
    end;
OnTimer1000:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    stopnpctimer;
    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;
OnCalm:
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss50")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss50");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss50");
    end;
OnTimer15000:
    donpcevent instance_npcname("#fwormboss5")+"::OnCalm";
    stopnpctimer;
    end;
}

1@face,1,4,3    script    #fwormboss51    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    stopnpctimer;
    end;
OnStart1:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss51")+"::OnMyMobDead");
    if (.@mob_dead_num > 3)
        killmonster .@map$,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    end;
OnStart2:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss51")+"::OnMyMobDead");
    if (.@mob_dead_num > 6)
        killmonster .@map$,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby+4,"Faceworm Egg",2540,1,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby,"Faceworm Egg",2540,1,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby-4,"Faceworm Egg",2540,1,instance_npcname("#fwormboss51")+"::OnMyMobDead";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss51")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss51");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss51");
    end;
OnMyMobDead:
    end;
OnTimer12000:
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,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;
}

1@face,1,4,3    script    #fwormboss52    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    stopnpctimer;
    end;
OnStart1:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss52")+"::OnMyMobDead");
    if (.@mob_dead_num > 6)
        killmonster .@map$,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby+4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby-4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    end;
OnStart2:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss52")+"::OnMyMobDead");
    if (.@mob_dead_num > 12)
        killmonster .@map$,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby+4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby-4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx-4,.@moby+4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx-4,.@moby-4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby+4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    monster .@map$,.@mobx+4,.@moby-4,"#waterball",2539,1,instance_npcname("#fwormboss52")+"::OnMyMobDead";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss52")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss52");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss52");
    end;
OnMyMobDead:
    end;
OnTimer20000:
    donpcevent instance_npcname("#fwormboss52")+"::OnEnd";
    end;
}

1@face,1,4,3    script    #fwormboss53    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss53")+"::OnMyMobDead";
    end;
OnStart1:
    set .@map$,instance_mapname("1@face");
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    set .@vmobx,.@mobx-5;
    while (1) {
        set .@vmoby,.@moby+5;
        while (2) {
            monster .@map$,.@vmobx,.@vmoby,"Venom Bug",2531,1,instance_npcname("#fwormboss53")+"::OnMyMobDead";
            set .@vmoby,.@vmoby-2;
            if (.@vmoby < (.@moby-5))
                break;
        }
        set .@vmobx,.@vmobx+2;
        if (.@vmobx > (.@mobx+5))
            break;
    }
    donpcevent instance_npcname("#fwormboss5")+"::OnHeal05";
    end;
OnStart2:
    set .@map$,instance_mapname("1@face");
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    set .@vmobx,.@mobx-7;
    while (1) {
        set .@vmoby,.@moby+7;
        while (2) {
            monster .@map$,.@vmobx,.@vmoby,"Venom Bug",2531,1,instance_npcname("#fwormboss53")+"::OnMyMobDead";
            set .@vmoby,.@vmoby-2;
            if (.@vmoby < (.@moby-7))
                break;
        }
        set .@vmobx,.@vmobx+2;
        if (.@vmobx > (.@mobx+7))
            break;
    }
    donpcevent instance_npcname("#fwormboss5")+"::OnHeal05";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss53")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss53");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss53");
    end;
OnMyMobDead:
    end;
}

1@face,1,4,3    script    #fwormboss54    CLEAR_NPC,{
    end;
OnEnd:
    set .@map$,instance_mapname("1@face");
    killmonster .@map$,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    stopnpctimer;
    end;
OnStart1:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss54")+"::OnMyMobDead");
    if (.@mob_dead_num > 20)
        killmonster .@map$,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-3,.@moby+3,"#venomfog",2536,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx+3,.@moby+3,"#venomfog",2536,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx-3,.@moby-3,"#venomfog",2536,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx+3,.@moby-3,"#venomfog",2536,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    end;
OnStart2:
    stopnpctimer;
    initnpctimer;
    set .@map$,instance_mapname("1@face");
    set .@mob_dead_num,mobcount(.@map$,instance_npcname("#fwormboss54")+"::OnMyMobDead");
    if (.@mob_dead_num > 45)
        killmonster .@map$,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    getunitdata '5BOSS,.@arr;
    set .@mobx,.@arr[6];
    set .@moby,.@arr[7];
    monster .@map$,.@mobx-5,.@moby+5,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby+5,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx+5,.@moby+5,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx-5,.@moby,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx+5,.@moby,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx-5,.@moby-5,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx,.@moby-5,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    monster .@map$,.@mobx+5,.@moby-5,"#venomfog",2537,1,instance_npcname("#fwormboss54")+"::OnMyMobDead";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormboss54")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormboss54");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormboss54");
    end;
OnMyMobDead:
    end;
OnTimer30000:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnEnd";
    end;
}

1@face,212,156,0    script    #chaoson3    HIDDEN_WARP_NPC,7,7,{
    end;
OnTouch_:
    donpcevent instance_npcname("#chaoson3")+"::OnDisable";
    donpcevent instance_npcname("Chaos#6")+"::OnStart";
    end;
OnInstanceInit:
    donpcevent instance_npcname("#chaoson3")+"::OnDisable";
    end;
OnEnable:
    enablenpc instance_npcname("#chaoson3");
    hideoffnpc instance_npcname("#chaoson3");
    end;
OnDisable:
    hideonnpc instance_npcname("#chaoson3");
    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 "h_chaos01",255;
    end;

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

OnInstanceInit:
    donpcevent instance_npcname("Iris#6")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Iris#6");
    end;
OnDisable:
    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:
    donpcevent instance_npcname("Dimensional Device#6")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("Dimensional Device#6");
    end;
OnDisable:
    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_:
    set .@map$,instance_mapname("1@face");
    setarray .@num[0],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;
    specialeffect EF_VENOMDUST;
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    killmonster .@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
    getmapxy(.@map$,.@x,.@y,1);
    set .@mon_num,.@num[atoi(strnpcinfo(2))-1];
    areamonster .@map$,.@x-1,.@y-1,.@x+1,.@y+1,"Faceworm Larva",2541,.@mon_num,instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable";
    end;
OnEnable:
    enablenpc instance_npcname(strnpcinfo(0));
    end;
OnDisable:
    disablenpc instance_npcname(strnpcinfo(0));
    end;
OnMyMobDead:
    end;
OnTimer45000:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable";
    stopnpctimer;
    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_:
    set .@map$,instance_mapname("1@face");
    setarray .@num[0],25,30,50,30,50,30,40,50,50;
    specialeffect EF_VENOMDUST;
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    killmonster .@map$,instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
    set .@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;
    }
    set .@mon_num,.@num[.@val-1];
    areamonster .@map$,.@xy[0]-.@xy[2],.@xy[1]-.@xy[2],.@xy[0]+.@xy[2],.@xy[1]+.@xy[2],"Venom Bug",2531,.@mon_num,instance_npcname(strnpcinfo(0))+"::OnMyMobDead";
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable";
    end;
OnEnable:
    enablenpc instance_npcname(strnpcinfo(0));
    end;
OnDisable:
    disablenpc instance_npcname(strnpcinfo(0));
    end;
OnMyMobDead:
    end;
OnTimer15000:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnEnable";
    stopnpctimer;
    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:
    set .@face_num,$120719_num_face;
    if (!.@face_num)
        set .@face_num,3600;
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$)-1;
    set .@gd_name$,'120903_str_face$;
    set .@face_num2,getnpctimer(0)/1000;
    if (.@face_num2 < 60)
        end;
    set .@time_m,.@face_num2/60;
    set .@time_s,.@face_num2-(.@time_m*60);
    if (.@face_num2 < 60)
        set .@time_txt$,.@time_s+" "+(.@time_s>1?"Seconds":"Second");
    else
        set .@time_txt$,.@time_m+" "+(.@time_m>1?"Minutes":"Minute")+" "+.@time_s+" "+(.@time_s>1?"Seconds":"Second");
    if (.@face_num > .@face_num2) {
        if (!.@mapcount)
            announce .@gd_name$+" beat the best record for completing the Faceworm's Nest ("+.@time_txt$+").",bc_all,"0xffff33",FW_NORMAL,15;
        else
            announce .@gd_name$+" with "+.@mapcount+" party "+(.@mapcount>1?"members":"members")+" beat the best record for completing the Faceworm's Nest ("+.@time_txt$+").",bc_all,"0xffff33",FW_NORMAL,15;
        set $120719_str_face$,.@gd_name$;
        set $120719_num_face,.@face_num2;
        set $120903_num_face,.@mapcount;
    } else
        mapannounce .@map$,"A time of "+.@time_txt$+" has been recorded on the board. But it did not beat the best record.",bc_map,"0xffff33";
    end;
OnT_s3:
    for (set .@i,1; .@i<=27; set .@i,.@i+1) {
        if (rand(1,100) > 50)
            donpcevent instance_npcname("Merchant Prince's Box#"+.@i)+"::OnEnable";
    }
    end;
OnInstanceInit:
    donpcevent instance_npcname("#globaltimer22")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#globaltimer22");
    end;
OnDisable:
    hideonnpc instance_npcname("#globaltimer22");
    end;
OnTimer3600000:
    stopnpctimer;
    end;
}

// Instance Prizes :: in_face_c
//============================================================
1@face,155,82,3    script    #fwormprize1    4_TREASURE_BOX,{
    set .@map$,instance_mapname("1@face");
    set .@face_num2,getnpctimer(0)/1000;
    if (.@face_num2 < 1)
        end;
    set .@time_m,.@face_num2/60;
    set .@time_s,.@face_num2-(.@time_m*60);
    if (.@face_num2 < 60)
        set .@time_txt$,.@time_s+" "+(.@time_s>1?"Seconds":"Second");
    else
        set .@time_txt$,.@time_m+" "+(.@time_m>1?"Minutes":"Minute")+" "+.@time_s+" "+(.@time_s>1?"Seconds":"Second");
    mapannounce .@map$,"The actual time for the battle at this stage remaining is "+.@time_txt$+".",bc_map,"0xffff33";
    set .@dr_st2,getnpctimer(0)/1000;
    if (.@dr_st2 < 1)
        set .@dr_st2,1200;
    stopnpctimer;
    specialeffect EF_COIN;
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    switch (atoi(charat(strnpcinfo(2),10))) {
        case 1:
            set .@x,155;
            set .@y,82;
            setarray .@val[0],200,200,95;
            break;
        case 2:
            set .@x,162;
            set .@y,271;
            setarray .@val[0],800,400,90;
            break;
        case 3:
            set .@x,278;
            set .@y,308;
            setarray .@val[0],1100,600,85;
            break;
        case 4:
            set .@x,214;
            set .@y,108;
            setarray .@val[0],1250,800,80;
            break;
    }
    set .@en_name_4,0;
    set .@en_name_3,0;
    set .@en_name_2,0;
    set .@dr_st1,120;
    if (.@dr_st2 < .@dr_st1)
        set .@dr_st2,.@dr_st1+1;
    set .@dr_t,.@dr_st2-.@dr_st1;
    set .@dr_t1,(.@dr_t/15)+1;
    if (.@dr_t1 < 1)
        set .@dr_t1,1;
    if (.@dr_t1 > 3)
        set .@dr_t1,3;
    set .@r_st1,7-.@dr_t1;
    set .@r_st2,.@r_st1-4;
    set .@ppt,rand(.@r_st2,.@r_st1);
    set .@dr_t1,.@dr_t*10;
    if (.@dr_t1 > .@val[0])
        set .@dr_t1,.@val[0]+1;
    set .@r_st,(.@val[0]+2)-.@dr_t1;
    set .@ren_e_m,rand(.@r_st,1316);
     if (.@ren_e_m < 201) set .@en_name_4,0;
    else if (.@ren_e_m < 301) set .@en_name_4,4740; //Vitality1
    else if (.@ren_e_m < 401) set .@en_name_4,4700; //Strength1
    else if (.@ren_e_m < 501) set .@en_name_4,4730; //Agility1
    else if (.@ren_e_m < 601) set .@en_name_4,4720; //Dexterity1
    else if (.@ren_e_m < 701) set .@en_name_4,4710; //Inteligence1
    else if (.@ren_e_m < 801) set .@en_name_4,4750; //Luck1
    else if (.@ren_e_m < 851) set .@en_name_4,4741; //Vitality2
    else if (.@ren_e_m < 901) set .@en_name_4,4701; //Strength2
    else if (.@ren_e_m < 951) set .@en_name_4,4731; //Agility2
    else if (.@ren_e_m < 1001) set .@en_name_4,4721; //Dexterity2
    else if (.@ren_e_m < 1051) set .@en_name_4,4711; //Inteligence2
    else if (.@ren_e_m < 1101) set .@en_name_4,4751; //Luck2
    else if (.@ren_e_m < 1126) set .@en_name_4,4742; //Vitality3
    else if (.@ren_e_m < 1151) set .@en_name_4,4702; //Strength3
    else if (.@ren_e_m < 1176) set .@en_name_4,4732; //Agility3
    else if (.@ren_e_m < 1201) set .@en_name_4,4722; //Dexterity3
    else if (.@ren_e_m < 1226) set .@en_name_4,4712; //Inteligence3
    else if (.@ren_e_m < 1251) set .@en_name_4,4752; //Luck3
    else if (.@ren_e_m < 1261) set .@en_name_4,4743; //Vitality4
    else if (.@ren_e_m < 1271) set .@en_name_4,4703; //Strength4
    else if (.@ren_e_m < 1281) set .@en_name_4,4733; //Agility4
    else if (.@ren_e_m < 1291) set .@en_name_4,4723; //Dexterity4
    else if (.@ren_e_m < 1301) set .@en_name_4,4713; //Inteligence4
    else if (.@ren_e_m < 1311) set .@en_name_4,4753; //Luck4
    else if (.@ren_e_m < 1312) set .@en_name_4,4744; //Vitality5
    else if (.@ren_e_m < 1313) set .@en_name_4,4704; //Strength5
    else if (.@ren_e_m < 1314) set .@en_name_4,4734; //Agility5
    else if (.@ren_e_m < 1315) set .@en_name_4,4724; //Dexterity5
    else if (.@ren_e_m < 1316) set .@en_name_4,4714; //Inteligence5
    else if (.@ren_e_m < 1317) set .@en_name_4,4754; //Luck5
    set .@dr_t1,.@dr_t*5;
    if (.@dr_t1 > 600)
        set .@dr_t1,601;
    set .@r_st,602-.@dr_t1;
    set .@ren_e_m,rand(.@r_st,1716);
     if (.@ren_e_m < 601) set .@en_name_3,0;
    else if (.@ren_e_m < 701) set .@en_name_3,4740; //Vitality1
    else if (.@ren_e_m < 801) set .@en_name_3,4700; //Strength1
    else if (.@ren_e_m < 901) set .@en_name_3,4730; //Agility1
    else if (.@ren_e_m < 1001) set .@en_name_3,4720; //Dexterity1
    else if (.@ren_e_m < 1101) set .@en_name_3,4710; //Inteligence1
    else if (.@ren_e_m < 1201) set .@en_name_3,4750; //Luck1
    else if (.@ren_e_m < 1251) set .@en_name_3,4741; //Vitality2
    else if (.@ren_e_m < 1301) set .@en_name_3,4701; //Strength2
    else if (.@ren_e_m < 1351) set .@en_name_3,4731; //Agility2
    else if (.@ren_e_m < 1401) set .@en_name_3,4721; //Dexterity2
    else if (.@ren_e_m < 1451) set .@en_name_3,4711; //Inteligence2
    else if (.@ren_e_m < 1501) set .@en_name_3,4751; //Luck2
    else if (.@ren_e_m < 1526) set .@en_name_3,4742; //Vitality3
    else if (.@ren_e_m < 1551) set .@en_name_3,4702; //Strength3
    else if (.@ren_e_m < 1576) set .@en_name_3,4732; //Agility3
    else if (.@ren_e_m < 1601) set .@en_name_3,4722; //Dexterity3
    else if (.@ren_e_m < 1626) set .@en_name_3,4712; //Inteligence3
    else if (.@ren_e_m < 1651) set .@en_name_3,4752; //Luck3
    else if (.@ren_e_m < 1661) set .@en_name_3,4743; //Vitality4
    else if (.@ren_e_m < 1671) set .@en_name_3,4703; //Strength4
    else if (.@ren_e_m < 1681) set .@en_name_3,4733; //Agility4
    else if (.@ren_e_m < 1691) set .@en_name_3,4723; //Dexterity4
    else if (.@ren_e_m < 1701) set .@en_name_3,4713; //Inteligence4
    else if (.@ren_e_m < 1711) set .@en_name_3,4753; //Luck4
    else if (.@ren_e_m < 1712) set .@en_name_3,4744; //Vitality5
    else if (.@ren_e_m < 1713) set .@en_name_3,4704; //Strength5
    else if (.@ren_e_m < 1714) set .@en_name_3,4734; //Agility5
    else if (.@ren_e_m < 1715) set .@en_name_3,4724; //Dexterity5
    else if (.@ren_e_m < 1716) set .@en_name_3,4714; //Inteligence5
    else if (.@ren_e_m < 1717) set .@en_name_3,4754; //Luck5
    set .@dr_t1,.@dr_t*5;
    if (.@dr_t1 > .@val[1])
        set .@dr_t1,.@val[1];
    set .@r_st,(.@val[1]+1)-.@dr_t1;
    set .@ren_e_m,rand(.@r_st,1100);
     if (.@ren_e_m < 1001) set .@en_name_2,0;
    else if (.@ren_e_m < 1100) {
        switch (.@en_name_3) {
            case 4700: case 4701: case 4702: case 4703: case 4704:
                set .@en_name_2,4853; //S_Str
                break;
            case 4740: case 4741: case 4742: case 4743: case 4744:
                set .@en_name_2,4855; //S_Vital
                break;
            case 4730: case 4731: case 4732: case 4733: case 4734:
                set .@en_name_2,4854; //S_Agi
                break;
            case 4720: case 4721: case 4722: case 4723: case 4724:
                set .@en_name_2,4857; //S_Dex
                break;
            case 4750: case 4751: case 4752: case 4753: case 4754:
                set .@en_name_2,4858; //S_Luck
                break;
            case 4710: case 4711: case 4712: case 4713: case 4714:
                set .@en_name_2,4856; //S_Int
                break;
        }
    }
    if (!.@en_name_4) {
        set .@en_name_2,0;
        set .@en_name_3,0;
    } else if (!.@en_name_3)
        set .@en_name_2,0;
    if (rand(1,100) > .@val[2])
        set .@d_item,20718; //FaceWorm_Skin_
    else
        set .@d_item,20717; //FaceWorm_Skin
    makeitem2 .@d_item,1,.@map$,.@x,.@y,0,.@ppt,0,0,.@en_name_2,.@en_name_3,.@en_name_4;
    end;
OnStart:
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname(strnpcinfo(0));
    end;
OnDisable:
    hideonnpc instance_npcname(strnpcinfo(0));
    end;
OnTimer3600000:
    stopnpctimer;
    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,{
    set .@map$,instance_mapname("1@face");
    set '120903_str_face$,strcharinfo(0);
    donpcevent instance_npcname("#globaltimer22")+"::OnT_s2";
    donpcevent instance_npcname("#globaltimer22")+"::OnT_s3";
    set .@dr_st2,getnpctimer(0)/1000;
    if (.@dr_st2 < 1)
        set .@dr_st2,1200;
    specialeffect EF_COIN;
    donpcevent instance_npcname("#fwormprize5")+"::OnDisable";
    set .@en_name_4,0;
    set .@en_name_3,0;
    set .@en_name_2,0;
    set .@dr_st1,270;
    for (set .@i,1; .@i<=2; set .@i,.@i+1) {
        if (.@dr_st2 < .@dr_st1)
            set .@dr_st2,.@dr_st1+1;
        set .@dr_t,.@dr_st2-.@dr_st1;
        set .@dr_t1,(.@dr_t/15)+1;
        if (.@dr_t1 < 1)
            set .@dr_t1,1;
        if (.@dr_t1 > 4)
            set .@dr_t1,4;
        set .@r_st1,12-.@dr_t1;
        set .@r_st2,.@r_st1-7;
        set .@ppt,rand(.@r_st2,.@r_st1);
        set .@dr_t1,.@dr_t*10;
        if (.@dr_t1 > 1850)
            set .@dr_t1,1851;
        set .@r_st,1852-.@dr_t1;
        set .@ren_e_m,rand(.@r_st,1934);
         if (.@ren_e_m < 201) set .@en_name_4,0;
        else if (.@ren_e_m < 301) set .@en_name_4,4740; //Vitality1
        else if (.@ren_e_m < 401) set .@en_name_4,4700; //Strength1
        else if (.@ren_e_m < 501) set .@en_name_4,4730; //Agility1
        else if (.@ren_e_m < 601) set .@en_name_4,4720; //Dexterity1
        else if (.@ren_e_m < 701) set .@en_name_4,4710; //Inteligence1
        else if (.@ren_e_m < 801) set .@en_name_4,4750; //Luck1
        else if (.@ren_e_m < 901) set .@en_name_4,4741; //Vitality2
        else if (.@ren_e_m < 1001) set .@en_name_4,4701; //Strength2
        else if (.@ren_e_m < 1101) set .@en_name_4,4731; //Agility2
        else if (.@ren_e_m < 1201) set .@en_name_4,4721; //Dexterity2
        else if (.@ren_e_m < 1301) set .@en_name_4,4711; //Inteligence2
        else if (.@ren_e_m < 1401) set .@en_name_4,4751; //Luck2
        else if (.@ren_e_m < 1451) set .@en_name_4,4742; //Vitality3
        else if (.@ren_e_m < 1501) set .@en_name_4,4702; //Strength3
        else if (.@ren_e_m < 1551) set .@en_name_4,4732; //Agility3
        else if (.@ren_e_m < 1601) set .@en_name_4,4722; //Dexterity3
        else if (.@ren_e_m < 1651) set .@en_name_4,4712; //Inteligence3
        else if (.@ren_e_m < 1701) set .@en_name_4,4752; //Luck3
        else if (.@ren_e_m < 1726) set .@en_name_4,4743; //Vitality4
        else if (.@ren_e_m < 1751) set .@en_name_4,4703; //Strength4
        else if (.@ren_e_m < 1776) set .@en_name_4,4733; //Agility4
        else if (.@ren_e_m < 1801) set .@en_name_4,4723; //Dexterity4
        else if (.@ren_e_m < 1826) set .@en_name_4,4713; //Inteligence4
        else if (.@ren_e_m < 1851) set .@en_name_4,4753; //Luck4
        else if (.@ren_e_m < 1861) set .@en_name_4,4744; //Vitality5
        else if (.@ren_e_m < 1871) set .@en_name_4,4704; //Strength5
        else if (.@ren_e_m < 1881) set .@en_name_4,4734; //Agility5
        else if (.@ren_e_m < 1891) set .@en_name_4,4724; //Dexterity5
        else if (.@ren_e_m < 1901) set .@en_name_4,4714; //Inteligence5
        else if (.@ren_e_m < 1911) set .@en_name_4,4754; //Luck5
        else if (.@ren_e_m < 1914) set .@en_name_4,4745; //Vitality6
        else if (.@ren_e_m < 1917) set .@en_name_4,4705; //Strength6
        else if (.@ren_e_m < 1920) set .@en_name_4,4735; //Agility6
        else if (.@ren_e_m < 1923) set .@en_name_4,4725; //Dexterity6
        else if (.@ren_e_m < 1926) set .@en_name_4,4715; //Inteligence6
        else if (.@ren_e_m < 1929) set .@en_name_4,4755; //Luck6
        else if (.@ren_e_m < 1930) set .@en_name_4,4746; //Vitality7
        else if (.@ren_e_m < 1931) set .@en_name_4,4706; //Strength7
        else if (.@ren_e_m < 1932) set .@en_name_4,4736; //Agility7
        else if (.@ren_e_m < 1933) set .@en_name_4,4726; //Dexterity7
        else if (.@ren_e_m < 1934) set .@en_name_4,4716; //Inteligence7
        else if (.@ren_e_m < 1935) set .@en_name_4,4756; //Luck7
        set .@dr_t1,.@dr_t*10;
        if (.@dr_t1 > 1400)
            set .@dr_t1,1401;
        set .@r_st,1402-.@dr_t1;
        set .@ren_e_m,rand(.@r_st,1934);
         if (.@ren_e_m < 201) set .@en_name_3,0;
        else if (.@ren_e_m < 301) set .@en_name_3,4740; //Vitality1
        else if (.@ren_e_m < 401) set .@en_name_3,4700; //Strength1
        else if (.@ren_e_m < 501) set .@en_name_3,4730; //Agility1
        else if (.@ren_e_m < 601) set .@en_name_3,4720; //Dexterity1
        else if (.@ren_e_m < 701) set .@en_name_3,4710; //Inteligence1
        else if (.@ren_e_m < 801) set .@en_name_3,4750; //Luck1
        else if (.@ren_e_m < 901) set .@en_name_3,4741; //Vitality2
        else if (.@ren_e_m < 1001) set .@en_name_3,4701; //Strength2
        else if (.@ren_e_m < 1101) set .@en_name_3,4731; //Agility2
        else if (.@ren_e_m < 1201) set .@en_name_3,4721; //Dexterity2
        else if (.@ren_e_m < 1301) set .@en_name_3,4711; //Inteligence2
        else if (.@ren_e_m < 1401) set .@en_name_3,4751; //Luck2
        else if (.@ren_e_m < 1451) set .@en_name_3,4742; //Vitality3
        else if (.@ren_e_m < 1501) set .@en_name_3,4702; //Strength3
        else if (.@ren_e_m < 1551) set .@en_name_3,4732; //Agility3
        else if (.@ren_e_m < 1601) set .@en_name_3,4722; //Dexterity3
        else if (.@ren_e_m < 1651) set .@en_name_3,4712; //Inteligence3
        else if (.@ren_e_m < 1701) set .@en_name_3,4752; //Luck3
        else if (.@ren_e_m < 1726) set .@en_name_3,4743; //Vitality4
        else if (.@ren_e_m < 1751) set .@en_name_3,4703; //Strength4
        else if (.@ren_e_m < 1776) set .@en_name_3,4733; //Agility4
        else if (.@ren_e_m < 1801) set .@en_name_3,4723; //Dexterity4
        else if (.@ren_e_m < 1826) set .@en_name_3,4713; //Inteligence4
        else if (.@ren_e_m < 1851) set .@en_name_3,4753; //Luck4
        else if (.@ren_e_m < 1861) set .@en_name_3,4744; //Vitality5
        else if (.@ren_e_m < 1871) set .@en_name_3,4704; //Strength5
        else if (.@ren_e_m < 1881) set .@en_name_3,4734; //Agility5
        else if (.@ren_e_m < 1891) set .@en_name_3,4724; //Dexterity5
        else if (.@ren_e_m < 1901) set .@en_name_3,4714; //Inteligence5
        else if (.@ren_e_m < 1911) set .@en_name_3,4754; //Luck5
        else if (.@ren_e_m < 1914) set .@en_name_3,4745; //Vitality6
        else if (.@ren_e_m < 1917) set .@en_name_3,4705; //Strength6
        else if (.@ren_e_m < 1920) set .@en_name_3,4735; //Agility6
        else if (.@ren_e_m < 1923) set .@en_name_3,4725; //Dexterity6
        else if (.@ren_e_m < 1926) set .@en_name_3,4715; //Inteligence6
        else if (.@ren_e_m < 1929) set .@en_name_3,4755; //Luck6
        else if (.@ren_e_m < 1930) set .@en_name_3,4746; //Vitality7
        else if (.@ren_e_m < 1931) set .@en_name_3,4706; //Strength7
        else if (.@ren_e_m < 1932) set .@en_name_3,4736; //Agility7
        else if (.@ren_e_m < 1933) set .@en_name_3,4726; //Dexterity7
        else if (.@ren_e_m < 1934) set .@en_name_3,4716; //Inteligence7
        else if (.@ren_e_m < 1935) set .@en_name_3,4756; //Luck7
        set .@dr_t1,.@dr_t*5;
        if (.@dr_t1 > 999)
            set .@dr_t1,999;
        set .@r_st,1000-.@dr_t1;
        set .@ren_e_m,rand(.@r_st,1100);
         if (.@ren_e_m < 1001) set .@en_name_2,0;
        else if (.@ren_e_m < 1100) {
            switch (.@en_name_3) {
                case 4700: case 4701: case 4702: case 4703: case 4704:
                    set .@en_name_2,4853; //S_Str
                    break;
                case 4740: case 4741: case 4742: case 4743: case 4744:
                    set .@en_name_2,4855; //S_Vital
                    break;
                case 4730: case 4731: case 4732: case 4733: case 4734:
                    set .@en_name_2,4854; //S_Agi
                    break;
                case 4720: case 4721: case 4722: case 4723: case 4724:
                    set .@en_name_2,4857; //S_Dex
                    break;
                case 4750: case 4751: case 4752: case 4753: case 4754:
                    set .@en_name_2,4858; //S_Luck
                    break;
                case 4710: case 4711: case 4712: case 4713: case 4714:
                    set .@en_name_2,4856; //S_Int
                    break;
            }
        }
        if (!.@en_name_4) {
            set .@en_name_2,0;
            set .@en_name_3,0;
        } else if (!.@en_name_3)
            set .@en_name_2,0;
        if (rand(1,100) > 40)
            set .@d_item,20718; //FaceWorm_Skin_
        else
            set .@d_item,20717; //FaceWorm_Skin
        makeitem2 .@d_item,1,.@map$,rand(209,217),rand(152,161),0,.@ppt,0,0,.@en_name_2,.@en_name_3,.@en_name_4;
    }
    end;
OnStart:
    initnpctimer;
    end;
OnInstanceInit:
    donpcevent instance_npcname("#fwormprize5")+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname("#fwormprize5");
    end;
OnDisable:
    hideonnpc instance_npcname("#fwormprize5");
    end;
OnTimer3600000:
    stopnpctimer;
    end;
}

// Instance Treasures :: in_face_t
//============================================================
1@face,183,314,3    script    Merchant Prince's Box#1    4_TREASURE_BOX,{
    specialeffect EF_COIN;
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    initnpctimer;
    end;

OnInstanceInit:
    donpcevent instance_npcname(strnpcinfo(0))+"::OnDisable";
    end;
OnEnable:
    hideoffnpc instance_npcname(strnpcinfo(0));
    end;
OnDisable:
    hideonnpc instance_npcname(strnpcinfo(0));
    end;
OnTimer1000:
    set .@map$,instance_mapname("1@face");
    set .@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[0],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;
    set .@idnum,rand(1,.@max[.@val-1]);
    for (set .@i,0; .@i<.@idnum; set .@i,.@i+1) {
        set .@idx,rand(.@xy[0],.@xy[0]+4);
        set .@idy,rand(.@xy[1],.@xy[1]+4);
        makeitem .@item[0],1,.@map$,.@idx,.@idy;
    }
    makeitem .@item[1],1,.@map$,.@xy[0]+2,.@xy[1]+3;
    if (rand(1,1000) > 400)
        makeitem 6648,1,.@map$,.@xy[0]+1,.@xy[1]+2; //Shabby_Crown
    if (rand(1,1000) > 700)
        makeitem 7228,1,.@map$,.@xy[0]+2,.@xy[1]+2; //Gold_Bullion
    if (rand(1,1000) > 900)
        makeitem 7229,1,.@map$,.@xy[0]+3,.@xy[1]+2; //Silver_Bullion
    stopnpctimer;
    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,{
    callfunc "F_GM_NPC";
    if (callfunc("F_GM_NPC",1854,0) == 1) {
        set .@map$,instance_mapname("1@face");
        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:
                donpcevent instance_npcname("Chaos#0")+"::OnDisable";
                donpcevent instance_npcname("Iris#0")+"::OnDisable";
                donpcevent instance_npcname("#fwormcontrol1")+"::OnStart";
                mapannounce .@map$,"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$,110,348;
                break;
            case 3:
                donpcevent instance_npcname("#fwormenter1")+"::OnEnable";
                donpcevent instance_npcname("#fwormexit1")+"::OnEnable";
                donpcevent instance_npcname("Chaos#1")+"::OnEnable";
                donpcevent instance_npcname("Iris#1")+"::OnEnable";
                mapannounce .@map$,"A hole appears after killing the dark faceworm.",bc_map,"0xffffff";
                warp .@map$,127,95;
                break;
            case 4:
                donpcevent instance_npcname("#fwormenter2")+"::OnEnable";
                donpcevent instance_npcname("#fwormexit2")+"::OnEnable";
                donpcevent instance_npcname("Chaos#2")+"::OnEnable";
                donpcevent instance_npcname("Iris#2")+"::OnEnable";
                mapannounce .@map$,"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$,156,117;
                break;
            case 5:
                donpcevent instance_npcname("#fwormenter3")+"::OnEnable";
                donpcevent instance_npcname("#fwormexit3")+"::OnEnable";
                donpcevent instance_npcname("#chaoson")+"::OnEnable";
                mapannounce .@map$,"You hear the pile of stones collapsing. This might be a gateway to go to other spaces.",bc_map,"0xffffff";
                warp .@map$,261,170;
                break;
            case 6:
                donpcevent instance_npcname("#fwormenter4")+"::OnEnable";
                donpcevent instance_npcname("#fwormexit4")+"::OnEnable";
                donpcevent instance_npcname("Chaos#4")+"::OnEnable";
                donpcevent instance_npcname("Iris#4")+"::OnEnable";
                donpcevent instance_npcname("#chaoson2")+"::OnEnable";
                mapannounce .@map$,"You hear the pile of stones collapsing. I think another gateway is found.",bc_map,"0xffffff";
                warp .@map$,210,145;
                break;
            case 7:
                donpcevent instance_npcname("#fwormprize5")+"::OnStart";
                donpcevent instance_npcname("#fwormprize5")+"::OnEnable";
                warp .@map$,210,145;
                break;
        }
    }
    close;
}

1@face,3,1,3    script    #forestspiritboss1    CLEAR_NPC,{
    set .@map$,instance_mapname("1@face");
    set .@mapcount,getmapusers(.@map$);
    mes .@mapcount+" people.";
    callfunc "F_GM_NPC";
    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:
                donpcevent instance_npcname("Chaos#0")+"::OnDisable";
                donpcevent instance_npcname("Iris#0")+"::OnDisable";
                donpcevent instance_npcname("#fwormboss1")+"::OnStart";
                donpcevent instance_npcname("#globaltimer22")+"::OnT_s";
                donpcevent instance_npcname("#fwormprize1")+"::OnStart";
                warp .@map$,140,70;
                break;
            case 3:
                donpcevent instance_npcname("#fwormboss2")+"::OnStart";
                donpcevent instance_npcname("#fwormprize2")+"::OnStart";
                warp .@map$,160,270;
                break;
            case 4:
                donpcevent instance_npcname("#fwormboss3")+"::OnStart";
                donpcevent instance_npcname("#fwormprize3")+"::OnStart";
                warp .@map$,270,300;
                break;
            case 5:
                donpcevent instance_npcname("#fwormboss4")+"::OnStart";
                donpcevent instance_npcname("#fwormprize4")+"::OnStart";
                warp .@map$,210,105;
                break;
            case 6:
                donpcevent instance_npcname("#fwormboss5")+"::OnStart";
                donpcevent instance_npcname("#fwormprize5")+"::OnStart";
                warp .@map$,214,148;
                break;
        }
    }
    close;

OnInstanceInit:
    set .@map$,instance_mapname("1@face");
    donpcevent instance_npcname("#forestspiritboss1")+"::OnEnable";
    monster .@map$,0,0,"Greatest General",1277,50;
    monster .@map$,0,0,"Beetle King",1494,25;
    monster .@map$,0,0,"Savage",1166,25;
    end;
OnEnable:
    hideoffnpc instance_npcname("#forestspiritboss1");
    end;
OnDisable:
    hideonnpc instance_npcname("#forestspiritboss1");
    end;
}

Anyone here have a script to share with me and community (I was trying to fix the problem in the NPC, but I'm not soo good with script)

Thank you guys!

 
Back
Top