summaryrefslogtreecommitdiff
path: root/world/map/npc/commands
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/commands')
-rw-r--r--world/map/npc/commands/_import.txt1
-rw-r--r--world/map/npc/commands/hug.txt23
2 files changed, 24 insertions, 0 deletions
diff --git a/world/map/npc/commands/_import.txt b/world/map/npc/commands/_import.txt
index 3cabe0b7..b2fe92a1 100644
--- a/world/map/npc/commands/_import.txt
+++ b/world/map/npc/commands/_import.txt
@@ -8,3 +8,4 @@ npc: npc/commands/pullrabbit.txt
npc: npc/commands/numa.txt
npc: npc/commands/destroynpc.txt
npc: npc/commands/remotecmd.txt
+npc: npc/commands/hug.txt
diff --git a/world/map/npc/commands/hug.txt b/world/map/npc/commands/hug.txt
new file mode 100644
index 00000000..f1bd2637
--- /dev/null
+++ b/world/map/npc/commands/hug.txt
@@ -0,0 +1,23 @@
+-|script|nonmagic-hug|32767
+{
+ explode .@name$[0], @args$, "*"; // strip the trailing *
+ set @target_id, if_then_else(.@name$[0] != "", getcharid(3, .@name$[0]), BL_ID);
+ if (@target_id < 1 || !(isloggedin(@target_id))) set @target_id, BL_ID; // fallback to self
+ if (.@name$[0] == "Tree" || .@name$[0] == "tree") set @target_id, .tree_id;
+ set .@range, if_then_else(@target_id == .tree_id, 3, 6);
+ if (distance(BL_ID, @target_id) >= .@range) end;
+ if (gettimetick(2) - @hugspell_time < 3) end;
+
+ set @hugspell_time, gettimetick(2);
+ misceffect FX_HUG, strcharinfo(0);
+ if (@target_id != BL_ID) misceffect FX_HUG, @target_id;
+
+ if (@target_id != .tree_id) end;
+ callfunc "QuestTreeTouch";
+ close;
+
+OnInit:
+ set .tree_id, getnpcid("#DruidTree0#_M");
+ registercmd "*hugs", strnpcinfo(0);
+ end;
+}