this.inherits(COMMAND); this.command = "go"; //this.regex = /^(\w+)(?:\s+(n|s|m))?$/; this.enter = function (me, dir) { if (me.hp <= 0) return; if (!dir) return me.notify("你要往哪里走?"); dir = OUTER_DOORS[dir]; if (!dir) return me.notify("你要往哪里走?"); var cur_room = me.environment; if (!cur_room) { return me.notify("这里不知道怎么走。"); } var rm = cur_room.exits && cur_room.exits[dir]; if (!rm) return me.notify("这个方向没有出路。"); // if (rm === " ") { // console.log(me.name, cur_room.path); // } var next_room = ROOM.Get(rm); if (!next_room) { return me.notify(rm + "还没开放!"); } if (me.fight_type > 0 && !me.do_escape()) { return; } if (me.is_rash) return me.notify("你现在没办法移动。"); if (cur_room.owner) { //当前房间在副本区域 var copyroom = next_room.query_copy(cur_room.owner); if (copyroom) { next_room = copyroom; } else { if (cur_room.is_fb()) { //不能从副本直接出去 return me.notify("这里不能过去。"); } } } if (me.query_temp("killer")) { if (next_room.is_copy() || next_room.no_fight) return me.notify("你现在正在被追杀,不能进入安全区和副本区域。"); } me.moveto(next_room, sendOutMessage(me, dir), sendInMessage(me), dir); } var OUTER_DOORS = { }; var doors = ["west", "north", "south", "east", "northwest", "southwest", "northeast", "southeast", "down", "up", "westdown", "northdown", "southdown", "eastdown", "westup", "northup", "southup", "eastup", "enter", "out"]; var doors_short = ["s", "n", "w", "e", "se", "sw", "nw", "ne", "d", "u", "sd", "ed", "nd", "wd", "su", "eu", "wu", "nu"]; for (var i = 0; i < doors.length; i++) { if (i < doors_short.length) { OUTER_DOORS[doors_short[i]] = doors[i]; } OUTER_DOORS[doors[i]] = doors[i]; } function sendOutMessage(player, dir) { dir = dirs[dir] || ""; if (player.is_fighting()) { return player.name + "往" + dir + "落荒而逃了。"; } var eq = player.hp * 100 / player.max_hp; if (eq < 5) { return player.name + "撑起满是鲜血的躯体,一瘸一拐地朝" + dir + "挪去。"; } else if (eq < 10) { return player.name + "一边擦着嘴角的鲜血,一边朝" + dir + "走去。"; } else if (eq < 30) { return player.name + "灰头土脸、狼狈不堪地向" + dir + "离去。"; } else if (eq < 50) { return player.name + "一声不吭的转身朝" + dir + "走去,脸色好像有些难看。"; } return player.name + "往" + dir + "离开。"; } function sendInMessage(player, dir) { if (player.fight_type) { return player.name + "跌跌撞撞地跑了过来,模样有些狼狈。"; } var eq = player.hp * 100 / player.max_hp; if (eq < 5) { return player.name + "撑着满是鲜血的躯体,一瘸一拐地挪了过来。"; } else if (eq < 10) { return player.name + "一边擦着嘴角的鲜血,一边走了过来,龇牙咧嘴的。"; } else if (eq < 30) { return player.name + "灰头土脸、狼狈不堪地走了过来。"; } else if (eq < 50) { return player.name + "像斗败了的公鸡,垂头丧气地走了过来。"; } var face = getFace(player) + "的" + player.name; var weapon = player.weapon_name(); if (weapon) face += "手执" + weapon; if (!player.get_equipment(EQUIP_TYPE.CLOTH) && !player.get_equipment(EQUIP_TYPE.PANTS)) { face += "全身清洁溜溜的"; } return face + "走了过来。"; } var dirs = { "north": "北方", "south": "南方", "east": "东方", "west": "西方", "northup": "北边", "southup": "南边", "eastup": "东边", "westup": "西边", "northdown": "北边", "southdown": "南边", "eastdown": "东边", "westdown": "西边", "northeast": "东北", "northwest": "西北", "southeast": "东南", "southwest": "西南", "up": "上面", "down": "下面", "enter": "里面", "out": "外面", }; var face1 = ["眉歪眼斜", "贼眉鼠眼", "尖嘴猴腮", "相貌平平", "膀大腰圆", "一表人才", "仪表堂堂", "丰神如玉", "气宇不凡", "玉树临风般"]; var face2 = ["奇丑无比", "獐头鼠目", "身材干瘦", "相貌平平", "体态轻盈", "亭亭玉立", "面目姣好", "容色秀丽", "风情万种", "清丽绝俗", "美若天仙"]; function getFace(player) { var v = parseInt((player.per || 20) / 4); if (player.gender == 1) { if (v > face1.length - 1) v = face1.length - 1; return face1[v]; } else { if (v > face2.length - 1) v = face2.length - 1; return face2[v]; } }