Fixed hells plant on warping
Thanks to @limitro
This commit is contained in:
parent
d223f0c31e
commit
db7075ecb2
@ -6253,19 +6253,29 @@ void clif_efst_status_change_sub(struct block_list *tbl, struct block_list *bl,
|
|||||||
if (td)
|
if (td)
|
||||||
tick = DIFF_TICK(td->tick, gettick());
|
tick = DIFF_TICK(td->tick, gettick());
|
||||||
|
|
||||||
if( spheres_sent && type >= SC_SPHERE_1 && type <= SC_SPHERE_5 ){
|
// Status changes that need special handling
|
||||||
#if PACKETVER > 20120418
|
switch( type ){
|
||||||
clif_efst_status_change(tbl, bl->id, AREA_WOS, StatusIconChangeTable[type], tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3);
|
case SC_SPHERE_1:
|
||||||
#else
|
case SC_SPHERE_2:
|
||||||
clif_status_change_sub(tbl, bl->id, StatusIconChangeTable[type], 1, tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3, AREA_WOS);
|
case SC_SPHERE_3:
|
||||||
#endif
|
case SC_SPHERE_4:
|
||||||
}else{
|
case SC_SPHERE_5:
|
||||||
#if PACKETVER > 20120418
|
if( spheres_sent ){
|
||||||
clif_efst_status_change(tbl, bl->id, target, StatusIconChangeTable[type], tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3);
|
target = AREA_WOS;
|
||||||
#else
|
}
|
||||||
clif_status_change_sub(tbl, bl->id, StatusIconChangeTable[type], 1, tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3, target);
|
break;
|
||||||
#endif
|
case SC_HELLS_PLANT:
|
||||||
|
if( sc && sc->data[type] ){
|
||||||
|
tick = sc->data[type]->val4;
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if PACKETVER > 20120418
|
||||||
|
clif_efst_status_change(tbl, bl->id, target, StatusIconChangeTable[type], tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3);
|
||||||
|
#else
|
||||||
|
clif_status_change_sub(tbl, bl->id, StatusIconChangeTable[type], 1, tick, sc_display[i]->val1, sc_display[i]->val2, sc_display[i]->val3, target);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8973,6 +8973,8 @@ static int status_get_sc_interval(enum sc_type type)
|
|||||||
case SC_BLEEDING:
|
case SC_BLEEDING:
|
||||||
case SC_TOXIN:
|
case SC_TOXIN:
|
||||||
return 10000;
|
return 10000;
|
||||||
|
case SC_HELLS_PLANT:
|
||||||
|
return 333;
|
||||||
case SC_SHIELDSPELL_HP:
|
case SC_SHIELDSPELL_HP:
|
||||||
return 3000;
|
return 3000;
|
||||||
case SC_SHIELDSPELL_SP:
|
case SC_SHIELDSPELL_SP:
|
||||||
@ -11804,8 +11806,8 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
tick_time = 3000;
|
tick_time = 3000;
|
||||||
break;
|
break;
|
||||||
case SC_HELLS_PLANT:
|
case SC_HELLS_PLANT:
|
||||||
tick_time = 333;
|
tick_time = status_get_sc_interval(type);
|
||||||
val4 = tick / tick_time;
|
val4 = tick - tick_time; // Remaining time
|
||||||
break;
|
break;
|
||||||
case SC_SWINGDANCE:
|
case SC_SWINGDANCE:
|
||||||
val3 = 3 * val1 + val2; // Walk speed and aspd reduction.
|
val3 = 3 * val1 + val2; // Walk speed and aspd reduction.
|
||||||
@ -14775,10 +14777,8 @@ TIMER_FUNC(status_change_timer){
|
|||||||
}
|
}
|
||||||
|
|
||||||
case SC_HELLS_PLANT:
|
case SC_HELLS_PLANT:
|
||||||
if (--(sce->val4) > 0) {
|
if( sce->val4 >= 0 ){
|
||||||
skill_castend_damage_id(bl, bl, GN_HELLS_PLANT_ATK, sce->val1, tick, 0);
|
skill_castend_damage_id( bl, bl, GN_HELLS_PLANT_ATK, sce->val1, tick, 0 );
|
||||||
sc_timer_next(333 + tick);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user