|
@@ -1157,9 +1157,9 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
|
|
|
|
|
|
if( sd && (sce = sc->data[SC_FORCEOFVANGUARD]) && flag&BF_WEAPON && rnd()%100 < sce->val2 )
|
|
if( sd && (sce = sc->data[SC_FORCEOFVANGUARD]) && flag&BF_WEAPON && rnd()%100 < sce->val2 )
|
|
pc_addspiritball(sd,skill_get_time(LG_FORCEOFVANGUARD,sce->val1),sce->val3);
|
|
pc_addspiritball(sd,skill_get_time(LG_FORCEOFVANGUARD,sce->val1),sce->val3);
|
|
- if (sc->data[SC_STYLE_CHANGE]) {
|
|
|
|
- TBL_HOM *hd = BL_CAST(BL_HOM,bl); //when being hit
|
|
|
|
- if (hd && (rnd()%100<(status_get_lv(bl)/2)) ) hom_addspiritball(hd, 10); //add a sphere
|
|
|
|
|
|
+ if (sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val1 == MH_MD_GRAPPLING) {
|
|
|
|
+ TBL_HOM *hd = BL_CAST(BL_HOM,bl); // We add a sphere for when the Homunculus is being hit
|
|
|
|
+ if (hd && (rnd()%100<50) ) hom_addspiritball(hd, 10); // According to WarpPortal, this is a flat 50% chance
|
|
}
|
|
}
|
|
|
|
|
|
if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1 )
|
|
if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1 )
|
|
@@ -1220,9 +1220,9 @@ int64 battle_calc_damage(struct block_list *src,struct block_list *bl,struct Dam
|
|
sc_start(src,bl,(enum sc_type)sc->data[SC_POISONINGWEAPON]->val2,100,sc->data[SC_POISONINGWEAPON]->val1,skill_get_time2(GC_POISONINGWEAPON, 1));
|
|
sc_start(src,bl,(enum sc_type)sc->data[SC_POISONINGWEAPON]->val2,100,sc->data[SC_POISONINGWEAPON]->val1,skill_get_time2(GC_POISONINGWEAPON, 1));
|
|
if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1 )
|
|
if( sc->data[SC__DEADLYINFECT] && damage > 0 && rnd()%100 < 65 + 5 * sc->data[SC__DEADLYINFECT]->val1 )
|
|
status_change_spread(src, bl);
|
|
status_change_spread(src, bl);
|
|
- if (sc->data[SC_STYLE_CHANGE]) {
|
|
|
|
|
|
+ if (sc->data[SC_STYLE_CHANGE] && sc->data[SC_STYLE_CHANGE]->val1 == MH_MD_FIGHTING) {
|
|
TBL_HOM *hd = BL_CAST(BL_HOM,src); //when attacking
|
|
TBL_HOM *hd = BL_CAST(BL_HOM,src); //when attacking
|
|
- if (hd && (rnd()%100<(20+status_get_lv(bl)/5)) ) hom_addspiritball(hd, 10);
|
|
|
|
|
|
+ if (hd && (rnd()%100<50) ) hom_addspiritball(hd, 10); // According to WarpPortal, this is a flat 50% chance
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -7235,6 +7235,7 @@ static const struct _battle_data {
|
|
{ "drop_rateincrease", &battle_config.drop_rateincrease, 0, 0, 1, },
|
|
{ "drop_rateincrease", &battle_config.drop_rateincrease, 0, 0, 1, },
|
|
{ "feature.banking", &battle_config.feature_banking, 1, 0, 1, },
|
|
{ "feature.banking", &battle_config.feature_banking, 1, 0, 1, },
|
|
{ "mon_trans_disable_in_gvg", &battle_config.mon_trans_disable_in_gvg, 0, 0, 1, },
|
|
{ "mon_trans_disable_in_gvg", &battle_config.mon_trans_disable_in_gvg, 0, 0, 1, },
|
|
|
|
+ { "homunculus_S_growth_level", &battle_config.hom_S_growth_level, 99, 0, MAX_LEVEL, },
|
|
};
|
|
};
|
|
#ifndef STATS_OPT_OUT
|
|
#ifndef STATS_OPT_OUT
|
|
/**
|
|
/**
|