summaryrefslogtreecommitdiff
path: root/doc/whisper_sys.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/whisper_sys.txt')
-rw-r--r--doc/whisper_sys.txt52
1 files changed, 52 insertions, 0 deletions
diff --git a/doc/whisper_sys.txt b/doc/whisper_sys.txt
new file mode 100644
index 00000000..39e2a54f
--- /dev/null
+++ b/doc/whisper_sys.txt
@@ -0,0 +1,52 @@
+//===== Hercules Documentation ===============================
+//= NPC Whisper System
+//===== By: ==================================================
+//= lordalfa
+//===== Current Version: =====================================
+//= 20120904
+//===== Description: =========================================
+//= A description of Hercules' NPC whispering system.
+//============================================================
+
+This piece of code to allows characters to execute events in NPCs by whispering
+them up to ten parameters. The NPC must have an "OnWhisperGlobal" label, or an
+"event not found" error will result.
+
+ NPC:<NPC Name> <String>{#String 2{#...{#String 10}}}
+
+The whispered strings are separated by the "#" character, and are each stored
+into separate temporary character string variables:
+
+ @whispervar0$, @whispervar1$, ... @whispervar9$
+
+---------------------------------------------------------------------------------
+
+Below is an example of how this feature might be used.
+You whisper an NPC "NPCCommander" in-game with the following instructions:
+
+ NPC:NPCCommander Report#Killstealing#Lordalfa
+
+The parameters are passed on to the "OnWhisperGlobal" label of the NPC, and can
+be processed accordingly:
+
+- script NPCCommander -1,{
+OnWhisperGlobal:
+ // Inform player "Lordalfa" that he has been reported for killstealing.
+ if (@whispervar0$ == "Report")
+ message @whispervar2$,"You have been reported for "+@whispervar1$+".";
+ end;
+}
+
+This could also be used for hidden event triggers:
+
+- script EventManager -1,{
+OnWhisperGlobal:
+ if (getgmlevel() < 80) end;
+ if (@whispervar0$ == "pvp") {
+ // Script for a PVP event.
+ }
+ else if (@whispervar0$ == "mvp") {
+ // Script for an MVP summoning event.
+ }
+ end;
+}