|
@@ -968,7 +968,7 @@ void initChangeTables(void)
|
|
set_sc( GN_SPORE_EXPLOSION , SC_SPORE_EXPLOSION , EFST_SPORE_EXPLOSION, SCB_NONE );
|
|
set_sc( GN_SPORE_EXPLOSION , SC_SPORE_EXPLOSION , EFST_SPORE_EXPLOSION, SCB_NONE );
|
|
set_sc( GN_FIRE_EXPANSION_SMOKE_POWDER , SC_SMOKEPOWDER , EFST_FIRE_EXPANSION_SMOKE_POWDER, SCB_FLEE );
|
|
set_sc( GN_FIRE_EXPANSION_SMOKE_POWDER , SC_SMOKEPOWDER , EFST_FIRE_EXPANSION_SMOKE_POWDER, SCB_FLEE );
|
|
set_sc( GN_FIRE_EXPANSION_TEAR_GAS , SC_TEARGAS , EFST_FIRE_EXPANSION_TEAR_GAS , SCB_HIT|SCB_FLEE );
|
|
set_sc( GN_FIRE_EXPANSION_TEAR_GAS , SC_TEARGAS , EFST_FIRE_EXPANSION_TEAR_GAS , SCB_HIT|SCB_FLEE );
|
|
- set_sc( GN_HELLS_PLANT , SC_HELLS_PLANT , EFST_HELLS_PLANT_ARMOR , SCB_NONE );
|
|
|
|
|
|
+ set_sc_with_vfx( GN_HELLS_PLANT , SC_HELLS_PLANT , EFST_HELLS_PLANT_ARMOR , SCB_NONE );
|
|
set_sc( GN_MANDRAGORA , SC_MANDRAGORA , EFST_MANDRAGORA , SCB_INT );
|
|
set_sc( GN_MANDRAGORA , SC_MANDRAGORA , EFST_MANDRAGORA , SCB_INT );
|
|
set_sc_with_vfx( GN_ILLUSIONDOPING , SC_ILLUSIONDOPING , EFST_ILLUSIONDOPING , SCB_HIT );
|
|
set_sc_with_vfx( GN_ILLUSIONDOPING , SC_ILLUSIONDOPING , EFST_ILLUSIONDOPING , SCB_HIT );
|
|
|
|
|
|
@@ -1608,6 +1608,7 @@ void initChangeTables(void)
|
|
StatusDisplayType[SC_ANTI_M_BLAST] = BL_PC;
|
|
StatusDisplayType[SC_ANTI_M_BLAST] = BL_PC;
|
|
StatusDisplayType[SC_SPRITEMABLE] = BL_PC;
|
|
StatusDisplayType[SC_SPRITEMABLE] = BL_PC;
|
|
StatusDisplayType[SC_SV_ROOTTWIST] = BL_PC;
|
|
StatusDisplayType[SC_SV_ROOTTWIST] = BL_PC;
|
|
|
|
+ StatusDisplayType[SC_HELLS_PLANT] = BL_PC;
|
|
|
|
|
|
// Costumes
|
|
// Costumes
|
|
StatusDisplayType[SC_MOONSTAR] = BL_PC;
|
|
StatusDisplayType[SC_MOONSTAR] = BL_PC;
|
|
@@ -11409,6 +11410,10 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|
val4 = tick / 1000;
|
|
val4 = tick / 1000;
|
|
tick_time = 1000; // [GodLesZ] tick time
|
|
tick_time = 1000; // [GodLesZ] tick time
|
|
break;
|
|
break;
|
|
|
|
+ case SC_HELLS_PLANT:
|
|
|
|
+ tick_time = 333;
|
|
|
|
+ val4 = tick / tick_time;
|
|
|
|
+ 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.
|
|
break;
|
|
break;
|
|
@@ -13299,7 +13304,6 @@ int status_change_end_(struct block_list* bl, enum sc_type type, int tid, const
|
|
case SC_WARM:
|
|
case SC_WARM:
|
|
case SC__MANHOLE:
|
|
case SC__MANHOLE:
|
|
case SC_BANDING:
|
|
case SC_BANDING:
|
|
- case SC_HELLS_PLANT:
|
|
|
|
if (sce->val4) { // Clear the group.
|
|
if (sce->val4) { // Clear the group.
|
|
struct skill_unit_group* group = skill_id2group(sce->val4);
|
|
struct skill_unit_group* group = skill_id2group(sce->val4);
|
|
sce->val4 = 0;
|
|
sce->val4 = 0;
|
|
@@ -14354,6 +14358,14 @@ TIMER_FUNC(status_change_timer){
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
+ case SC_HELLS_PLANT:
|
|
|
|
+ if (--(sce->val4) > 0) {
|
|
|
|
+ skill_castend_damage_id(bl, bl, GN_HELLS_PLANT_ATK, sce->val1, tick, 0);
|
|
|
|
+ sc_timer_next(333 + tick);
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+
|
|
case SC_VOICEOFSIREN:
|
|
case SC_VOICEOFSIREN:
|
|
if( --(sce->val4) >= 0 ) {
|
|
if( --(sce->val4) >= 0 ) {
|
|
clif_emotion(bl,ET_THROB);
|
|
clif_emotion(bl,ET_THROB);
|