diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/map/status.c b/src/map/status.c index 3da0238c5..7985e58c6 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1258,11 +1258,11 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp, } switch (target->type) { - case BL_PC: pc->damage((TBL_PC*)target,src,hp,sp); break; - case BL_MOB: mob->damage((TBL_MOB*)target, src, hp); break; - case BL_HOM: homun->damaged((TBL_HOM*)target); break; - case BL_MER: mercenary->heal((TBL_MER*)target,hp,sp); break; - case BL_ELEM: elemental->heal((TBL_ELEM*)target,hp,sp); break; + case BL_PC: pc->damage((TBL_PC*)target,src,hp,sp); break; + case BL_MOB: mob->damage((TBL_MOB*)target, src, hp); break; + case BL_HOM: homun->damaged((TBL_HOM*)target); break; + case BL_MER: mercenary->heal((TBL_MER*)target,hp,sp); break; + case BL_ELEM: elemental->heal((TBL_ELEM*)target,hp,sp); break; } if( src && target->type == BL_PC && (((TBL_PC*)target)->disguise) > 0 ) {// stop walking when attacked in disguise to prevent walk-delay bug @@ -1283,14 +1283,14 @@ int status_damage(struct block_list *src,struct block_list *target,int64 in_hp, //&2: Also remove object from map. //&4: Also delete object from memory. switch (target->type) { - case BL_PC: flag = pc->dead((TBL_PC*)target,src); break; - case BL_MOB: flag = mob->dead((TBL_MOB*)target, src, (flag&4) ? 3 : 0); break; - case BL_HOM: flag = homun->dead((TBL_HOM*)target); break; - case BL_MER: flag = mercenary->dead((TBL_MER*)target); break; - case BL_ELEM: flag = elemental->dead((TBL_ELEM*)target); break; - default: //Unhandled case, do nothing to object. - flag = 0; - break; + case BL_PC: flag = pc->dead((TBL_PC*)target,src); break; + case BL_MOB: flag = mob->dead((TBL_MOB*)target, src, (flag&4) ? 3 : 0); break; + case BL_HOM: flag = homun->dead((TBL_HOM*)target); break; + case BL_MER: flag = mercenary->dead((TBL_MER*)target); break; + case BL_ELEM: flag = elemental->dead((TBL_ELEM*)target); break; + default: //Unhandled case, do nothing to object. + flag = 0; + break; } if(!flag) //Death canceled. @@ -3722,7 +3722,7 @@ void status_calc_bl_main(struct block_list *bl, /*enum scb_flag*/int flag) { #else amotion = (1000 - 4 * st->agi - st->dex) * ((TBL_HOM*)bl)->homunculusDB->baseASPD / 1000; - amotion = status->calc_aspd_rate(bl, sc, bst->aspd_rate); + amotion = status->calc_aspd_rate(bl, sc, amotion); if ( st->aspd_rate != 1000 ) amotion = amotion*st->aspd_rate / 1000; @@ -5064,7 +5064,7 @@ defType status_calc_def(struct block_list *bl, struct status_change *sc, int def 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 += def * sc->data[SC_PRESTIGE]->val1 / 100; + def += sc->data[SC_PRESTIGE]->val1; if (sc->data[SC_VOLCANIC_ASH] && (bl->type==BL_MOB)) { if (status_get_race(bl)==RC_PLANT) def /= 2; @@ -8813,8 +8813,8 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t case SC_LG_REFLECTDAMAGE: val2 = 15 + 5 * val1; val3 = 25 + 5 * val1; //Number of Reflects - val4 = tick/10000; - tick_time = 10000; // [GodLesZ] tick time + val4 = tick/1000; + tick_time = 1000; // [GodLesZ] tick time break; case SC_FORCEOFVANGUARD: val2 = 8 + 12 * val1; // Chance @@ -8836,7 +8836,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t val1 *= 15; // Defence added if( sd ) val1 += 10 * pc->checkskill(sd,CR_DEFENDER); - val1 *= status->get_lv(bl) / 100; + val1 = val1 * status->get_lv(bl) / 100; break; case SC_BANDING: tick_time = 5000; // [GodLesZ] tick time |