summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-26 18:26:51 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-06-26 18:26:51 +0000
commit3396bad1320df4d59a0806a41fafaf99d7b4c9d6 (patch)
tree861c7ecf114a1491de5c60dd23796630907a2b2c /src/map/status.c
parentbab077c56d3f89cc65bb0b00e10046ae8bdaa83a (diff)
downloadhercules-3396bad1320df4d59a0806a41fafaf99d7b4c9d6.tar.gz
hercules-3396bad1320df4d59a0806a41fafaf99d7b4c9d6.tar.bz2
hercules-3396bad1320df4d59a0806a41fafaf99d7b4c9d6.tar.xz
hercules-3396bad1320df4d59a0806a41fafaf99d7b4c9d6.zip
- Corrected unit id of desperado and Ground Drift using jA's info.
- Rough implementation of Ground Drift according to description and jA info. - Implemented Tatami Gaeshi using skill description and jA implementation for reference. - map_foreachinpath calls will no longer go beyond the target point, as this function is required for skills other than SharpShooting now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7344 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 774f8b60d..fcd9e5a21 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1971,14 +1971,16 @@ int status_calc_pc(struct map_session_data* sd,int first)
// Basic ASPD value
if (sd->status.weapon < MAX_WEAPON_TYPE)
- i = aspd_base[sd->status.class_][sd->status.weapon]-(status->agi*4+status->dex)*aspd_base[sd->status.class_][sd->status.weapon]/1000;
+ i = (1000 -4*status->agi -status->dex)
+ *aspd_base[sd->status.class_][sd->status.weapon]/1000;
else
- i = (
- (aspd_base[sd->status.class_][sd->weapontype1]
- -(status->agi*4+status->dex)*aspd_base[sd->status.class_][sd->weapontype1]/1000) +
- (aspd_base[sd->status.class_][sd->weapontype2]
- -(status->agi*4+status->dex)*aspd_base[sd->status.class_][sd->weapontype2]/1000)
- ) *2/3; //From what I read in rodatazone, 2/3 should be more accurate than 0.7 -> 140 / 200; [Skotlex]
+ i = ((
+ (1000 -4*status->agi -status->dex)
+ *aspd_base[sd->status.class_][sd->weapontype1]/1000
+ )+(
+ (1000 -4*status->agi -status->dex)
+ *aspd_base[sd->status.class_][sd->weapontype2]/1000
+ )) *2/3; //From what I read in rodatazone, 2/3 should be more accurate than 0.7 -> 140 / 200; [Skotlex]
status->amotion = cap_value(i,battle_config.max_aspd,2000);
@@ -2388,14 +2390,16 @@ void status_calc_bl_sub_pc(struct map_session_data *sd, unsigned long flag)
if(flag&(SCB_ASPD|SCB_AGI|SCB_DEX)) {
flag|=SCB_ASPD;
if (sd->status.weapon < MAX_WEAPON_TYPE)
- skill = aspd_base[sd->status.class_][sd->status.weapon]-(status->agi*4+status->dex)*aspd_base[sd->status.class_][sd->status.weapon]/1000;
+ skill = (1000 -4*status->agi -status->dex)
+ *aspd_base[sd->status.class_][sd->status.weapon]/1000;
else
- skill = (
- (aspd_base[sd->status.class_][sd->weapontype1]
- -(status->agi*4+status->dex)*aspd_base[sd->status.class_][sd->weapontype1]/1000) +
- (aspd_base[sd->status.class_][sd->weapontype2]
- -(status->agi*4+status->dex)*aspd_base[sd->status.class_][sd->weapontype2]/1000)
- ) *2/3; //From what I read in rodatazone, 2/3 should be more accurate than 0.7 -> 140 / 200; [Skotlex]
+ skill = ((
+ (1000 -4*status->agi -status->dex)
+ *aspd_base[sd->status.class_][sd->weapontype1]/1000
+ )+(
+ (1000 -4*status->agi -status->dex)
+ *aspd_base[sd->status.class_][sd->weapontype2]/1000
+ )) *2/3;
status->aspd_rate = status_calc_aspd_rate(&sd->bl, &sd->sc , b_status->aspd_rate);