summaryrefslogblamecommitdiff
path: root/npc/re/instances/BuwayaCave.txt
blob: 0085295517fc7d4eec1941d61d5af826f1e4bffd (plain) (tree)


























                                                                           
               
                                                                           

                                            


                                                                           

                            
 
                                                                       







                                                               

                                   


































                                                                                                                   

                                                                          
                                                       
                                                             








                                                                                                
                                                                                    














                                                                                                 
 

















                                                                                                 
                                                                     








                                                               

                                                  
                               
                                     



















                                                                                                                                                                                          
                 







                                                                      
                                                     















                                               
                                     



                                   
                                                               






























                                                                                          
                                                               
































                                                                  
                                                             






                                                                                   

                                                                     












                                                                                                       
                                                     







                                                

                              



                                                
                                                               







                                                                                                                                  
                                   

























                                                                        
                                                         







                                                  







                                                                       
 
                                                         



















                                                                                                                                              

                                                                

























                                                                                                               
                                                         




                                                                                                                            
                                            









                                                                                                                                                         
                                                         




                     

                                                                 
                                           
                              
            
                             













                                                                                             
                                                     















                                                    
                                            















                                                                
//================= Hercules Script =======================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2013-2015  Hercules Dev Team
//= Copyright (C)  Euphy
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Buwaya Cave
//================= Description ===========================================
//= Defeat Buwaya in his cave.
//= Part of the "Secret in the Woods" quest.
//================= Current Version =======================================
//= 1.0
//=========================================================================

1@ma_c	mapflag	src4instance

ma_fild02,312,317,5	script	Guard#buwaya_cave	4_MAL_SOLDIER,{
	if (BaseLevel < 130) {
		mes "[Guard]";
		mes "People under ^ff0000level 130^000000";
		mes "cannot enter this place.";
		mes "This place is dangerous. Please go back.";
		close;
	}

	.@party_id = getcharid(1);
	.@md_name$ = "Buwaya Cave";

	if (!.@party_id) {
		mes "[Guard]";
		mes "Buwaya is dangerous.";
		mes "Please come back after you form a";
		mes "team with other people.";
		close;
	}
	if (getcharid(0) == getpartyleader(.@party_id,2)) {
		mes "[Guard]";
		mes "This place is dangerous. Please go back.";
		mes "If you dont have any business here, please go back.";
		next;
		while(1) {
			switch(select("Why is it so dangerous?:I'm here to hunt down Buwaya.:End conversation.")) {
			case 1:
				mes "[Guard]";
				mes "Recently, there has been a case";
				mes "where villagers have disappeared.";
				mes "After investigating the tracks, ";
				mes "we found out the giant monster Buwaya";
				mes "was responsible.";
				next;
				mes "[Guard]";
				mes "Soldiers and mercenaries have been dispatched to ";
				mes "hunt down Buwaya, but were never";
				mes "completely successful.";
				next;
				mes "[Guard]";
				mes "Buwaya is still kidnapping";
				mes "the villagers to this day.";
				mes "Please gather some people to get rid of Buwaya.";
				next;
				break;
			case 2:
				.@playtime = questprogress(4229,PLAYTIME);
				if (!.@playtime) {
					// fall through
				} else if (.@playtime == 1) {
					mes "[Guard]";
					mes "Buwaya is still hiding.";
					mes "Even if you enter now, Buwaya will not come out. ";
					mes "Please come back later.";
					close;
				} else {
					erasequest 4229;
					// fall through
				}
				.@instance = instance_create(.@md_name$,.@party_id);
				if (.@instance < 0) {
					mes "[Guard]";
					mes "Party name is... "+getpartyname(.@party_id)+".";;
					mes "Party leader is... "+strcharinfo(0);
					mes "^0000ff"+.@md_name$+"^000000 cannot be opened now.";
					mes "Please try a moment later.";
					close;
				}
				if (instance_attachmap("1@ma_c",.@instance) == "") {
					mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!";
					instance_destroy(.@instance);
					close;
				}
				instance_set_timeout 3600,300,.@instance;
				instance_init(.@instance);

				mes "[Guard]";
				mes "I will open up the tunnel to ^0000ff"+.@md_name$+"^000000.";
				mes "I wish you good luck.";
				close;
			case 3:
				mes "[Guard]";
				mes "This place is dangerous. You cannot enter.";
				close;
			}
		}
	} else {
		mes "[Guard]";
		mes "Let me talk with the party leader.";
		mes "Please call forth the leader.";
		close;
	}
}

ma_fild02,315,323,0	script	Cave Entrance#buwaya	WARPNPC,2,2,{
	end;
OnTouch:
	if (BaseLevel < 130) {
		mes "[Guard]";
		mes "People under ^ff0000level 130^000000";
		mes "cannot enter this place.";
		mes "This place is dangerous. Please go back.";
		close;
	}
	.@playtime = questprogress(4229,PLAYTIME);
	if (!.@playtime) {
		// fall through
	} else if (.@playtime == 1) {
		mes "[Guard]";
		mes "Buwaya is still hiding.";
		mes "Even if you enter now, Buwaya will not come out.";
		mes "Please come back later.";
		close;
	} else {
		erasequest 4229;
		// fall through
	}
	switch(select("Enter.:Turn back.")) {
	case 1:
		if( has_instance("1@ma_c") == "" ) {
			mes "The memorial dungeon Buwaya Cave does not exist.";
			mes "The party leader did not generate the dungeon yet.";
			close;
		} else {
			mapannounce "ma_fild02",getpartyname(getcharid(1))+" party's "+strcharinfo(0)+" member began hunting Buwaya in Buwaya Cave.",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
			setquest 4229;
			warp "1@ma_c",35,57;
			end;
		}
	case 2:
		mes "[Guard]";
		mes "You must value your life.";
		mes "It is better to think carefully before you act.";
		close;
	}
}

1@ma_c,33,112,0	script	#damage	HIDDEN_WARP_NPC,7,7,{
	end;
OnInstanceInit:
	initnpctimer;
	disablenpc instance_npcname("#damage");
	end;
OnTimer1000:
	enablenpc instance_npcname("#damage");
	specialeffect EF_POISONHIT;
	end;
OnTimer2000:
	stopnpctimer;
	initnpctimer;
	disablenpc instance_npcname("#damage");
	end;
OnTouch:
	percentheal -10,-10;
	sc_start SC_BLOODING,60000,0;
	sc_start SC_POISON,60000,0;
	end;
}

1@ma_c,29,110,5	script	Kidnapped People#1	4_F_BARYO_OLD,{
	mes "[Kidnapped Residents]";
	mes "Buwaya was running around,";
	mes "and new people got caught.";
	mes "We will be stuck in here for the rest of our lives.";
	next;
	switch(select("Get me outta here!!:Ca...can't escape?")) {
	case 1:
		mes "[Kidnapped Residents]";
		mes "We don't have enough power to destroy it but Buwaya has a weakness.";
		mes "Look at the wall over there.";
		mes "If you knock there, Buywaya will feel pain and spit you out.";
		donpcevent instance_npcname("#box_mob_call")+"::OnEnable";
		close2;
		disablenpc instance_npcname("Kidnapped People#1");
		end;
	case 2:
		mes "[Kidnapped People]";
		mes "Somthing is wrong here...";
		mes "Have you experienced this before?";
		close;
	}
	end;
OnInstanceInit:
	disablenpc instance_npcname("Kidnapped People#1");
	end;
OnEnable:
	enablenpc instance_npcname("Kidnapped People#1");
	donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
	end;
}

1@ma_c,36,110,5	script	Kidnapped People#2	4_M_BARYO_OLD,{
	mes "[Kidnapped Residents]";
	mes "Ahaa! I wish I had a little more power...";
	mes "I know its weakness...";
	next;
	switch(select("Tell me.:Do you really know?")) {
	case 1:
		mes "[Kidnapped Residents]";
		mes "Are you sure you can do it...?";
		mes "Ok, listen carefully,";
		mes "its weakness is...";
		next;
		mes "[Kidnapped Residents]";
		mes "...behind us on the walls.";
		sc_start SC_ATKPOTION,60000,45;
		sc_start SC_MATKPOTION,60000,45;
		disablenpc instance_npcname("Kidnapped People#2");
		close;
	case 2:
		mes "[Kidnapped Residents]";
		mes "WHAT?!";
		mes "Are you ignoring me";
		mes "because I'm captured in here?";
		close;
	}
	end;
OnInstanceInit:
	disablenpc instance_npcname("Kidnapped People#2");
	end;
OnEnable:
	enablenpc instance_npcname("Kidnapped People#2");
	end;
}

1@ma_c,3,3,0	script	#box_mob_call	HIDDEN_WARP_NPC,1,1,{
	end;
OnInstanceInit:
	setcell instance_mapname("1@ma_c"),30,118,35,118,cell_shootable,1; //custom
	disablenpc instance_npcname("#box_mob_call");
	end;
OnEnable:
	enablenpc instance_npcname("#box_mob_call");
	.@label$ = instance_npcname("#box_mob_call")+"::OnMyMobDead";
	.@map$ = instance_mapname("1@ma_c");
	monster .@map$,30,118,"Buwaya's Weakness",2333,1,.@label$;
	monster .@map$,35,118,"Buwaya's Weakness",2333,1,.@label$;
	end;
OnDisable:
	killmonster instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead";
	disablenpc instance_npcname("#box_mob_call");
	end;
OnMyMobDead:
	if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#box_mob_call")+"::OnMyMobDead") < 1)
		donpcevent instance_npcname("#box_out")+"::OnEnable";
	end;
}

1@ma_c,38,118,0	script	#box_out	WARPNPC,2,2,{
OnInstanceInit:
OnDisable:
	disablenpc instance_npcname("#box_out");
	end;
OnEnable:
	enablenpc instance_npcname("#box_out");
	end;
OnTouch:
	.@x = rand(1,20) + 97;
	.@y = rand(1,20) + 74;
	warp instance_mapname("1@ma_c"),.@x,.@y;
	end;
}

1@ma_c,97,74,0	script	#box_call	HIDDEN_WARP_NPC,50,50,{
	end;
OnInstanceInit:
	disablenpc instance_npcname("#box_call");
	initnpctimer;
	end;
OnTimer30000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : I will put you in my treasure box!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	// Should execute OnTimer33000, but client doesn't render the effect fast enough.
	for(.@i = 1; .@i<=9; ++.@i)
		donpcevent instance_npcname("#yunobi"+.@i)+"::OnEnable";
	end;
OnTimer33000:
	donpcevent instance_npcname("#box_out")+"::OnDisable";
	donpcevent instance_npcname("#box_mob_call")+"::OnDisable";
	donpcevent instance_npcname("Kidnapped People#1")+"::OnEnable";
	donpcevent instance_npcname("Kidnapped People#2")+"::OnEnable";
	end;
OnTimer34000:
	enablenpc instance_npcname("#box_call");
	end;
OnTimer35000:
	stopnpctimer;
	initnpctimer;
	disablenpc instance_npcname("#box_call");
	end;
OnTouch:
	specialeffect2 EF_GUIDEDATTACK;
	warp instance_mapname("1@ma_c"),33,112;
	end;
OnDisable:
	stopnpctimer;
	disablenpc instance_npcname("#box_call");
	end;
}

1@ma_c,97,74,0	script	#yunobi1	HIDDEN_WARP_NPC,{
	end;
OnInstanceInit:
	hideonnpc instance_npcname(strnpcinfo(0));
	end;
OnEnable:
	specialeffect EF_MAPPILLAR2;
	end;
}
1@ma_c,97,94,0	duplicate(#yunobi1)	#yunobi2	HIDDEN_WARP_NPC
1@ma_c,117,94,0	duplicate(#yunobi1)	#yunobi3	HIDDEN_WARP_NPC
1@ma_c,117,74,0	duplicate(#yunobi1)	#yunobi4	HIDDEN_WARP_NPC
1@ma_c,117,54,0	duplicate(#yunobi1)	#yunobi5	HIDDEN_WARP_NPC
1@ma_c,97,54,0	duplicate(#yunobi1)	#yunobi6	HIDDEN_WARP_NPC
1@ma_c,77,54,0	duplicate(#yunobi1)	#yunobi7	HIDDEN_WARP_NPC
1@ma_c,77,74,0	duplicate(#yunobi1)	#yunobi8	HIDDEN_WARP_NPC
1@ma_c,77,94,0	duplicate(#yunobi1)	#yunobi9	HIDDEN_WARP_NPC

1@ma_c,1,1,0	script	#bunshin	HIDDEN_WARP_NPC,{
	end;
OnInstanceInit:
	initnpctimer;
	end;
OnTimer58000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : I had enough with this, let's go till the end!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	end;
OnTimer61000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : This is!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	end;
OnTimer62000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	end;
OnTimer63000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	end;
OnTimer64000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : This is...MY...Deadly... ATTACK!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	end;
OnTimer65000:
	.@label$ = instance_npcname("#bunshin")+"::OnMyMobDead";
	.@map$ = instance_mapname("1@ma_c");
	areamonster .@map$,112,89,122,99,"Buwaya",2332,1,.@label$;
	areamonster .@map$,112,49,122,59,"Buwaya",2332,1,.@label$;
	areamonster .@map$,72,49,82,59,"Buwaya",2332,1,.@label$;
	areamonster .@map$,72,89,82,99,"Buwaya",2332,1,.@label$;
	end;
OnTimer66000:
	mapannounce instance_mapname("1@ma_c"),"Buwaya : Are you scared?",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	end;
OnTimer105000:
	killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
	stopnpctimer;
	initnpctimer;
	end;
OnMyMobDead:
	if (mobcount(instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead") < 1) {
		stopnpctimer;
		initnpctimer;
	}
	end;
OnDisable:
	stopnpctimer;
	killmonster instance_mapname("1@ma_c"),instance_npcname("#bunshin")+"::OnMyMobDead";
	disablenpc instance_npcname("#bunshin");
	end;
}

1@ma_c,2,2,0	script	#buwaya_con	HIDDEN_WARP_NPC,{
	end;
OnInstanceInit:
	areamonster instance_mapname("1@ma_c"),90,67,104,81,"Buwaya",2319,1,instance_npcname("#buwaya_con")+"::OnMyMobDead";
	end;
OnMyMobDead:
	.@map$ = instance_mapname("1@ma_c");
	if (mobcount(.@map$,instance_npcname("#buwaya_con")+"::OnMyMobDead") < 1) {
		donpcevent instance_npcname("#box_call")+"::OnDisable";
		donpcevent instance_npcname("#bunshin")+"::OnDisable";
		donpcevent instance_npcname("#exit_mob")+"::OnDisable";
		donpcevent instance_npcname("#cave_out")+"::OnEnable";
		mapannounce .@map$,"Guard : You did great work. Please hurry up and escape to the way you came in!",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0
	}
	end;
}

1@ma_c,3,3,0	script	#exit_mob	HIDDEN_WARP_NPC,{
	end;
OnInstanceInit:
	initnpctimer;
	end;
OnTimer60000:
	.@label$ = instance_npcname("#exit_mob")+"::OnMyMobDead";
	.@map$ = instance_mapname("1@ma_c");
	if (mobcount(.@map$,.@label$) < 30)
		.@amount = 10;
	else
		.@amount = 1;
	areamonster .@map$,43,58,47,60,"Water Plant",2331,.@amount,.@label$;
	areamonster .@map$,43,58,47,60,"Egg",2329,.@amount,.@label$;
	stopnpctimer;
	initnpctimer;
	end;
OnDisable:
	stopnpctimer;
	killmonster instance_mapname("1@ma_c"),instance_npcname("#exit_mob")+"::OnMyMobDead";
	disablenpc instance_npcname("#exit_mob");
	end;
OnMyMobDead:
	end;
}

1@ma_c,28,57,0	script	#cave_out	WARPNPC,2,2,{
OnInstanceInit:
	disablenpc instance_npcname("#cave_out");
	end;
OnEnable:
	enablenpc instance_npcname("#cave_out");
	end;
OnTouch:
	mes "Would like to go out?";
	next;
	if(select("Yes!:No, I will stay.") == 1)
		warp "ma_fild02",315,315;
	close;
}

1@ma_c,1,1,0	script	#buwaya_spawn_mobs	-1,{
OnInstanceInit:
	.@map$ = instance_mapname("1@ma_c");
	areamonster .@map$,73,81,93,101,"Seaweed",2331,18;
	areamonster .@map$,110,97,116,103,"Seaweed",2331,8;
	areamonster .@map$,59,63,63,67,"Seaweed",2331,8;
	areamonster .@map$,73,55,77,59,"Seaweed",2331,4;
	areamonster .@map$,103,69,107,73,"Seaweed",2331,4;
	areamonster .@map$,108,45,122,63,"Seaweed",2331,15;
	areamonster .@map$,73,81,93,101,"Buwaya's Egg",2329,10;
	areamonster .@map$,110,97,116,103,"Buwaya's Egg",2329,8;
	areamonster .@map$,59,63,63,67,"Buwaya's Egg",2329,4;
	areamonster .@map$,73,55,77,59,"Buwaya's Egg",2329,3;
	areamonster .@map$,103,69,107,73,"Buwaya's Egg",2329,3;
	areamonster .@map$,108,45,122,63,"Buwaya's Egg",2329,15;
	monster .@map$,0,0,"Seaweed",2331,5;
	monster .@map$,0,0,"Buwaya's Slave",2330,5;
	end;
}