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