Updates Poisonous Smoke behavior (#6263)
* Fixes #6199. * Adjusts the interval to every 2 seconds. * Adjusts the success rate to 50%. * Fixes the Poison Weapon effect not applying the 'enemy' status to those inside of Poisonous Smoke. * Venom Bleed should only be active for 15 seconds, not 5 minutes like the rest of the poisons. * Pyrexia will now cancel skill cast on each damage input. Thanks to @Everade!
This commit is contained in:
parent
c01c673313
commit
4aba94ca01
@ -20163,7 +20163,11 @@ Body:
|
||||
Time: 240000
|
||||
- Level: 5
|
||||
Time: 300000
|
||||
Duration2: 300000
|
||||
Duration2:
|
||||
- Level: 1
|
||||
Time: 15000
|
||||
- Level: 2
|
||||
Time: 300000
|
||||
Requires:
|
||||
SpCost:
|
||||
- Level: 1
|
||||
@ -20342,7 +20346,7 @@ Body:
|
||||
Unit:
|
||||
Id: Poisonsmoke
|
||||
Layout: 2
|
||||
Interval: 1000
|
||||
Interval: 2000
|
||||
Target: Enemy
|
||||
Flag:
|
||||
NoOverlap: true
|
||||
|
@ -1778,7 +1778,7 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
|
||||
if (sc->data[SC_POISONINGWEAPON] && flag&BF_SHORT && (skill_id == 0 || skill_id == GC_VENOMPRESSURE) && damage > 0) {
|
||||
damage += damage * 10 / 100;
|
||||
if (rnd() % 100 < sc->data[SC_POISONINGWEAPON]->val3)
|
||||
sc_start4(src, bl, (sc_type)sc->data[SC_POISONINGWEAPON]->val2, 100, sc->data[SC_POISONINGWEAPON]->val1, 0, 1, 0, skill_get_time2(GC_POISONINGWEAPON, 1));
|
||||
sc_start4(src, bl, (sc_type)sc->data[SC_POISONINGWEAPON]->val2, 100, sc->data[SC_POISONINGWEAPON]->val1, 0, 1, 0, (sc->data[SC_POISONINGWEAPON]->val2 == SC_VENOMBLEED ? skill_get_time2(GC_POISONINGWEAPON, 1) : skill_get_time2(GC_POISONINGWEAPON, 2)));
|
||||
}
|
||||
|
||||
if( sc->data[SC__DEADLYINFECT] && (flag&(BF_SHORT|BF_MAGIC)) == BF_SHORT && damage > 0 && rnd()%100 < 30 + 10 * sc->data[SC__DEADLYINFECT]->val1 )
|
||||
|
@ -15713,8 +15713,8 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, t_t
|
||||
break;
|
||||
|
||||
case UNT_POISONSMOKE:
|
||||
if( battle_check_target(ss,bl,BCT_ENEMY) > 0 && !(tsc && tsc->data[sg->val2]) && rnd()%100 < 20 )
|
||||
sc_start(ss,bl,(sc_type)sg->val2,100,sg->val3,skill_get_time2(GC_POISONINGWEAPON, 1));
|
||||
if( battle_check_target(ss,bl,BCT_ENEMY) > 0 && !(tsc && tsc->data[sg->val2]) && rnd()%100 < 50 )
|
||||
sc_start4(ss,bl,(sc_type)sg->val2,100,sg->val3,0,1,0,skill_get_time2(GC_POISONINGWEAPON, 1));
|
||||
break;
|
||||
|
||||
case UNT_EPICLESIS:
|
||||
|
@ -13240,6 +13240,7 @@ TIMER_FUNC(status_change_timer){
|
||||
map_freeblock_lock();
|
||||
dounlock = true;
|
||||
status_fix_damage(bl, bl, 100, clif_damage(bl, bl, tick, status->amotion, status->dmotion + 500, 100, 1, DMG_NORMAL, 0, false),0);
|
||||
unit_skillcastcancel(bl, 2);
|
||||
}
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user