summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c36
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