summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-03-09 04:41:56 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2005-03-09 04:41:56 +0000
commit7409a0407e1ff25c8dc25d9c407d3c837f342af1 (patch)
treef0dfaba08553eb6b38513fb2f39d6e1a9ed4ce2e /src/map
parent31b4ff7d407e02952ad6fee1fd44796249a78342 (diff)
downloadhercules-7409a0407e1ff25c8dc25d9c407d3c837f342af1.tar.gz
hercules-7409a0407e1ff25c8dc25d9c407d3c837f342af1.tar.bz2
hercules-7409a0407e1ff25c8dc25d9c407d3c837f342af1.tar.xz
hercules-7409a0407e1ff25c8dc25d9c407d3c837f342af1.zip
* Added HP and SP rate underflow checking
* Added stop auto attacking if no arrows were equipped git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@1219 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/pc.c5
-rw-r--r--src/map/status.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 866ef969c..70b6449fc 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -3694,6 +3694,11 @@ int pc_attack_timer(int tid,unsigned int tick,int id,int data)
}
}
+ if(sd->status.weapon == 11 && sd->equip_index[10] < 0) {
+ clif_arrow_fail(sd,0);
+ return 0;
+ }
+
dist = distance(sd->bl.x,sd->bl.y,bl->x,bl->y);
range = sd->attackrange;
if(sd->status.weapon != 11) range++;
diff --git a/src/map/status.c b/src/map/status.c
index de2efce5a..a1826265f 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -943,6 +943,8 @@ int status_calc_pc(struct map_session_data* sd,int first)
else if (s_class.upper==2)
sd->status.max_hp = sd->status.max_hp * 70/100;
+ if (sd->hprate <= 0)
+ sd->hprate = 1;
if(sd->hprate!=100)
sd->status.max_hp = sd->status.max_hp*sd->hprate/100;
@@ -968,6 +970,8 @@ int status_calc_pc(struct map_session_data* sd,int first)
sd->status.max_sp = sd->status.max_sp * 130/100;
else if (s_class.upper==2)
sd->status.max_sp = sd->status.max_sp * 70/100;
+ if (sd->sprate <= 0)
+ sd->sprate = 1;
if(sd->sprate!=100)
sd->status.max_sp = sd->status.max_sp*sd->sprate/100;