|
@@ -461,7 +461,7 @@ void initChangeTables(void)
|
|
|
add_sc( SL_STUN , SC_STUN );
|
|
|
set_sc( SL_SWOO , SC_SWOO , SI_SWOO , SCB_SPEED );
|
|
|
set_sc( SL_SKE , SC_SKE , SI_BLANK , SCB_BATK|SCB_WATK|SCB_DEF|SCB_DEF2 );
|
|
|
- set_sc( SL_SKA , SC_SKA , SI_BLANK , SCB_DEF|SCB_MDEF|SCB_SPEED|SCB_ASPD );
|
|
|
+ set_sc( SL_SKA , SC_SKA , SI_BLANK , SCB_DEF2|SCB_MDEF2|SCB_SPEED|SCB_ASPD );
|
|
|
set_sc( SL_SMA , SC_SMA , SI_SMA , SCB_NONE );
|
|
|
set_sc( SM_SELFPROVOKE , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK );
|
|
|
set_sc( ST_PRESERVE , SC_PRESERVE , SI_PRESERVE , SCB_NONE );
|
|
@@ -5940,8 +5940,6 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc,
|
|
|
|
|
|
if(sc->data[SC_BERSERK])
|
|
|
return 0;
|
|
|
- if(sc->data[SC_SKA])
|
|
|
- return sc->data[SC_SKA]->val3;
|
|
|
if(sc->data[SC_BARRIER])
|
|
|
return 100;
|
|
|
if(sc->data[SC_KEEPING])
|
|
@@ -6046,7 +6044,10 @@ static signed short status_calc_def2(struct block_list *bl, struct status_change
|
|
|
def2 += sc->data[SC_SUN_COMFORT]->val2;
|
|
|
if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 1 )
|
|
|
def2 += (5 + sc->data[SC_BANDING]->val1) * sc->data[SC_BANDING]->val2;
|
|
|
-
|
|
|
+#ifdef RENEWAL
|
|
|
+ if (sc->data[SC_SKA])
|
|
|
+ def2 += 80;
|
|
|
+#endif
|
|
|
if(sc->data[SC_ANGELUS])
|
|
|
#ifdef RENEWAL /// The VIT stat bonus is boosted by angelus [RENEWAL]
|
|
|
def2 += status_get_vit(bl) / 2 * sc->data[SC_ANGELUS]->val2/100;
|
|
@@ -9531,11 +9532,6 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|
|
val2 = 20*val1; // matk increase.
|
|
|
val3 = 12*val1; // mdef2 reduction.
|
|
|
break;
|
|
|
- case SC_SKA:
|
|
|
- val2 = tick/1000;
|
|
|
- val3 = rnd()%100; // Def changes randomly every second...
|
|
|
- tick_time = 1000; // [GodLesZ] tick time
|
|
|
- break;
|
|
|
case SC_JAILED:
|
|
|
// Val1 is duration in minutes. Use INT_MAX to specify 'unlimited' time.
|
|
|
tick = val1>0?1000:250;
|
|
@@ -11760,7 +11756,10 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|
|
case SC_STEELBODY:
|
|
|
case SC_SKA:
|
|
|
sc->opt3 &= ~OPT3_STEELBODY;
|
|
|
- opt_flag = 0;
|
|
|
+ if (type == SC_SKA)
|
|
|
+ opt_flag = 8;
|
|
|
+ else
|
|
|
+ opt_flag = 0;
|
|
|
break;
|
|
|
case SC_BLADESTOP:
|
|
|
sc->opt3 &= ~OPT3_BLADESTOP;
|
|
@@ -11939,14 +11938,6 @@ int status_change_timer(int tid, unsigned int tick, int id, intptr_t data)
|
|
|
return 0;
|
|
|
break;
|
|
|
|
|
|
- case SC_SKA:
|
|
|
- if(--(sce->val2)>0) {
|
|
|
- sce->val3 = rnd()%100; // Random defense.
|
|
|
- sc_timer_next(1000+tick, status_change_timer,bl->id, data);
|
|
|
- return 0;
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
case SC_HIDING:
|
|
|
if(--(sce->val2)>0) {
|
|
|
|