diff options
-rw-r--r-- | Changelog-Trunk.txt | 2 | ||||
-rw-r--r-- | src/map/map.h | 28 | ||||
-rw-r--r-- | src/map/status.c | 12 |
3 files changed, 36 insertions, 6 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index f91b5635b..2bad3a9f0 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,8 @@ 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.
2006/08/16
+ * Fixed being unable to recast Adrenaline Rush to reset the duration
+ timers. [Skotlex]
* Cleaned up skill_get_range2 so that using range 0 for non-self skills
uses the caster's attack range. [Skotlex]
* Fixed AM_CALLHOMUN checking for an embryo when you have a vaporized
diff --git a/src/map/map.h b/src/map/map.h index f2403ec1e..ee8a9836e 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -465,6 +465,34 @@ struct view_data { unsigned dead_sit : 2;
};
+struct regen_data {
+
+ int flag; //Marks what stuff you may heal or not.
+ unsigned int
+ hp_tick, //tick accumulation before healing.
+ sp_tick,
+ shp_tick,
+ ssp_tick;
+
+ unsigned short
+ hp, //natural heal
+ sp,
+ s_hp, //natural heal from skills
+ s_sp;
+
+ unsigned char //Skill related regen rates.
+ hpfactor,
+ spfactor,
+ shpfactor,
+ sspfactor;
+
+ struct {
+ unsigned walk_regen :1; //Can you regen even when walking?
+ unsigned overweight :1; //Block regen due to overweight.
+ unsigned block :2; //Block regen flag (1: Hp, 2: Sp)
+ } state;
+};
+
struct party_member_data {
struct map_session_data *sd;
unsigned int hp; //For HP,x,y refreshing.
diff --git a/src/map/status.c b/src/map/status.c index 57eb86d7e..a966849a0 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3509,12 +3509,12 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change * max = sc->data[SC_ONEHAND].val2; if(sc->data[SC_ADRENALINE2].timer!=-1 && - max < sc->data[SC_ADRENALINE2].val2) - max = sc->data[SC_ADRENALINE2].val2; + max < sc->data[SC_ADRENALINE2].val3) + max = sc->data[SC_ADRENALINE2].val3; if(sc->data[SC_ADRENALINE].timer!=-1 && - max < sc->data[SC_ADRENALINE].val2) - max = sc->data[SC_ADRENALINE].val2; + max < sc->data[SC_ADRENALINE].val3) + max = sc->data[SC_ADRENALINE].val3; if(sc->data[SC_SPEARQUICKEN].timer!=-1 && max < sc->data[SC_SPEARQUICKEN].val2) @@ -5304,9 +5304,9 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val case SC_ADRENALINE2: case SC_ADRENALINE: if (val2 || !battle_config.party_skill_penalty) - val2 = 300; + val3 = 300; else - val2 = 200; + val3 = 200; break; case SC_CONCENTRATION: val2 = 5*val1; //Batk/Watk Increase |