summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-17 06:11:31 +0000
committershennetsind <shennetsind@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-05-17 06:11:31 +0000
commitb2431685db5f9f045a8d949ffbb523230501ec60 (patch)
tree4955fe08340bac253fc1a3b8a5fb9b7dddf07a0e
parentbd4755bc50e9591480dd05587031b33139dd4561 (diff)
downloadhercules-b2431685db5f9f045a8d949ffbb523230501ec60.tar.gz
hercules-b2431685db5f9f045a8d949ffbb523230501ec60.tar.bz2
hercules-b2431685db5f9f045a8d949ffbb523230501ec60.tar.xz
hercules-b2431685db5f9f045a8d949ffbb523230501ec60.zip
Fixed bugreport:5755 Howling of Mandragora cast time effect should now work properly. Also fixed Arch Bishop laudra ramus ability to remove howling of mandragora effect.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16117 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/skill.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index a2de76a0a..44e28860f 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -7447,11 +7447,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
break;
case AB_LAUDAAGNUS:
- if( flag&1 || sd == NULL )
- {
+ if( flag&1 || sd == NULL ) {
if( (tsc && (tsc->data[SC_FREEZE] || tsc->data[SC_STONE] ||
- tsc->data[SC_BLIND]))&& (rnd()%100 < 30+5*skilllv) )
- {
+ tsc->data[SC_BLIND]))&& (rnd()%100 < 30+5*skilllv) ) {
status_change_end(bl, SC_FREEZE, INVALID_TIMER);
status_change_end(bl, SC_STONE, INVALID_TIMER);
status_change_end(bl, SC_BLIND, INVALID_TIMER);
@@ -7459,27 +7457,24 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
// Success rate only applies to the curing effect and not stat bonus.
clif_skill_nodamage(bl, bl, skillid, skilllv,
sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv)));
- }
- else if( sd )
+ } else if( sd )
party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv),
src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
break;
case AB_LAUDARAMUS:
- if( flag&1 || sd == NULL )
- {
- if( (tsc && (tsc->data[SC_SLEEP] || tsc->data[SC_STUN] ||
- tsc->data[SC_SILENCE]))&& (rnd()%100 < 30+5*skilllv) )
- {
+ if( flag&1 || sd == NULL ) {
+ if( (tsc && (tsc->data[SC_SLEEP] || tsc->data[SC_STUN] || tsc->data[SC_MANDRAGORA] ||
+ tsc->data[SC_SILENCE]))&& (rnd()%100 < 30+5*skilllv) ) {
status_change_end(bl, SC_SLEEP, INVALID_TIMER);
status_change_end(bl, SC_STUN, INVALID_TIMER);
+ status_change_end(bl, SC_MANDRAGORA, INVALID_TIMER);
status_change_end(bl, SC_SILENCE, INVALID_TIMER);
}
clif_skill_nodamage(bl, bl, skillid, skilllv,
sc_start(bl, type, 100, skilllv, skill_get_time(skillid, skilllv)));
//Success rate only applies to the curing effect and not stat bonus.
- }
- else if( sd )
+ } else if( sd )
party_foreachsamemap(skill_area_sub, sd, skill_get_splash(skillid, skilllv),
src, skillid, skilllv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
break;
@@ -12946,6 +12941,8 @@ int skill_castfix_sc (struct block_list *bl, int time, int skill_id, int skill_l
**/
if( sc->data[SC_SECRAMENT] )
fixed -= fixed * sc->data[SC_SECRAMENT]->val2 / 100;
+ if( sc->data[SC_MANDRAGORA] && (skill_id >= SM_BASH && skill_id <= RETURN_TO_ELDICASTES) )
+ fixed += 2000;
#endif
}
#ifdef RENEWAL_CAST