diff options
-rw-r--r-- | Changelog-Trunk.txt | 4 | ||||
-rw-r--r-- | src/map/party.c | 9 | ||||
-rw-r--r-- | src/map/status.c | 6 |
3 files changed, 12 insertions, 7 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 7ea683182..50f836594 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2008/02/11 + * 'Forget me Not' no longer blocks ASPD bonuses from working or prevents + their re-casting, they are simply dispelled when the effect takes place. + * Fixed a possible crash when a player logs out before their create-party + request is accepted. [Skotlex] * Expanded the script command 'input': (bugreport:811) [FlavioJS] - two new optional arguments 'min' and 'max' - return value indicating if it's in the correct range diff --git a/src/map/party.c b/src/map/party.c index c6bfb2224..47648b889 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -108,9 +108,12 @@ int party_created(int account_id,int char_id,int fail,int party_id,char *name) struct party_data *p; sd=map_id2sd(account_id); - nullpo_retr(0, sd); - if (sd->status.char_id != char_id) - return 0; //unlikely failure... + if (!sd || sd->status.char_id != char_id) + { //Character logged off before creation ack? + if (!fail) //break up party since player could not be added to it. + intif_party_leave(party_id,account_id,char_id); + return 0; + } if(fail){ clif_party_created(sd,1); diff --git a/src/map/status.c b/src/map/status.c index 7e6585085..015ce1ddf 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3775,7 +3775,7 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change * if(!sc || !sc->count) return cap_value(aspd_rate,0,SHRT_MAX); - if(!sc->data[SC_QUAGMIRE] && !sc->data[SC_DONTFORGETME]) + if(!sc->data[SC_QUAGMIRE]) { int max = 0; if(sc->data[SC_STAR_COMFORT]) @@ -4659,7 +4659,6 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val if(sd && !pc_check_weapontype(sd,skill_get_weapontype(BS_ADRENALINE))) return 0; if (sc->data[SC_QUAGMIRE] || - sc->data[SC_DONTFORGETME] || sc->data[SC_DECREASEAGI] ) return 0; @@ -4668,7 +4667,6 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val if(sd && !pc_check_weapontype(sd,skill_get_weapontype(BS_ADRENALINE2))) return 0; if (sc->data[SC_QUAGMIRE] || - sc->data[SC_DONTFORGETME] || sc->data[SC_DECREASEAGI] ) return 0; @@ -4684,7 +4682,7 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val case SC_WINDWALK: case SC_CARTBOOST: case SC_ASSNCROS: - if (sc->data[SC_QUAGMIRE] || sc->data[SC_DONTFORGETME]) + if (sc->data[SC_QUAGMIRE]) return 0; break; case SC_CLOAKING: |