summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-09-03 02:50:41 +0000
committerrud0lp20 <rud0lp20@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-09-03 02:50:41 +0000
commit797e2b728c34e2037da494070913bbe2f84a91c2 (patch)
tree3bf01102da3eb9e33b1f9d52a502dace440fd7b2 /src/map/status.c
parent424936462f83dc689ae1863cba8b66308b89b416 (diff)
downloadhercules-797e2b728c34e2037da494070913bbe2f84a91c2.tar.gz
hercules-797e2b728c34e2037da494070913bbe2f84a91c2.tar.bz2
hercules-797e2b728c34e2037da494070913bbe2f84a91c2.tar.xz
hercules-797e2b728c34e2037da494070913bbe2f84a91c2.zip
Fixed bugreport:6581 applied balance update to MO_EXTREMITYFIST.
Fixed bugreport:6457 where SR_CURSEDCIRCLE is not remove when target dies. Fixed bugreport:6535 updated GN_CRAZY_WEED to its official behavior. Fixed bugreport:6592 added a missing break in Spiral Pierce skillratio at battle.c. Fixed a faulty skillratio formula of GN_CART_TORNADO. Thanks to Lighta git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16738 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/map/status.c b/src/map/status.c
index bc25b124e..3b8d19114 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -312,7 +312,7 @@ void initChangeTables(void) {
add_sc( MO_BLADESTOP , SC_BLADESTOP_WAIT );
add_sc( MO_BLADESTOP , SC_BLADESTOP );
set_sc( MO_EXPLOSIONSPIRITS , SC_EXPLOSIONSPIRITS, SI_EXPLOSIONSPIRITS, SCB_CRI|SCB_REGEN );
- set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST , SI_BLANK , SCB_REGEN );
+ set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST , SI_EXTREMITYFIST , SCB_REGEN );
add_sc( SA_MAGICROD , SC_MAGICROD );
set_sc( SA_AUTOSPELL , SC_AUTOSPELL , SI_AUTOSPELL , SCB_NONE );
set_sc( SA_FLAMELAUNCHER , SC_FIREWEAPON , SI_FIREWEAPON , SCB_ATK_ELE );
@@ -9209,7 +9209,7 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
}
break;
case SC_CURSEDCIRCLE_ATKER:
- if( sce->val3 ) // used the default area size cause there is a chance the caster could knock back and can't clear the target.
+ if( sce->val2 ) // used the default area size cause there is a chance the caster could knock back and can't clear the target.
map_foreachinrange(status_change_timer_sub, bl, battle_config.area_size,BL_CHAR, bl, sce, SC_CURSEDCIRCLE_TARGET, gettick());
break;
case SC_RAISINGDRAGON:
@@ -9224,8 +9224,15 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
}
}
break;
- case SC_CURSEDCIRCLE_TARGET:
- clif_bladestop(bl, sce->val2, 0);
+ case SC_CURSEDCIRCLE_TARGET:
+ {
+ struct block_list *src = map_id2bl(sce->val2);
+ struct status_change *sc = status_get_sc(src);
+ if( sc && sc->data[SC_CURSEDCIRCLE_ATKER] && --(sc->data[SC_CURSEDCIRCLE_ATKER]->val2) == 0 ){
+ status_change_end(src, SC_CURSEDCIRCLE_ATKER, INVALID_TIMER);
+ clif_bladestop(bl, sce->val2, 0);
+ }
+ }
break;
case SC_BLOODSUCKER:
if( sce->val2 ){
@@ -10345,6 +10352,7 @@ int status_change_timer_sub(struct block_list* bl, va_list ap)
break;
case SC_CURSEDCIRCLE_TARGET:
if( tsc && tsc->data[SC_CURSEDCIRCLE_TARGET] && tsc->data[SC_CURSEDCIRCLE_TARGET]->val2 == src->id ) {
+ clif_bladestop(bl, tsc->data[SC_CURSEDCIRCLE_TARGET]->val2, 0);
status_change_end(bl, type, INVALID_TIMER);
}
break;