diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/skill.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index f9d982922..8c755434e 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5516,9 +5516,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case NPC_DRAGONFEAR: if (flag&1) { - const enum sc_type sc[] = { SC_STUN, SC_CURSE, SC_SILENCE, SC_BLEEDING }; - i = rand()%ARRAYLENGTH(sc); - sc_start(bl,sc[i],100,skilllv,skill_get_time2(skillid,i+1)); + const enum sc_type sc[] = { SC_STUN, SC_SILENCE, SC_CONFUSION, SC_BLEEDING }; + int j; + j = i = rand()%ARRAYLENGTH(sc); + while ( !sc_start(bl,sc[i],100,skilllv,skill_get_time2(skillid,i+1)) ) { + i++; + if ( i == ARRAYLENGTH(sc) ) + i = 0; + if (i == j) + break; + } break; } case NPC_WIDEBLEEDING: |