|
@@ -7403,6 +7403,8 @@ static signed short status_calc_hit(struct block_list *bl, status_change *sc, in
|
|
hit += sc->getSCE(SC_MTF_HITFLEE)->val1;
|
|
hit += sc->getSCE(SC_MTF_HITFLEE)->val1;
|
|
if(sc->getSCE(SC_INCHITRATE))
|
|
if(sc->getSCE(SC_INCHITRATE))
|
|
hit += hit * sc->getSCE(SC_INCHITRATE)->val1/100;
|
|
hit += hit * sc->getSCE(SC_INCHITRATE)->val1/100;
|
|
|
|
+ if (sc->getSCE(SC_POWERUP))
|
|
|
|
+ hit += hit * sc->getSCE(SC_POWERUP)->val2 / 100;
|
|
if(sc->getSCE(SC_BLIND))
|
|
if(sc->getSCE(SC_BLIND))
|
|
hit -= hit * 25/100;
|
|
hit -= hit * 25/100;
|
|
if(sc->getSCE(SC_HEAT_BARREL))
|
|
if(sc->getSCE(SC_HEAT_BARREL))
|
|
@@ -7519,6 +7521,8 @@ static signed short status_calc_flee(struct block_list *bl, status_change *sc, i
|
|
// Rate value
|
|
// Rate value
|
|
if(sc->getSCE(SC_INCFLEERATE))
|
|
if(sc->getSCE(SC_INCFLEERATE))
|
|
flee += flee * sc->getSCE(SC_INCFLEERATE)->val1/100;
|
|
flee += flee * sc->getSCE(SC_INCFLEERATE)->val1/100;
|
|
|
|
+ if (sc->getSCE(SC_AGIUP))
|
|
|
|
+ flee += flee * sc->getSCE(SC_AGIUP)->val2 / 100;
|
|
if(sc->getSCE(SC_SPIDERWEB) || sc->getSCE(SC_WIDEWEB))
|
|
if(sc->getSCE(SC_SPIDERWEB) || sc->getSCE(SC_WIDEWEB))
|
|
flee -= flee * 50/100;
|
|
flee -= flee * 50/100;
|
|
if(sc->getSCE(SC_BERSERK))
|
|
if(sc->getSCE(SC_BERSERK))
|
|
@@ -8012,8 +8016,10 @@ static unsigned short status_calc_speed(struct block_list *bl, status_change *sc
|
|
speed_rate = 150;
|
|
speed_rate = 150;
|
|
|
|
|
|
// GetMoveHasteValue1()
|
|
// GetMoveHasteValue1()
|
|
- if( sc->getSCE(SC_SPEEDUP1) ) // !FIXME: used both by NPC_AGIUP and Speed Potion script
|
|
|
|
|
|
+ if( sc->getSCE(SC_SPEEDUP1) )
|
|
val = max( val, sc->getSCE(SC_SPEEDUP1)->val1 );
|
|
val = max( val, sc->getSCE(SC_SPEEDUP1)->val1 );
|
|
|
|
+ if (sc->getSCE(SC_AGIUP))
|
|
|
|
+ val = max(val, sc->getSCE(SC_AGIUP)->val1);
|
|
if( sc->getSCE(SC_INCREASEAGI) )
|
|
if( sc->getSCE(SC_INCREASEAGI) )
|
|
val = max( val, 25 );
|
|
val = max( val, 25 );
|
|
if( sc->getSCE(SC_WINDWALK) )
|
|
if( sc->getSCE(SC_WINDWALK) )
|
|
@@ -12888,13 +12894,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|
if ((val1&0xFFFF) == CG_MOONLIT)
|
|
if ((val1&0xFFFF) == CG_MOONLIT)
|
|
sc->opt3 |= OPT3_MOONLIT;
|
|
sc->opt3 |= OPT3_MOONLIT;
|
|
break;
|
|
break;
|
|
- case SC_INCATKRATE:
|
|
|
|
- // Simulate Explosion Spirits effect for NPC_POWERUP [Skotlex]
|
|
|
|
- if (bl->type != BL_MOB) {
|
|
|
|
- disable_opt_flag = true;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- break;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// On Aegis, when turning on a status change, first goes the option packet, then the sc packet.
|
|
// On Aegis, when turning on a status change, first goes the option packet, then the sc packet.
|