- Fixed being unable to recast Adrenaline Rush to reset the duration timers.

- Added structure regen_data to handle unified regen logic for bl objects. Eh... this is wip, so it isn't used yet, just the preliminar structure is there... (somehow I lost all other progress I had done on it x.x)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8323 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-08-17 00:38:19 +00:00
parent b25cc06a43
commit 6a8503e7b1
3 changed files with 36 additions and 6 deletions

View File

@ -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. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/08/16 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 * Cleaned up skill_get_range2 so that using range 0 for non-self skills
uses the caster's attack range. [Skotlex] uses the caster's attack range. [Skotlex]
* Fixed AM_CALLHOMUN checking for an embryo when you have a vaporized * Fixed AM_CALLHOMUN checking for an embryo when you have a vaporized

View File

@ -465,6 +465,34 @@ struct view_data {
unsigned dead_sit : 2; 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 party_member_data {
struct map_session_data *sd; struct map_session_data *sd;
unsigned int hp; //For HP,x,y refreshing. unsigned int hp; //For HP,x,y refreshing.

View File

@ -3509,12 +3509,12 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change *
max = sc->data[SC_ONEHAND].val2; max = sc->data[SC_ONEHAND].val2;
if(sc->data[SC_ADRENALINE2].timer!=-1 && if(sc->data[SC_ADRENALINE2].timer!=-1 &&
max < sc->data[SC_ADRENALINE2].val2) max < sc->data[SC_ADRENALINE2].val3)
max = sc->data[SC_ADRENALINE2].val2; max = sc->data[SC_ADRENALINE2].val3;
if(sc->data[SC_ADRENALINE].timer!=-1 && if(sc->data[SC_ADRENALINE].timer!=-1 &&
max < sc->data[SC_ADRENALINE].val2) max < sc->data[SC_ADRENALINE].val3)
max = sc->data[SC_ADRENALINE].val2; max = sc->data[SC_ADRENALINE].val3;
if(sc->data[SC_SPEARQUICKEN].timer!=-1 && if(sc->data[SC_SPEARQUICKEN].timer!=-1 &&
max < sc->data[SC_SPEARQUICKEN].val2) 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_ADRENALINE2:
case SC_ADRENALINE: case SC_ADRENALINE:
if (val2 || !battle_config.party_skill_penalty) if (val2 || !battle_config.party_skill_penalty)
val2 = 300; val3 = 300;
else else
val2 = 200; val3 = 200;
break; break;
case SC_CONCENTRATION: case SC_CONCENTRATION:
val2 = 5*val1; //Batk/Watk Increase val2 = 5*val1; //Batk/Watk Increase