//================= 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 . //========================================================================= //= 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(NPC_NAME)); 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 FAKE_NPC,{ 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; }