//================= Hercules Script ======================================= //= _ _ _ //= | | | | | | //= | |_| | ___ _ __ ___ _ _| | ___ ___ //= | _ |/ _ \ '__/ __| | | | |/ _ \/ __| //= | | | | __/ | | (__| |_| | | __/\__ \ //= \_| |_/\___|_| \___|\__,_|_|\___||___/ //================= License =============================================== //= This file is part of Hercules. //= http://herc.ws - http://github.com/HerculesWS/Hercules //= //= Copyright (C) 2012-2015 Hercules Dev Team //= Copyright (C) Euphy //= Copyright (C) L0ne_W0lf //= //= 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 . //========================================================================= //= Orc's Memory //================= Description =========================================== //= Relive the memory of an orc. //================= Current Version ======================================= //= 1.7 //========================================================================= //== Entrance ============================================== gef_fild10,242,202,0 script Dimensional Gorge Piece 2_MONEMUS,{ .@party_id = getcharid(CHAR_ID_PARTY); .@p_name$ = getpartyname(.@party_id); .@md_name$ = _("Orc's Memory"); if (!instance_check_party(.@party_id, 2, 30, 80)) { mes("Only users between Levels ^ff000030 ~ 80^000000 can enter this Dungeon."); close(); } .@orctime = questprogress(12059, PLAYTIME); if (.@orctime == 2) { mes("^0000ffAll records and after-effects related to the Orc's Memory Dungeon are deleted. You can now regenerate or re-enter the dungeon.^000000"); erasequest(12059); close(); } if (.@orctime == 1) { mes("You can enter the Dungeon if it has been generated."); next(); .@str$ = sprintf(_$("Enter the Dungeon %s"), .@md_name$); if (select(.@str$, "Cancel") == 2) close(); // Fall through to access the dungeon } else { // !.@orctime if (getcharid(CHAR_ID_CHAR) == getpartyleader(.@party_id, 2)) { mesf("Party status confirmed. Would you like to book entrance to the %s?", .@md_name$); next(); .@str$ = sprintf(_$("Reserve the %s"), .@md_name$); switch (select(.@str$, "Enter the Dungeon", "Cancel")) { case 1: .@instance = instance_create(.@md_name$, .@party_id); if (.@instance >= 0) { for (.@i = 1; .@i <= 2; ++.@i) { if (instance_attachmap(.@i + "@orcs", .@instance) == "") { mesf("Party Name: %s", .@p_name$); mesf("Party Leader: %s", strcharinfo(PC_NAME)); mesf("^0000ff%s ^000000 - Reservation Failed.", .@md_name$); instance_destroy(.@instance); close(); } } instance_set_timeout(7200, 300, .@instance); instance_init(.@instance); } mesf("^0000ff%s^000000- Attempting to book an entrance", .@md_name$); mesf("After making a reservation, you have to select 'Enter the Dungeon' from the menu if you wish to enter the %s.", .@md_name$); close(); case 2: break; // Fall through to access the dungeon (after the else) case 3: close(); } } else if (select(sprintf(_$("%s Enter the Memorial Dungeon"), .@md_name$), "Cancel") == 2) { end; } // Else access the dungeon } // Dungeon access if (has_instance("1@orcs") == "") { mesf("Memorial Dungeon %s does not exist.", .@md_name$); mes("The party leader has not reserved entrance to the dungeon yet."); next(); mes("Once the reservation is complete, the dungeon will be generated."); mes("If your dungeon has been destroyed you must wait 7 days before re-entering."); close(); } mapannounce("gef_fild10", sprintf(_$("%s of the party, %s is entering the %s."), strcharinfo(PC_NAME), .@p_name$, .@md_name$), bc_map, C_SPRINGGREEN); if (!questprogress(12059)) setquest(12059); warp("1@orcs", 179, 15); end; } gef_fild10,238,202,6 script Mad Scientist#orc 4_LGTSCIENCE,{ if (BaseLevel < 50) { mes("The Mad Scientist doesn't seem to notice you and keeps mumbling to himself..."); close(); } if (mad == 0) { mes("[Mad Scientist]"); mes("Haha, no Orcs are coming near me!"); mes("The power of the Dimensional Gorge is undefeatable!!"); next(); switch (select("Orcs don't attack you?", "You wish!")) { case 1: mes("[Mad Scientist]"); mes("Yeah, yeah.. I know it's hard to belive. I don't blame ya."); mes("I used to study the Dimensional Gorge discovered near Morroc."); mes("According to my research, the minerals found there have enormous power inside them!"); next(); break; case 2: mes("[Mad Scientist]"); mes("You are a pretty distrustful person, huh?"); next(); break; } select("Oh? Like what, travel to alternate space?"); mes("[Mad Scientist]"); mes("Very smart! I have actually just done that! See that statue over there? It's not your normal Monolith!"); next(); mes("[Mad Scientist]"); mes("I have created it with a combination of our technology and the unlimited energy I discovered from the Gorge! Want to try it?"); next(); select("...Um, that doesn't sound legal?"); mes("[Mad Scientist]"); mes("Hey, since when did something so interesting have to be legal!? How about it! You can talk to the Orcs! C'mon!"); next(); mes("[Mad Scientist]"); mes("Chances are they'll just give you lots of instructions once they see you, so just wing it! They're always saying the same thing, to the point where I memorized them!"); next(); switch (select("Alright... What do I do?", "Umm, maybe not.")) { case 1: mes("[Mad Scientist]"); mes("Very good! Just sit in the hands of this statue! And try to act natural when you're in there!"); mad = 1; close(); case 2: mes("[Mad Scientist]"); mes("Oh fine, be that way!"); close(); } } else if (mad == 1) { mes("[Mad Scientist]"); mes("Hmm? Put your hand on that Monemus Statue if you want to experience traveling through dimensions!"); close(); } else { mad = 1; end; } } //== Orc's Memory Floor 1 ================================== 1@orcs,180,30,0 script #Resurrect Monsters1 CLEAR_NPC,{ end; OnInstanceInit: disablenpc(instance_npcname("#Resurrect Monsters1")); end; OnDisable: stopnpctimer(); killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); end; OnEnable: enablenpc(instance_npcname("#Resurrect Monsters1")); monster(instance_mapname("1@orcs"), 0, 0, _("Orc Warrior"), ORK_WARRIOR, 30, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("1@orcs"); .@mob_dead_num = 30 - mobcount(.@map$, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); if (.@mob_dead_num > 0) { .@mob_ran = rand(1, 30); if (.@mob_ran > 29) { monster(.@map$, 0, 0, _("Orc Warrior"), ORK_WARRIOR, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); } else if (.@mob_ran > 28 && .@mob_ran < 30) { monster(.@map$, 0, 0, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); if (rand(1, 10) == 9) mapannounce(.@map$, _("High Orc: We need more defenses! Get more people here!"), bc_map, "0xff4444"); } else if (.@mob_ran > 26 && .@mob_ran < 29) { areamonster(.@map$, 41, 91, 51, 81, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); if (rand(1, 10) == 9) mapannounce(.@map$, _("Where are the High Orcs!? Get them to stop the enemies!"), bc_map, "0xff4444"); } else { areamonster(.@map$, 17, 187, 27, 177, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); if (rand(1, 5) == 3) mapannounce(.@map$, _("Caution: The army's starting to concentrate at Zone No. 4."), bc_map, "0x77ff77"); if (rand(1, 100) == 50) initnpctimer(); } } end; OnTimer10: mapannounce(instance_mapname("1@orcs"), _("Shouts of the Chief Orc of Safeguards: Looks like this will take longer than expected. Summon the Stalactic Golems!"), bc_map, "0xff4444"); end; OnTimer4010: .@map$ = instance_mapname("1@orcs"); mapannounce(.@map$, _("Stalactic Golems are digging out of the deep underground."), bc_map, "0x77ff77"); areamonster(.@map$, 17, 187, 27, 177, _("Stalactic Golem"), STALACTIC_GOLEM, 20, instance_npcname("#Resurrect Monsters1")+"::OnMyMobDead"); stopnpctimer(); end; } 1@orcs,180,30,0 script #Resurrect Monsters2 CLEAR_NPC,{ end; OnInstanceInit: disablenpc(instance_npcname("#Resurrect Monsters2")); end; OnDisable: killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead"); end; OnEnable: enablenpc(instance_npcname("#Resurrect Monsters2")); monster(instance_mapname("1@orcs"), 0, 0, _("Trained Wolf"), DESERT_WOLF, 15, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("1@orcs"); .@mob_dead_num = 15 - mobcount(.@map$, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead"); if (rand(1, 30) > 15) { if (.@mob_dead_num > 0) monster(.@map$, 0, 0, _("Trained Wolf"), DESERT_WOLF, .@mob_dead_num, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead"); } else { if (.@mob_dead_num > 0) areamonster(.@map$, 17, 187, 27, 177, _("Trained Wolf"), DESERT_WOLF, .@mob_dead_num, instance_npcname("#Resurrect Monsters2")+"::OnMyMobDead"); } end; } 1@orcs,180,30,0 script #Resurrect Monsters3 CLEAR_NPC,{ end; OnInstanceInit: disablenpc(instance_npcname("#Resurrect Monsters3")); end; OnDisable: killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead"); end; OnEnable: enablenpc(instance_npcname("#Resurrect Monsters3")); monster(instance_mapname("1@orcs"), 0, 0, _("Orc Archer"), ORC_ARCHER, 15, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("1@orcs"); .@mob_dead_num = 15 - mobcount(.@map$, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead"); .@mob_ran = rand(1, 30); if (.@mob_ran > 29) { if (.@mob_dead_num > 0) monster(.@map$, 0, 0, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead"); } else if (.@mob_ran > 26 && .@mob_ran < 30) { if (.@mob_dead_num > 0) { areamonster(.@map$, 43, 155, 47, 159, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead"); if (rand(1, 3) == 3) mapannounce(.@map$, _("High Orc: Attack them from behind! Cut off their support!"), bc_map, "0xff4444"); } } else { if (.@mob_dead_num > 0) areamonster(.@map$, 17, 187, 27, 177, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#Resurrect Monsters3")+"::OnMyMobDead"); } end; } 1@orcs,180,30,0 script #Resurrect Monsters4 CLEAR_NPC,{ end; OnInstanceInit: enablenpc(instance_npcname("#Resurrect Monsters4")); areamonster(instance_mapname("1@orcs"), 98, 35, 178, 115, _("Anopheles"), ANOPHELES, 10, instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("1@orcs"); .@mob_dead_num = 10 - mobcount(.@map$, instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead"); if (.@mob_dead_num > 0) monster(.@map$, 0, 0, _("Anopheles"), ANOPHELES, .@mob_dead_num, instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead"); end; OnDisable: killmonster(instance_mapname("1@orcs"), instance_npcname("#Resurrect Monsters4")+"::OnMyMobDead"); end; } 1@orcs,180,29,4 script Kruger#1-1 4_ORCWARRIOR,{ donpcevent(instance_npcname("Kruger#1-2")+"::OnEnable"); end; } 1@orcs,180,29,4 script Kruger#1-2 4_ORCWARRIOR,{ end; OnInstanceInit: disablenpc(instance_npcname("Kruger#1-2")); end; OnEnable: disablenpc(instance_npcname("Kruger#1-1")); enablenpc(instance_npcname("Kruger#1-2")); initnpctimer(); end; OnTimer10: mapannounce(instance_mapname("1@orcs"), _("Kruger: Damn... What took you so long!! I don't have all day!!"), bc_map, C_YELLOW); end; OnTimer5710: mapannounce(instance_mapname("1@orcs"), _("Kruger: My plan was to let our comrades open the gate, but it's all ruined since I got busted by the Orc Shaman."), bc_map, C_YELLOW); end; OnTimer14610: mapannounce(instance_mapname("1@orcs"), _("Shouts of the Chief Orc of Safeguards: I smell a rat.. Send some patrols to the entrance!!"), bc_map, "0xff4444"); end; OnTimer20210: mapannounce(instance_mapname("1@orcs"), _("Kruger: Darn it.. They'll be here any minute. Ok. Listen to me now."), bc_map, C_YELLOW); end; OnTimer24910: mapannounce(instance_mapname("1@orcs"), _("Kruger: The Orc Shaman has sealed the 1st basement by dividing it into 4 zones. Each zone has one Enchanted Orc who has the power to unseal the next zone."), bc_map, C_YELLOW); end; OnTimer34310: mapannounce(instance_mapname("1@orcs"), _("Kruger: Find those Enchanted Orcs and get rid of them to move to the next zone."), bc_map, C_YELLOW); end; OnTimer39710: mapannounce(instance_mapname("1@orcs"), _("Kruger: Try to avoid encountering Orcs other then the Enchanted ones. Everytime you kill a normal Orc, High Orcs will gather at the last path to the 2nd floor."), bc_map, C_YELLOW); end; OnTimer49210: mapannounce(instance_mapname("1@orcs"), _("Kruger: In the worst case, the path to the 2nd floor could be completely blocked. For your own sake, you should be as sneaky as possible."), bc_map, C_YELLOW); end; OnTimer56310: mapannounce(instance_mapname("1@orcs"), _("Mission: Sneak in and get rid of the 'Enchanted Orcs'. Avoiding battles with other Orcs is the best way of getting into the 2nd floor."), bc_map, "0x44ffff"); donpcevent(instance_npcname("#Resurrect Monsters1")+"::OnEnable"); donpcevent(instance_npcname("#Resurrect Monsters2")+"::OnEnable"); donpcevent(instance_npcname("#Resurrect Monsters3")+"::OnEnable"); disablenpc(instance_npcname("Kruger#1-2")); end; OnTimer60000: areamonster(instance_mapname("1@orcs"), 137, 83, 143, 89, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead"); stopnpctimer(); end; } 1@orcs,168,125,0 script B1 Area 1 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("B1 Area 1")); end; OnEnable: enablenpc(instance_npcname("B1 Area 1")); areamonster(instance_mapname("1@orcs"), 103, 105, 109, 111, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead1"); end; OnTouch: warp(instance_mapname("1@orcs"), 168, 130); end; OnContinue: donpcevent(instance_npcname("B1 Area 2")+"::OnEnable"); initnpctimer(); end; OnTimer10300: mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: The Orcs here used to be my companions. They just lost their will ever since the Orc Shaman started to control them with her magic."), bc_map, "0xff4499"); end; OnTimer18700: mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: There's nothing we can do but to defeat the Orc Shaman if we want to save the remaining tribes."), bc_map, "0xff4499"); stopnpctimer(); end; } 1@orcs,89,94,0 script B1 Area 2 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("B1 Area 2")); end; OnEnable: enablenpc(instance_npcname("B1 Area 2")); areamonster(instance_mapname("1@orcs"), 32, 40, 38, 46, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead2"); end; OnTouch: warp(instance_mapname("1@orcs"), 85, 85); end; OnContinue: donpcevent(instance_npcname("B1 Area 3")+"::OnEnable"); initnpctimer(); end; OnTimer30300: mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: I saw the bodies of our tribe. It seems that the Orc Shaman used those Orcs for her rituals."), bc_map, "0xff4499"); end; OnTimer37600: mapannounce(instance_mapname("1@orcs"), _("Kruger's Whisper: ... It all has to do with me. I am responsible for this evil."), bc_map, "0xff4499"); stopnpctimer(); end; } 1@orcs,38,105,0 script B1 Area 3 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("B1 Area 3")); end; OnEnable: enablenpc(instance_npcname("B1 Area 3")); areamonster(instance_mapname("1@orcs"), 19, 177, 25, 183, _("Enchanted Orc"), ORK_WARRIOR, 1, instance_npcname("B1 Area Mobs")+"::OnMyMobDead3"); end; OnTouch: warp(instance_mapname("1@orcs"), 38, 110); end; OnContinue: donpcevent(instance_npcname("B1 Area 4")+"::OnEnable"); initnpctimer(); end; OnTimer30300: mapannounce(instance_mapname("1@orcs"), _("Please, hang in there!"), bc_map, "0xff4499"); end; OnTimer32700: mapannounce(instance_mapname("1@orcs"), _("We'll get some rest when we get to the 2nd basement after passing through here."), bc_map, "0xff4499"); stopnpctimer(); end; } 1@orcs,21,189,0 script B1 Area 4 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("B1 Area 4")); end; OnEnable: enablenpc(instance_npcname("B1 Area 4")); donpcevent(instance_npcname("#Resurrect Monsters1")+"::OnDisable"); donpcevent(instance_npcname("#Resurrect Monsters2")+"::OnDisable"); donpcevent(instance_npcname("#Resurrect Monsters3")+"::OnDisable"); donpcevent(instance_npcname("#Resurrect Monsters4")+"::OnDisable"); end; OnTouch: warp(instance_mapname("2@orcs"), 32, 171); end; } 1@orcs,1,1,0 script B1 Area Mobs FAKE_NPC,{ end; OnMyMobDead: donpcevent(instance_npcname("B1 Area 1")+"::OnEnable"); end; OnMyMobDead1: donpcevent(instance_npcname("B1 Area 1")+"::OnContinue"); end; OnMyMobDead2: donpcevent(instance_npcname("B1 Area 2")+"::OnContinue"); end; OnMyMobDead3: donpcevent(instance_npcname("B1 Area 3")+"::OnContinue"); end; } //== Orc's Memory Floor 2 ================================== 2@orcs,36,171,0 script #2Resurrect Monsters1 CLEAR_NPC,{ end; OnInstanceInit: disablenpc(instance_npcname("#2Resurrect Monsters1")); end; OnEnable: enablenpc(instance_npcname("#2Resurrect Monsters1")); monster(instance_mapname("2@orcs"), 0, 0, _("Vengeful Orc"), ORC_SKELETON, 30, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); end; OnDisable: stopnpctimer(); killmonster(instance_mapname("2@orcs"), instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("2@orcs"); .@mob_dead_num = 30 - mobcount(.@map$, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); if (.@mob_dead_num > 0) { .@mob_ran = rand(1, 30); if (.@mob_ran > 29) { monster(.@map$, 0, 0, _("Vengeful Orc"), ORC_SKELETON, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); } else if (.@mob_ran > 28 && .@mob_ran < 30) { monster(.@map$, 0, 0, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); } else if (.@mob_ran > 26 && .@mob_ran < 29) { areamonster(.@map$, 157, 112, 167, 122, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); if (rand(1, 10) == 9) mapannounce(.@map$, _("Warning: High Orcs are gathering near area 3."), bc_map, "0xff4444"); } else { areamonster(.@map$, 173, 13, 183, 23, _("High Orc"), HIGH_ORC, .@mob_dead_num, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); if (rand(1, 5) == 3) mapannounce(.@map$, _("Caution: The Forces have started to concentrate at the Shaman's Altar."), bc_map, "0x77ff77"); if (rand(1, 70) == 50) initnpctimer(); } } end; OnTimer10: mapannounce(instance_mapname("2@orcs"), _("Voice from somewhere: Foolish... Do you really think the altar would fall like that?"), bc_map, "0xff4444"); end; OnTimer4010: .@map$ = instance_mapname("2@orcs"); mapannounce(.@map$, _("[ Wraiths were summoned by an unknown power ]"), bc_map, "0x77ff77"); areamonster(.@map$, 167, 25, 177, 35, _("Wraith"), G_WRAITH, 30, instance_npcname("#2Resurrect Monsters1")+"::OnMyMobDead"); stopnpctimer(); end; } 2@orcs,36,171,0 script #2Resurrect Monsters3 CLEAR_NPC,{ end; OnInstanceInit: disablenpc(instance_npcname("#2Resurrect Monsters3")); end; OnEnable: enablenpc(instance_npcname("#2Resurrect Monsters3")); monster(instance_mapname("2@orcs"), 0, 0, _("Orc Zombie"), ORC_ZOMBIE, 15, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("2@orcs"); .@mob_dead_num = 15 - mobcount(.@map$, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead"); .@mob_ran = rand(1, 30); if (.@mob_ran > 29) { if (.@mob_dead_num > 0) { monster(.@map$, 0, 0, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead"); } } else if (.@mob_ran > 6 && .@mob_ran < 30) { if (.@mob_dead_num > 0) { areamonster(.@map$, 168, 10, 184, 26, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead"); if (rand(1, 15) == 3) mapannounce(.@map$, _("Warning: Orc Archer teams are gathering near the altar."), bc_map, "0xff4444"); } } else { if (.@mob_dead_num > 0) areamonster(.@map$, 168, 21, 184, 21, _("Orc Archer"), ORC_ARCHER, .@mob_dead_num, instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead"); } end; OnDisable: killmonster(instance_mapname("2@orcs"), instance_npcname("#2Resurrect Monsters3")+"::OnMyMobDead"); end; } 2@orcs,180,30,0 script #2Resurrect Monsters4 CLEAR_NPC,{ end; OnInstanceInit: enablenpc(instance_npcname("#2Resurrect Monsters4")); monster(instance_mapname("2@orcs"), 0, 0, _("Anopheles"), ANOPHELES, 10, instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead"); end; OnMyMobDead: .@map$ = instance_mapname("2@orcs"); .@mob_dead_num = 10 - mobcount(.@map$, instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead"); if (.@mob_dead_num > 0) monster(.@map$, 0, 0, _("Anopheles"), ANOPHELES, 1, instance_npcname("#2Resurrect Monsters4")+"::OnMyMobDead"); end; } 2@orcs,35,169,4 script Kruger#2-1 4_ORCWARRIOR,{ donpcevent(instance_npcname("Kruger#2-2")+"::OnEnable"); end; } 2@orcs,35,169,4 script Kruger#2-2 4_ORCWARRIOR,{ end; OnInstanceInit: disablenpc(instance_npcname("Kruger#2-2")); end; OnEnable: disablenpc(instance_npcname("Kruger#2-1")); enablenpc(instance_npcname("Kruger#2-2")); initnpctimer(); end; OnTimer10: mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: I'll tell you how to get to the Shaman's altar."), bc_map, C_YELLOW); end; OnTimer3510: mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: Do you see the braziers that light the path? Unseal the next zone by strengthening their flames."), bc_map, C_YELLOW); end; OnTimer10710: mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: Of course those monsters won't let you touch the braziers that easily."), bc_map, C_YELLOW); end; OnTimer16310: mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: But still, try keep the battles not too noticable so the Shaman won't guard the altar with her army squad."), bc_map, C_YELLOW); end; OnTimer21910: mapannounce(instance_mapname("2@orcs"), _("Kruger's Whisper: Only the Party Leader can strengthen the flames, so protect your leader."), bc_map, C_YELLOW); end; OnTimer23910: mapannounce(instance_mapname("2@orcs"), _("Mission: Unseal the zone by lighting the braziers. They can only be lit in a certain order, so be careful."), bc_map, "0x4444ff"); donpcevent(instance_npcname("#2Resurrect Monsters1")+"::OnEnable"); donpcevent(instance_npcname("#2Resurrect Monsters3")+"::OnEnable"); donpcevent(instance_npcname("Torch#1-1")+"::OnEnable"); disablenpc(instance_npcname("Kruger#2-2")); end; } 2@orcs,26,164,0 script Torch#1-1 CLEAR_NPC,{ if (getpartyleader(getcharid(CHAR_ID_PARTY), 2) != getcharid(CHAR_ID_CHAR)) end; progressbar(sprintf("0x%x", C_YELLOW), 5); setarray(.@id[0], atoi(charat(strnpcinfo(NPC_NAME_HIDDEN), 0)), atoi(charat(strnpcinfo(NPC_NAME_HIDDEN), 2))); if (.@id[1] == 4) donpcevent(instance_npcname("#Warp2-"+.@id[0])+"::OnEnable"); else donpcevent(instance_npcname("Torch#"+.@id[0]+"-"+(.@id[1]+1))+"::OnEnable"); initnpctimer(); disablenpc(instance_npcname(strnpcinfo(NPC_NAME))); end; OnInstanceInit: if (strnpcinfo(NPC_NAME) != "Torch#2-1" && strnpcinfo(NPC_NAME) != "Torch#3-1") disablenpc(instance_npcname(strnpcinfo(NPC_NAME))); end; OnEnable: enablenpc(instance_npcname(strnpcinfo(NPC_NAME))); end; OnTimer100: specialeffect(EF_FIREPILLAR); end; OnTimer2000: specialeffect(EF_FIREPILLARBOMB); stopnpctimer(); end; } 2@orcs,55,155,0 duplicate(Torch#1-1) Torch#1-2 CLEAR_NPC 2@orcs,108,146,0 duplicate(Torch#1-1) Torch#1-3 CLEAR_NPC 2@orcs,98,171,0 duplicate(Torch#1-1) Torch#1-4 CLEAR_NPC 2@orcs,48,100,0 script #Warp2-1 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("#Warp2-1")); end; OnEnable: .@map$ = instance_mapname("2@orcs"); monster(.@map$, 109, 156, _("Safeguard Chief"), I_HIGH_ORC, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead1"); mapannounce(.@map$, _("The Chief Orc of Safeguards: Oh!! Looks like I have company. Defeat me if you can!!"), bc_map, "0xff8888"); end; OnContinue: enablenpc(instance_npcname("#Warp2-1")); initnpctimer(); end; OnTimer10000: areamonster(instance_mapname("2@orcs"), 28, 158, 40, 170, _("Safeguard Chief"), I_HIGH_ORC, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead1"); stopnpctimer(); end; OnTouch: warp(instance_mapname("2@orcs"), 47, 93); end; } 2@orcs,35,92,0 duplicate(Torch#1-1) Torch#2-1 CLEAR_NPC 2@orcs,32,70,0 duplicate(Torch#1-1) Torch#2-2 CLEAR_NPC 2@orcs,70,31,0 duplicate(Torch#1-1) Torch#2-3 CLEAR_NPC 2@orcs,84,51,0 duplicate(Torch#1-1) Torch#2-4 CLEAR_NPC 2@orcs,101,55,0 script #Warp2-2 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("#Warp2-2")); end; OnEnable: .@map$ = instance_mapname("2@orcs"); monster(.@map$, 67, 64, _("Orc Sniper"), I_ORC_ARCHER, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead2"); mapannounce(.@map$, _("Orc Sniper: Hah! Pretty impressive that you made it this far, but your foolish little trip ends here..."), bc_map, "0xff8888"); end; OnContinue: enablenpc(instance_npcname("#Warp2-2")); initnpctimer(); end; OnTimer10000: areamonster(instance_mapname("2@orcs"), 40, 91, 52, 103, _("Orc Sniper"), I_ORC_ARCHER, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead2"); stopnpctimer(); end; OnTouch: warp(instance_mapname("2@orcs"), 107, 55); end; } 2@orcs,142,145,0 duplicate(Torch#1-1) Torch#3-1 CLEAR_NPC 2@orcs,162,134,0 duplicate(Torch#1-1) Torch#3-2 CLEAR_NPC 2@orcs,144,117,0 duplicate(Torch#1-1) Torch#3-3 CLEAR_NPC 2@orcs,136,98,0 duplicate(Torch#1-1) Torch#3-4 CLEAR_NPC 2@orcs,167,104,0 script #Warp2-3 WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("#Warp2-3")); end; OnEnable: .@map$ = instance_mapname("2@orcs"); monster(.@map$, 152, 147, _("Depraved Orc Spirit"), I_ORC_SKELETON, 1, instance_npcname("#Mobs Control")+"::OnMyMobDead3"); mapannounce(.@map$, _("Depraved Orc Spirit: I smell flesh! Hungry! Wanna try some human meat!!"), bc_map, "0xff8888"); end; OnContinue: areamonster(instance_mapname("2@orcs"), 117, 61, 129, 73, _("Depraved Orc Spirit"), I_ORC_SKELETON, 1); donpcevent(instance_npcname("#Boss Control")+"::OnEnable"); enablenpc(instance_npcname("#Warp2-3")); initnpctimer(); end; OnTimer10: mapannounce(instance_mapname("2@orcs"), _("Shaman Cargalache: Hahaha!! So, you finally made it here. The assassin you sent was just terrible. That stupid Orc is getting cold under my feet."), bc_map, C_YELLOW); end; OnTimer6810: mapannounce(instance_mapname("2@orcs"), _("Shaman Cargalache: My loyal slave, go get those intruders!"), bc_map, C_YELLOW); end; OnTimer10310: mapannounce(instance_mapname("2@orcs"), _("Depraved Orc Hero: Whatever you say, my lord."), bc_map, "0xff7777"); end; OnTimer13110: mapannounce(instance_mapname("2@orcs"), _("Caution: You have been discovered by Shaman Cargalache. Kruger's plan to assassinate the Shaman has failed. You must defeat Cargalache and find traces of Kruger."), bc_map, "0x8888ff"); stopnpctimer(); end; OnTouch: warp(instance_mapname("2@orcs"), 167, 95); end; } 2@orcs,36,171,0 script #Boss Control CLEAR_NPC,{ end; OnInstanceInit: disablenpc(instance_npcname("#Boss Control")); end; OnEnable: .@map$ = instance_mapname("2@orcs"); monster(.@map$, 185, 8, _("Shaman Cargalache"), I_ORC_LADY, 1, instance_npcname("#Boss Control")+"::OnMyMobDead"); monster(.@map$, 179, 15, _("Depraved Orc Hero"), ORK_HERO, 1); enablenpc(instance_npcname("#Boss Control")); end; OnMyMobDead: donpcevent(instance_npcname("Kruger#")+"::OnEnable"); .@map$ = instance_mapname("2@orcs"); .@mob_ran = rand(1, 5); if (.@mob_ran == 1) mapannounce(.@map$, _("Shaman Cargalache: How... How could this be... How could someone like you...!!"), bc_map, C_YELLOW); else if (.@mob_ran == 2) mapannounce(.@map$, _("Shaman Cargalache: How is it that I've been overpowered by mere humans!"), bc_map, C_YELLOW); else if (.@mob_ran == 3) mapannounce(.@map$, _("Shaman Cargalache: This... This can't be the end..."), bc_map, C_YELLOW); else if (.@mob_ran == 4) mapannounce(.@map$, _("Shaman Cargalache: I... Can't die... Yet...!"), bc_map, C_YELLOW); else mapannounce(.@map$, _("Shaman Cargalache: Defeated by these fools... It can't be happening...!"), bc_map, C_YELLOW); donpcevent(instance_npcname("#2Resurrect Monsters1")+"::OnDisable"); donpcevent(instance_npcname("#2Resurrect Monsters3")+"::OnDisable"); donpcevent(instance_npcname("#Warp Outside Orc Dun")+"::OnEnable"); end; } 2@orcs,182,8,0 script #Warp Outside Orc Dun WARPNPC,3,3,{ OnInstanceInit: disablenpc(instance_npcname("#Warp Outside Orc Dun")); end; OnEnable: enablenpc(instance_npcname("#Warp Outside Orc Dun")); end; OnTouch: warp("gef_fild10", 240, 197); end; } 2@orcs,172,13,0 script Kruger# 4_ORCWARRIOR2,{ if (yong_odun < 2) { mes("[Kruger]"); mes("*Coughing*"); mesf("%s, it's you...", strcharinfo(PC_NAME)); next(); mesf("[%s]", strcharinfo(PC_NAME)); mes("Don't move! You are wounded!"); next(); mes("[Kruger]"); mes("It's... all right.. I'm dying..."); mes("...."); mes("The Shaman? What about the Shaman?"); next(); mesf("[%s]", strcharinfo(PC_NAME)); mes("The Shaman's dead now. Who was that Shaman really?"); next(); mes("Kruger seemed to be relieved as he hears of the death of the Shaman, but you notice the bitter expression on his face."); next(); mes("[Kruger]"); mes("I.. I just couldn't kill my own daughter..."); mes("Thank you, I'm sure she's finally free from the nightmare that used to choke her soul."); next(); mes("Kruger was about to say something more, but he breathed his last breath before he could..."); yong_odun = 2; close(); } else { mes("You can see the dead body of Kruger, peacefully lying on the ground."); close(); } OnInstanceInit: disablenpc(instance_npcname("Kruger#")); end; OnEnable: enablenpc(instance_npcname("Kruger#")); end; } 2@orcs,36,171,0 script #Mobs Control CLEAR_NPC,{ end; OnMyMobDead1: donpcevent(instance_npcname("#Warp2-1")+"::OnContinue"); end; OnMyMobDead2: donpcevent(instance_npcname("#Warp2-2")+"::OnContinue"); end; OnMyMobDead3: donpcevent(instance_npcname("#Warp2-3")+"::OnContinue"); end; }