summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorJedzkie <jedzkie13@rocketmail.com>2015-11-22 12:31:38 +0800
committerJedzkie <jedzkie13@rocketmail.com>2015-11-22 12:31:38 +0800
commitf65e0326ac7e6faf17451d4c6d275e4fd3133cc0 (patch)
treefd1bb3ffce470848147eb123c7d845935d5975d5 /src/map/skill.c
parentbaa7e560172eb729824f4a2966c440b4ee1f0eb9 (diff)
downloadhercules-f65e0326ac7e6faf17451d4c6d275e4fd3133cc0.tar.gz
hercules-f65e0326ac7e6faf17451d4c6d275e4fd3133cc0.tar.bz2
hercules-f65e0326ac7e6faf17451d4c6d275e4fd3133cc0.tar.xz
hercules-f65e0326ac7e6faf17451d4c6d275e4fd3133cc0.zip
ItemDB Update:
- Implemented the Geffen Scrolls and Mental Potion official effects. Thanks to Kyeme. (Ref: http://herc.ws/board/topic/1125-please-implement-the-magic-scroll-mental-potion-etc/)
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 8984bf0fa..8a782fc9a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -14316,15 +14316,17 @@ struct skill_condition skill_get_requirement(struct map_session_data* sd, uint16
req.sp = cap_value(req.sp * sp_skill_rate_bonus / 100, 0, SHRT_MAX);
- if( sc ) {
- if( sc->data[SC__LAZINESS] )
+ if (sc) {
+ if (sc->data[SC__LAZINESS])
req.sp += req.sp + sc->data[SC__LAZINESS]->val1 * 10;
- if( sc->data[SC_UNLIMITED_HUMMING_VOICE] )
+ if (sc->data[SC_UNLIMITED_HUMMING_VOICE])
req.sp += req.sp * sc->data[SC_UNLIMITED_HUMMING_VOICE]->val3 / 100;
- if( sc->data[SC_RECOGNIZEDSPELL] )
+ if (sc->data[SC_RECOGNIZEDSPELL])
req.sp += req.sp / 4;
- if( sc->data[SC_TELEKINESIS_INTENSE] && skill->get_ele(skill_id, skill_lv) == ELE_GHOST)
+ if (sc->data[SC_TELEKINESIS_INTENSE] && skill->get_ele(skill_id, skill_lv) == ELE_GHOST)
req.sp -= req.sp * sc->data[SC_TELEKINESIS_INTENSE]->val2 / 100;
+ if (sc->data[SC_TARGET_ASPD])
+ req.sp -= req.sp * sc->data[SC_TARGET_ASPD]->val1 / 100;
}
req.zeny = skill->dbs->db[idx].zeny[skill_lv-1];
@@ -14739,6 +14741,8 @@ int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, uint16
VARCAST_REDUCTION(50);
}
}
+ if (sc->data[SC_MYSTICSCROLL])
+ VARCAST_REDUCTION(sc->data[SC_MYSTICSCROLL]->val1);
// Fixed cast reduction bonuses
if( sc->data[SC__LAZINESS] )
fixcast_r = max(fixcast_r, sc->data[SC__LAZINESS]->val2);