summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt4
-rw-r--r--src/map/party.c9
-rw-r--r--src/map/status.c6
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: