From fd6f241074926dbade82e9bb830d530999e01aa3 Mon Sep 17 00:00:00 2001 From: Atemo Date: Sun, 3 Jul 2016 02:18:31 +0200 Subject: [PATCH] Fixed EndlessTower.txt : officially a player can't enter in endless tower if he has changed party and he already entered in the instance with his previous party. Thanks to RagEmu/Renewal@73ec00faa5639af473e4ba9bca5df260d73aeb1e --- npc/instances/EndlessTower.txt | 61 ++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt index 756690c9dc..b298e3132f 100644 --- a/npc/instances/EndlessTower.txt +++ b/npc/instances/EndlessTower.txt @@ -214,7 +214,8 @@ e_tower,81,105,0 script Tower Protection Stone 406,{ mes "Make or join a party with more than 1 member and try again."; close; } - if (.@etower_timer == -1) { + switch(.@etower_timer) { + case -1: if (getcharid(0) == getpartyleader(.@party_id,2)) { mes "Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?"; next; @@ -251,38 +252,39 @@ e_tower,81,105,0 script Tower Protection Stone 406,{ case 3: end; } - } else if ((.@etower_timer >= 0) && (.@etower_timer2 < 2)) { - mes "If you have the dungeon generated already, you can enter it. "; - next; - switch(select("Enter the "+.@md_name$+":Return to Alberta:Cancel")) { - case 1: - callsub L_Enter,0,0; - case 2: - mes "I will move you to Alberta."; + case 0: + case 1: + if (.@etower_timer2 < 2 && getcharid(1) == etower_partyid) { + mes "If you have the dungeon generated already, you can enter it. "; + next; + switch(select("Enter the "+.@md_name$+":Return to Alberta:Cancel")) { + case 1: + callsub L_Enter,0,0; + case 2: + mes "I will move you to Alberta."; + close2; + warp "alberta",223,36; + end; + case 3: + close; + } + } else { + set .@dun_lim_time,etower_timer+604800; // 1 week + // set .@dun_lim_time2,etower_timer+14400; // 4 hours + set .@dun_cur_time,gettimetick(2); + set .@dun_ent_t,(.@dun_lim_time - .@dun_cur_time); + set .@dun_h,(.@dun_ent_t / 3600); + set .@dun_m,(.@dun_ent_t - (.@dun_h * 3600)) / 60; + set .@dun_s,.@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60)); + + mes "Due to the tower's aftereffects, you cannot enter the dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the next dungeon."; + next; + mes "It is dangerous here. Let me move you to Alberta."; close2; warp "alberta",223,36; end; - case 3: - break; } - close; - } else if ((.@etower_timer >= 0) && (.@etower_timer < 2) && (.@etower_timer2 == 2)) { - - set .@dun_lim_time,etower_timer+604800; // 1 week - set .@dun_lim_time2,etower_timer+14400; // 4 hours - set .@dun_cur_time,gettimetick(2); - set .@dun_ent_t,(.@dun_lim_time - .@dun_cur_time); - set .@dun_h,(.@dun_ent_t / 3600); - set .@dun_m,(.@dun_ent_t - (.@dun_h * 3600)) / 60; - set .@dun_s,.@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60)); - - mes "Due to the tower's aftereffects, you cannot enter the dungeon right now, " + .@dun_h + "hours " + .@dun_m + "minutes " + .@dun_s + "seconds left to enter the next dungeon."; - next; - mes "It is dangerous here. Let me move you to Alberta."; - close2; - warp "alberta",223,36; - end; - } else { + case 2: set etower_timer,0; erasequest 60200; erasequest 60201; @@ -306,6 +308,7 @@ L_Enter: mapannounce "e_tower", strcharinfo(0) +" of the party, "+ getpartyname( getcharid(1) ) +", is entering the dungeon, Endless Tower.",bc_map,"0x00ff99",FW_NORMAL,12; if (getarg(1)) { set etower_timer,gettimetick(2); + set etower_partyid, getcharid(1); setquest 60200; setquest 60201; }