Browse Source

- Added an extra check to all instance script if there are actually 2 Players online in the Party to be able to enter the Dungeon. bugreport:3970
- Added a few new statuses to not disappear upon death. bugreport:2652


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16107 54d463be-8e91-2dee-dedb-b68131a5f0ec

masao87 13 năm trước cách đây
mục cha
commit
bf1f8a237f

+ 8 - 2
npc/instances/EndlessTower.txt

@@ -210,7 +210,7 @@ e_tower,81,105,0	script	Tower Protection Stone	406,{
 	set .@md_name$,"Endless Tower";
 	set .@p_name2$,strcharinfo(0);
 
-	getpartymember(.@party_id);
+	getpartymember(.@party_id),1;
 	set .@partymembercount,$@partymembercount;
 	copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount;
 
@@ -225,7 +225,13 @@ e_tower,81,105,0	script	Tower Protection Stone	406,{
 	set .@dun_m,(.@dun_ent_t - (.@dun_h * 3600)) / 60;
 	set .@dun_s,.@dun_ent_t - ((.@dun_h * 3600) + (.@dun_m * 60));
 
-	if ((.@party_id > 0) && (.@partymembercount > 1)) {
+	for(set .@i,0; .@i < .@partymembercount; set .@i,.@i+1){
+		if(isloggedin($@partymemberaid[.@i],$@partymembercid[.@i])){
+			set .@loggedin,.@loggedin+1;
+		}
+	}
+
+	if ((.@party_id > 0) && (.@partymembercount > 1) && (.@loggedin > 1)) {
 		if (.@etower_timer == -1) {
 			if (.@ins_mas == getcharid(0)) {
 				mes "Confirmed the party has been made. Would you like to reserve entrance to the Endless Tower?";

+ 8 - 2
npc/instances/NydhoggsNest.txt

@@ -127,11 +127,17 @@ nyd_dun02,100,201,3	script	Yggdrasil Gatekeeper	111,8,8,{
 				set .@leader,getpartyleader(.@party,2);
 				set .@md_name$,"Nidhoggur's Nest";
 
-				getpartymember(.@party);
+				getpartymember(.@party),1;
 				set .@partymembercount,$@partymembercount;
 				copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount;
 
-				if ((.@party > 0) && ((.@partymembercount > 1)) && (.@leader == getcharid(0))) {
+				for(set .@i,0; .@i < .@partymembercount; set .@i,.@i+1){
+					if(isloggedin($@partymemberaid[.@i],$@partymembercid[.@i])){
+						set .@loggedin,.@loggedin+1;
+					}
+				}
+
+				if ((.@party > 0) && ((.@partymembercount > 1)) && (.@leader == getcharid(0)) && (.@loggedin > 1)) {
 					set .@instance, instance_create(.@md_name$, .@party);
 					if (.@instance < 0) {
 						mes "[Yggdrasil Gatekeeper]";

+ 8 - 2
npc/instances/OrcsMemory.txt

@@ -43,12 +43,18 @@ gef_fild10,242,202,0	script	Dimensional Gorge Piece	406,{
 	set .@p_reader$,strcharinfo(0);
 	set .@md_name$,"Orc's Memory";
 
-	getpartymember(.@party_id);
+	getpartymember(.@party_id),1;
 	set .@partymembercount,$@partymembercount;
 	copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount;
+	
+	for(set .@i,0; .@i < .@partymembercount; set .@i,.@i+1){
+		if(isloggedin($@partymemberaid[.@i],$@partymembercid[.@i])){
+			set .@loggedin,.@loggedin+1;
+		}
+	}
 
 	set .@orctime,checkquest(12059,PLAYTIME);
-	if ((.@party_id > 0) && ((.@partymembercount > 1))) {
+	if ((.@party_id > 0) && (.@partymembercount > 1) && (.@loggedin > 1)) {
 		if (.@orctime == -1) {
 			if (.@ins_mas == getcharid(0)) {
 				mes "Party status confirmed. Would you like to book entrance to the " + .@md_name$ + "?";

+ 8 - 2
npc/instances/SealedShrine.txt

@@ -91,7 +91,7 @@ monk_test,309,146,3	script	Friar Patrick#edq	412,{
 		if (BaseLevel > 74) {
 
 			set .@party_id,getcharid(1);
-			getpartymember(.@party_id);
+			getpartymember(.@party_id),1;
 			set .@partymembercount,$@partymembercount;
 			copyarray .@partymembername$[0],$@partymembername$[0],.@partymembercount;
 
@@ -104,8 +104,14 @@ monk_test,309,146,3	script	Friar Patrick#edq	412,{
 			// Two hour play limit
 			//set .@ins_bapho_check2,checkquest(3045,PLAYTIME);
 
+			for(set .@i,0; .@i < .@partymembercount; set .@i,.@i+1){
+				if(isloggedin($@partymemberaid[.@i],$@partymembercid[.@i])){
+					set .@loggedin,.@loggedin+1;
+				}
+			}
+
 			if (.@ins_bapho_check == -1) {
-				if ((getpartyleader(.@party_id,2) == getcharid(0)) && (.@partymembercount > 1)) {
+				if ((getpartyleader(.@party_id,2) == getcharid(0)) && (.@partymembercount > 1) && (.@loggedin > 1)) {
 					set .@instance, instance_create("Sealed Catacombs", .@party_id);
 					if (.@instance < 0) {
 						mes "[Friar Patrick]";

+ 9 - 0
src/map/status.c

@@ -8266,6 +8266,15 @@ int status_change_clear(struct block_list* bl, int type)
 		case SC_FOOD_DEX_CASH:
 		case SC_FOOD_INT_CASH:
 		case SC_FOOD_LUK_CASH:
+		case SC_DEF_RATE:
+		case SC_MDEF_RATE:
+		case SC_INCHEALRATE:
+		case SC_INCFLEE2:
+		case SC_INCHIT:
+		case SC_ATKPOTION:
+		case SC_MATKPOTION:
+		case SC_S_LIFEPOTION:
+		case SC_L_LIFEPOTION:
 			continue;
 
 		}