diff options
author | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-03-09 04:41:56 +0000 |
---|---|---|
committer | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2005-03-09 04:41:56 +0000 |
commit | 7409a0407e1ff25c8dc25d9c407d3c837f342af1 (patch) | |
tree | f0dfaba08553eb6b38513fb2f39d6e1a9ed4ce2e /src/map | |
parent | 31b4ff7d407e02952ad6fee1fd44796249a78342 (diff) | |
download | hercules-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.c | 5 | ||||
-rw-r--r-- | src/map/status.c | 4 |
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; |