Updated Prestige effect

* Prestige's status is now refreshed when casted again.
* Prestige is now removed by Banding.
This commit is contained in:
aleos89 2016-02-18 09:41:58 -05:00
parent 9f0ae12824
commit d53ed80226

View File

@ -5918,7 +5918,7 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc,
if( sc->data[SC_SHIELDSPELL_REF] && sc->data[SC_SHIELDSPELL_REF]->val1 == 2 )
def += sc->data[SC_SHIELDSPELL_REF]->val2;
if( sc->data[SC_PRESTIGE] )
def += sc->data[SC_PRESTIGE]->val1;
def += sc->data[SC_PRESTIGE]->val3;
if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 1 )
def += (5 + sc->data[SC_BANDING]->val1) * sc->data[SC_BANDING]->val2 / 10;
if( sc->data[SC_ECHOSONG] )
@ -8462,6 +8462,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
if( type != SC_SHIELDSPELL_REF )
status_change_end(bl, SC_SHIELDSPELL_REF, INVALID_TIMER);
break;
case SC_BANDING:
status_change_end(bl, SC_PRESTIGE, INVALID_TIMER);
break;
case SC_GT_ENERGYGAIN:
case SC_GT_CHANGE:
case SC_GT_REVITALIZE:
@ -9882,7 +9885,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
break;
case SC_PRESTIGE:
val2 = (status->int_ + status->luk) * val1 / 20 * status_get_lv(bl) / 200 + val1; // Chance to evade magic damage.
val1 = ((val1 * 15) + (10 * (sd?pc_checkskill(sd,CR_DEFENDER):skill_get_max(CR_DEFENDER)))) * status_get_lv(bl) / 100; // Defence added
val3 = ((val1 * 15) + (10 * (sd?pc_checkskill(sd,CR_DEFENDER):skill_get_max(CR_DEFENDER)))) * status_get_lv(bl) / 100; // Defence added
break;
case SC_BANDING:
tick_time = 5000; // [GodLesZ] tick time