//===== Hercules Script ====================================== //= Bakonawa Lake //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.1 //===== Description: ========================================= //= [Official Conversion] //= Defeat Bakonawa before he eats the moon. //= Part of the "Bakonawa Extermination" quest. //===== Additional Comments: ================================= //= 1.0 First version. [Euphy] //= 1.1 Added GM management NPC. [Euphy] //============================================================ 1@ma_b mapflag src4instance //============================================================ ma_scene01,174,179,4 script Taho 4_M_DEWZATIMAN,{ disable_items; if (checkweight(1201,1) == 0) { mes "You are carrying too many items. Come back after taking off some of them."; close; } if (MaxWeight - Weight < 10000) { mes "You are carrying too much weight. Come back after reducing the weight."; close; } if (BaseLevel < 140) { mes "[Taho]"; mes "Hey. This is too dangerous a place for you. You cannot keep yourself safe. Get out of here and go to the village right now!"; close; } if (malaya_bakona1 < 7 && malaya_bakona2 < 15) { mes "[Taho]"; mes "We are gonna be killed all by that Bakonawa. Ah, we must slay him but unfortunately we are not prepared."; close; } set .@party_id,getcharid(1); set .@md_name$, "Bakonawa Lake"; .@baku_time = questprogress(12278,PLAYTIME); if (!.@baku_time) { if (!questprogress(12279)) setquest 12279; } if (!.@party_id) { mes "[Taho]"; mes "Isn't there any company who can go with you? Or even if you wanna go alone, come after organizing a party."; close; } if (!.@baku_time) { if (getcharid(0) == getpartyleader(.@party_id,2)) { mes "[Taho]"; mes "Are you the leader of the Bakonawa slayers? The road is not well so we have to go down the cliff with a rope, is that OK?"; next; set .@i, select("Please weave a rope.:Now I will go down.:Cancel."); } else { mes "[Taho]"; mes "You came for slaying Bakonawa. The leader of your party has to help me weaving the rope for going down."; next; set .@i, select(":Now I will go down.:Cancel."); } switch(.@i) { case 1: set .@instance,instance_create(.@md_name$,.@party_id); if (.@instance < 0) { mes "[Taho]"; mes "Oh, the rope got dropped. I have to make a new one."; close; } if (instance_attachmap("1@ma_b",.@instance) == "") { mes "^0000ff"+.@md_name$+"^000000 - Reservation Failed!"; instance_destroy(.@instance); close; } instance_set_timeout 7200,300,.@instance; instance_init(.@instance); mes "[Taho]"; mes "Now I'm weaving, so you can go down when I'm done."; close; case 2: if( has_instance("1@ma_b") == "" ) { mes "The memorial dungeon "+.@md_name$+" does not exist."; mes "The party leader did not generate the dungeon yet."; close; } else { mapannounce "ma_scene01","A party memeber, "+strcharinfo(0)+" of the party "+getpartyname(.@party_id)+" is entering the dungeon, "+.@md_name$+".",bc_map,"0x00ff99"; //FW_NORMAL 12 0 0 setquest 12278; warp "1@ma_b",64,51; end; } case 3: close; } } else if (.@baku_time == 1) { mes "[Taho]"; mes "The rope used for getting to the Lake is already broken. We are now cleaning up the surroundings so come back after some time."; close; } else if (.@baku_time == 2) { mes "[Taho]"; mes "It's all cleaned up around here. Now you can go down again after getting a rope."; erasequest 12278; close; } } sec_in02,26,26,4 script Bakonawa's Rage 4_M_DEWZATIMAN,{ callfunc "F_GM_NPC"; mes "[Taho]"; mes "My name is Minky."; if (callfunc("F_GM_NPC",1854,0) == 1) { erasequest 12278; erasequest 12279; set malaya_bakona1,7; set malaya_bakona2,15; } close; } 1@ma_b,62,52,4 script Taho#nf 4_M_DEWZATIMAN,{ mes "[Taho]"; mes "Heehee, I could join the Bakonawa hunt, but I'd rather hide behind that rock and cheer you guys on."; next; mes "[Taho]"; mes "Bakonawa becomes invincible at some point. When that time comes, listen to my guides carefully. Just trust me and all will be good."; next; if (getcharid(0) == getpartyleader(getcharid(1),2)) { mes "[Taho]"; mes "Now I will make Bakonawa spring out from the lake."; next; switch(select("Hold on! I'm not ready yet!:Let's do it!")) { case 1: mes "[Taho]"; mes "Oh... alright... tell me when you are ready."; close; case 2: mes "[Taho]"; mes "Then I will drop a drop of Albopal to this lake."; next; mes "[Taho]"; mes "Once Bakonawa tastes this, he will surface..."; donpcevent instance_npcname("#Bakonawan1")+"::OnStart"; disablenpc instance_npcname("Taho#nf"); close; } } else { mes "[Taho]"; mes "I am dropping the Alpopal to make Bakonawa mad. Bakonawa can be a good source of protein once we get him."; close; } } 1@ma_b,36,111,4 script #Bakonawan1 CLEAR_NPC,{ end; OnInstanceInit: disablenpc instance_npcname("#Bakonawan1"); end; OnStart: enablenpc instance_npcname("#Bakonawan1"); set .@map$, instance_mapname("1@ma_b"); mapannounce .@map$,"Taho: I can see him there on the surface! ATTACK!!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 monster .@map$,78,81,"Bakonawa",2320,1,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; //original: (78,83) initnpctimer; end; OnFail: killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan1")+"::OnMyMobDead"; end; OnMyMobDead: set .@map$, instance_mapname("1@ma_b"); if (mobcount(.@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead") < 1) { donpcevent instance_npcname("#BakonawaDeadn1")+"::OnStart"; killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; stopnpctimer; disablenpc instance_npcname("#Bakonawan1"); } end; OnTimer1000: callsub OnAnnounce,"10 minutes"; OnTimer60000: callsub OnAnnounce,"9 minutes"; OnTimer120000: callsub OnAnnounce,"8 minutes"; OnTimer180000: callsub OnAnnounce,"7 minutes"; OnTimer240000: callsub OnAnnounce,"6 minutes"; OnTimer300000: callsub OnAnnounce,"5 minutes"; OnTimer360000: callsub OnAnnounce,"4 minutes"; OnTimer420000: callsub OnAnnounce,"3 minutes"; OnTimer480000: callsub OnAnnounce,"2 minutes"; OnTimer540000: callsub OnAnnounce,"1 minute"; OnTimer570000: mapannounce instance_mapname("1@ma_b"),"Time Limit: 30 seconds",bc_map,"0xff4400"; //FW_NORMAL 18 0 0 donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart"; end; OnTimer600000: set .@map$, instance_mapname("1@ma_b"); mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0 donpcevent instance_npcname("Taho#Fail")+"::OnStart"; donpcevent instance_npcname("#Bakonawan1")+"::OnFail"; killmonster .@map$,instance_npcname("#Bakonawan1")+"::OnMyMobDead"; stopnpctimer; disablenpc instance_npcname("#Bakonawan1"); end; OnAnnounce: mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL 15 0 0 donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart"; end; } 1@ma_b,78,81,0 script #SummonPuppetsn1 HIDDEN_WARP_NPC,4,5,{ end; OnInstanceInit: disablenpc instance_npcname("#SummonPuppetsn1"); end; OnStart: stopnpctimer; enablenpc instance_npcname("#SummonPuppetsn1"); initnpctimer; end; OnTouch: stopnpctimer; disablenpc instance_npcname("#SummonPuppetsn1"); end; OnTimer5000: setarray .@x[0],79,71,60,61,57,89,95,96,99; setarray .@y[0],71,72,80,90,99,73,82,90,99; set .@map$, instance_mapname("1@ma_b"); for(set .@i,0; .@i<9; set .@i,.@i+1) { set .@rand, rand(1,10); if (.@rand > 7) monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2337,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead"; else if (.@rand < 4) monster .@map$,.@x[.@i],.@y[.@i],"Bakonawa's Will",2343,1,instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead"; } end; OnTimer50000: killmonster instance_mapname("1@ma_b"),instance_npcname("#SummonPuppetsn1")+"::OnMyMobDead"; stopnpctimer; disablenpc instance_npcname("#SummonPuppetsn1"); end; OnMyMobDead: end; } 1@ma_b,1,5,4 script #BakonawaDeadn1 CLEAR_NPC,{ end; OnInstanceInit: disablenpc instance_npcname("#BakonawaDeadn1"); end; OnStart: enablenpc instance_npcname("#BakonawaDeadn1"); initnpctimer; end; OnTimer100: mapannounce instance_mapname("1@ma_b"),"Taho: Good! Bakonawa is hidden under water. He will now try to swallow the moon.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 end; OnTimer5000: mapannounce instance_mapname("1@ma_b"),"Taho: We must make loud noises with caldron and gong so he can never concentrate on the moon!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 end; OnTimer10000: mapannounce instance_mapname("1@ma_b"),"Taho: Do not engage on him even if he come above the surface. Just make loud noises!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 end; OnTimer15000: mapannounce instance_mapname("1@ma_b"),"Mission - Destroy 2 caldrons and 2 gongs on left and right sides of the lake.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0 donpcevent instance_npcname("#Bakonawan2")+"::OnStart"; stopnpctimer; disablenpc instance_npcname("#BakonawaDeadn1"); end; } 1@ma_b,36,111,4 script #Bakonawan2 CLEAR_NPC,{ end; OnInstanceInit: disablenpc instance_npcname("#Bakonawan2"); end; OnStart: enablenpc instance_npcname("#Bakonawan2"); set .@label$, instance_npcname("#Bakonawan2")+"::OnMyMobDead"; set .@map$, instance_mapname("1@ma_b"); monster .@map$,95,98,"Caldron",2328,1,.@label$; monster .@map$,60,98,"Caldron",2328,1,.@label$; monster .@map$,97,104,"Gong",2328,1,.@label$; monster .@map$,58,104,"Gong",2328,1,.@label$; donpcevent instance_npcname("#Bakonawan2-1")+"::OnStart"; initnpctimer; end; OnMyMobDead: set .@map$, instance_mapname("1@ma_b"); set .@mob_dead_num, mobcount(.@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead"); if (.@mob_dead_num < 1) { donpcevent instance_npcname("#Bakonawan2-1")+"::OnEnd"; stopnpctimer; disablenpc instance_npcname("#Bakonawan2"); } else mapannounce .@map$,"Taho: Good! "+.@mob_dead_num+" left to go!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 end; OnTimer1000: callsub OnAnnounce,"5 minutes",15,1; OnTimer60000: callsub OnAnnounce,"4 minutes",15,1; OnTimer120000: callsub OnAnnounce,"3 minutes",15,1; OnTimer180000: callsub OnAnnounce,"2 minutes",15,1; OnTimer240000: callsub OnAnnounce,"1 minute",15,1; OnTimer270000: callsub OnAnnounce,"30 seconds",15,0; OnTimer280000: callsub OnAnnounce,"20 seconds",15,0; OnTimer290000: callsub OnAnnounce,"10 seconds",15,0; OnTimer295000: callsub OnAnnounce,"5 seconds",16,0; OnTimer296000: callsub OnAnnounce,"4 seconds",17,0; OnTimer297000: callsub OnAnnounce,"3 seconds",18,0; OnTimer298000: callsub OnAnnounce,"2 seconds",19,0; OnTimer299000: callsub OnAnnounce,"1 second",20,0; OnTimer300000: set .@map$, instance_mapname("1@ma_b"); mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0 donpcevent instance_npcname("Taho#Fail")+"::OnStart"; donpcevent instance_npcname("#Bakonawan2-1")+"::OnFail"; killmonster .@map$,instance_npcname("#Bakonawan2")+"::OnMyMobDead"; stopnpctimer; disablenpc instance_npcname("#Bakonawan2"); end; OnAnnounce: mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0 if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart"; end; } 1@ma_b,36,111,4 script #Bakonawan2-1 CLEAR_NPC,{ end; OnInstanceInit: disablenpc instance_npcname("#Bakonawan2-1"); end; OnStart: enablenpc instance_npcname("#Bakonawan2-1"); monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2321,1,instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"; //original: (78,93) end; OnFail: killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"; end; OnEnd: enablenpc instance_npcname("#Bakonawan2-1"); killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan2-1")+"::OnMyMobDead"; initnpctimer; end; OnTimer1000: mapannounce instance_mapname("1@ma_b"),"Taho: He is back into the lake again. Is it over?",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 end; OnTimer5000: mapannounce instance_mapname("1@ma_b"),"Taho: UHM! Something is moving up rapidly under the water! Ba... Bakonawa is coming!!",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 end; OnTimer10000: mapannounce instance_mapname("1@ma_b"),"Mission - Eliminate Bakonawa who became more fierce.",bc_map,"0xff3300"; //FW_NORMAL 15 0 0 donpcevent instance_npcname("#Bakonawan3")+"::OnStart"; stopnpctimer; disablenpc instance_npcname("#Bakonawan2-1"); end; OnMyMobDead: end; } 1@ma_b,36,111,4 script #Bakonawan3 CLEAR_NPC,{ end; OnInstanceInit: disablenpc instance_npcname("#Bakonawan3"); end; OnStart: enablenpc instance_npcname("#Bakonawan3"); initnpctimer; monster instance_mapname("1@ma_b"),78,81,"Enraged Bakonawa",2322,1,instance_npcname("#Bakonawan3")+"::OnMyMobDead"; //original: (78,83) donpcevent instance_npcname("#Bakonawan3-1")+"::OnStart"; end; OnMyMobDead: set .@map$, instance_mapname("1@ma_b"); set .@mob_dead_num, mobcount(.@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead"); if (.@mob_dead_num < 1) { mapannounce .@map$,"Taho: We got him! I can see he has threw up something that looks like a box.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 donpcevent instance_npcname("Taho#Completed")+"::OnStart"; donpcevent instance_npcname("#Bakonawan3-1")+"::OnEnd"; killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead"; stopnpctimer; disablenpc instance_npcname("#Bakonawan3"); } end; OnTimer1000: callsub OnAnnounce,"10 minutes",15,1; end; OnTimer60000: OnTimer120000: OnTimer180000: OnTimer240000: donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart"; end; OnTimer300000: callsub OnAnnounce,"5 minutes",15,1; OnTimer360000: callsub OnAnnounce,"4 minutes",15,1; OnTimer420000: callsub OnAnnounce,"3 minutes",15,1; OnTimer480000: callsub OnAnnounce,"2 minutes",15,1; OnTimer540000: callsub OnAnnounce,"1 minute",15,1; OnTimer570000: callsub OnAnnounce,"30 seconds",15,0; OnTimer580000: callsub OnAnnounce,"20 seconds",15,0; OnTimer590000: callsub OnAnnounce,"10 seconds",15,0; OnTimer595000: callsub OnAnnounce,"5 seconds",16,0; OnTimer596000: callsub OnAnnounce,"4 seconds",17,0; OnTimer597000: callsub OnAnnounce,"3 seconds",18,0; OnTimer598000: callsub OnAnnounce,"2 seconds",19,0; OnTimer599000: callsub OnAnnounce,"1 second",20,0; OnTimer600000: set .@map$, instance_mapname("1@ma_b"); mapannounce .@map$,"Bakonawa has escaped deep into the lake.",bc_map,"0xffff00"; //FW_NORMAL 20 0 0 donpcevent instance_npcname("Taho#Fail")+"::OnStart"; killmonster .@map$,instance_npcname("#Bakonawan3")+"::OnMyMobDead"; stopnpctimer; disablenpc instance_npcname("#Bakonawan3"); end; OnAnnounce: mapannounce instance_mapname("1@ma_b"),"Time Limit: "+getarg(0),bc_map,"0xff4400"; //FW_NORMAL getarg(1) 0 0 if (getarg(2)) donpcevent instance_npcname("#SummonPuppetsn1")+"::OnStart"; end; } 1@ma_b,36,111,4 script #Bakonawan3-1 CLEAR_NPC,{ end; OnInstanceInit: disablenpc instance_npcname("#Bakonawan3-1"); end; OnStart: initnpctimer; end; OnEnd: killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead"; //showdigit 0; stopnpctimer; end; OnMyMobDead: showdigit mobcount(instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead"); end; OnTimer120000: callsub OnMobSpawn,10; OnTimer180000: callsub OnMobSpawn,15; OnTimer240000: callsub OnMobSpawn,20; //OnTimer300000: callsub OnMobSpawn,25; OnTimer300000: callsub OnMobSpawn,30; OnTimer360000: callsub OnMobSpawn,35; OnTimer420000: callsub OnMobSpawn,40; OnTimer480000: callsub OnMobSpawn,45; OnTimer540000: callsub OnMobSpawn,50; OnTimer600000: killmonster instance_mapname("1@ma_b"),instance_npcname("#Bakonawan3-1")+"::OnMyMobDead"; stopnpctimer; end; OnMobSpawn: set .@label$, instance_npcname("#Bakonawan3-1")+"::OnMyMobDead"; set .@map$, instance_mapname("1@ma_b"); killmonster .@map$,.@label$; set .@mob_dead_num, mobcount(.@map$,.@label$); if (.@mob_dead_num < 50) { set .@mob_rg, 50 - .@mob_dead_num; if (.@mob_rg > getarg(0)) set .@mob_rg, getarg(0); while(1) { areamonster .@map$,74,74,82,74,"Bakonawa's Puppet",2334,1,.@label$; set .@mob_dead_num, mobcount(.@map$,.@label$); if (.@mob_dead_num >= .@mob_rg) { break; } } } end; } 1@ma_b,62,52,4 script Taho#Completed 4_M_DEWZATIMAN,{ disable_items; if (checkweight(1201,1) == 0) { mes "It seems you are carrying too many different kinds of items. Please try again after reducing it."; close; } if (MaxWeight - Weight < 10000) { mes "It seems you are already carrying items of too much weight. Please try again after reducing the weight."; close; } if (questprogress(12279,HUNTING) == 2) { erasequest 12279; mes "[Taho]"; mes "This was found from Bakonawa's corpse. It would be better if you take this."; // if (IsPremiumPcCafe == 10) getitem 6499,7; //Ancient_Grudge // else // getitem 6499,5; //Ancient_Grudge getexp 0,100000; next; } mes "[Taho]"; mes "We better hurry and get out of this place. This place is still dangerous even without Bakonawa..."; next; mes "[Taho]"; mes "Then let's use to the rope to go up!"; close2; warp "ma_scene01",175,176; end; OnInstanceInit: disablenpc instance_npcname("Taho#Completed"); end; OnStart: enablenpc instance_npcname("Taho#Completed"); initnpctimer; end; OnTimer1000: monster instance_mapname("1@ma_b"),78,74,"Bakonawa Treasure Box",2335,1; end; OnTimer10000: mapannounce instance_mapname("1@ma_b"),"Taho: After opening the treasure box, please visit me at the top of the hill. I've got something to give to you.",bc_map,"0x00ffff"; //FW_NORMAL 15 0 0 stopnpctimer; end; } 1@ma_b,62,52,4 script Taho#Fail 4_M_DEWZATIMAN,{ mes "[Taho]"; mes "HMM. We almost got him but he is one fast creature..."; next; if (getcharid(0) == getpartyleader(getcharid(1),2)) { mes "[Taho]"; mes "Are we going to try again?"; next; switch(select("Hold on a sec!:Of couse! We cannot stand back now!")) { case 1: mes "[Taho]"; mes "AWW... I almost brought him out."; close; case 2: mes "[Taho]"; mes "Then I will use Albopal once again to the lake."; next; mes "[Taho]"; mes "We are about to see Bakonawa with intenser anger..."; disablenpc instance_npcname("Taho#Fail"); donpcevent instance_npcname("#Bakonawan1")+"::OnStart"; close; } close; } else { mes "[Taho]"; mes "I am dropping Albopal like I did a while ago. I hope it pisses him off..."; close; } OnInstanceInit: disablenpc instance_npcname("Taho#Fail"); end; OnStart: enablenpc instance_npcname("Taho#Fail"); end; }