Browse Source

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

Atemo 9 years ago
parent
commit
fd6f241074
1 changed files with 32 additions and 29 deletions
  1. 32 29
      npc/instances/EndlessTower.txt

+ 32 - 29
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;
 		}