summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorprotimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-01-08 02:46:19 +0000
committerprotimus <protimus@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-01-08 02:46:19 +0000
commit6ba747880532b4278fed801896216146ac63a90d (patch)
tree94660136ac947cf5288cb5a0b4c39f9ef2de8fe5 /src/map/status.c
parent7db42789c2baba7154d7df1388942752789a2f93 (diff)
downloadhercules-6ba747880532b4278fed801896216146ac63a90d.tar.gz
hercules-6ba747880532b4278fed801896216146ac63a90d.tar.bz2
hercules-6ba747880532b4278fed801896216146ac63a90d.tar.xz
hercules-6ba747880532b4278fed801896216146ac63a90d.zip
Fixed Exceed Break to work properly.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15407 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 2565d8856..41ef41ea8 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -4288,9 +4288,12 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
if( sc == NULL )
return cap_value(speed,10,USHRT_MAX);
- if( sd && sd->ud.skilltimer != INVALID_TIMER && pc_checkskill(sd,SA_FREECAST) > 0 )
+ if( sd && sd->ud.skilltimer != INVALID_TIMER && (pc_checkskill(sd,SA_FREECAST) > 0 || sd->ud.skillid == LG_EXEEDBREAK) )
{
- speed_rate = 175 - 5 * pc_checkskill(sd,SA_FREECAST);
+ if( sd->ud.skillid == LG_EXEEDBREAK )
+ speed_rate = 100 + 60 - (sd->ud.skilllv * 10);
+ else
+ speed_rate = 175 - 5 * pc_checkskill(sd,SA_FREECAST);
}
else
{
@@ -7124,16 +7127,13 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
break;
case SC_EXEEDBREAK:
val1 *= 150; // 150 * skill_lv
- if( sd )
- { // Chars.
- struct item_data *id = sd->inventory_data[sd->equip_index[EQI_HAND_R]];
- if( id ) val1 += (id->weight/10 * id->wlv * status_get_lv(bl) / 100); // (weapon_weight * weapon_level * base_lvl)/100
- val1 += 15 * sd->status.job_level; // 15 * job_lvl
+ if( sd && sd->inventory_data[sd->equip_index[EQI_HAND_R]] ) { // Chars.
+ val1 += (sd->inventory_data[sd->equip_index[EQI_HAND_R]]->weight/10 * sd->inventory_data[sd->equip_index[EQI_HAND_R]]->wlv * status_get_lv(bl) / 100);
+ val1 += 15 * (sd ? sd->status.job_level:50) + 100;
}
else // Mobs
val1 += (400 * status_get_lv(bl) / 100) + (15 * (status_get_lv(bl) / 2)); // About 1138% at mob_lvl 99. Is an aproximation to a standard weapon. [pakpil]
break;
-
case SC_PRESTIGE: // Bassed on suggested formula in iRO Wiki and some test, still need more test. [pakpil]
val2 = ((status->int_ + status->luk) / 6) + 5; // Chance to evade magic damage.
val1 *= 15; // Defence added