summaryrefslogtreecommitdiff
path: root/src/emap/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emap/skill.c')
-rw-r--r--src/emap/skill.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/emap/skill.c b/src/emap/skill.c
new file mode 100644
index 0000000..b909feb
--- /dev/null
+++ b/src/emap/skill.c
@@ -0,0 +1,44 @@
+// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL.
+// Copyright (c) 2014 Evol developers
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "common/db.h"
+#include "common/HPMi.h"
+#include "common/malloc.h"
+#include "common/mmo.h"
+#include "common/socket.h"
+#include "common/strlib.h"
+#include "common/timer.h"
+#include "map/pc.h"
+#include "map/npc.h"
+#include "map/script.h"
+
+int eskill_check_condition_castend_post(int retVal,
+ TBL_PC* sd,
+ uint16 *skill_id,
+ uint16 *skill_lv)
+{
+ if (retVal && sd)
+ {
+ struct linkdb_node **label_linkdb = strdb_get(npc->ev_label_db, "OnSkillInvoke");
+ if (label_linkdb == NULL)
+ return retVal;
+
+ struct linkdb_node *node = *label_linkdb;
+ while (node)
+ {
+ struct event_data* ev = node->data;
+ if (ev)
+ {
+ pc->setreg(sd, script->add_str("@skillId"), *skill_id);
+ pc->setreg(sd, script->add_str("@skillLv"), *skill_lv);
+ script->run(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id);
+ }
+ node = node->next;
+ }
+ }
+ return retVal;
+}