--- deliantra/server/pod/events.pod 2009/01/08 03:03:24 1.30
+++ deliantra/server/pod/events.pod 2010/04/05 03:22:25 1.36
@@ -1,3 +1,27 @@
+=begin comment
+
+ This file is part of Deliantra, the Roguelike Realtime MMORPG.
+
+ Copyright (©) 2005,2006,2007,2008,2009 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
+
+ Deliantra is free software: you can redistribute it and/or modify it under
+ the terms of the Affero GNU General Public License as published by the
+ Free Software Foundation, either version 3 of the License, or (at your
+ option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the Affero GNU General Public License
+ and the GNU General Public License along with this program. If not, see
+ .
+
+ The authors can be reached via e-mail to
+
+=end comment
+
=head1 DELIANTRA PLUG-IN EVENTS
This document briefly describes each plug-in event. It is also used to
@@ -6,18 +30,22 @@
=head2 NOTATION
-the event description below uses a variant of the forth stack notation -
+The event description below uses a variant of the forth stack notation -
an opening parenthesis followed by the type of each parameter, optionally
-followed by two dashes and the returning parameters. If the latter is
+followed by two dashes and the returning parameters. If the latter part is
missing, the event will be invoked but cannot change wether the event gets
processed.
-If it is specified (even if no return values are supported), a plug-in
-can override (e.g. using C in Perl) event processing,
-basically short-circuiting it. For example, if you override from within a
-player BIRTH event, nothing much will happen with respect to the built-in
-processing, but if you override from within a player TELL event, the tell
-will be ignored (presumably your plug-in took care of it).
+Return values are given by overriding (in Perl by calling C)
+with the return values, which will both stop further event processing and
+tell the caller that it wants to override normal processing.
+
+Even if no return values are supported, a plug-in can override (e.g. using
+C in Perl) event processing, basically short-circuiting
+it. For example, if you override from within a player BIRTH event,
+nothing much will happen with respect to the built-in processing, but if
+you override from within a player TELL event, the tell will be ignored
+(presumably your plug-in took care of it).
=head2 ATTACHABLE EVENTS
@@ -188,7 +216,7 @@
=head3 skill_attack (attacker victim message skill -- success)
Invoked whenever an B attacks B using a B (skill
-cna be C). B is the message that describes the attack when
+can be C). B is the message that describes the attack when
damage is done.
=head3 weapon_attack (weapon hitter victim)
@@ -223,6 +251,18 @@
is not crash-safe, i.e. containers might be closed due to a server crash
without this event being invoked.
+=head3 blocked_move (self who -- do_blocked)
+
+Invoked when an C tries to move to the same space as C,
+C's C causes blocked movement for C and nothing
+else explicitly allows movement to this space.
+
+Should return true when C is blocked, i.e., should not be allowed to
+move onto C.
+
+When not overriding, normal blocked_move (blocked_link) processing will
+happen.
+
=head2 GLOBAL EVENTS
@@ -302,8 +342,13 @@
=head3 command (player command args -- time)
-Execute a user command send by the client. Programmable plug-ins usually
-handle this event internally.
+Execute a user command sent by the client - this is invoked for I
+command,s so should not normally be hooked.
+
+=head3 unknown_command (player command args -- time)
+
+Execute a user command sent by the client that isn't known to the
+server. Programmable plug-ins usually handle this event internally.
=head3 extcmd (player string)
@@ -341,6 +386,11 @@
Invoked whenever the player uses the B, B or B command,
before it gets processed.
+=head3 build (player builder map x y --)
+
+Players tries to build using C at (map+x+y). Is invoked after the
+usual sanity checks, so the coordinates are valid.
+
=head2 MAP EVENTS
@@ -379,7 +429,7 @@
Invoked whenever a player tries to leave the B