summaryrefslogtreecommitdiff
path: root/world/map/npc/commands/hug.txt
blob: 323e0563b6d93ee510a612ae46fec8092f4e0d8b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
-|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); // eq: /me hugs (target)
    registercmd "*hugs*", strnpcinfo(0); // eq: /me hugs
    end;
}