|
@@ -3,7 +3,7 @@
|
|
|
//===== By: ==================================================
|
|
|
//= L0ne_W0lf
|
|
|
//===== Current Version: =====================================
|
|
|
-//= 1.5
|
|
|
+//= 1.6
|
|
|
//===== Compatible With: =====================================
|
|
|
//= eAthena SVN
|
|
|
//===== Description: =========================================
|
|
@@ -16,6 +16,9 @@
|
|
|
//= 1.3 Fixed cutins not being removed. (bugreport:4117) [L0ne_w0lf]
|
|
|
//= 1.4 Fixed some typos. [Gepard]
|
|
|
//= 1.5 Fixed not being able to enter dungeon for the first two hours.
|
|
|
+//= 1.6 Players should be able to re-take the quest after 12 hours now.
|
|
|
+//= Changed quest 3046 to 3040. This is the correct quest id.
|
|
|
+//= Removed checking quest 3045, unofficial check.
|
|
|
//============================================================
|
|
|
|
|
|
// Sealed Catacomb Entrance
|
|
@@ -96,116 +99,114 @@ monk_test,309,146,3 script Friar Patrick#edq 412,{
|
|
|
next;
|
|
|
|
|
|
// 12 hour cooldown
|
|
|
- set .@ins_bapho_check,checkquest(3046,PLAYTIME);
|
|
|
+ set .@ins_bapho_check,checkquest(3040,PLAYTIME);
|
|
|
// Two hour play limit
|
|
|
- set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
|
|
|
-
|
|
|
- if (.@ins_bapho_check < 2) {
|
|
|
- if (.@ins_bapho_check == -1) {
|
|
|
- if ((getpartyleader(.@party_id,2) == getcharid(0)) && (.@partymembercount > 1)) {
|
|
|
- set .@instance, instance_create("Sealed Catacombs", .@party_id);
|
|
|
- if (.@instance < 0) {
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "Party name is "+getpartyname(.@party_id)+"...";
|
|
|
- mes "Name of the leader is "+.@partymembername$[0]+"...";
|
|
|
- mes "Umm... But it seems that there is a problem here... I'll check quickly. Please wait.";
|
|
|
- }
|
|
|
- else {
|
|
|
-
|
|
|
- for( set .@i, 1; .@i <= 2; set .@i, .@i + 1 ) {
|
|
|
- if( instance_attachmap("" + .@i + "@cata", .@instance) == "" )
|
|
|
- break;
|
|
|
- }
|
|
|
- if( .@i < 2 ) {
|
|
|
- instance_destroy(.@instance);
|
|
|
- close;
|
|
|
- }
|
|
|
-
|
|
|
- instance_attach(.@instance);
|
|
|
- instance_set_timeout 14400,300,.@instance;
|
|
|
- instance_init(.@instance);
|
|
|
-
|
|
|
- // First Floor
|
|
|
- disablenpc instance_npcname("Ancient Hero's Soul#1F", instance_id());
|
|
|
- disablenpc instance_npcname("ins_bapho_to_2f", instance_id());
|
|
|
-
|
|
|
- for( set .@i, 1; .@i < 13; set .@i, .@i + 1 ) {
|
|
|
- disablenpc instance_npcname("Gravestone#1F_"+.@i+"T", instance_id());
|
|
|
- disablenpc instance_npcname("Gravestone#1F_"+.@i+"F", instance_id());
|
|
|
- }
|
|
|
- for( set .@i, 1; .@i <= 12; set .@i, .@i + 1 ) {
|
|
|
- disablenpc instance_npcname("Bobbing Torch#"+.@i, instance_id());
|
|
|
- }
|
|
|
-
|
|
|
- // Second Floor
|
|
|
- disablenpc instance_npcname("ins_baphomet_1f_timer", instance_id());
|
|
|
- disablenpc instance_npcname("ins_2f_enter_broad", instance_id());
|
|
|
- disablenpc instance_npcname("Magical Seal#0", instance_id());
|
|
|
- disablenpc instance_npcname("Magical Seal#2", instance_id());
|
|
|
- disablenpc instance_npcname("Magical Seal#4", instance_id());
|
|
|
- disablenpc instance_npcname("Magical Seal#8", instance_id());
|
|
|
- disablenpc instance_npcname("Magical Seal#10", instance_id());
|
|
|
- disablenpc instance_npcname("Ancient Hero's Soul#2F", instance_id());
|
|
|
- disablenpc instance_npcname("control_baphomet", instance_id());
|
|
|
- disablenpc instance_npcname("ins_2f_hero_broad2", instance_id());
|
|
|
- disablenpc instance_npcname("2f_callmon_pattern_c", instance_id());
|
|
|
- disablenpc instance_npcname("2f_callmon_pattern", instance_id());
|
|
|
- disablenpc instance_npcname("ins_2f_hero_pattern_c", instance_id());
|
|
|
- disablenpc instance_npcname("ins_2f_hero_pattern", instance_id());
|
|
|
-
|
|
|
- // Pick proper grave
|
|
|
- donpcevent instance_npcname("ins_baphomet_lotto", instance_id())+"::OnEnable";
|
|
|
-
|
|
|
- // Spawn monsters.
|
|
|
- donpcevent instance_npcname("ins_1f_spawn_mobs", instance_id())+"::OnEnable";
|
|
|
-
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "Party name is "+getpartyname(.@party_id)+"...";
|
|
|
- mes "Name of the leader is "+.@partymembername$[0]+"...";
|
|
|
- mes "Okay... I'll adjust the shrine's seal so that you and your group can enter.";
|
|
|
- next;
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "You will see a sign when the seal has broken. Please wait until the sign appears...";
|
|
|
- next;
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "When you see the sign, put your hands on the gravestone... Then you can move inside.";
|
|
|
- next;
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "One thing that you should remember is... Anyone who enters this shrine will be cursed by Baphomet and cannot enter or leave while they are cursed.";
|
|
|
- next;
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "And one more thing... In this cursed area, some skills, which are protected by outer physical power are prohibited by the effect of the seal.";
|
|
|
- next;
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "For example, the skills like ^0000FFSafety Wall and Assumptio^000000... So you'd better prepare before entering the shrine.";
|
|
|
- }
|
|
|
+ //set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
|
|
|
+
|
|
|
+ if (.@ins_bapho_check == -1) {
|
|
|
+ if ((getpartyleader(.@party_id,2) == getcharid(0)) && (.@partymembercount > 1)) {
|
|
|
+ set .@instance, instance_create("Sealed Catacombs", .@party_id);
|
|
|
+ if (.@instance < 0) {
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "Party name is "+getpartyname(.@party_id)+"...";
|
|
|
+ mes "Name of the leader is "+.@partymembername$[0]+"...";
|
|
|
+ mes "Umm... But it seems that there is a problem here... I'll check quickly. Please wait.";
|
|
|
}
|
|
|
else {
|
|
|
+
|
|
|
+ for( set .@i, 1; .@i <= 2; set .@i, .@i + 1 ) {
|
|
|
+ if( instance_attachmap("" + .@i + "@cata", .@instance) == "" )
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if( .@i < 2 ) {
|
|
|
+ instance_destroy(.@instance);
|
|
|
+ close;
|
|
|
+ }
|
|
|
+
|
|
|
+ instance_attach(.@instance);
|
|
|
+ instance_set_timeout 7200,300,.@instance;
|
|
|
+ instance_init(.@instance);
|
|
|
+
|
|
|
+ // First Floor
|
|
|
+ disablenpc instance_npcname("Ancient Hero's Soul#1F", instance_id());
|
|
|
+ disablenpc instance_npcname("ins_bapho_to_2f", instance_id());
|
|
|
+
|
|
|
+ for( set .@i, 1; .@i < 13; set .@i, .@i + 1 ) {
|
|
|
+ disablenpc instance_npcname("Gravestone#1F_"+.@i+"T", instance_id());
|
|
|
+ disablenpc instance_npcname("Gravestone#1F_"+.@i+"F", instance_id());
|
|
|
+ }
|
|
|
+ for( set .@i, 1; .@i <= 12; set .@i, .@i + 1 ) {
|
|
|
+ disablenpc instance_npcname("Bobbing Torch#"+.@i, instance_id());
|
|
|
+ }
|
|
|
+
|
|
|
+ // Second Floor
|
|
|
+ disablenpc instance_npcname("ins_baphomet_1f_timer", instance_id());
|
|
|
+ disablenpc instance_npcname("ins_2f_enter_broad", instance_id());
|
|
|
+ disablenpc instance_npcname("Magical Seal#0", instance_id());
|
|
|
+ disablenpc instance_npcname("Magical Seal#2", instance_id());
|
|
|
+ disablenpc instance_npcname("Magical Seal#4", instance_id());
|
|
|
+ disablenpc instance_npcname("Magical Seal#8", instance_id());
|
|
|
+ disablenpc instance_npcname("Magical Seal#10", instance_id());
|
|
|
+ disablenpc instance_npcname("Ancient Hero's Soul#2F", instance_id());
|
|
|
+ disablenpc instance_npcname("control_baphomet", instance_id());
|
|
|
+ disablenpc instance_npcname("ins_2f_hero_broad2", instance_id());
|
|
|
+ disablenpc instance_npcname("2f_callmon_pattern_c", instance_id());
|
|
|
+ disablenpc instance_npcname("2f_callmon_pattern", instance_id());
|
|
|
+ disablenpc instance_npcname("ins_2f_hero_pattern_c", instance_id());
|
|
|
+ disablenpc instance_npcname("ins_2f_hero_pattern", instance_id());
|
|
|
+
|
|
|
+ // Pick proper grave
|
|
|
+ donpcevent instance_npcname("ins_baphomet_lotto", instance_id())+"::OnEnable";
|
|
|
+
|
|
|
+ // Spawn monsters.
|
|
|
+ donpcevent instance_npcname("ins_1f_spawn_mobs", instance_id())+"::OnEnable";
|
|
|
+
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "Party name is "+getpartyname(.@party_id)+"...";
|
|
|
+ mes "Name of the leader is "+.@partymembername$[0]+"...";
|
|
|
+ mes "Okay... I'll adjust the shrine's seal so that you and your group can enter.";
|
|
|
+ next;
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "You will see a sign when the seal has broken. Please wait until the sign appears...";
|
|
|
+ next;
|
|
|
mes "[Friar Patrick]";
|
|
|
- mes "Umm... I recognize your courage, but... I can't permit anyone to enter this place. I can only permit the leader of a party to enter first.";
|
|
|
+ mes "When you see the sign, put your hands on the gravestone... Then you can move inside.";
|
|
|
next;
|
|
|
mes "[Friar Patrick]";
|
|
|
- mes "Once the party leader is permitted, the rest of the party can enter. This is a rule of this monastery, so please understand.";
|
|
|
+ mes "One thing that you should remember is... Anyone who enters this shrine will be cursed by Baphomet and cannot enter or leave while they are cursed.";
|
|
|
+ next;
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "And one more thing... In this cursed area, some skills, which are protected by outer physical power are prohibited by the effect of the seal.";
|
|
|
+ next;
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "For example, the skills like ^0000FFSafety Wall and Assumptio^000000... So you'd better prepare before entering the shrine.";
|
|
|
}
|
|
|
}
|
|
|
- else if ((.@ins_bapho_check == 0) || (.@ins_bapho_check == 1)) {
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "It seems you have entered this shrine recently... You cannot reenter because Baphomet's Curse still remains. Baphomet's Curse disappears only after a certain amount of time has passed.";
|
|
|
- }
|
|
|
- else if (.@ins_bapho_check == 2) {
|
|
|
- mes "[Friar Patrick]";
|
|
|
- mes "Umm... It seems that Baphomet's Curse has weakened. I can remove it now.";
|
|
|
- next;
|
|
|
+ else {
|
|
|
mes "[Friar Patrick]";
|
|
|
- mes "Haaaaaaap... Hocus Pocus Wingardium Abracadabra!!!!!";
|
|
|
+ mes "Umm... I recognize your courage, but... I can't permit anyone to enter this place. I can only permit the leader of a party to enter first.";
|
|
|
next;
|
|
|
- if (checkquest(3046)) erasequest 3046;
|
|
|
- if (checkquest(3041)) erasequest 3041;
|
|
|
- if (checkquest(3045)) erasequest 3045;
|
|
|
mes "[Friar Patrick]";
|
|
|
- mes "Huu... It's over. Now that I've released Baphomet's Curse, you can enter again.";
|
|
|
+ mes "Once the party leader is permitted, the rest of the party can enter. This is a rule of this monastery, so please understand.";
|
|
|
}
|
|
|
}
|
|
|
+ else if ((.@ins_bapho_check == 0) || (.@ins_bapho_check == 1)) {
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "It seems you have entered this shrine recently... You cannot reenter because Baphomet's Curse still remains. Baphomet's Curse disappears only after a certain amount of time has passed.";
|
|
|
+ }
|
|
|
+ else if (.@ins_bapho_check == 2) {
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "Umm... It seems that Baphomet's Curse has weakened. I can remove it now.";
|
|
|
+ next;
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "Haaaaaaap... Hocus Pocus Wingardium Abracadabra!!!!!";
|
|
|
+ next;
|
|
|
+ if (checkquest(3040)) erasequest 3040;
|
|
|
+ if (checkquest(3041)) erasequest 3041;
|
|
|
+ if (checkquest(3045)) erasequest 3045;
|
|
|
+ mes "[Friar Patrick]";
|
|
|
+ mes "Huu... It's over. Now that I've released Baphomet's Curse, you can enter again.";
|
|
|
+ }
|
|
|
}
|
|
|
else {
|
|
|
mes "[Friar Patrick]";
|
|
@@ -248,7 +249,6 @@ monk_test,309,146,3 script Friar Patrick#edq 412,{
|
|
|
}
|
|
|
|
|
|
monk_test,306,151,3 script Grave of Baphomet#edq 111,{
|
|
|
- if (checkquest(3040)>=0) erasequest 3040;
|
|
|
if (countitem(6002) > 0)
|
|
|
delitem 6002,countitem(6002); //Token_Of_Apostle
|
|
|
mes "This gravestone has a carving of a wicked devil with large horns. It arouses an ominous feeling.";
|
|
@@ -265,11 +265,11 @@ monk_test,306,151,3 script Grave of Baphomet#edq 111,{
|
|
|
instance_attach(.@instance);
|
|
|
|
|
|
// 12 hour cooldown
|
|
|
- set .@ins_bapho_check,checkquest(3046,PLAYTIME);
|
|
|
+ set .@ins_bapho_check,checkquest(3040,PLAYTIME);
|
|
|
// Two hour play limit
|
|
|
- set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
|
|
|
+ //set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
|
|
|
|
|
|
- if ((.@ins_bapho_check == -1) || ((.@ins_bapho_check2 >= 0) && (.@ins_bapho_check2 < 2))) {
|
|
|
+ if (.@ins_bapho_check == -1) {
|
|
|
if (has_instance("1@cata") == "") {
|
|
|
mes "It's cold to the touch. It doesn't respond.";
|
|
|
}
|
|
@@ -284,8 +284,7 @@ monk_test,306,151,3 script Grave of Baphomet#edq 111,{
|
|
|
//else if (ret == 0) {
|
|
|
else {
|
|
|
mapannounce "monk_test","[" + strcharinfo(0) + "] member of the [" + getpartyname(.@party_id) + "] party has entered the Sealed Shrine.",bc_map,"0x00ff99";
|
|
|
- setquest 3046;
|
|
|
- setquest 3045;
|
|
|
+ if (!checkquest(3040)) setquest 3040;
|
|
|
warp "1@cata",100,224;
|
|
|
}
|
|
|
}
|
|
@@ -301,7 +300,7 @@ monk_test,306,151,3 script Grave of Baphomet#edq 111,{
|
|
|
mes "[Friar Patrick]";
|
|
|
mes "Haaaaaaap... Wingardium Leviosa Expecto Patronum !!!!!";
|
|
|
specialeffect2 EF_HOLYHIT;
|
|
|
- if (checkquest(3046)) erasequest 3046;
|
|
|
+ if (checkquest(3040)) erasequest 3040;
|
|
|
if (checkquest(3041)) erasequest 3041;
|
|
|
if (checkquest(3045)) erasequest 3045;
|
|
|
next;
|
|
@@ -2126,8 +2125,8 @@ OnTouch:
|
|
|
2@cata,80,63,4 script Ancient Hero's Soul#2F 411,{
|
|
|
cutin "ins_cata_champ_s",2;
|
|
|
if (checkquest(3041)) erasequest 3041;
|
|
|
- if (checkquest(3046)) erasequest 3046;
|
|
|
- setquest 3046;
|
|
|
+ if (checkquest(3040)) erasequest 3040;
|
|
|
+ setquest 3040;
|
|
|
mes "[Ancient Hero's Soul]";
|
|
|
mes "Good job, my descendants... You've finished the long-cherished task that me and my bretheren could not complete.";
|
|
|
next;
|
|
@@ -2212,7 +2211,7 @@ OnDisable:
|
|
|
OnMyMobDead:
|
|
|
if (mobcount("2@cata",instance_npcname("control_baphomet", instance_id())+"::OnMyMobDead") < 1) {
|
|
|
set 'ins_baphomet,7;
|
|
|
- setquest 3046;
|
|
|
+ setquest 3040;
|
|
|
erasequest 3041;
|
|
|
instance_announce 0, "Baphomet : No! Nonono! How dare these weaklings defeat me!... No!!...",bc_map,"0xdb7093";
|
|
|
enablenpc instance_npcname("Ancient Hero's Soul#2F", instance_id());
|