Jump to content

dfabsgwapings

Members
  • Content Count

    165
  • Joined

  • Last visited

Posts posted by dfabsgwapings


  1. Hi everyone,

     

    Can anyone make me a script of Daily Item Quest? Its kinda like this script but instead of monster that they need to hunt they need to bring the items that the NPC requred. The player will be given a task that they need to bring the items within 23:59 hrs because once it is 00:00 server time the item required will be resetted and the player will be given a new task. Whether the player completes the task within 23:59 hrs the player still need to wait 00:00 server time to refresh and give them a new task. Reward will be setup by the GM.

     

    //===== rAthena Script =======================================
    //= Hunting Missions
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.3a
    //===== Compatible With: =====================================
    //= rAthena SVN
    //===== Description: =========================================
    //= Random hunting missions.
    //= Rewards are based on quest difficulty.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Small improvements and fixes.
    //= 1.2 Added party support and replaced blacklists with an
    //=     SQL query, both thanks to AnnieRuru.
    //= 1.3 Re-added a blacklist adapted for the SQL query.
    //= 1.3a Added mission reset options.
    //============================================================
    
    prontera,152,187,6	script	Hunting Missions	951,{
    function Chk; function Cm;
        mes "[Hunting Missions]";
        mes "Hello, "+strcharinfo(0)+"!";
        if (!#Mission_Delay) {
            next;
            mes "[Hunting Missions]";
            mes "I can't find any records...";
            mes "You must be new here!";
            emotion e_omg;
            next;
            callsub Mission_Info;
            emotion e_go;
            set #Mission_Delay,1;
            close;
        }
        mes rand(2)?"Working hard, as always...":"Not slacking, I hope...";
        mes "Is there anything I can help";
        mes "you with?";
        mes " ";
        mes "^777777~ You've completed ^0055FF"+Mission_Total+"^777777 mission"+((Mission_Total == 1)?"":"s")+". ~^000000";
        next;
        switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000")) {
        case 1:
            mes "[Hunting Missions]";
            if (#Mission_Count) {
                mes "You've started a mission";
                mes "on another character.";
                close;
            }
            if (#Mission_Delay > gettimetick(2) && .Delay) {
                set .@i, #Mission_Delay-gettimetick(2);
                if (.@i > 3600) set .@j$, (.@i/3600)+" hour"+(((.@i/3600) == 1)?"":"s");
                else if (.@i > 60) set .@j$, (.@i/60)+" minute"+(((.@i/60) == 1)?"":"s");
                else set .@j$, (.@i)+" second"+((.@i == 1)?"":"s");
                mes "I'm afraid you'll have to wait "+.@j$+" before taking another mission.";
                close;
            }
            mes "You must hunt:";
            query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT "+.Quests, .@mob);
            for (set .@i,0; .@i<.Quests; set .@i,.@i+1) {
                setd "Mission"+.@i, .@mob[.@i];
                setd "Mission"+.@i +"_",0;
            }
            set #Mission_Count, rand(.Count[0],.Count[1]);
            callsub Mission_Status;
            next;
            mes "[Mission Contracts]";
            mes "Report back when";
            mes "you've finished.";
            mes "Good luck!";
            close;
        case 2:
            mes "[Mission Contracts]";
            callsub Mission_Status;
            close;
        case 3:
            mes "[Hunting Missions]";
            mes "Do you really want to";
            mes "abandon your mission?";
            if (.Reset < 0 && .Delay)
                mes "Your delay time will not be reset.";
            else if (.Reset > 0)
                mes "It will cost "+Cm(.Reset)+" Zeny.";
            next;
            switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {
            case 1:
                if (.Reset > 0) {
                    if (Zeny < .Reset) {
                        mes "[Hunting Missions]";
                        mes "You don't have enough";
                        mes "Zeny to drop this mission.";
                        emotion e_sry;
                        close;
                    }
                    set Zeny, Zeny-.Reset;
                    emotion e_cash;
                }
                mes "[Hunting Missions]";
                mes "Alright, I've dropped";
                mes "your current mission.";
                specialeffect2 EF_STORMKICK4;
                for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
                    setd "Mission"+.@i,0;
                    setd "Mission"+.@i+"_",0;
                }
                set #Mission_Count,0;
                if (.Reset < 0 && .Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);
                close;
            case 2:
                mes "[Hunting Missions]";
                mes "I knew you were kidding!";
                mes "Keep up the good work.";
                emotion e_heh;
                close;
            }
        case 4:
            callsub Mission_Info;
            close;
        case 5:
            mes "[Hunting Missions]";
            mes "You have ^0055FF"+#Mission_Points+"^000000 Mission Points.";
            mes "Use them well!";
            callshop "mission_shop",1;
            npcshopattach "mission_shop";
            end;
        case 6:
            mes "[Hunting Missions]";
            mes "The top hunters are:";
            query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `global_reg_value` WHERE str = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5",.@id,.@name$,.@val);
            for(set .@i,0; .@i<5; set .@i,.@i+1)
                mes "  [Rank "+(.@i+1)+"]  "+((.@name$[.@i] == "")?"^777777none":"^0055FF"+.@name$[.@i]+"^000000 : ^FF0000"+.@val[.@i]+" pt.")+"^000000";
            close;
        case 7:
            mes "[Hunting Missions]";
            mes "Nothing? Okay...";
            emotion e_hmm;
            close;
        }
    
    Mission_Status:
        set @f,0;
        deletearray .@j[0], getarraysize(.@j);
        for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
            set .@j[.@i], getd("Mission"+.@i);
            set .@j[.Quests], .@j[.Quests]+strmobinfo(3,.@j[.@i]);
            set .@j[.Quests+1], .@j[.Quests+1]+(strmobinfo(6,.@j[.@i])/(getbattleflag("base_exp_rate")/100)*.Modifier[0]);
            set .@j[.Quests+2], .@j[.Quests+2]+(strmobinfo(7,.@j[.@i])/(getbattleflag("job_exp_rate")/100)*.Modifier[1]);
            mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count)+strmobinfo(1,.@j[.@i])+" ("+getd("Mission"+.@i+"_")+"/"+#Mission_Count+")^000000";
        }
    
        // Reward formulas:
        set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6);
        set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5;
        set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5;
        set .@Zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2];
    
        next;
        mes "[Mission Prizes]";
        mes " > Mission Points: ^0055FF"+.@Mission_Points+"^000000";
        mes " > Base Experience: ^0055FF"+Cm(.@Base_Exp)+"^000000";
        mes " > Job Experience: ^0055FF"+Cm(.@Job_Exp)+"^000000";
        mes " > Zeny: ^0055FF"+Cm(.@Zeny)+"^000000";
        if (@f) { set @f,0; return; }
        next;
        mes "[Hunting Missions]";
        mes "Oh, you're done!";
        mes "Good work.";
        mes "Here's your reward.";
        emotion e_no1;
        specialeffect2 EF_ANGEL;
        specialeffect2 EF_TRUESIGHT;
        set #Mission_Points, #Mission_Points+.@Mission_Points;
        set BaseExp, BaseExp+.@Base_Exp;
        set JobExp, JobExp+.@Job_Exp;
        set Zeny, Zeny+.@Zeny;
        for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
            setd "Mission"+.@i,0;
            setd "Mission"+.@i+"_",0;
        }
        set #Mission_Count,0;
        if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);
        set Mission_Total, Mission_Total+1;
        if (Mission_Total == 1) query_sql("INSERT INTO `global_reg_value` (`char_id`,`str`,`value`,`type`,`account_id`) VALUES ("+getcharid(0)+",'Mission_Total','1',3,0)");
        else query_sql("UPDATE `global_reg_value` SET `value` = "+Mission_Total+" WHERE char_id = "+getcharid(0)+" AND `str` = 'Mission_Total'");
        close;
    
    Mission_Info:
        mes "[Hunting Missions]";
        mes "If you so choose, I can assign";
        mes "you a random hunting quest.";
        mes "Some are easier than others, but";
        mes "the rewards increase with difficulty.";
        next;
        mes "[Hunting Missions]";
        mes "Missions points are shared";
        mes "amongst all your characters.";
        if (.Delay) mes "Delay time is, too.";
        mes "You can't take missions on";
        mes "multiple characters at once.";
        next;
        mes "[Hunting Missions]";
        mes "You can start a quest";
        if (.Delay) mes "every "+((.Delay == 1)?"hour.":.Delay+" hours.");
        else mes "whenever you want.";
        mes "That's everything~";
        return;
    
    function Chk {
        if (getarg(0) < getarg(1)) { set @f,1; return "^FF0000"; }
        else return "^00FF00"; }
    
    function Cm {
        set .@str$, getarg(0);
        for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)
            set .@str$, insertchar(.@str$,",",.@i);
        return .@str$; }
    
    OnBuyItem:
        set @cost,0;
        for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
            for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
                if (@bought_nameid[.@i] == .Shop[.@j]) {
                    set @cost, @cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
                    break;
                }
        mes "[Hunting Missions]";
        if (@cost > #Mission_Points) mes "You don't have enough Mission Points.";
        else {
            for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
                getitem @bought_nameid[.@i], @bought_quantity[.@i];
                dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";
            }
            set #Mission_Points, #Mission_Points-@cost;
            mes "Deal completed.";
            emotion e_cash;
        }
        set @cost,0;
        deletearray @bought_nameid[0], getarraysize(@bought_nameid);
        deletearray @bought_quantity[0], getarraysize(@bought_quantity);
        close;
    
    OnNPCKillEvent:
        if (!getcharid(1) || !.Party) {
            if (!#Mission_Count || !Mission0) end;
            for (set .@i, 0; .@i<.Quests; set .@i,.@i+1) {
                if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) {
                    if (getd("Mission"+.@i+"_") < #Mission_Count) {
                        dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@i+"_"),getd("Mission"+.@i+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,killedrid)+".";
                        end;
                    }
                }
            }
        } else if (.Party) {
            set .@mob, killedrid;
            getmapxy(.@map1$,.@x1,.@y1,0);
            getpartymember getcharid(1),1;
            getpartymember getcharid(1),2;
            for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {
                if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {
                    attachrid $@partymemberaid[.@i];
                    if (#Mission_Count && Mission0 && HP > 0) {
                        getmapxy(.@map2$,.@x2,.@y2,0);
                        if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {
                            for(set .@j,0; .@j<.Quests; set .@j,.@j+1) {
                                if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) {
                                    if (getd("Mission"+.@j+"_") < #Mission_Count) {
                                        dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@j+"_"),getd("Mission"+.@j+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,.@mob)+".";
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        end;
    
    OnInit:
        set .Delay,0;        // Quest delay, in hours (0 to disable).
        set .Quests,4;        // Number of subquests per mission (increases rewards).
        set .Party,3;        // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)
        set .Reset,-1;        // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time)
        setarray .Count[0],    // Min and max monsters per subquest (increases rewards).
            40,70;
        setarray .Modifier[0],    // Multipliers for Base Exp, Job Exp, and Zeny rewards.
            getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
        setarray .Shop[0],    // Reward items: <ID>,<point cost> (about 10~20 points per hunt).
            512,1,513,1,514,1,538,5,539,5,558,10,561,10;
        set .Blacklist$,    // Blacklisted mob IDs.
            "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
            "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
            "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
            "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
            "1975,1976,1977,1978,1979";
    
        npcshopdelitem "mission_shop",512;
        for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
            npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1];
        end;
    }
    -	shop	mission_shop	-1,512:-1
    

     


  2. Can anyone make this script compatible in herc

    
    prontera,71,217,4	script	Purification Stone#BI	10081,{
    	set Bios_time,0;
    	erasequest 15005;//23hr cd
    	//erasequest 15006;//allow entry
    	mes "^0000ffThe records and aftereffects related to the Bios Island have been removed. You can generate and enter the Bios Island again.^000000";
    	close;
    }
    
    
    prontera,74,217,4	script	Vrid#warper	459,{
    	if (BaseLevel < 130) {
    		mes "[Vrid]";
    		mes "Hello youngster! well you know...";
    		mes "If you are strong enough come back to me.";
    		mes "I have something for you.";
    		close;
    	}
    	set .@party_id,getcharid(1);
    	set .@md_name$,"Bios Island";
    	set .@Bios_time, checkquest(15005,PLAYTIME);
    	
    	if(.@Bios_time == -1){	// Quest not yet started.
    		if (getcharid(0) == getpartyleader(.@party_id,2)){
    				mes "Confirmed the party has been made. Would you like to reserve entrance to the Bios Island?";
    				next;
    				switch(select("Generate dungeon "+.@md_name$+":Cancel")) {
    				case 1:
    					if (instance_create(.@md_name$) < 0) {
    						mes "Party Name: "+ getpartyname(.@party_id);
    						mes "Party Leader: "+strcharinfo(0);
    						mes "^0000ff"+.@md_name$+" ^000000- Reservation Failed!";
    						close;
    					}
    					mes "^0000ff"+.@md_name$+"^000000 - Try to reserve";
    					mes "After making a reservation, talk to the Dimensional Device and select the menu 'Enter the Dungeon' to enter the dungeon.";
    					close;
    				case 2:
    					close;
    				}
    		}
    		else{
    			mes "Please let me speak with your party leader.";
    			close;
    		}
    	}else if ((.@Bios_time >= 0) && (.@Bios_time < 2)) {
    
    		set .@dun_lim_time,Bios_time+82800; 
    		//set .@dun_lim_time2,Bios_time+14400; 
    		set .@dun_cur_time,gettimetick(2);
    		set .@dun_ent_t,(.@dun_lim_time - .@dun_cur_time);
    		set .@dun_h,(.@dun_ent_t / 3600);
    		set .@dun_m,(.@dun_ent_t - (.@dun_h * 3600)) / 60;
    		set .@dun_s,.@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
    
    		mes "Due to the Dimensional Device's aftereffects, you cannot enter the dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the next dungeon.";
    		close;
    	} else {
    		set Bios_time,0;
    		erasequest 15005;
    		mes "^0000ffThe records and after effects related to the Bios Island have been removed. You can generate and enter the Bios Island again.^000000";
    		close;
    	}
    
    }
    
    
    e_room,79,214,4	script	Dimensional Device#BI	10007,{
    
    		set .@party_id,getcharid(1);
    		set .@p_name$,getpartyname(.@party_id);
    		set .@md_name$,"Bios Island";
    		set .@Bios_time, checkquest(15005,PLAYTIME);
    		
    		
    		if(.@Bios_time == -1){	//not yet generated
    		mes "Please speak to the MvP Manager before me";
    		mes "If you have the dungeon generated already, you can enter it. ";
    		next;
    
    			switch(select("Enter the "+.@md_name$+":Cancel")) {
    			case 1:
    				callsub L_Enter,1,1;
    			case 3:
    				end;
    			}
    		}
    		else if ((.@Bios_time >= 0) && (.@Bios_time < 2)) {
    			switch(select("Enter the "+.@md_name$+":Cancel")) {
    			case 1:
    				callsub L_Enter,0,0;
    			case 3:
    				end;
    			}
    	} else {
    		set Bios_time,0;
    		erasequest 15005;
    		mes "^0000ffThe records and after effects related to the Bios Island have been removed. You can generate and enter the Bios Island again.^000000";
    		close;
    	}
    	end;
    		
    		
    L_Enter:
    	switch(instance_enter("Bios Island")) {
    	case 3:
    		mes "An unknown error has occurred.";
    		close;
    	case 2:
    		mes "The memorial dungeon Bios Island does not exist.";
    		mes "The party leader did not generate the dungeon yet.";
    		close;
    	case 1:
    		mes "You can enter the dungeon after making the party.";
    		close;
    	case 0:
    		mapannounce "e_room", strcharinfo(0) +" of the party, <"+ getpartyname( getcharid(1) ) +">, is entering the, Bios Island instance dungeon.",bc_map,"0x00ff99",FW_NORMAL,12;
    		if (getarg(1)) {
    			set Bios_time,gettimetick(2);
    			setquest 15006;
    		}
    		if (getarg(0) == 0){}
    		end;
    	}
    	
    OnInit:
    	waitingroom "Bios Island", 0;
    	end; 
    
    
    }
    
    
    
    
    
    
    1@dth1,67,97,6	script	Vrid#ep14bs_st	468,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnEnable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Vrid#ep14bs_st");
    	end;
    OnDisable:
    	hideonnpc instance_npcname("Vrid#ep14bs_st");
    	end;
    OnChat1:
    	npctalk "So there are othere people too.";
    	end;
    OnChat2:
    	npctalk "Are you also ordered to prevent Morroc from ressurecting?";
    	end;
    OnChat3:
    	npctalk "I'm Vrid and this is Zeith, We've been traveling around the world fighting for justice.";
    	end;
    OnChat4:
    	npctalk "Hey, Zeith say something.";
    	end;
    OnChat8:
    	npctalk "Don't mind him. He's not so quiet when there are only two of us.";
    	end;
    OnChat10:
    	npctalk "We only came because the old geezer down below kept rambling about Morroc's resurrection.";
    	end;
    OnChat11:
    	npctalk "Err, what's this place? I just touched the seed, and suddenly the scenery changed.";
    	end;
    OnChat12:
    	npctalk "Holy cow!, are we flying in the sky?!";
    	end;
    OnChat17:
    	npctalk "...";
    	end;
    OnChat18:
    	npctalk "Whoever you are, we'll kill you before you do!";
    	end;
    OnChat21:
    	npctalk "Who's he? is he trying to resurrect Morroc?";
    	end;
    OnChat22:
    	npctalk "Let's chase him! Zeith, hurry!";
    	end;
    }
    
    1@dth1,71,97,4	script	Zeith#ep14bs_st	467,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnEnable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Zeith#ep14bs_st");
    	end;
    OnDisable:
    	hideonnpc instance_npcname("Zeith#ep14bs_st");
    	end;
    OnChat5:
    	npctalk "...";
    	end;
    OnChat6:
    	npctalk "I'm Zeith.";
    	end;
    OnChat7:
    	npctalk "...";
    	end;
    OnChat9:
    	npctalk "...You talk enough for both of us.";
    	end;
    OnChat14:
    	npctalk "Who's there?!";
    	end;
    OnChat23:
    	npctalk "...Ack";
    	end;
    OnChat24:
    	npctalk "I hate running...";
    	end;
    }
    
    1@dth1,74,94,4	script	Reaper Yanku#ep14bs_st	10028,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnDisable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Reaper Yanku#ep14bs_st");
    	end;
    OnDisable:
    	hideonnpc instance_npcname("Reaper Yanku#ep14bs_st");
    	end;
    OnChat15:
    	npctalk "*Chuckle* This is the Isle of Bios, a place i conjured up in my mind.";
    	end;
    OnChat16:
    	npctalk "You've walked into the trap, making yourself willing sacrifices for my Lord Morroc. Aren't you afraid of dying?";
    	end;
    OnChat19:
    	npctalk "Don't tempt me, human.";
    	end;
    OnChat20:
    	npctalk "I want to watch you die slowly and painfully *Chuckle*";
    	end;
    }
    
    1@dth1,74,94,4	script	?????#ep14bs_st	111,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("?????#ep14bs_st")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("?????#ep14bs_st");
    	end;
    OnDisable:
    	disablenpc instance_npcname("?????#ep14bs_st");
    	end;
    OnChat13:
    	npctalk "*Chuckle* Do you want to know where you are?";
    	end;
    }
    
    1@dth1,56,94,0	script	#ep14bs_stchat	-1,5,5,{
    	end;
    OnTouch:
    	donpcevent instance_npcname("#ep14bs_stchat")+"::OnEnable";
    	end;
    OnInstanceInit:
    	enablenpc instance_npcname("#ep14bs_stchat");
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stchat");
    	initnpctimer;
    	donpcevent instance_npcname("#ep14bs_stchat")+"::OnDisable";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stchat");
    	end;
    OnTimer3000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat1";
    	end;
    OnTimer6000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat2";
    	end;
    OnTimer9000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat3";
    	end;
    OnTimer12000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat4";
    	end;
    OnTimer15000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat5";
    	end;
    OnTimer18000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat6";
    	end;
    OnTimer21000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat7";
    	end;
    OnTimer24000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat8";
    	end;
    OnTimer27000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat9";
    	end;
    OnTimer30000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat10";
    	end;
    OnTimer33000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat11";
    	end;
    OnTimer36000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat12";
    	end;
    OnTimer39000:
    	donpcevent instance_npcname("?????#ep14bs_st")+"::OnEnable";
    	donpcevent instance_npcname("?????#ep14bs_st")+"::OnChat13";
    	end;
    OnTimer42000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat14";
    	end;
    OnTimer45000:
    	donpcevent instance_npcname("?????#ep14bs_st")+"::OnDisable";
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnEnable";
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnChat15";
    	end;
    OnTimer48000:
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnChat16";
    	end;
    OnTimer51000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat17";
    	end;
    OnTimer54000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat18";
    	end;
    OnTimer57000:
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnChat19";
    	end;
    OnTimer60000:
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnChat20";
    	end;
    OnTimer63000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat21";
    	end;
    OnTimer66000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnChat22";
    	donpcevent instance_npcname("Reaper Yanku#ep14bs_st")+"::OnDisable";
    	end;
    OnTimer69000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat23";
    	end;
    OnTimer72000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnChat24";
    	end;
    OnTimer75000:
    	donpcevent instance_npcname("Vrid#ep14bs_st")+"::OnDisable";
    	end;
    OnTimer76000:
    	donpcevent instance_npcname("Zeith#ep14bs_st")+"::OnDisable";
    	mapannounce instance_mapname("1@dth1"), "<SYSTEM> : Eliminate all the enemies on the Island and exit through the door on the other side to move on the next area.",bc_map,"0xFFFF00";
      donpcevent instance_npcname("#ep14bs_stcmob")+"::OnEnable";
    	stopnpctimer;
    	end;
    }
    
    //Control MOB
    //====================
    1@dth2,56,94,0	script	#ep14bs_stcmoba	-1,5,5,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmoba")+"::OnDisable";
    	end;
    OnTouch:
    	initnpctimer;
    	donpcevent instance_npcname("#ep14bs_stcmobb")+"::OnEnable";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmoba");
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmoba");
    	end;
    OnTimer2000:
    	mapannounce instance_mapname("1@dth2"), "<SYSTEM> : Eliminate all the enemies on the Island and exit through the door on the other side to move on the next area.",bc_map,"0xFFFF00";
    	donpcevent instance_npcname("#ep14bs_stcmobb")+"::OnEnable";
    	stopnpctimer;
    	end;
    }
    
    1@dth1,0,0,0	script	#ep14bs_stcmob	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmob")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmob");
    	donpcevent instance_npcname("#ep14bs_stcmob")+"::OnRespawn";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmob");
    	end;
    OnRespawn:
      .@map$ = instance_mapname("1@dth1");
      .@label$ = instance_npcname("#ep14bs_stcmob")+"::OnMyMobDead";
    	areamonster .@map$,98,40,250,171,"--ja--",3010,18,.@label$;
    	areamonster .@map$,98,40,250,171,"--ja--",3011,18,.@label$;
    	areamonster .@map$,98,40,250,171,"--ja--",3012,11,.@label$;
    	areamonster .@map$,150,170,161,160,"--ja--",3010,1,.@label$;
    	areamonster .@map$,150,170,161,160,"--ja--",3011,1,.@label$;
    	areamonster .@map$,150,170,161,160,"--ja--",3012,1,.@label$;
    	areamonster .@map$,289,115,327,92,"--ja--",3010,1,.@label$;
    	areamonster .@map$,289,115,327,92,"--ja--",3011,1,.@label$;
    	areamonster .@map$,289,115,327,92,"--ja--",3012,1,.@label$;
    	areamonster .@map$,219,156,232,139,"--ja--",3010,1,.@label$;
    	areamonster .@map$,219,156,232,139,"--ja--",3011,1,.@label$;
    	areamonster .@map$,219,156,232,139,"--ja--",3012,1,.@label$;
    	monster .@map$,201,169,"--ja--",3011,1,.@label$;
    	monster .@map$,274,104,"--ja--",3011,1,.@label$;
    	monster .@map$,164,79,"--ja--",3012,1,.@label$;
    	monster .@map$,163,45,"--ja--",3011,1,.@label$;
    	monster .@map$,131,47,"--ja--",3010,1,.@label$;
    	monster .@map$,127,171,"--ja--",3010,1,.@label$;
    	monster .@map$,131,47,"--ja--",3012,1,.@label$;
    	monster .@map$,131,47,"--ja--",3011,1,.@label$;
    	monster .@map$,93,94,"--ja--",3010,1,.@label$;
    	monster .@map$,93,94,"--ja--",3011,1,.@label$;
    	monster .@map$,210,100,"--ja--",3012,1,.@label$;
    	monster .@map$,197,102,"--ja--",3010,1,.@label$;
    	monster .@map$,185,142,"--ja--",3010,1,.@label$;
    	monster .@map$,250,146,"--ja--",3012,1,.@label$;
    	monster .@map$,247,142,"--ja--",3011,1,.@label$;
    	monster .@map$,209,51,"--ja--",3010,1,.@label$;
    	monster .@map$,212,54,"--ja--",3012,1,.@label$;
    	monster .@map$,234,59,"--ja--",3011,1,.@label$;
    	monster .@map$,249,78,"--ja--",3010,1,.@label$;
    	end;
    OnMyMobDead:
      .@map$ = instance_mapname("1@dth1");
      .@label$ = instance_npcname("#ep14bs_stcmob")+"::OnMyMobDead";
    	set .@callnum,85; //75 for original value
    	set .@a_mob_num,mobcount(.@map$,.@label$);
    	set .@mob_dead_num,.@callnum - .@a_mob_num;
    	if (.@mob_dead_num == 65) {
    		mapannounce instance_mapname("1@dth1"), "<SYSTEM> : 10 - monsters remain on island.",bc_map,"0xFFFF00";
    	}
    	else if (.@mob_dead_num == 70) {
    		mapannounce instance_mapname("1@dth1"), "<SYSTEM> : 5 - monsters remain on island.",bc_map,"0xFFFF00";
    	}
    	else if (.@mob_dead_num == 74) {
    		mapannounce instance_mapname("1@dth1"), "<SYSTEM> : 1 - monsters remain on island.",bc_map,"0xFFFF00";
    	}
    	else if (.@mob_dead_num == 75) {
    		mapannounce instance_mapname("1@dth1"), "<SYSTEM> : You have eliminated all the monsters. Use the exit at 3 o'clock to move on to the next area",bc_map,"0xFFFF00";
    		donpcevent instance_npcname("#bioswarp1")+"::OnEnable";
    		donpcevent instance_npcname("#ep14bs_stcmobb")+"::OnEnable";
    		donpcevent instance_npcname("#ep14bs_stcmoba")+"::OnEnable";
    		donpcevent instance_npcname("#ep14bs_stcmob")+"::OnDisable";
    	}
    	end;
    }
    
    1@dth2,0,0,0	script	#ep14bs_stcmobb	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmobb")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmobb");
    	donpcevent instance_npcname("#ep14bs_stcmobb")+"::OnRespawn";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmobb");
    	end;
    OnRespawn:
      .@map$ = instance_mapname("1@dth2");
      .@label$ = instance_npcname("#ep14bs_stcmobb")+"::OnMyMobDead";
    	areamonster .@map$,98,40,250,171,"--ja--",3013,18,.@label$;
    	areamonster .@map$,98,40,250,171,"--ja--",3014,18,.@label$;
    	areamonster .@map$,98,40,250,171,"--ja--",3015,11,.@label$;
    	areamonster .@map$,150,170,161,160,"--ja--",3013,1,.@label$;
    	areamonster .@map$,150,170,161,160,"--ja--",3014,1,.@label$;
    	areamonster .@map$,150,170,161,160,"--ja--",3015,1,.@label$;
    	areamonster .@map$,289,115,327,92,"--ja--",3013,1,.@label$;
    	areamonster .@map$,289,115,327,92,"--ja--",3014,1,.@label$;
    	areamonster .@map$,289,115,327,92,"--ja--",3015,1,.@label$;
    	areamonster .@map$,219,156,232,139,"--ja--",3013,1,.@label$;
    	areamonster .@map$,219,156,232,139,"--ja--",3014,1,.@label$;
    	areamonster .@map$,219,156,232,139,"--ja--",3015,1,.@label$;
    	monster .@map$,201,169,"--ja--",3014,1,.@label$;
    	monster .@map$,274,104,"--ja--",3014,1,.@label$;
    	monster .@map$,164,79,"--ja--",3015,1,.@label$;
    	monster .@map$,163,45,"--ja--",3014,1,.@label$;
    	monster .@map$,131,47,"--ja--",3013,1,.@label$;
    	monster .@map$,127,171,"--ja--",3013,1,.@label$;
    	monster .@map$,131,47,"--ja--",3015,1,.@label$;
    	monster .@map$,131,47,"--ja--",3014,1,.@label$;
    	monster .@map$,93,94,"--ja--",3013,1,.@label$;
    	monster .@map$,93,94,"--ja--",3014,1,.@label$;
    	monster .@map$,210,100,"--ja--",3015,1,.@label$;
    	monster .@map$,197,102,"--ja--",3013,1,.@label$;
    	monster .@map$,185,142,"--ja--",3013,1,.@label$;
    	monster .@map$,250,146,"--ja--",3015,1,.@label$;
    	monster .@map$,247,142,"--ja--",3014,1,.@label$;
    	monster .@map$,209,51,"--ja--",3013,1,.@label$;
    	monster .@map$,212,54,"--ja--",3015,1,.@label$;
    	monster .@map$,234,59,"--ja--",3014,1,.@label$;
    	monster .@map$,249,78,"--ja--",3013,1,.@label$;
    	end;
    OnMyMobDead:
      .@map$ = instance_mapname("1@dth2");
      .@label$ = instance_npcname("#ep14bs_stcmobb")+"::OnMyMobDead";
    	set .@callnum,85; //75 for original value
    	set .@b_mob_num,mobcount(.@map$,.@label$);
    	set .@mob_dead_num,.@callnum - .@b_mob_num;
    	if (.@mob_dead_num == 65) {
    		mapannounce instance_mapname("1@dth2"), "<SYSTEM> 10 - monsters remain on island.",bc_map,"0xFFFF00";
    	}
    	else if (.@mob_dead_num == 70) {
    		mapannounce instance_mapname("1@dth2"), "<SYSTEM> 5 - monsters remain on island.",bc_map,"0xFFFF00";
    	}
    	else if (.@mob_dead_num == 74) {
    		mapannounce instance_mapname("1@dth2"), "<SYSTEM> 1 - monsters remain on island.",bc_map,"0xFFFF00";
    	}
    	else if (.@mob_dead_num == 75) {
    		mapannounce instance_mapname("1@dth2"), "<SYSTEM> You have eliminated all the monsters. Use the exit at 3 o'clock to move on to the next area",bc_map,"0xFFFF00";
    		donpcevent instance_npcname("#bioswarp2")+"::OnEnable";
    		enablenpc instance_npcname("#ep14bs_stchatb");
    		donpcevent instance_npcname("Vrid#bios3_00q")+"::OnEnable";
    		donpcevent instance_npcname("Zeith#bios3_00q")+"::OnEnable";
    	}
    	end;
    }
    
    1@dth3,0,0,0	script	#ep14bs_stcmobc	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmobc")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmobc");
    	donpcevent instance_npcname("#ep14bs_stcmobc")+"::OnRespawn";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmobc");
    	end;
    OnRespawn:
      .@map$ = instance_mapname("1@dth3");
      .@label$ = instance_npcname("#ep14bs_stcmobc")+"::OnMyMobDead";
    	monster .@map$,62,80,"--ja--",3016,1,.@label$;
    	monster .@map$,64,80,"--ja--",3016,1,.@label$;
    	monster .@map$,66,80,"--ja--",3016,1,.@label$;
    	monster .@map$,68,80,"--ja--",3016,1,.@label$;
    	monster .@map$,72,80,"--ja--",3016,1,.@label$;
    	monster .@map$,74,80,"--ja--",3016,1,.@label$;
    	monster .@map$,76,80,"--ja--",3016,1,.@label$;
    	monster .@map$,78,80,"--ja--",3016,1,.@label$;
    	monster .@map$,62,93,"--ja--",3016,1,.@label$;
    	monster .@map$,64,93,"--ja--",3016,1,.@label$;
    	monster .@map$,66,93,"--ja--",3016,1,.@label$;
    	monster .@map$,68,93,"--ja--",3016,1,.@label$;
    	monster .@map$,72,93,"--ja--",3016,1,.@label$;
    	monster .@map$,74,93,"--ja--",3016,1,.@label$;
    	monster .@map$,76,93,"--ja--",3016,1,.@label$;
    	monster .@map$,78,93,"--ja--",3016,1,.@label$;
    	monster .@map$,62,85,"--ja--",3016,1,.@label$;
    	monster .@map$,64,85,"--ja--",3016,1,.@label$;
    	monster .@map$,66,85,"--ja--",3016,1,.@label$;
    	monster .@map$,68,85,"--ja--",3016,1,.@label$;
    	monster .@map$,72,85,"--ja--",3016,1,.@label$;
    	monster .@map$,74,85,"--ja--",3016,1,.@label$;
    	monster .@map$,76,85,"--ja--",3016,1,.@label$;
    	monster .@map$,78,85,"--ja--",3016,1,.@label$;
    	end;
    OnMyMobDead:
      .@map$ = instance_mapname("1@dth3");
      .@label$ = instance_npcname("#ep14bs_stcmobc")+"::OnMyMobDead";
    	set .@callnum,24;
    	set .@c_mob_num,mobcount(.@map$,.@label$);
    	set .@mob_dead_num,.@callnum - .@c_mob_num;
    	if (.@mob_dead_num == 24) {
    		initnpctimer;
    	}
    	end;
    OnTimer2000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat31";
    	end;
    OnTimer4000:
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat32";
    	end;
    OnTimer5000:
    	donpcevent instance_npcname("#ep14bs_stcmobd")+"::OnEnable";
    	stopnpctimer;
    	donpcevent instance_npcname("#ep14bs_stcmobc")+"::OnDisable";
    	end;
    }
    
    1@dth3,0,0,0	script	#ep14bs_stcmobd	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmobd")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmobd");
    	donpcevent instance_npcname("#ep14bs_stcmobd")+"::OnRespawn";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmobd");
    	end;
    OnRespawn:
      .@map$ = instance_mapname("1@dth3");
      .@label$ = instance_npcname("#ep14bs_stcmobd")+"::OnMyMobDead";
    	monster .@map$,62,80,"--ja--",3017,1,.@label$;
    	monster .@map$,64,80,"--ja--",3017,1,.@label$;
    	monster .@map$,66,80,"--ja--",3017,1,.@label$;
    	monster .@map$,68,80,"--ja--",3017,1,.@label$;
    	monster .@map$,72,80,"--ja--",3017,1,.@label$;
    	monster .@map$,74,80,"--ja--",3017,1,.@label$;
    	monster .@map$,76,80,"--ja--",3017,1,.@label$;
    	monster .@map$,78,80,"--ja--",3017,1,.@label$;
    	monster .@map$,62,93,"--ja--",3017,1,.@label$;
    	monster .@map$,64,93,"--ja--",3017,1,.@label$;
    	monster .@map$,66,93,"--ja--",3017,1,.@label$;
    	monster .@map$,68,93,"--ja--",3017,1,.@label$;
    	monster .@map$,72,93,"--ja--",3017,1,.@label$;
    	monster .@map$,74,93,"--ja--",3017,1,.@label$;
    	monster .@map$,76,93,"--ja--",3017,1,.@label$;
    	monster .@map$,78,93,"--ja--",3017,1,.@label$;
    	monster .@map$,62,85,"--ja--",3017,1,.@label$;
    	monster .@map$,64,85,"--ja--",3017,1,.@label$;
    	monster .@map$,66,85,"--ja--",3017,1,.@label$;
    	monster .@map$,68,85,"--ja--",3017,1,.@label$;
    	monster .@map$,72,85,"--ja--",3017,1,.@label$;
    	monster .@map$,74,85,"--ja--",3017,1,.@label$;
    	monster .@map$,76,85,"--ja--",3017,1,.@label$;
    	monster .@map$,78,85,"--ja--",3017,1,.@label$;
    	end;
    OnMyMobDead:
      .@map$ = instance_mapname("1@dth3");
      .@label$ = instance_npcname("#ep14bs_stcmobd")+"::OnMyMobDead";
    	set .@callnum,24;
    	set .@d_mob_num,mobcount(.@map$,.@label$);
    	set .@mob_dead_num,.@callnum - .@d_mob_num;
    	if (.@mob_dead_num == 24) {
    		initnpctimer;
    	}
    	end;
    OnTimer2000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat33";
    	end;
    OnTimer4000:
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat34";
    	end;
    OnTimer5000:
    	donpcevent instance_npcname("#ep14bs_stcmobe")+"::OnEnable";
    	stopnpctimer;
    	donpcevent instance_npcname("#ep14bs_stcmobd")+"::OnDisable";
    	end;
    }
    
    1@dth3,0,0,0	script	#ep14bs_stcmobe	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmobe")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmobe");
    	donpcevent instance_npcname("#ep14bs_stcmobe")+"::OnRespawn";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmobe");
    	end;
    OnRespawn:
      .@map$ = instance_mapname("1@dth3");
      .@label$ = instance_npcname("#ep14bs_stcmobe")+"::OnMyMobDead";
    	monster .@map$,62,80,"--ja--",3018,1,.@label$;
    	monster .@map$,64,80,"--ja--",3018,1,.@label$;
    	monster .@map$,66,80,"--ja--",3018,1,.@label$;
    	monster .@map$,68,80,"--ja--",3018,1,.@label$;
    	monster .@map$,72,80,"--ja--",3018,1,.@label$;
    	monster .@map$,74,80,"--ja--",3018,1,.@label$;
    	monster .@map$,76,80,"--ja--",3018,1,.@label$;
    	monster .@map$,78,80,"--ja--",3018,1,.@label$;
    	monster .@map$,62,93,"--ja--",3018,1,.@label$;
    	monster .@map$,64,93,"--ja--",3018,1,.@label$;
    	monster .@map$,66,93,"--ja--",3018,1,.@label$;
    	monster .@map$,68,93,"--ja--",3018,1,.@label$;
    	monster .@map$,72,93,"--ja--",3018,1,.@label$;
    	monster .@map$,74,93,"--ja--",3018,1,.@label$;
    	monster .@map$,76,93,"--ja--",3018,1,.@label$;
    	monster .@map$,78,93,"--ja--",3018,1,.@label$;
    	monster .@map$,62,85,"--ja--",3018,1,.@label$;
    	monster .@map$,64,85,"--ja--",3018,1,.@label$;
    	monster .@map$,66,85,"--ja--",3018,1,.@label$;
    	monster .@map$,68,85,"--ja--",3018,1,.@label$;
    	monster .@map$,72,85,"--ja--",3018,1,.@label$;
    	monster .@map$,74,85,"--ja--",3018,1,.@label$;
    	monster .@map$,76,85,"--ja--",3018,1,.@label$;
    	monster .@map$,78,85,"--ja--",3018,1,.@label$;
    	end;
    OnMyMobDead:
      .@map$ = instance_mapname("1@dth3");
      .@label$ = instance_npcname("#ep14bs_stcmobe")+"::OnMyMobDead";
    	set .@callnum,24;
    	set .@e_mob_num,mobcount(.@map$,.@label$);
    	set .@mob_dead_num,.@callnum - .@e_mob_num;
    	if (.@mob_dead_num == 24) {
    		donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnEnable";
    		initnpctimer;
    	}
    	end;
    OnTimer5000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat35";
    	end;
    OnTimer9000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat36";
    	end;
    OnTimer13000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat37";
    	end;
    OnTimer17000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnDisable";
    	donpcevent instance_npcname("#ep14bs_stcmobf")+"::OnEnable";
    	end;
    OnTimer21000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat38";
    	donpcevent instance_npcname("#ep14bs_stchatr")+"::OnEnable";
    	stopnpctimer;
    	donpcevent instance_npcname("#ep14bs_stcmobe")+"::OnDisable";
    	end;
    }
    
    1@dth3,0,0,0	script	#ep14bs_stcmobf	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stcmobf")+"::OnDisable";
    	'npcMvpKill = 0;
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stcmobf");
    	donpcevent instance_npcname("#ep14bs_stcmobf")+"::OnRespawn";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stcmobf");
    	end;
    OnRespawn:
    	monster instance_mapname("1@dth3"),70,67,"Reaper Yanku",3029,1,instance_npcname("#ep14bs_stcmobf")+"::OnMyMobDead";
    	end;
    OnMyMobDead:
      .@f_mob_num = mobcount(instance_mapname("1@dth3"),instance_npcname("#ep14bs_stcmobf")+"::OnMyMobDead");
    	if (!.@f_mob_num) {
    		donpcevent instance_npcname("#ep14bs_stchatr")+"::OnDisable2";
    		initnpctimer;
    	}
    	end;
    OnTimer3000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnEnable";
    	end;
    OnTimer6000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat43";
    	end;
    OnTimer9000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat44";
    	end;
    OnTimer12000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat45";
    	end;
    OnTimer13000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnDisable";
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnDisable";
    	end;
    OnTimer13500:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnEnable";
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnEnable";
    	end;
    OnTimer14000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnDisable";
    	end;
    OnTimer16000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat46";
    	end;
    OnTimer19000:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnChat47";
    	end;
    OnTimer22000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat48";
    	end;
    OnTimer25000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat49";
    	end;
    OnTimer28000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat50";
    	end;
    OnTimer31000:
    	'npcMvpKill  = 1;
    	stopnpctimer;
    	donpcevent instance_npcname("#ep14bs_stcmobf")+"::OnDisable";
    	end;
    }
    
    1@dth1,291,103,0	script	#bioswarp1	45,1,2,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#bioswarp1")+"::OnDisable";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#bioswarp1");
    	end;
    OnEnable:
    	enablenpc instance_npcname("#bioswarp1");
    	end;
    OnTouch:
    	warp instance_mapname("1@dth2"),17,93;
    	end;
    }
    1@dth2,291,103,0	script	#bioswarp2	45,1,2,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#bioswarp2")+"::OnDisable";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#bioswarp2");
    	end;
    OnEnable:
    	enablenpc instance_npcname("#bioswarp2");
    	end;
    OnTouch:
    	if(!checkquest(56430))setquest 56430; //Boss Hunting
    	warp instance_mapname("1@dth3"),45,68;
    	end;
    }
    
    1@dth3,64,74,6	script	Vrid#bios3_00q	468,{
    	if ('npcMvpKill) {
    		mes "[Vrid]";
    		mes "I came by this Hero Token by accident";
    		mes "I want to give it to you!";
    		next;
    		mes "[Vrid]";
    		mes "Now let's get out of here!";
    		getitem 6684,1; //Proof of The Heroic
    		close2;
    		//if(checkquest(40019)) completequest 40019;
    		if(checkquest(15006)) erasequest 15006;setquest 15005;
    		//if(!checkquest(51720)) {
            //setquest 51720;
            //completequest 51720;
    		//}
    		warp "e_room",74,214;
    		end;
    	}
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnDisable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Vrid#bios3_00q");
    	end;
    OnDisable:
    	hideonnpc instance_npcname("Vrid#bios3_00q");
    	end;
    OnChat1:
    	npctalk "You're lucky to be here. I got tottaly lost the moment I entered that maze.";
    	end;
    OnChat2:
    	npctalk "If it weren't for Zeith, I'd still be in there, wandering. Thanks Zeith!";
    	end;
    OnChat4:
    	npctalk "What's up?";
    	end;
    OnChat7:
    	npctalk "Umm... I think you're right.";
    	end;
    OnChat8:
    	npctalk "They're all small in the beginning and then we faced bigger and stronger ones over time.";
    	end;
    OnChat9:
    	npctalk "To me, that sounds natural. What are you worried about?";
    	end;
    OnChat13:
    	npctalk "You again?";
    	end;
    OnChat17:
    	npctalk "Shut up! you fiend! We don't have time for your lackeys!";
    	end;
    OnChat18:
    	npctalk "I'll get rid of you myself!";
    	end;
    OnChat46:
    	npctalk "Ah, finally I can move!";
    	end;
    OnChat48:
    	npctalk "We could have died if it weren't for you!";
    	end;
    OnChat49:
    	npctalk "I want to give you something for saving our lives.";
    	end;
    OnChat50:
    	npctalk "Talk to me again when you're ready to accept it.";
    	end;
    }
    1@dth3,72,74,4	script	Zeith#bios3_00q	467,{
    	if ('npcMvpKill) {
    		mes "[Zeith]";
    		mes "Vrid seems to have something for you...";
    		close;
    	}
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnDisable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Zeith#bios3_00q");
    	end;
    OnDisable:
    	hideonnpc instance_npcname("Zeith#bios3_00q");
    	end;
    OnChat3:
    	npctalk "...Something's been bothering me.";
    	end;
    OnChat5:
    	npctalk "...I've got the feeling that the monsters were growing stronger with time.";
    	end;
    OnChat6:
    	npctalk "Just like children growing up into adults.";
    	end;
    OnChat10:
    	npctalk "Well, I'm curious about the monster we'll face now.";
    	end;
    OnChat11:
    	npctalk "...";
    	end;
    OnChat47:
    	npctalk "Hmpf, I'm ashamed of myself for being so weak...";
    	end;
    }
    
    1@dth3,64,74,6	script	Vrid#bios3_00f	10036,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnDisable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Vrid#bios3_00f");
    	specialeffect 89;
    	specialeffect EF_FIREHIT;
    	end;
    OnDisable:
    	specialeffect EF_ICECRASH;
    	hideonnpc instance_npcname("Vrid#bios3_00f");
    	end;
    OnChat21:
    	npctalk "Ugh! W-what's going on?! I-I can't move!";
    	end;
    OnChat28:
    	npctalk "Ugh!";
    	end;
    OnChat29:
    	npctalk "I don't want to die!";
    	end;
    OnChat31:
    	npctalk "Wow! you're amazing! Did you kill them all?";
    	end;
    OnChat33:
    	npctalk "Holy cow!";
    	end;
    OnChat36:
    	npctalk "You're cheating! Release us and fight fairly!";
    	end;
    OnChat38:
    	npctalk "Damn it, I can't move";
    	end;
    OnChat40:
    	npctalk "You cheater, fight fairly!";
    	end;
    OnChat41:
    	npctalk "I'm sorry we can't help!";
    	end;
    }
    
    1@dth3,68,74,4	script	#widefreeze	139,10,10,{
    		sc_start	SC_FREEZE,10000,0;
    		end;
    
    	OnInstanceInit:
    		disablenpc instance_npcname("#widefreeze");
    		end;
    	
    	OnEnable:
    		initnpctimer;
    		enablenpc instance_npcname("#widefreeze");
    		end;
    	
    	OnTimer3000:
    		stopnpctimer;
    		disablenpc instance_npcname("#widefreeze");
    		end;
    }
    
    1@dth3,72,74,4	script	Zeith#bios3_00f	10035,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnDisable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Zeith#bios3_00f");
    	specialeffect 89;
    	specialeffect EF_FIREHIT;
    	end;
    OnDisable:
    	specialeffect EF_ICECRASH;
    	hideonnpc instance_npcname("Zeith#bios3_00f");
    	end;
    OnChat22:
    	npctalk "N-neither can I! I can't move my feet!";
    	end;
    OnChat30:
    	npctalk "...Ugh!";
    	end;
    OnChat32:
    	npctalk "Nope, we aren't so lucky, more is on the way!";
    	end;
    OnChat34:
    	npctalk "...You got this kid!";
    	end;
    OnChat39:
    	npctalk "Yanku has a strange magic be careful!";
    	end;
    OnChat42:
    	npctalk "I can't get out of his magic!";
    	end;
    }
    
    1@dth3,70,67,4	script	Reaper Yanku#bios3_00q	10028,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnDisable";
    	end;
    OnEnable:
    	hideoffnpc instance_npcname("Reaper Yanku#bios3_00q");
    	end;
    OnDisable:
    	hideonnpc instance_npcname("Reaper Yanku#bios3_00q");
    	end;
    OnChat12:
    	npctalk "*Chuckle* at least one of you has a good head on his shoulders.";
    	end;
    OnChat14:
    	npctalk "Are you curios about your next adversaries?";
    	end;
    OnChat15:
    	npctalk "Ahead of you is an army of the immortal.";
    	donpcevent instance_npcname("--ja--#1bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#2bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#3bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#4bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#5bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#6bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#7bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#8bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#9bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#10bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#11bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#12bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#13bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#14bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#15bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#16bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#17bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#18bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#19bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#20bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#21bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#22bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#23bios3_")+"::OnEnable";
    	donpcevent instance_npcname("--ja--#24bios3_")+"::OnEnable";
    	specialeffect EF_READYPORTAL;
    	end;
    OnChat16:
    	npctalk "*Chuckl*...Come out my men!";
    	end;
    OnChat19:
    	npctalk "Right back at you, bigmouth";
    	end;
    OnChat20:
    	npctalk "I'll teach you how terrifying it is to be helpless in the face of horror!";
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnDisable";
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnDisable";
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnEnable";
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnEnable";
    	donpcevent instance_npcname("#widefreeze")+"::OnEnable";
    	end;
    OnChat23:
    	npctalk "On the isle of Bios, each day is a lifetime.";
    	end;
    OnChat24:
    	npctalk "You must have noticed my soldiers have grown up before the sunset";
    	end;
    OnChat25:
    	npctalk "After nightfall, they've reached the final stage of their development. life beyond death.";
    	end;
    OnChat26:
    	npctalk "That's right it's time for you to experience death.";
    	end;
    OnChat27:
    	npctalk "Get ready to feel the fear of death! HA HA HA HA!";
    	//2segundos despues
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnDisable";
    	end;
    OnChat35:
    	mapannounce instance_mapname("1@dth3"), "Reaper Yanku : I underestimated you, or my soldiers aren't as strong as I thought.",bc_map,"0xFF0000";
    	end;
    OnChat37:
    	mapannounce instance_mapname("1@dth3"), "Reaper Yanku : You're still talking. I'll just kill you myself and get it over with!",bc_map,"0xFF0000";
    	end;
    OnChat43:
    	npctalk "HA HA HA HA!";
    	end;
    OnChat44:
    	npctalk "...You're strong";
    	end;
    OnChat45:
    	npctalk "Soon Lord Morroc will return. HA HA HA... The fear of death will follow you wherever you go!";
    	end;
    }
    
    1@dth3,70,67,4	script	#ep14bs_stchatb	-1,8,8,{
    	end;
    OnTouch:
    	donpcevent instance_npcname("#ep14bs_stchatb")+"::OnEnable";
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stchatb")+"::OnDisable";
    	end;
    OnEnable:
    	initnpctimer;
    	donpcevent instance_npcname("#ep14bs_stchatb")+"::OnDisable";
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stchatb");
    	end;
    OnTimer3000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat1";
    	end;
    OnTimer6000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat2";
    	end;
    OnTimer9000:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnChat3";
    	end;
    OnTimer12000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat4";
    	end;
    OnTimer15000:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnChat5";
    	end;
    OnTimer18000:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnChat6";
    	end;
    OnTimer21000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat7";
    	end;
    OnTimer24000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat8";
    	end;
    OnTimer27000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat9";
    	end;
    OnTimer30000:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnChat10";
    	end;
    OnTimer33000:
    	donpcevent instance_npcname("Zeith#bios3_00q")+"::OnChat11";
    	end;
    OnTimer36000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnEnable";
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat12";
    	end;
    OnTimer39000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat13";
    	end;
    OnTimer42000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat14";
    	end;
    OnTimer45000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat15";
    	end;
    OnTimer48000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat16";
    	end;
    OnTimer51000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat17";
    	end;
    OnTimer54000:
    	donpcevent instance_npcname("Vrid#bios3_00q")+"::OnChat18";
    	end;
    OnTimer57000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat19";
    	end;
    OnTimer60000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat20";
    	end;
    OnTimer63000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat21";
    	end;
    OnTimer66000:
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat22";
    	end;
    OnTimer69000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat23";
    	end;
    OnTimer72000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat24";
    	end;
    OnTimer75000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat25";
    	end;
    OnTimer78000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat26";
    	end;
    OnTimer81000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnChat27";
    	donpcevent instance_npcname("--ja--#1bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#2bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#3bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#4bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#5bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#6bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#7bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#8bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#9bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#10bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#11bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#12bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#13bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#14bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#15bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#16bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#17bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#18bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#19bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#20bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#21bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#22bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#23bios3_")+"::OnDisable";
    	donpcevent instance_npcname("--ja--#24bios3_")+"::OnDisable";
    	donpcevent instance_npcname("#ep14bs_stcmobc")+"::OnEnable";
    	end;
    OnTimer83000:
    	donpcevent instance_npcname("Reaper Yanku#bios3_00q")+"::OnDisable";
    	end;
    OnTimer84000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat28";
    	end;
    OnTimer87000:
    	donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat29";
    	end;
    OnTimer90000:
    	donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat30";
    	stopnpctimer;
    	end;
    }
    
    1@dth3,0,0,0	script	#ep14bs_stchatr	-1,{
    	end;
    OnInstanceInit:
    	donpcevent instance_npcname("#ep14bs_stchatr")+"::OnDisable";
    	end;
    OnEnable:
    	enablenpc instance_npcname("#ep14bs_stchatr");
    	initnpctimer;
    	end;
    OnDisable:
    	disablenpc instance_npcname("#ep14bs_stchatr");
    	end;
    OnDisable2:
    	stopnpctimer;
    	disablenpc instance_npcname("#ep14bs_stchatr");
    	end;
    OnReplay:
    	initnpctimer;
    	end;
    OnTimer2000:
    	set .@chat_ran,rand(1,3);
    	if (.@chat_ran == 1) {
    		donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat38";
    		end;
    	}
    	else if (.@chat_ran == 2) {
    		donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat40";
    		end;
    	}
    	else if (.@chat_ran == 3) {
    		donpcevent instance_npcname("Vrid#bios3_00f")+"::OnChat41";
    		end;
    	}
    OnTimer6000:
    	set .@chat_ran,rand(1,3);
    	if (.@chat_ran == 1) {
    		donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat34";
    		end;
    	}
    	else if (.@chat_ran == 2) {
    		donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat39";
    		end;
    	}
    	else if (.@chat_ran == 3) {
    		donpcevent instance_npcname("Zeith#bios3_00f")+"::OnChat42";
    		end;
    	}
    OnTimer50000:
    	stopnpctimer;
    	donpcevent instance_npcname("#ep14bs_stchatr")+"::OnReplay";
    	end;
    }
    
    1@dth3,62,80,3	script	--ja--#1bios3_	3016,{
    	end;
    OnInstanceInit:
    OnDisable:
    	disablenpc instance_npcname(strnpcinfo(0));
    	end;
    OnEnable:
    	enablenpc instance_npcname(strnpcinfo(0));
    	end;
    }
    
    1@dth3,64,80,3	duplicate(--ja--#1bios3_)	--ja--#2bios3_	3016
    1@dth3,66,80,3	duplicate(--ja--#1bios3_)	--ja--#3bios3_	3016
    1@dth3,68,80,3	duplicate(--ja--#1bios3_)	--ja--#4bios3_	3016
    1@dth3,72,80,3	duplicate(--ja--#1bios3_)	--ja--#5bios3_	3016
    1@dth3,74,80,3	duplicate(--ja--#1bios3_)	--ja--#6bios3_	3016
    1@dth3,76,80,3	duplicate(--ja--#1bios3_)	--ja--#7bios3_	3016
    1@dth3,78,80,3	duplicate(--ja--#1bios3_)	--ja--#8bios3_	3016
    1@dth3,62,93,3	duplicate(--ja--#1bios3_)	--ja--#9bios3_	3016
    1@dth3,64,93,3	duplicate(--ja--#1bios3_)	--ja--#10bios3_	3016
    1@dth3,66,93,3	duplicate(--ja--#1bios3_)	--ja--#11bios3_	3016
    1@dth3,68,93,3	duplicate(--ja--#1bios3_)	--ja--#12bios3_	3016
    1@dth3,72,93,3	duplicate(--ja--#1bios3_)	--ja--#13bios3_	3016
    1@dth3,74,93,3	duplicate(--ja--#1bios3_)	--ja--#14bios3_	3016
    1@dth3,76,93,3	duplicate(--ja--#1bios3_)	--ja--#15bios3_	3016
    1@dth3,78,93,3	duplicate(--ja--#1bios3_)	--ja--#16bios3_	3016
    1@dth3,62,85,3	duplicate(--ja--#1bios3_)	--ja--#17bios3_	3016
    1@dth3,64,85,3	duplicate(--ja--#1bios3_)	--ja--#18bios3_	3016
    1@dth3,66,85,3	duplicate(--ja--#1bios3_)	--ja--#19bios3_	3016
    1@dth3,68,85,3	duplicate(--ja--#1bios3_)	--ja--#20bios3_	3016
    1@dth3,72,85,3	duplicate(--ja--#1bios3_)	--ja--#21bios3_	3016
    1@dth3,74,85,3	duplicate(--ja--#1bios3_)	--ja--#22bios3_	3016
    1@dth3,76,85,3	duplicate(--ja--#1bios3_)	--ja--#23bios3_	3016
    1@dth3,78,85,3	duplicate(--ja--#1bios3_)	--ja--#24bios3_	3016 

     

    Thanks guys

    ules?

     

    DISCLAIMER:

    This script is not mine. it is in rathena

     

     


  3.  

     I don't know how this script works, but some ideas you could try:

     

    - Look into npc timers.

    - Look into how the Endless Tower timer work, that could be helpful.

     

    Not a timer on top of NPC head. 

     

    It should be a time within the NPC to complete the given mission to a player. But thanks for that information though.

     

    Anyone has an idea on how to do it?

     

    Help please


  4. Hi everyone,

     

    with the hunting mission of Euphy, can anyone put a timer on this script? Like once the player begin the mission the player will only have 1 hour to complete his/her task. If the player completes the mission within an hour he/she wins the prize however if not they will get another mission to complete within an hour.

     

    //===== rAthena Script =======================================
    //= Hunting Missions
    //===== By: ==================================================
    //= Euphy
    //===== Current Version: =====================================
    //= 1.3a
    //===== Compatible With: =====================================
    //= rAthena SVN
    //===== Description: =========================================
    //= Random hunting missions.
    //= Rewards are based on quest difficulty.
    //===== Additional Comments: =================================
    //= 1.0 Initial script.
    //= 1.1 Small improvements and fixes.
    //= 1.2 Added party support and replaced blacklists with an
    //=     SQL query, both thanks to AnnieRuru.
    //= 1.3 Re-added a blacklist adapted for the SQL query.
    //= 1.3a Added mission reset options.
    //============================================================
    
    prontera,152,187,6	script	Hunting Missions	951,{
    function Chk; function Cm;
        mes "[Hunting Missions]";
        mes "Hello, "+strcharinfo(0)+"!";
        if (!#Mission_Delay) {
            next;
            mes "[Hunting Missions]";
            mes "I can't find any records...";
            mes "You must be new here!";
            emotion e_omg;
            next;
            callsub Mission_Info;
            emotion e_go;
            set #Mission_Delay,1;
            close;
        }
        mes rand(2)?"Working hard, as always...":"Not slacking, I hope...";
        mes "Is there anything I can help";
        mes "you with?";
        mes " ";
        mes "^777777~ You've completed ^0055FF"+Mission_Total+"^777777 mission"+((Mission_Total == 1)?"":"s")+". ~^000000";
        next;
        switch(select(((!Mission0)?" ~ New Mission::":": ~ Mission Status: ~ Abandon Mission")+": ~ Information: ~ Mission Shop: ~ View Top Hunters: ~ ^777777Cancel^000000")) {
        case 1:
            mes "[Hunting Missions]";
            if (#Mission_Count) {
                mes "You've started a mission";
                mes "on another character.";
                close;
            }
            if (#Mission_Delay > gettimetick(2) && .Delay) {
                set .@i, #Mission_Delay-gettimetick(2);
                if (.@i > 3600) set .@j$, (.@i/3600)+" hour"+(((.@i/3600) == 1)?"":"s");
                else if (.@i > 60) set .@j$, (.@i/60)+" minute"+(((.@i/60) == 1)?"":"s");
                else set .@j$, (.@i)+" second"+((.@i == 1)?"":"s");
                mes "I'm afraid you'll have to wait "+.@j$+" before taking another mission.";
                close;
            }
            mes "You must hunt:";
            query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT "+.Quests, .@mob);
            for (set .@i,0; .@i<.Quests; set .@i,.@i+1) {
                setd "Mission"+.@i, .@mob[.@i];
                setd "Mission"+.@i +"_",0;
            }
            set #Mission_Count, rand(.Count[0],.Count[1]);
            callsub Mission_Status;
            next;
            mes "[Mission Contracts]";
            mes "Report back when";
            mes "you've finished.";
            mes "Good luck!";
            close;
        case 2:
            mes "[Mission Contracts]";
            callsub Mission_Status;
            close;
        case 3:
            mes "[Hunting Missions]";
            mes "Do you really want to";
            mes "abandon your mission?";
            if (.Reset < 0 && .Delay)
                mes "Your delay time will not be reset.";
            else if (.Reset > 0)
                mes "It will cost "+Cm(.Reset)+" Zeny.";
            next;
            switch(select(" ~ Abandon...: ~ ^777777Cancel^000000")) {
            case 1:
                if (.Reset > 0) {
                    if (Zeny < .Reset) {
                        mes "[Hunting Missions]";
                        mes "You don't have enough";
                        mes "Zeny to drop this mission.";
                        emotion e_sry;
                        close;
                    }
                    set Zeny, Zeny-.Reset;
                    emotion e_cash;
                }
                mes "[Hunting Missions]";
                mes "Alright, I've dropped";
                mes "your current mission.";
                specialeffect2 EF_STORMKICK4;
                for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
                    setd "Mission"+.@i,0;
                    setd "Mission"+.@i+"_",0;
                }
                set #Mission_Count,0;
                if (.Reset < 0 && .Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);
                close;
            case 2:
                mes "[Hunting Missions]";
                mes "I knew you were kidding!";
                mes "Keep up the good work.";
                emotion e_heh;
                close;
            }
        case 4:
            callsub Mission_Info;
            close;
        case 5:
            mes "[Hunting Missions]";
            mes "You have ^0055FF"+#Mission_Points+"^000000 Mission Points.";
            mes "Use them well!";
            callshop "mission_shop",1;
            npcshopattach "mission_shop";
            end;
        case 6:
            mes "[Hunting Missions]";
            mes "The top hunters are:";
            query_sql("SELECT char_id AS id, (SELECT `name` FROM `char` WHERE char_id = id),`value` FROM `global_reg_value` WHERE str = 'Mission_Total' ORDER BY CAST(`value` AS SIGNED) DESC LIMIT 5",.@id,.@name$,.@val);
            for(set .@i,0; .@i<5; set .@i,.@i+1)
                mes "  [Rank "+(.@i+1)+"]  "+((.@name$[.@i] == "")?"^777777none":"^0055FF"+.@name$[.@i]+"^000000 : ^FF0000"+.@val[.@i]+" pt.")+"^000000";
            close;
        case 7:
            mes "[Hunting Missions]";
            mes "Nothing? Okay...";
            emotion e_hmm;
            close;
        }
    
    Mission_Status:
        set @f,0;
        deletearray .@j[0], getarraysize(.@j);
        for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
            set .@j[.@i], getd("Mission"+.@i);
            set .@j[.Quests], .@j[.Quests]+strmobinfo(3,.@j[.@i]);
            set .@j[.Quests+1], .@j[.Quests+1]+(strmobinfo(6,.@j[.@i])/(getbattleflag("base_exp_rate")/100)*.Modifier[0]);
            set .@j[.Quests+2], .@j[.Quests+2]+(strmobinfo(7,.@j[.@i])/(getbattleflag("job_exp_rate")/100)*.Modifier[1]);
            mes " > "+Chk(getd("Mission"+.@i+"_"),#Mission_Count)+strmobinfo(1,.@j[.@i])+" ("+getd("Mission"+.@i+"_")+"/"+#Mission_Count+")^000000";
        }
    
        // Reward formulas:
        set .@Mission_Points, 3+(.@j[.Quests]/.Quests/6);
        set .@Base_Exp, #Mission_Count*.@j[.Quests+1]/5;
        set .@Job_Exp, #Mission_Count*.@j[.Quests+2]/5;
        set .@Zeny, #Mission_Count*.Quests*.@j[.@i]*.Modifier[2];
    
        next;
        mes "[Mission Prizes]";
        mes " > Mission Points: ^0055FF"+.@Mission_Points+"^000000";
        mes " > Base Experience: ^0055FF"+Cm(.@Base_Exp)+"^000000";
        mes " > Job Experience: ^0055FF"+Cm(.@Job_Exp)+"^000000";
        mes " > Zeny: ^0055FF"+Cm(.@Zeny)+"^000000";
        if (@f) { set @f,0; return; }
        next;
        mes "[Hunting Missions]";
        mes "Oh, you're done!";
        mes "Good work.";
        mes "Here's your reward.";
        emotion e_no1;
        specialeffect2 EF_ANGEL;
        specialeffect2 EF_TRUESIGHT;
        set #Mission_Points, #Mission_Points+.@Mission_Points;
        set BaseExp, BaseExp+.@Base_Exp;
        set JobExp, JobExp+.@Job_Exp;
        set Zeny, Zeny+.@Zeny;
        for(set .@i,0; .@i<.Quests; set .@i,.@i+1) {
            setd "Mission"+.@i,0;
            setd "Mission"+.@i+"_",0;
        }
        set #Mission_Count,0;
        if (.Delay) set #Mission_Delay, gettimetick(2)+(.Delay*3600);
        set Mission_Total, Mission_Total+1;
        if (Mission_Total == 1) query_sql("INSERT INTO `global_reg_value` (`char_id`,`str`,`value`,`type`,`account_id`) VALUES ("+getcharid(0)+",'Mission_Total','1',3,0)");
        else query_sql("UPDATE `global_reg_value` SET `value` = "+Mission_Total+" WHERE char_id = "+getcharid(0)+" AND `str` = 'Mission_Total'");
        close;
    
    Mission_Info:
        mes "[Hunting Missions]";
        mes "If you so choose, I can assign";
        mes "you a random hunting quest.";
        mes "Some are easier than others, but";
        mes "the rewards increase with difficulty.";
        next;
        mes "[Hunting Missions]";
        mes "Missions points are shared";
        mes "amongst all your characters.";
        if (.Delay) mes "Delay time is, too.";
        mes "You can't take missions on";
        mes "multiple characters at once.";
        next;
        mes "[Hunting Missions]";
        mes "You can start a quest";
        if (.Delay) mes "every "+((.Delay == 1)?"hour.":.Delay+" hours.");
        else mes "whenever you want.";
        mes "That's everything~";
        return;
    
    function Chk {
        if (getarg(0) < getarg(1)) { set @f,1; return "^FF0000"; }
        else return "^00FF00"; }
    
    function Cm {
        set .@str$, getarg(0);
        for(set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3)
            set .@str$, insertchar(.@str$,",",.@i);
        return .@str$; }
    
    OnBuyItem:
        set @cost,0;
        for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1)
            for(set .@j,0; .@j<getarraysize(.Shop); set .@j,.@j+2)
                if (@bought_nameid[.@i] == .Shop[.@j]) {
                    set @cost, @cost+(.Shop[.@j+1]*@bought_quantity[.@i]);
                    break;
                }
        mes "[Hunting Missions]";
        if (@cost > #Mission_Points) mes "You don't have enough Mission Points.";
        else {
            for(set .@i,0; .@i<getarraysize(@bought_nameid); set .@i,.@i+1) {
                getitem @bought_nameid[.@i], @bought_quantity[.@i];
                dispbottom "Purchased "+@bought_quantity[.@i]+"x "+getitemname(@bought_nameid[.@i])+".";
            }
            set #Mission_Points, #Mission_Points-@cost;
            mes "Deal completed.";
            emotion e_cash;
        }
        set @cost,0;
        deletearray @bought_nameid[0], getarraysize(@bought_nameid);
        deletearray @bought_quantity[0], getarraysize(@bought_quantity);
        close;
    
    OnNPCKillEvent:
        if (!getcharid(1) || !.Party) {
            if (!#Mission_Count || !Mission0) end;
            for (set .@i, 0; .@i<.Quests; set .@i,.@i+1) {
                if (strmobinfo(1,killedrid) == strmobinfo(1,getd("Mission"+.@i))) {
                    if (getd("Mission"+.@i+"_") < #Mission_Count) {
                        dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@i+"_"),getd("Mission"+.@i+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,killedrid)+".";
                        end;
                    }
                }
            }
        } else if (.Party) {
            set .@mob, killedrid;
            getmapxy(.@map1$,.@x1,.@y1,0);
            getpartymember getcharid(1),1;
            getpartymember getcharid(1),2;
            for(set .@i,0; .@i<$@partymembercount; set .@i,.@i+1) {
                if (isloggedin($@partymemberaid[.@i], $@partymembercid[.@i])) {
                    attachrid $@partymemberaid[.@i];
                    if (#Mission_Count && Mission0 && HP > 0) {
                        getmapxy(.@map2$,.@x2,.@y2,0);
                        if ((.@map1$ == .@map2$ || .Party == 1) && (distance(.@x1,.@y1,.@x2,.@y2) <= 30 || .Party < 3)) {
                            for(set .@j,0; .@j<.Quests; set .@j,.@j+1) {
                                if (strmobinfo(1,.@mob) == strmobinfo(1,getd("Mission"+.@j))) {
                                    if (getd("Mission"+.@j+"_") < #Mission_Count) {
                                        dispbottom "[Hunting Mission] Killed "+(set(getd("Mission"+.@j+"_"),getd("Mission"+.@j+"_")+1))+" of "+#Mission_Count+" "+strmobinfo(1,.@mob)+".";
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        end;
    
    OnInit:
        set .Delay,0;        // Quest delay, in hours (0 to disable).
        set .Quests,4;        // Number of subquests per mission (increases rewards).
        set .Party,3;        // Party options: 0 (exclude party kills), 1 (include party kills), 2 (same map only), 3 (screen area only)
        set .Reset,-1;        // Reset options: -1 (abandoning mission sets delay time), 0 (no delay time), [Zeny] (cost to abandon mission, no delay time)
        setarray .Count[0],    // Min and max monsters per subquest (increases rewards).
            40,70;
        setarray .Modifier[0],    // Multipliers for Base Exp, Job Exp, and Zeny rewards.
            getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
        setarray .Shop[0],    // Reward items: <ID>,<point cost> (about 10~20 points per hunt).
            512,1,513,1,514,1,538,5,539,5,558,10,561,10;
        set .Blacklist$,    // Blacklisted mob IDs.
            "1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
            "1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
            "1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
            "1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
            "1975,1976,1977,1978,1979";
    
        npcshopdelitem "mission_shop",512;
        for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
            npcshopadditem "mission_shop", .Shop[.@i], .Shop[.@i+1];
        end;
    }
    -	shop	mission_shop	-1,512:-1
    

    Please help ..  

     

    Thanks

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.