summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormasao87 <masao87@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-12 20:49:09 +0000
committermasao87 <masao87@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-12 20:49:09 +0000
commit3844e61a6b9996de7c84420dad65e98275d927ca (patch)
treee3835dd3ac35afa85355e1b7b5dcda64ea95fce2
parent17871cc1006e39afda8ce6a0ace4231fea42320b (diff)
downloadhercules-3844e61a6b9996de7c84420dad65e98275d927ca.tar.gz
hercules-3844e61a6b9996de7c84420dad65e98275d927ca.tar.bz2
hercules-3844e61a6b9996de7c84420dad65e98275d927ca.tar.xz
hercules-3844e61a6b9996de7c84420dad65e98275d927ca.zip
- 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
-rw-r--r--npc/instances/EndlessTower.txt10
-rw-r--r--npc/instances/NydhoggsNest.txt10
-rw-r--r--npc/instances/OrcsMemory.txt10
-rw-r--r--npc/instances/SealedShrine.txt10
-rw-r--r--src/map/status.c9
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;
}