From 5d2225fbbf84324c1cf370bb11776b1c0a671b4a Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 30 Oct 2006 17:53:18 +0000 Subject: - Set the inf2 to encore skills of Wand of Hermode - Modified battle_calc_return_damage to take the skill id as well, now magic damage return will not work on skills tagged as ground or self targetted. - Fixed Gank not working at all with the default max steal tries setting. - Soul Drain won't work with skills tagged as self-targetted. - Improved the Suiton code so that the walk/agi penalty only applies to enemies of whoever casted the skill. - Moved the initial status_calc_pc call to when you finish loading the map, should fix equipment scripts which are based on character variables not working. - Some cleanup of the clif_parse_LoadEndAck function. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9099 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/status.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'src/map/status.c') diff --git a/src/map/status.c b/src/map/status.c index 126ee5ae1..8ee4d5780 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3150,7 +3150,7 @@ static unsigned short status_calc_agi(struct block_list *bl, struct status_chang agi -= sc->data[SC_DECREASEAGI].val2; if(sc->data[SC_QUAGMIRE].timer!=-1) agi -= sc->data[SC_QUAGMIRE].val2; - if(sc->data[SC_SUITON].timer!=-1 && sc->data[SC_SUITON].val3) // does not affect players when not in PVP nor WoE. Does not affect Ninjas. + if(sc->data[SC_SUITON].timer!=-1 && sc->data[SC_SUITON].val3) agi -= sc->data[SC_SUITON].val2; if(sc->data[SC_MARIONETTE].timer!=-1) agi -= (sc->data[SC_MARIONETTE].val3>>8)&0xFF; @@ -4919,11 +4919,12 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val val2 = 0; break; case SC_SUITON: - val2 = 0; //Agi penalty - val3 = 0; //Walk speed penalty - if (status_get_class(bl) == JOB_NINJA || - (sd && !map_flag_vs(bl->m))) + if (!val2 || (sd && (sd->class_&MAPID_UPPERMASK) == MAPID_NINJA)) { + //No penalties. + val2 = 0; //Agi penalty + val3 = 0; //Walk speed penalty break; + } val3 = 50; val2 = 3*((val1+1)/3); if (val1 > 4) val2--; -- cgit v1.2.3-70-g09d2