diff options
Diffstat (limited to 'src/emap/status.c')
-rw-r--r-- | src/emap/status.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/emap/status.c b/src/emap/status.c index 7b42fa1..49780f8 100644 --- a/src/emap/status.c +++ b/src/emap/status.c @@ -149,6 +149,21 @@ void estatus_calc_pc_additional_pre(struct map_session_data **sdPtr, horse_add_bonus(sd); + struct linkdb_node **label_linkdb = strdb_get(npc->ev_label_db, "OnPCBonusEvent"); + if (label_linkdb == NULL) { + hookStop(); + return; + } + + struct linkdb_node *node = *label_linkdb; + while (node) { + struct event_data* ev = node->data; + if (ev) { + script->run(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id); + } + node = node->next; + } + hookStop(); } @@ -172,6 +187,12 @@ defType estatus_calc_def_post(defType retVal, if (sc->data[SC_PHYSICAL_SHIELD]) retVal += sc->data[SC_PHYSICAL_SHIELD]->val1; + if (bl->type == BL_PC) { + struct map_session_data *sd = NULL; + sd = BL_UCAST(BL_PC, bl); + if (sd) + pc->setreg(sd, script->add_variable("@defend"), pc->readreg(sd, script->add_variable("@defend"))+retVal); + } return (defType)cap_value(retVal, DEFTYPE_MIN, DEFTYPE_MAX); } |