summaryrefslogtreecommitdiff
path: root/world/map/npc/functions
diff options
context:
space:
mode:
authormekolat <mekolat@gmail.com>2014-10-30 14:11:59 -0400
committermekolat <mekolat@gmail.com>2014-10-30 14:44:48 -0400
commitb2aaa61286c1e3a107df7fcd8d63086b360aa0f6 (patch)
tree0d8d06c4b25734c240c1909a064e4b6d9acfad5f /world/map/npc/functions
parent7486b2b9f4447b7b5b7f5d8c5ec13b867a2978c7 (diff)
downloadserverdata-b2aaa61286c1e3a107df7fcd8d63086b360aa0f6.tar.gz
serverdata-b2aaa61286c1e3a107df7fcd8d63086b360aa0f6.tar.bz2
serverdata-b2aaa61286c1e3a107df7fcd8d63086b360aa0f6.tar.xz
serverdata-b2aaa61286c1e3a107df7fcd8d63086b360aa0f6.zip
add global death handler
Diffstat (limited to 'world/map/npc/functions')
-rw-r--r--world/map/npc/functions/global_event_handler.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/world/map/npc/functions/global_event_handler.txt b/world/map/npc/functions/global_event_handler.txt
new file mode 100644
index 00000000..acb328f4
--- /dev/null
+++ b/world/map/npc/functions/global_event_handler.txt
@@ -0,0 +1,43 @@
+017-9.gat,0,0,0|script|#GlobalHandler|-1,-1,-1,
+{
+ end;
+
+OnPCLoginEvent: // this does not work yet but as soon as it is implemented it will start working
+ callfunc "ClearVariables";
+ end;
+
+OnPCKillEvent:
+ set Death_Kill, Death_Kill + 1; // this counts the number of players you have killed
+ end;
+
+OnPCKilledEvent:
+ goto L_Fightclub_Killed; // this is used by the 1v1 arena
+
+OnPCDieEvent:
+ callfunc "fightclub_GoBack"; // this used by the battle master
+ goto L_Fightclub_Die; // this is used by the 1v1 arena
+
+// custom handlers below
+
+L_Fightclub_Killed:
+ set @killer, 0;
+ if(@Duel_Fighter != 1) goto L_End;
+ if(getmap() != "009-7") goto L_End;
+ set $@duel_loser, getcharid(3); // grab the rid of the victim
+ set $@duel_winner, @killerrid; // grab the rid of the killer
+ set @killerrid, 0; // reset killerid
+ callfunc "fightclub_death";
+ goto L_End;
+
+L_Fightclub_Die:
+ set @killer, 0;
+ if(@Duel_Fighter != 1) goto L_End;
+ if(getmap() != "009-7") goto L_End;
+ set @killerrid, 0; // since the player was not murdered, the killerrid is 0
+ set $@duel_loser, getcharid(3); // grab the rid of the victim
+ callfunc "fightclub_death";
+ goto L_End;
+
+L_End:
+ end;
+}