summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-17 15:20:33 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-17 15:20:33 +0000
commit32eac40dc34fcab873a8c4ad8e5490ba2c831d6d (patch)
tree21deda5ff5b0a78f605154f508b5ae9d96c3e956 /src/map/pc.c
parent1e279e2478b89dd4cc5717f83aa9b86b99ef2048 (diff)
downloadhercules-32eac40dc34fcab873a8c4ad8e5490ba2c831d6d.tar.gz
hercules-32eac40dc34fcab873a8c4ad8e5490ba2c831d6d.tar.bz2
hercules-32eac40dc34fcab873a8c4ad8e5490ba2c831d6d.tar.xz
hercules-32eac40dc34fcab873a8c4ad8e5490ba2c831d6d.zip
Fixed Berserk
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@232 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 00832d944..8f126e101 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1626,9 +1626,9 @@ int pc_calcstatus(struct map_session_data* sd,int first)
sd->status.max_hp = sd->status.max_hp * 3;
// sd->status.hp = sd->status.hp * 3;
if(sd->status.max_hp > battle_config.max_hp) // removed negative max hp bug by Valaris
- sd->status.max_hp = battle_config.max_hp;
+ sd->status.max_hp = battle_config.max_hp;
if(sd->status.hp > battle_config.max_hp) // removed negative max hp bug by Valaris
- sd->status.hp = battle_config.max_hp;
+ sd->status.hp = battle_config.max_hp;
}
if(s_class.job == 23 && sd->status.base_level >= 99){
sd->status.max_hp = sd->status.max_hp + 2000;
@@ -1923,7 +1923,9 @@ int pc_calcstatus(struct map_session_data* sd,int first)
if(sd->sc_data[SC_BERSERK].timer!=-1) { //All Def/MDef reduced to 0 while in Berserk [DracoRPG]
sd->def = sd->def2 = 0;
sd->mdef = sd->mdef2 = 0;
- sd->flee -= sd->flee*50/100;
+ sd->flee -= sd->flee*50/100;
+ aspd_rate -= 30;
+ sd->base_atk *= 3;
}
if(sd->sc_data[SC_KEEPING].timer!=-1)
sd->def = 100;
@@ -4976,7 +4978,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
}
// 歩 いていたら足を止める
- if(sd->sc_data[SC_ENDURE].timer == -1 && !sd->special_state.infinite_endure)
+ if(sd->sc_data[SC_ENDURE].timer == -1 && sd->sc_data[SC_BERSERK].timer && !sd->special_state.infinite_endure)
pc_stop_walking(sd,3);
else if(sd->sc_data[SC_ENDURE].timer != -1 && src->type==BL_MOB) // [Celest]
if((--sd->sc_data[SC_ENDURE].val2) <= 0)
@@ -6845,7 +6847,8 @@ static int pc_natural_heal_sp(struct map_session_data *sd)
nullpo_retr(0, sd);
- if (sd->sc_data[SC_TRICKDEAD].timer != -1) // Modified by RoVeRT
+ if (sd->sc_data[SC_TRICKDEAD].timer != -1 || // Modified by RoVeRT
+ sd->sc_data[SC_BERSERK].timer != -1)
return 0;
if(pc_checkoversp(sd)) {
@@ -7010,7 +7013,8 @@ static int pc_natural_heal_sub(struct map_session_data *sd,va_list ap) {
sd->hp_sub = sd->inchealhptick = 0;
sd->sp_sub = sd->inchealsptick = 0;
}
- if((skill = pc_checkskill(sd,MO_SPIRITSRECOVERY)) > 0 && !pc_ishiding(sd) && sd->sc_data[SC_POISON].timer == -1 && sd->sc_data[SC_BERSERK].timer == -1){
+ if((skill = pc_checkskill(sd,MO_SPIRITSRECOVERY)) > 0 && !pc_ishiding(sd) &&
+ sd->sc_data[SC_POISON].timer == -1 && sd->sc_data[SC_BERSERK].timer == -1){
pc_spirit_heal_hp(sd,skill);
pc_spirit_heal_sp(sd,skill);
}