From 3844e61a6b9996de7c84420dad65e98275d927ca Mon Sep 17 00:00:00 2001 From: masao87 Date: Sat, 12 May 2012 20:49:09 +0000 Subject: - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16107 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/instances/EndlessTower.txt | 10 ++++++++-- npc/instances/NydhoggsNest.txt | 10 ++++++++-- npc/instances/OrcsMemory.txt | 10 ++++++++-- npc/instances/SealedShrine.txt | 10 ++++++++-- src/map/status.c | 9 +++++++++ 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/npc/instances/EndlessTower.txt b/npc/instances/EndlessTower.txt index 48d9bf98d..43bde99a5 100644 --- a/npc/instances/EndlessTower.txt +++ b/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?"; diff --git a/npc/instances/NydhoggsNest.txt b/npc/instances/NydhoggsNest.txt index c497cffe8..2ff7438a1 100644 --- a/npc/instances/NydhoggsNest.txt +++ b/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]"; diff --git a/npc/instances/OrcsMemory.txt b/npc/instances/OrcsMemory.txt index ef5968a97..d3b82f802 100644 --- a/npc/instances/OrcsMemory.txt +++ b/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$ + "?"; diff --git a/npc/instances/SealedShrine.txt b/npc/instances/SealedShrine.txt index 06eefab6b..9ffa659fd 100644 --- a/npc/instances/SealedShrine.txt +++ b/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]"; diff --git a/src/map/status.c b/src/map/status.c index f1878a2c2..ddb79e85f 100644 --- a/src/map/status.c +++ b/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; } -- cgit v1.2.3-60-g2f50