diff options
Diffstat (limited to 'npc/functions/warp.txt')
-rw-r--r-- | npc/functions/warp.txt | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/npc/functions/warp.txt b/npc/functions/warp.txt deleted file mode 100644 index 46c390ad..00000000 --- a/npc/functions/warp.txt +++ /dev/null @@ -1,58 +0,0 @@ -// Evol functions. -// Authors: -// gumi - - - -// map_exists -// self-explanatory - -function script map_exists { - return getmapinfo(MAPINFO_ID, getarg(0)) >= 0; -} - - - -// slide_or_warp -// Slides the player instead of warping, when possible. -// usage: -// slide_or_warp({<aid>}); -// slide_or_warp(<x>, <y>{, <aid>}); -// slide_or_warp("<map>", <x>, <y>{, <aid>}); - -function script slide_or_warp { - if (getargcount() <= 1) { - .@aid = getarg(1, 0); - } else { - if (getargcount() >= 3 && getdatatype(getarg(0)) & DATATYPE_STR) { - .@map$ = getarg(0); - .@x = getarg(1); - .@y = getarg(2); - .@aid = getarg(3, 0); - } else { - .@x = getarg(0); - .@y = getarg(1); - .@aid = getarg(2, 0); - } - } - - if (!isloggedin(.@aid)) { - if ((.@aid = playerattached()) == 0) { - consolemes(CONSOLEMES_DEBUG, "slide_or_warp: no player attached!"); - return false; - } - } - - getmapxy(.@pc_map$, .@pc_x, .@pc_y, UNITTYPE_PC, .@aid); // get char location - .@cid = getcharid(CHAR_ID_CHAR, strcharinfo(PC_NAME, .@aid)); // FIXME: [Hercules] make it so you can pass account id directly to getcharid - - if (getargcount() < 1) { - warpchar(.@pc_map$, .@pc_x, .@pc_y, .@cid); // no arguments, just refresh - } else if (.@map$ == .@pc_map$ && (.@pc_x != .@x || .@pc_y != .@y)) { - slide(.@x, .@y); // same map, slide instead of full warp - // FIXME: make slide take GID as optional arg - } else { - warpchar(.@map$, .@x, .@y, .@cid); // different map, warp to given location - } - return true; -} |