init: add workspace files

This commit is contained in:
2026-05-26 16:41:20 +08:00
commit f4f2393f72
1041 changed files with 67405 additions and 0 deletions

13
world/map/yz/banghui.js Normal file
View File

@@ -0,0 +1,13 @@
this.inherits(ROOM);
this.name = "帮派驻地"
this.desc = "你来到一座结构宏伟的建筑前,左右石坛上各插着一根两丈多高的旗杆,杆上青旗飘扬。右首旗子用金线绣着一头张牙舞爪的狮子,狮子上头有一只蝙蝠飞翔。左首旗子上写着几个烫金大字,银钩铁划,刚劲非凡。";
this.exits = { "west": "yz/nandajie2", "east": "banghui/juyitang" };
this.no_fight = true;
this.on_leave = function (me, dir) {
if (dir == "east") {
me.notify("帮会管理员拦住你:这位" + me.call() + ",这里是帮派驻地,不是这个帮派的人不能进去哦。");
return false;
}
}

View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "北大街"
this.desc = "你走在一条繁忙的街道上,看着操着南腔北调的人们行色匆匆,许多人都往南边走去,那里有一个热闹的广场。东边是一家生意兴隆的客栈,来自各地的人们进进出出,据说也是情人们的幽会地点。西边是一家钱庄,可以听到叮叮当当的金银声音。";
this.exits={"east":"yz/kedian","south":"yz/guangchang","west":"yz/qianzhuang","north":"yz/beidajie2"};

View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "北大街"
this.desc="这是一条宽阔的青石街道,向南北两头延伸。北边是北城门通向城外。南边显得很繁忙。东边是一座两层的楼阁,挂着“太白遗风”的招帘,门额上悬挂一方横匾,“醉仙楼”三字擦得闪闪发亮,乃是苏学士的手笔。阵阵酒肉香酒香让你垂涎欲滴。西边是一座古朴的庙宇,香火缭绕,那就是天下学武之人所共同敬仰的武庙了。";
this.exits={"north":"yz/beimen","west":"yz/wumiao","south":"yz/beidajie1","east":"yz/zuixianlou"};

4
world/map/yz/beimen.js Normal file
View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "北门"
this.desc="这是北城门,因为曾经失火,到现在城墙还是黑乎乎的,因此白纸黑字的官府告示(gaoshi)就显得特别现眼。北方是一片崇山峻岭,一条黄土小径在山里蜿蜒而上。 "
this.exits={"south":"yz/beidajie2","north":"yz/hanshui"};

5
world/map/yz/biaoju.js Normal file
View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "福威镖局"
this.desc = "你来到一座结构宏伟的建筑前,左右石坛上各插着一根两丈多高的旗杆,杆上青旗飘扬。右首旗子用金线绣着一头张牙舞爪的狮子,狮子上头有一只蝙蝠飞翔。左首旗子上写着“福威镖局”四个黑字,银钩铁划,刚劲非凡。入口处排着两条长凳,几名镖头坐着把守。少镖头正跟他们说笑。";
this.exits = { "south": "yz/zhengting", "north": "yz/xidajie2" };
this.set_npc("yz/linpingzhi", ["yz/biaotou", 2]);

View File

@@ -0,0 +1,75 @@
this.inherits(ROOM);
this.name = "兵器库"
this.desc = "这里是兵器库,到处银光闪闪,让人眼花缭乱。宝刀、宝剑、金箍棒,大刀、长剑、哨棒,短刀、短剑、短棍,各色各样的兵器应有尽有,你一时不知道挑什么好。";
this.exits = { "north": "yz/by/bingying" };
this.add_action("search", "搜索", function (me) {
if (me.query_temp("by_search")) {
if (me.equipment && me.equipment[0] && me.equipment[0].is('eq/lv1/qianjinquan')) {
me.notify("你仔细搜了一圈,发现兵器库的后墙有一个形状十分眼熟的孔洞。");
return me.send_commands('pushmen', '塞进去');
}
return me.notify("你仔细搜了下,发现这里已经已经被洗劫一空了,剩下的都是些破铜烂铁。");
}
var odds = [
{
obj: "st/xuanjing",
min: 1,
max: 10
},
{
obj: ["st/st_blu#0", "st/st_gre#0", "st/st_red#0", "st/st_yel#0"],
min: 1,
max: 3
},
{
obj: ["st/st_blu#1", "st/st_gre#1", "st/st_red#1", "st/st_yel#1"],
odds: 3000
},
{
obj: ["book/book#blade", "book/book#sword", "book/book#dodge", "book/book#parry", "book/book#force"],
odds: 5000
},
];
me.set_temp("by_search", 1, 24 * 3600000);
var items = OBJ.create_by_odds(odds);
for (var i = 0; i < items.length; i++) {
var obj = me.add_obj(items[i]);
if (obj) {
me.notify("你找到了" + items[i].unit_name() + "。");
}
}
});
this.add_action('pushmen', null, function (me) {
if (me.equipment && me.equipment[0] && me.equipment[0].is('eq/lv1/qianjinquan')) {
me.send('你将手上的' + me.equipment[0].color_name + "严丝合缝的塞入墙上的孔洞,轻轻一扭,只听到咔嚓几声,地板打开一个大洞。");
return this.add_exit('down', 'yz/by/tongdao');
}
return me.send('你要打什么?');
});
this.on_leave = function (me, dir) {
if (dir === 'down') {
me.notify('你即将离开这个副本进入公共区域,是否确认?');
me.send_commands('lkfb', '确定离开');
return false;
}
}
this.add_action('lkfb', null, function (me, par) {
WORLD.COMMANDS['cr'].enter(me, 'over');
me.moveto(ROOM.Get('yz/hy/tongdao'));
me.send('你从兵器库钻入一个狭长的甬道。');
me.enable_area();
});

View File

@@ -0,0 +1,28 @@
this.inherits(ROOM);
this.name = "兵营"
this.desc = "这里是兵营,密密麻麻到处都是官兵,有的在武将的指挥下列队操练,有的独自在练功,有的坐着、躺着正在休息。南墙下坐着主帅,不动声色地寻视着四周。看到你进来,他们全都向你包围了过来,形势看来不太妙。南边有一个<CMD cmd='look men'>门(men)</CMD>。";
this.exits = { "south": "yz/by/bingqiku", "north": "yz/by/damen" };
this.set_npc("yz/shiqingshan", ["pub/wujiang", 2]);
this.on_leave = function (me, dir) {
if (dir == "south") {
if (!this.south_open) {
me.notify("门还是关着的,你过不去。");
return false;
}
}
}
this.set_item("men", "铁门", "这是一扇极厚的铁门。", [[
"open", "打开", function (me, par) {
if (par != "men") {
return;
}
if (me.str + me.query_prop("str") < 30) {
me.send_room("$N使出吃奶的力气推向铁门半晌后瘫倒在地但是铁门还是纹丝不动。");
} else {
me.send_room("$N大喝一声使出全力推开铁门。");
this.south_open = true;
}
return true;
}
]]);

11
world/map/yz/by/damen.js Normal file
View File

@@ -0,0 +1,11 @@
this.inherits(ROOM);
this.name = "兵营大门"
this.desc = "你正站在兵营的门口,面对着一排简陋的营房,可以看到穿着制服的官兵正在操练,不时地传来呐喊声。老百姓是不允许在此观看的,你最好赶快走开。";
this.exits = { "south": "yz/by/bingying"};
this.set_npc( ["pub/bing", 2]);
this.on_leave = function (me, dir) {
if (dir === "south" && this.find_obj_bypath("pub/bing")) {
me.notify("官兵拦住了你的去路。");
return false;
}
}

View File

@@ -0,0 +1,3 @@
this.inherits(ROOM);
this.name = "地下通道"
this.desc = "兵器库通外地下的通道";

10
world/map/yz/cangbao.js Normal file
View File

@@ -0,0 +1,10 @@
this.inherits(ROOM);
this.name = "藏宝阁"
this.desc = "这里是当铺的二楼,专为接待贵客而设立,据说当铺收集来的神秘宝物大都会在这里进行拍卖,只要你有钱就可以获得一些稀有的道具,柜台上摆放着一个<cmd cmd='pm list'>告示牌(paizi)</cmd>,后面坐着一个老头眯着眼睛打量着你。";
this.exits = { "down": "yz/dangpu" };
this.set_npc("pub/paimai");
this.no_fight = true;

View File

@@ -0,0 +1,28 @@
this.inherits(ROOM);
this.name = "大门"
this.desc = "一座富丽堂皇的大宅院出现在你的眼前,两头高大的石狮子镇住了大门两侧,朱漆大门足足有三寸厚。门上挂着两个灯笼,写着“崔”字。崔家是当地首富,而且以蛮横著称。几条狼狗嚎叫着向你冲了过来。";
this.exits = { "north": "yz/cuifu/dayuan" };
this.set_npc([
"yz/cuifu/langgou", 2
]);
this.on_enter = function (me) {
if (me.is("yz/cuifu/yahuan")) {
var player = me.follow_target;
if (!player || !player.is_here(me)) return;
if ( player.can_follow("yz/cuifu/yahuan")) {
me.do_follow(null);
player.notify("眼看就要走到门外,丫鬟却站在原地不动了。");
player.notify("丫鬟垂首说道:这位大人,小女子已无家可归,还望大人收留!");
player.send_commands("ok " + me.id, "答应她");
} else {
player.notify("走到这里,丫鬟对你说道:谢谢这位" + player.call() + "。");
me.do_follow(null);
player.notify("丫鬟想了想又对你说道:这位" + player.call() + ",崔员外家的东厢好像还藏了些东西,你可以去找找看。");
player.notify("丫鬟急匆匆的走了。");
me.destroy();
}
player.set_temp("fb/cuifu/yahuan", 2);
player.add_fbscore(20);
}
}

View File

@@ -0,0 +1,16 @@
this.inherits(ROOM);
this.name = "大院"
this.desc = "你走进大院,迎面是一个假山水池,池上摆着一块奇形怪状的石头,据说是当年花石纲的遗石。水池的两旁种满了花草。东边是一棵槐树,郁郁葱葱,遮盖了大半个院子,显得阴森恐怖。一条长廊走道通往后院,有几个家丁把守。";
this.exits = { "south": "yz/cuifu/caizhu", "north": "yz/cuifu/houyuan" };
this.set_npc("yz/cuifu/guanjia", [
"yz/cuifu/jiading",2
]);
this.on_leave = function (me, dir) {
if (dir == "north") {
var obj = this.find_by_path("yz/cuifu/guanjia");
if (obj) {
me.notify("管家拦住你:私人宅院,禁止入内。");
return false;
}
}
}

View File

@@ -0,0 +1,24 @@
this.inherits(ROOM);
this.name = "东厢"
this.desc = "这是一个昏暗的房间,窗户都被钉死。地上放着皮鞭、木棍等刑具,显然这是财主私立公堂,折磨仆人、丫鬟的所在。一个丫鬟被绳子绑着,浑身赤裸跪在地上哭哭啼啼,身上是一道道的伤口。墙角有个<cmd cmd='look gui'>柜子</cmd>,好像放了不少东西。";
this.exits = { "west": "yz/cuifu/houyuan" };
this.set_npc("yz/cuifu/yahuan");
this.set_item("gui", "柜子", "一个黑乎乎的柜子,里面不知道放了什么。", [[
"search", "搜索", function (me, par) {
if (par != "gui") {
return;
}
if (me.query_temp("fb/cuifu/yahuan") == 3) {
me.send_room("$N仔细翻了翻柜子从柜子下面找到一个小箱子。");
me.set_temp("fb/cuifu/yahuan",4);
var obj = me.add_obj("sp/yz/box1", 1);
if (obj) {
me.send_room("$N从得到了一个 " + obj.color_name + "。");
}
} else {
me.notify("你胡乱在柜子里上面翻了几下,什么都没发现。");
}
return true;
}
]]);

View File

@@ -0,0 +1,27 @@
this.inherits(ROOM);
this.name = "后院"
this.desc = "这里是财主后院,各种古玩琳琅满目,商周青铜、汉瓦当、唐三彩……,应有尽有,只要拥有一件,就够你吃一辈子了。崔员外正坐在琉璃榻上,慢幽幽地喝着参汤。东侧有一扇<cmd cmd='look men'>门(men)</cmd>。";
this.exits = { "south": "yz/cuifu/dayuan", "west": "yz/cuifu/xixiang" };
this.set_npc("yz/cuifu/cui");
this.set_item("men", "门", "这扇门似乎通向一间密室。", [[
"open", "打开", function (me) {
if (this.query_exits("east"))
return me.notify("这扇门已经是打开的。");
var obj = me.find_obj_bypath("sp/yz/yaoshi");
if (!obj)
return me.notify("你不会撬锁。");
this.add_exit("east", "yz/cuifu/dongxiang");
me.remove_obj(obj,1);
me.send_room("$N用一把钥匙打开了秘门可是钥匙却断了。");
}
]]);
this.on_leave = function (me, dir) {
if (dir == "west") {
var obj = this.find_obj_bypath("yz/cuifu/cui");
if (obj) {
me.notify("崔员外挡住了你。");
return false;
}
}
}

View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "西厢"
this.desc = "这是财主小姐的闺房,一股幽香扑面而来。一张绣榻放在墙角,垂着细纱。小姐正躺在榻上,懒洋洋地一幅思春模样。看到你突然闯进来,惊呆了。";
this.exits = { "east": "yz/cuifu/houyuan" };
this.set_npc("yz/cuifu/yingying");

10
world/map/yz/dangpu.js Normal file
View File

@@ -0,0 +1,10 @@
this.inherits(ROOM);
this.name = "当铺"
this.desc = "这是一家以买卖公平著称的当铺,一个五尺高的柜台挡在你的面前,柜台上摆着一个牌子,柜台后坐着唐老板,一双精明的眼睛上上下下打量着你。";
this.exits = { "west": "yz/nandajie1", "up": "yz/cangbao" };
this.set_npc("yz/tang");
this.no_fight = true;

7
world/map/yz/datiepu.js Normal file
View File

@@ -0,0 +1,7 @@
this.inherits(ROOM);
this.name = "打铁铺"
this.desc = "这是一家简陋的打铁铺,中心摆着一个火炉,炉火把四周照得一片通红,你一走进去就感到浑身火热。墙角堆满了已完工和未完工的菜刀、铁锤、铁棍、匕首、盔甲等物。一位铁匠满头大汗挥舞着铁锤,专心致志地在打铁。";
this.exits = { "north": "yz/dongdajie2"};
this.no_fight = true;
this.set_npc("pub/tiejiang");

View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "东大街"
this.desc = "这是一条宽阔的青石板街道,向东西两头延伸。东边不时地传来金属撞击声,西边人声嘈杂。北边是一座简朴的院子,半月形的大门上方写着“白鹿书院”四个烫金大字,苍劲有力。里面不时地传来学生们抑扬顿挫的读书声。南边是一家杂货铺。";
this.exits = { "east": "yz/dongdajie2", "south": "yz/zahuopu", "west": "yz/guangchang", "north": "yz/shuyuan" };

View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "东大街"
this.desc = "你走在东大街上,踩着坚实的青石板地面。东边是东城门,可以听到守城官兵的吆喝声,与西边朗朗的读书声混杂在一起。北边是一家老字号的药铺,南边是打铁铺,叮叮当当的声音老远就能听到。";
this.exits={"east":"yz/dongmen","south":"yz/datiepu","west":"yz/dongdajie1","north":"yz/yaopu"};

4
world/map/yz/dongmen.js Normal file
View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "东门"
this.desc="这是东城门,城门正上方刻着“东门”两个楷书大字,城墙上贴着几张官府告示(gaoshi)。官兵们警惕地注视着过往行人,你最好小心为妙。一条笔直的青石板大道向东西两边延伸。东边是郊外,隐约可见一片一望无际的树林,神秘莫测。西边是城里。北面有一片茂盛的青竹林。"
this.exits={"south":"yz/yaolin","west":"yz/dongdajie2"};

141
world/map/yz/duchang.js Normal file
View File

@@ -0,0 +1,141 @@
this.inherits(ROOM);
this.name = "赌场"
this.desc = "赌桌围着黑压压的赌徒,吆喝声、惊叹声、欢呼声、咒骂声、哄笑声和噼哩啪啦的声响使你的耳朵几乎无法忍受,赌桌旁的墙上贴有一张<cmd cmd='look paper'>纸</cmd>。";
this.exits = { "east": "yz/nandajie1", };
this.set_npc('pub/baodi');
this.no_fight = true;
this.set_item("paper", "说明", "小赌怡情,大赌伤身.....");
this.master = this.items[0];
this.stores = new Map();
this.on_leave = function (me) {
if (me == this.master) {
this.master = null;
me.send_room("由于" + me.name + "离开房间,本局作废。");
this.stores.clear();
if (this.rolle_handler) clearTimeout(this.rolle_handler);
this.rolle_handler = null;
}
}
this.add_action("roll", "掷骰子", function (me,par) {
if (!par) {
if (!this.master) {
me.notify("<red>这里还没庄家,你要试着当庄家吗?</red>");
return me.send_commands("roll ok", '我要当庄家');
}
if (this.master == me) {
if (this.rolle_handler) return me.notify("你已经掷好了,等大家下注。");
par = "start";
} else {
if (this.rolle_handler) return me.notify("庄家已经掷骰子了,快下注吧。");
var npc = this.items[0];
if (npc) {
npc.do_command('roll','start');
}
return;
}
}
if (par == "ok") {
if (this.master) {
return me.notify("<red>这里已经有庄家了,等他摇骰子吧。</red>");
}
this.master = me;
me.send_room("<hig>$N现在是这里的庄家。</hig>");
return me.send_commands("roll start", '掷骰子');
}
if (par == "start") {
if (me != this.master) {
return me.notify("你还是等庄家先出吧。");
}
if (this.rolle_handler) return me.notify("你已经摇好了,等大家下注。");
me.send_room("<mag>$N拿出一个骰盅双手随意挥舞着看上去颇有几分气势。</mag>\n<hic>$P“啪”的一声把骰盅扣在桌子上喊道下注啦</hic>");
this.rolle_handler = this.call_out(this.roll_over1, 10000);
return me.send_message('{type:\"cmds\",items:[{cmd:"roll b",name:"押大"},{cmd:"roll s",name:"押小"}]}');
} else if (par == "b" || par == "s") {
if (!this.master) return me.notify("现在没有庄家。");
if (me == this.master) {
return me.notify("你是庄家压什么注。");
}
if (!this.rolle_handler) return me.notify("庄家还没掷骰子,别着急。");
if (!(me.money > 1)) return me.notify(this.master.name + "瞪了你一眼:穷鬼,一边去。");
var val = this.stores.get(me.id);
if (val) return me.notify(this.master.name+"对你喊道:买定离手……");
var name = par == "b" ? "大" : "小";
me.send_room(["$N沉吟半响拿出一个铜板沉声说道我压" + name + "!", "$N拿着一个铜板喊道都别动"+me.callme()+"压" + name + "。",
"$N一声不吭拿出一个铜板放到【" + name + "】上面。"].random());
this.stores.set(me.id, par == "b" ? 2 : 1);
} else if (par == "over") {
if (this.rolle_handler) me.notify("你需要等这局结束才可以。");
this.master.send_room("<hic>$N不当庄家了你可以点击掷骰子来当庄家。</hic>");
this.master = null;
}
});
this.roll_over1 = function () {
this.master.send_room("$N高声喊道来吧……赌一赌闯王变盘古搏一搏云龙变成长生决");
this.rolle_handler = this.call_out(this.roll_over, 10000);
}
this.roll_over = function () {
this.rolle_handler = null;
if (!this.master) return;
if (!this.stores.size) {
this.master.notify("没有人下注,要不要再来一局。");
return this.master.send_commands("roll start", '掷骰子');
}
var num1 = this.random(6) + 1;
var num2 = this.random(6) + 1;
var num3 = this.random(6) + 1;
var name = num1 + num2 + num3 > 9 ? "大" : "小";
var res = num1 + num2 + num3 > 9 ? 2 : 1;
this.master.send_room("<hir>$N一把掀开骰盅喊道买定离手啦开……" + num1 + "," + num2 + "," + num3 + "……" + name + "</hir>");
for (var i = 0; i < this.items.length; i++) {
if (this.items[i].hp && this.items[i]!=this.master) {
var val = this.stores.get(this.items[i].id);
if (val) {
if (val == res) {
this.items[i].notify("<hig>恭喜你赢了一个铜板。</hig>");
} else {
this.items[i].notify("<red>这局你输了一个铜板。</red>");
}
}
}
}
this.stores.clear();
if (this.master.is_player)
this.master.send_commands("roll start","再来一局","roll over","不当庄家了");
}
this.add_action("say", "", function (me,par) {
WORLD.COMMANDS['say'].enter(me,par);
if (par === '我要回档') {
for (let item of this.items) {
if (item.query_temp('admin') || item.query_temp('wiz')) {
item.send_commands('rbok '+me.id,'同意【' + me.name + '】回档');
}
}
// WORLD.COMMANDS['reback'].enter(me);
}
return true;
});
this.add_action("rbok", "", function (me, par) {
if (!par) return;
let item = this.find_obj(par, this);
if (item) {
item.do_command('reback');
me.send(item.name + "开始回档选项。");
} else {
me.send( "房间没这个人。");
}
return true;
});

30
world/map/yz/garments.js Normal file
View File

@@ -0,0 +1,30 @@
this.inherits(ROOM);
this.name = "成衣店"
this.desc = "这里是扬州名媛贵妇常到之处,现在也挤得凄凄惨惨,脂粉横飞。因为这里卖的时尚,一直是她们最热衷的装扮。店主是个很可人的小女孩,你认真一看,顿时发现满个店堂里的女人加在一起,还不如她靓丽。店门口横横歪歪地写着几个大字。想来出自小宝手笔。";
this.exits = { "down": "yz/zahuopu" };
this.no_fight = true;
this.set_npc("yz/zeng");
this.add_action("work", "开始工作", start_work);
function start_work(me) {
if (me.level > 1) return me.notify("曾柔:我这里人手已经够了,做义工可没工钱的哟!");
if (me.gender == 1) return me.notify("曾柔不好意思道:小宝可不许我雇佣男工,你去药店试试。");
me.send_room("$N开始在成衣店辛苦的打工......", me);
me.set_state({
id: "work",
type: "work",
title: "工作中",
player: me,
rate: 2,
on_enter: do_work,
no_move: "你还在打工,乱走就没工钱拿了!",
desc: '["你缝制完成,放下手中的针线,擦了擦额头上的汗。","你拿把剪刀顺着布上的痕迹小心的裁着。","加油呀!谁叫你穷呀!"]',
});
return true;
}
function do_work(me) {
var exp = WORLD.DATA.get_exp(me);
me.add_exp(exp, exp, 100 + me.random(20));
}

View File

@@ -0,0 +1,29 @@
this.inherits(ROOM);
this.name = "广场";
this.desc = "这里是城市的正中心,一个很宽阔的广场,铺着青石地面。一些游手好闲的人在这里溜溜达达,经常有艺人在这里表演。中央有一棵<cmd cmd='look tree'>大榕树(tree)</cmd>,盘根错节,据传已有千年的树龄,是这座城市的历史见证。";
this.exits = {
east: "yz/dongdajie1", west: "yz/xidajie1", south: "yz/nandajie1", north: "yz/beidajie1"
};
this.set_npc("yz/zhubanxian");
this.set_item("tree", "大榕树", "一棵枝叶茂盛的大榕树,看来似乎可以爬上去", [[
"climb", "爬", climb_tree
]]);
this.add_action("climb tree", "爬树");
function climb_tree(me, par) {
if (par != "tree") return me.notify("你要爬什么?");
var leave_msg = null;
if (me.gender == 1) {
leave_msg = me.name + "战战兢兢的抓住树干往上爬去。";
} else {
leave_msg = me.per > 40 ? me.name + "轻轻一跳,衣裙飘飘,象仙子般飞上大榕树。" : me.name + "战战兢兢地拉着大榕树的盘根,屁股一扭一扭地往上爬。";
}
var in_msg = null;
if (me.gender == 1) {
in_msg = me.name + "战战兢兢地从下面爬了上来。";
} else {
in_msg = me.per > 40 ? "一阵清香飞来,你定眼一看," + me.name + "已经婷婷玉立在你眼前。" : me.name + "气喘嘘嘘地爬了上来。";
}
me.moveto("yz/tree1", leave_msg, in_msg);
}

10
world/map/yz/hanshui.js Normal file
View File

@@ -0,0 +1,10 @@
this.inherits(ROOM);
this.name = "江边"
this.no_fight = true;
this.desc = "面前是一条波涛翻滚的大江 。浊流滚滚,万舟竞发。两岸渡船来来往往,江边一长溜摆满了鱼摊,渔家就将船泊在岸边,几个破萝支一块木板,板上摆满了活蹦乱跳的汉江鲤鱼。"
this.exits = { "south": "yz/beimen" };
this.can_diaoyu = true;
this.add_action("diao", "钓鱼", function (me) {
return WORLD.COMMANDS['diaoyu'].enter(me);
});

6
world/map/yz/home.js Normal file
View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "大门"
this.desc = "这里是扬州城私人住宅的大门,因为在衙门旁边,所以治安非常好,四周整治的干干净净,一扇气派的大门紧闭,大头高大的石狮子镇守两侧,旁边站着一位老管家。";
this.exits = { "south": "yz/xidajie2", "enter": "home/yuanzi" };
this.no_fight = true;
this.set_npc("pub/guanjia");

8
world/map/yz/hy/dilao.js Normal file
View File

@@ -0,0 +1,8 @@
this.inherits(ROOM);
this.name = "地牢"
this.desc = "这里逼仄压抑,混杂着霉味与腐烂气息扑面而来。两侧是密密麻麻的铁牢,栅栏上锈迹斑斑,不少牢门虚掩着,里面或堆着白骨,或蜷缩着气息奄奄的囚徒。";
this.exits = { "up": "yz/hy/yishiting" };
this.set_npc("yz/hy/yin");

View File

@@ -0,0 +1,11 @@
this.inherits(ROOM);
this.name = "校场"
this.desc = "这里是一个青石铺就的空旷场地,中央有兵器架和木桩,地面布满深浅不一的脚印,东南角堆放着练习用的木人。周围零落站立着一些黑袍人,见你进来警惕的望着你。";
this.exits = {
"north": "yz/hy/jiaochang2",
"northwest": "yz/hy/jiaochang3", "northeast": "yz/hy/jiaochang4"
};
this.move_exits = ['northwest', 'northeast'];
this.set_npc('yz/hy/jiaotu', 'yz/hy/jiaotu');

View File

@@ -0,0 +1,20 @@
this.inherits(ROOM);
this.name = "校场"
this.desc = "这里是一个青石铺就的空旷场地,中央有兵器架和木桩,地面布满深浅不一的脚印,东南角堆放着练习用的木人。周围零落站立着一些黑袍人,见你进来警惕的望着你。";
this.exits = {
"south": "yz/hy/jiaochang1", "north": "yz/hy/jiaochang5",
"west": "yz/hy/jiaochang3", "east": "yz/hy/jiaochang4"
};
this.set_npc('yz/hy/jiaoxi');
this.on_enter = function (me) {
if (me.is_player) {
let npc = this.find_by_path('yz/hy/jiaoxi');
if (npc && !npc.fight_type) {
npc.on_kill(me);
npc.do_kill(me);
}
}
}

View File

@@ -0,0 +1,11 @@
this.inherits(ROOM);
this.name = "校场"
this.desc = "这里是一个青石铺就的空旷场地,中央有兵器架和木桩,地面布满深浅不一的脚印,东南角堆放着练习用的木人。周围零落站立着一些黑袍人,见你进来警惕的望着你。";
this.exits = {
"southeast": "yz/hy/jiaochang1", "northeast": "yz/hy/jiaochang5",
"east": "yz/hy/jiaochang2"
};
this.move_exits = ['southeast', 'northeast'];
this.set_npc('yz/hy/jiaotu', 'yz/hy/jiaotu');

View File

@@ -0,0 +1,9 @@
this.inherits(ROOM);
this.name = "校场"
this.desc = "这里是一个青石铺就的空旷场地,中央有兵器架和木桩,地面布满深浅不一的脚印,东南角堆放着练习用的木人。周围零落站立着一些黑袍人,见你进来警惕的望着你。";
this.exits = {
"southwest": "yz/hy/jiaochang1", "northwest": "yz/hy/jiaochang5",
"west": "yz/hy/jiaochang2"
};
this.move_exits = ['southwest', 'northwest'];
this.set_npc('yz/hy/jiaotu', 'yz/hy/jiaotu');

View File

@@ -0,0 +1,10 @@
this.inherits(ROOM);
this.name = "校场"
this.desc = "这里是一个青石铺就的空旷场地,中央有兵器架和木桩,地面布满深浅不一的脚印,东南角堆放着练习用的木人。周围零落站立着一些黑袍人,见你进来警惕的望着你。";
this.exits = {
"southwest": "yz/hy/jiaochang3", "southeast": "yz/hy/jiaochang4",
"south": "yz/hy/jiaochang2", "north": "yz/hy/yishiting"
};
this.move_exits = ['southwest', 'southeast'];
this.set_npc('yz/hy/jiaotu', 'yz/hy/jiaotu');

View File

@@ -0,0 +1,8 @@
this.inherits(ROOM);
this.name = "甬道"
this.desc = "这是一个碎石铺就的狭长甬道,两侧火把照明,墙根暗处有箭孔,地面散落着生锈的兵器。通道尽头有些亮光,出口就在前方。";
this.exits = { "up": "yz/hy/jiaochang1" };
this.on_enter = function (me) {
}

View File

@@ -0,0 +1,42 @@
this.inherits(ROOM);
this.name = "黑鹰厅"
this.desc = "高约三丈的穹顶下,黑檀木横梁上悬着一块鎏金 “奉旨缉拿” 匾额,边缘镶着铜质云纹,匾额下方垂着三盏羊角宫灯,灯影在青砖地面投下晃动的光斑。西侧墙根处有一扇半尺厚的<cmd cmd='look men'>铁门</cmd>,门框与石壁严丝合缝。";
this.exits = { "south": "yz/hy/jiaochang5" };
this.set_npc('yz/hy/tiehu');
this.on_enter = function (me) {
if (me.is_player) {
let npc = this.find_by_path('yz/hy/tiehu');
if (npc && !npc.fight_type) {
npc.on_kill(me);
npc.do_kill(me);
}
}
}
this.set_item("men", "铁门", "一扇半尺厚的铁门,严丝合缝的嵌合在墙壁内", [
["tui", "推开", function (me) {
if (this.query_exits("down"))
return me.notify("铁门已经被你推开了。");
me.send_room("$N大喝一声使出全身力气推向铁门。");
if (me.str > 25) {
me.send_room("<hic>铁门发出一阵沉闷的声响,缓缓打开了。</hic>");
this.add_exit('down', 'yz/hy/dilao');
this.call_out(this.close_men, 60000)
} else {
me.send_room("<cyn>结果比$P的脸憋的通红铁门仍然纹丝不动。</cyn>");
}
}]
]);
this.close_men = function () {
if (this.query_exits("down")) {
this.remove_exit("down");
this.send("<cyn>铁门发出一阵沉闷的声响,又缓缓的关上了。</cyn>");
ROOM.Get('yz/hy/dilao').send("<cyn>铁门发出一阵沉闷的声响,又缓缓的关上了。</cyn>");
}
}

8
world/map/yz/kedian.js Normal file
View File

@@ -0,0 +1,8 @@
this.inherits(ROOM);
this.name = "有间客栈"
this.desc = "这是扬州城本地一家价钱低廉的客栈,生意非常兴隆。外地游客多选择这里落脚,你可以在这里打听到当地的风土人情。店小二里里外外忙得团团转,接待着南腔北调的客人。角落里几位江湖人物打扮的大汉正围着一张桌子不知道在商量什么,客店的主人从不露面,他究竟是谁,有各种各样的猜测。墙上挂着一个<cmd cmd='look paizi'>牌子(paizi)</cmd>";
this.exits = { "west": "yz/beidajie1" };
this.set_npc("pub/xiaoer");
this.set_item("paizi", "牌子", "本店尚有空余客房每天100两银子。详情咨询店小二");
//this.add_action("zhudian", "住店", zhudian);
this.no_fight = true;

10
world/map/yz/kuang.js Normal file
View File

@@ -0,0 +1,10 @@
this.inherits(ROOM);
this.name = "矿山"
this.desc = "这里原来是一处高山,不知道什么原因崩塌了,四周散落着各种石块。据说有人在这里找到过稀有的宝石,所以有不少来来往往的人们背着背篓在这里碰运气。"
this.exits = { "east": "yz/ximen" };
this.max_count = 8;
this.no_fight = true;
this.add_action("wa", "挖矿", function (me) {
WORLD.COMMANDS['wk'].enter(me);
});

View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "大厅"
this.desc = "你一走进来,一眼就看到大厅的墙上挂着一幅幅<cmd cmd='look tu'>春宫图(tu)</cmd>,一下子就明白了这是什么地方。厅内到处张灯结彩,香气扑鼻。几名打扮得妖里妖气的女人分站两旁对你发出媚笑。主人韦春芳上上下下、前前后后招呼着客人。从楼上传来了阵阵打情骂俏的声音。";
this.exits = { "up": "yz/lcy/erlou"};
this.set_item("tu", "图", "上面画了一些不可描述的内容");
this.set_npc("yz/lcy/weichunfang");

View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "二楼"
this.desc = "你站在丽春院二楼的过道上,满耳的淫声秽响不绝如缕。墙上挂着几幅古往今来的风流才子,红尘佳人的画像,四周的莺莺燕燕在朝你招手,你恨不得立马跑过去。";
this.exits = { "east": "yz/lcy/fang1", "down": "yz/lcy/dating", "west": "yz/lcy/fang2" };
this.set_npc("yz/lcy/guigong");

View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "东厢"
this.desc = "这是丽春院二楼东面的一间卧房,里面满是女儿家的胭脂味,最里面一张大床挂着晕红的帐幔,床斜对面有一座玳瑁彩贝镶嵌的梳妆台,甚是华美无朋,绚丽夺目。一个女人坐在那里媚笑着看着你。";
this.exits = { "west": "yz/lcy/erlou" };

22
world/map/yz/lcy/fang2.js Normal file
View File

@@ -0,0 +1,22 @@
this.inherits(ROOM);
this.name = "东厢"
this.desc = "这是丽春院二楼东面的一间卧房,里面满是女儿家的胭脂味,最里面一张大床挂着晕红的帐幔,床斜对面有一座玳瑁彩贝镶嵌的<cmd cmd='look tai'>梳妆台</cmd>,甚是华美无朋,绚丽夺目。";
this.exits = { "east": "yz/lcy/erlou" };
this.set_npc("yz/lcy/shisong");
this.set_item("tai", "梳妆台", "一座绚丽夺目的梳妆台。", [
["tui", "推", function (me) {
if (this.query_exits("enter"))
return me.notify("梳妆台已经被你推到一边了。");
me.send_room("$N试着推了推梳妆台发现可以推动$P再一使力把梳妆台推到一边后面露出一个黑乎乎的入口。");
var npc = this.find_by_path("yz/lcy/shisong");
this.add_exit("enter", "yz/lcy/mishi");
if (npc) {
me.notify("史松哈哈大笑道:反贼原来躲到这里来了," + me.call() + ",干的不错,拿去买酒!");
me.money += 10000;
me.notify("史松丢给你10两银子。");
npc.do_command("go", "enter");
}
}]
]);

20
world/map/yz/lcy/mishi.js Normal file
View File

@@ -0,0 +1,20 @@
this.inherits(ROOM);
this.name = "密室"
this.desc = "这是一间密室,房间很小,设备也很简陋,一张小床,一张单桌,一个大汉站在哪里小心的戒备这你。";
this.exits = { "out": "yz/lcy/fang2" };
this.set_npc("yz/lcy/maoshiba");
this.on_enter = function (me) {
if (me.is_player) {
var mao = this.find_by_path("yz/lcy/maoshiba");
if (!mao) return;
var shi = this.find_by_path("yz/lcy/shisong");
if (!shi) return;
me.notify("史松一拍腰间的软鞭,说道:在下黑龙鞭史松,奉鳌少保将令,捉拿天地会反贼。茅十八,受死吧!");
shi.do_kill(mao);
me.notify("茅十八道:你奶奶的,大呼小叫干什么?");
}
}

View File

@@ -0,0 +1,54 @@
this.inherits(ROOM);
this.name = "擂台"
this.desc = "你正站在一个白玉汉石砌成方圆数十丈的大擂台上面,擂台下面的观众声嘶力竭的呐喊助威,加油!加油!加油!加油!加油!加油!";
this.exits = { "down": "yz/leitai/ltx" };
this.max_item_count = 2;
this.no_save=true;
this.add_action("fight", null, function (me) { return me.notify("你正在比试。") });
this.add_action("kill", null, function (me) { return me.notify("你正在比试。") });
this.add_action("dazuo", null, function (me) { return me.notify("你正在比试。") });
this.add_action("liaoshang", null, function (me) { return me.notify("你正在比试。") });
this.on_enter = function (me) {
me.full();
if (this.items.length != 2) return;
var p1 = this.items[0];
var p2 = this.items[1];
p1.die = this.on_die;
p2.die = this.on_die;
this.call_interval(x => {
if (p1.environment != p2.environment) return false;
if (p1.environment != this) return;
p2.send_message("\n<hic>比赛还有" + (5 - x) + "秒钟正式开始!</hic>", true);
},
1000,
5, x => {
p1.do_kill(p2);
}
);
}
this.on_die = function (killer) {
if (!killer) return;
var p1 = this;
var p2 = killer;
COMMAND.DO("sys", "武林大会:" + p2.name + "战胜了" + p1.name + "。");
p1.hp = 100;
p2.add_temp("fight_sc", 1);
p2.notify("\n<hig>你战胜了对手获得比武积分15秒钟后将离开擂台。</hig>\n");
p1.notify("\n<hig>你的比赛失败了本轮积分不变5秒钟后将离开擂台。</hig>\n");
this.call_out(function (me) {
p1.moveto(p1.query_temp("enter_room"), null, p1.name + "走了进来。", "out");
p2.moveto(p2.query_temp("enter_room"), null, p2.name + "走了进来。", "out");
},5000);
var task = TASK.GET('fight');
if (task) {
task.battle_over(p1, p2);
}
}
this.on_leave = function (me, dir) {
if (dir == "out") {
me.die = USER.prototype.die;
return true;
}
me.notify("你正在比武,打完才能下擂台。");
return false;
}

View File

@@ -0,0 +1,85 @@
this.inherits(ROOM);
this.name = "擂台"
this.desc = "你正站在一个白玉汉石砌成方圆数十丈的大擂台上面,擂台下面的观众声嘶力竭的呐喊助威,加油!加油!加油!加油!加油!加油!";
this.exits = { "down": "yz/leitai/ltx" };
this.max_item_count = 1;
this.no_save = true;
this.add_action("fight", null, function (me) { return me.notify("你正在比试。") });
this.add_action("kill", null, function (me) { return me.notify("你正在比试。") });
this.add_action("dazuo", null, function (me) { return me.notify("你正在比试。") });
this.add_action("liaoshang", null, function (me) { return me.notify("你正在比试。") });
this.add_action("relive", null, function (me) { return me.notify("你正在比试。") });
this.start_time = 0;
this.on_enter = function (me) {
if (!me.is_player) return;
me.die = challenge_over;
this.start_time = Date.now();
me.call_interval(x => {
me.send_message("\n<hic>挑战还有" + (10 - x) + "秒钟正式开始!</hic>", true);
},
1000,
10,
function () {
npc.do_kill(me);
}
);
}
this.on_heart_beat = function (dt) {
if (this.start_time) {
if (dt - this.start_time >= 300000) {
this.start_time = 0;
if (!this.items.length) {
return;
}
if (this.items.length == 1) {
var obj = this.items[0];
if (obj.is_player) {
obj.moveto(obj.query_temp("enter_room"), null, obj.name + "走了进来。", "endfight");
obj.notify("<yel>你挑战失败。</yel>");
} else {
this.items.length = 0;
obj.environment = null;
}
return;
}
var player = null;
for (var i = 0; i < this.items.length; i++) {
if (this.items[i].is_player) {
player = this.items[i];
} else {
this.items[i].environment = null;
}
}
if (player) {
player.moveto(player.query_temp("enter_room"), null, player.name + "走了进来。", "endfight");
player.notify("<yel>你挑战超时,自动离开擂台。</yel>");
}
this.items.length = 0;
}
}
}
function challenge_over(killer) {
if (this.environment.items.length != 2) {
return this.send("比武出现问题,请练习管理解决。");;
}
var p1 = this.environment.items[0];
var p2 = this.environment.items[1];
if (!p1.is_player||!p2.is_player) {
return this.send("比武出现问题,请练习管理解决。");;
}
this.die = USER.prototype.die;
killer.die = USER.prototype.die;
this.send_room("<hic>比武结束," + killer.name + "获得胜利5秒钟后将离开擂台。</hic>");
killer.send("<hig>恭喜你获得胜利,积分+1目前积分</hig>");
this.call_out(move_out, 5000);
}
function move_out() {
}
this.on_leave = function (me, dir) {
return me.notify_fail("你比试完才可以下擂台。");
}

View File

@@ -0,0 +1,70 @@
this.inherits(ROOM);
this.name = "擂台"
this.desc = "你正站在一个白玉汉石砌成方圆数十丈的大擂台上面,擂台下面的观众声嘶力竭的呐喊助威,加油!加油!加油!加油!加油!加油!";
this.exits = {};
this.max_item_count = 1;
this.no_save = true;
this.add_action("fight", null, function (me) {
me.notify("你正在擂台比试。");
return true;
}).allow_fight = true;;
this.add_action("kill", null, function (me) {
me.notify("你正在擂台比试。");
return true;
}).allow_fight = true;;
this.add_action("dazuo", null, function (me) {
me.notify("你正在擂台比试。");
return true;
}).allow_fight = true;;
this.add_action("liaoshang", null, function (me) {
me.notify("你正在擂台比试。");
return true;
}).allow_fight = true;;
this.add_action("perform", null, function (me) {
me.notify("擂台上自动出招。");
return true;
}).allow_fight = true;;
this.add_action("unequip", null, function (me) {
me.notify("擂台上自动出招,不允许卸下装备。");
return true;
}).allow_fight = true;;
// this.add_action("equip", null, function (me) {
// me.notify("擂台上自动出招。");
// return true;
// });
this.add_action("enable", null, function (me) {
me.notify("擂台上自动出招,不能更改武功。");
return true;
}).allow_fight = true;
// this.add_action("use", null, function (me) {
// me.notify("擂台上自动出招,不允许使用道具。");
// return true;
// }).allow_fight = true;;
this.add_action("surrender", '投降', function (me) {
WORLD.COMMANDS.biwu.surrender(me);
return true;
}).allow_fight = true;
// this.start_time = 0;
// this.on_enter = function (me) {
// if (!me.is_player) return;
// }
// this.start_challenge = function (me, index) {
// if (me.environment !== this) return;
// }
this.on_leave = function (me, dir) {
if (dir == "fightend") {
return true;
}
// if (dir == "down") {
// return me.notify_fail("你比试完才可以下擂台。");
// }
return me.notify_fail("你比试完才可以下擂台。");
}

View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "擂台"
this.desc = "这是一个方圆数十丈的大广场,一个用白玉汉石砌成数丈高的擂台耸立在广场中央,从上面不时传来吆喝声和惨叫声,擂台的四个边角竖着四根十多丈高的旗杆,分别用金线绣着武林霸主四个大字,广场的正北方用同样的石料砌了一个小台。台上竖着一根大旗杆,一张大旗迎风招展。";
this.exits = { "north": "yz/xidajie1" };
this.no_fight = true;

5
world/map/yz/lmw/fang.js Normal file
View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "头目房间"
this.desc = "流氓头目的房子,在小巷子里属于比较豪华的存在,一个五大三粗的人大马金刀的坐在头椅上。";
this.exits = { "west": "yz/lmw/xiangzi3" };
this.set_npc("yz/lm/zhao");

View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "破茅屋"
this.desc = "这是城北流氓巷的一件茅屋,里面和外面一样都是破破烂烂的,墙角乱七八糟丢着几件武器,有枪,棍,刀,不知道从哪里拣来的,屋里坐着一个人,看上去像个流氓里的小首领。";
this.exits = { "south": "yz/lmw/xiangzi2" };
this.set_npc("yz/lm/lmtou");

View File

@@ -0,0 +1,14 @@
this.inherits(ROOM);
this.name = "小巷子"
this.desc = "这里是扬州城北的一个破烂小巷子,因为在城外所以官兵一直都不大爱管,久而久之这里就成了一些大小流氓的聚集地,到处都是乌烟瘴气。墙角有几个小流氓吊儿郎当的站着看着你。";
this.exits = { "east": "yz/lmw/xiangzi2", };
this.set_npc(["yz/lm/xiaolm", 2]);
this.on_leave = function (me,dir) {
if (dir == "east") {
var obj = this.find_obj_bypath("yz/lm/xiaolm");
if (obj) {
me.notify("小流氓吊儿郎当的拦住你。");
return false;
}
}
}

View File

@@ -0,0 +1,19 @@
this.inherits(ROOM);
this.name = "小巷子"
this.desc = "你继续走进破烂巷子,里面更加的乌烟瘴气,墙角有几个小流氓吊儿郎当的站着看着你。北面有个破茅屋不知道里面有什么,在这里你还是小心为上,不要乱闯。";
this.exits = { "west": "yz/lmw/xiangzi1", "north": "yz/lmw/pomaowu", "east": "yz/lmw/xiangzi3", };
this.set_npc(["yz/lm/liumang", 2]);
this.on_leave = function (me,dir) {
if (dir == "west" || dir == "north") {
var obj = this.find_obj_bypath("yz/lm/liumang");
if (obj) {
if (me.gender == 1) {
me.notify("流氓吊儿郎当的拦住你。");
} else {
me.notify("流氓轻佻的朝你吹了个口哨,嬉皮笑脸的说道:妹妹要到哪里去?");
}
return false;
}
}
}

View File

@@ -0,0 +1,50 @@
this.inherits(ROOM);
this.name = "巷子深处"
this.desc = "这里是流氓巷的最里面,这里的小流氓反而变少了,四周看上去也有些整洁,有块空地上放着一个<cmd cmd='look shinian'>石撵</cmd>,四周地面磨得的光亮,看上去像是经常被拖动的样子。北面好像有个仓库,有个大铁门锁着。";
this.exits = { "west": "yz/lmw/xiangzi2", "east": "yz/lmw/fang", };
this.set_npc(["yz/lm/liumang", 2]);
this.on_leave = function (me,dir) {
if (dir == "east") {
var obj = this.find_obj_bypath("yz/lm/liumang");
if (obj) {
if (me.gender == 1) {
me.notify("流氓吊儿郎当的拦住你。");
} else {
me.notify("流氓轻佻的朝你吹了个口哨,嬉皮笑脸的说道:妹妹要到哪里去?");
}
return false;
}
}
}
this.set_item("men", "大铁门", "这扇大门紧闭,背后不知道藏了什么东西。", [[
"tui", "推", function (me) {
me.notify("你推了下大铁门,感觉自己推不开。");
}
]]);
this.set_item("shinian", "石撵", "这是一个很重的石撵,把手摸得铮亮。", [[
"tui", "推", function (me) {
if (me.mp < 10) {
return me.notify_fail("你使足全力推了推石撵,可是内力耗尽使不上多少劲。");
}
me.notify("你使足全力推了推石撵,石撵缓慢的动了起来。");
me.set_state({
id: "tuishi",
title: "推石撵",
player: me,
rate: 2,
skill_base: SKILL.get("unarmed"),
on_enter: do_work,
desc: '["你脸憋的通红,卯足了劲推着石撵转动。","你大喝一声,猛的发力,石撵呼的一下转了个圈。"]',
});
}
]]);
function do_work(me) {
if (me.mp < 10) {
return me.notify_fail("你感觉自己的力气耗光了,再也推不动了。");
}
if (me.query_skill("unarmed", 0) > 100) return me.notify_fail("你感觉推这个东西跟玩似的,已经对你没有任何好处了。");
me.add_mp(-10);
this.skill_base.add_exp(me, 30);
me.notify_fail("<hic>你推了一圈,感觉自己对拳脚方面功夫多了些理解。</hic>");
}

6
world/map/yz/lw/milin.js Normal file
View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "密林"
this.desc = "你走入树林,这里面树木茂密,杂草丛生,抬头不见天日,你得时刻防备着,说不定突然就有只毒蛇窜了出来。";
this.exits = { "east": "yz/lw/shangu", "west": "yz/lw/milin2" };
this.set_npc(["yz/lw/she", 2]);

View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "密林"
this.desc = "你继续深入,这里面树木更加茂密,杂草丛生,抬头不见天日,你小心翼翼的防备着,说不定有更加危险的野兽。";
this.exits = { "east": "yz/lw/milin", "west": "yz/lw/milin3" };
this.set_npc(["yz/lw/lang", 2]);

179
world/map/yz/lw/milin3.js Normal file
View File

@@ -0,0 +1,179 @@
this.inherits(ROOM);
this.name = "密林深处"
this.desc = "这里是密林的深处,楠木参天,浓阴蔽日,再往里就没有路走了,一只大狼懒洋洋的趴着,四周散落着不少乱七八糟的物件。";
this.exits = { "east": "yz/lw/milin2" };
this.set_npc("yz/lw/langwang");
/*
1.脱光变身
2.披着着狼皮吞下一块月饼
3.丢狼皮变身
4.喊话变异
5.使用狼皮变身
6.丢月饼变异
7.杀小狼变身
8.吃蛇变异
*/
this.add_action("search", "搜索", function (me) {
if (me.query_temp("fb/lw/search")) {
if (!WORLD.DATA.query_temp('zq4', 0) && this.is_time()) {
if (me.add_temp("fb/lw/search", 1) == 6) {
me.notify("你不死心的继续在狼窝乱翻,又找到一块破木板,上面歪歪扭扭的写了几个大字:小月月变身");
return;
}
}
me.notify("你已经搜索过了,该拿的都拿了,快跑吧。");
} else {
me.set_temp("fb/lw/search", 1);
var items = ["eq/lv0/cloth", "eq/lv0/dao", "eq/lv0/ring", "eq/lv0/tiegun", "eq/lv0/jian", "eq/lv0/jin", "eq/lv0/shoes", "eq/lv0/duanyi", "book/book#dodge"];
var obj = me.add_obj(items.random());
if (obj) {
me.notify("你四处搜了搜发现了一" + obj.unit + obj.color_name + "。");
}
if (this.random(3) == 1 && !WORLD.DATA.query_temp('zq8', 0) && this.is_time()) {
var obj = me.add_obj('res/huang');
if (obj) {
me.notify("你发现了一" + obj.unit + obj.color_name + "。");
}
}
}
});
//2区喊话变身
this.add_action("say", "", function (me, par) {
if (!WORLD.DATA.query_temp('zq4', 0) && this.is_time() && me.query_temp("fb/lw/search", 1) > 3) {
var npc = this.find_obj_bypath('yz/lw/langwang');
if (npc && par == '小月月变身') {
this.create_lw(me, npc, 4, '$n对着狼王大声喊道小月月变身\n<wht>一阵烟雾过后,狼王已经消失不见,一只巨大的银色巨狼站在你面前向你咆哮...</wht>');
return true;
}
}
return false;
});
this.add_action("drop", "", function (me, count, objid) {
var obj = me.find_obj(objid);
if (!obj) {
return false;
}
if (obj.is('food/yuebing')) {
//3区丢月饼变身1
var npc = this.find_obj_bypath('yz/lw/langwang');
if (!npc || npc.name != '狼王' || WORLD.DATA.query_temp('zq6', 0) || !this.is_time()) {
me.notify("这么好吃的月饼你也乱丢?");
} else {
WORLD.COMMANDS['drop'].enter(me, count, objid);
this.create_lw(me, npc, 6, "$N看到圆滚滚的月饼凑上来嗅了嗅然后一口吞下...\n<wht>一阵烟雾过后,狼王已经消失不见,一只巨大的银色巨狼站在你面前向你咆哮...</wht>");
}
return true;
}
if (obj.is('res/langpi')) {
//2区丢狼皮变身2
var npc = this.find_obj_bypath('yz/lw/langwang');
WORLD.COMMANDS['drop'].enter(me, count, objid);
if (npc && npc.name == '狼王' && !WORLD.DATA.query_temp('zq3', 0) && this.is_time()) {
this.create_lw(me, npc, 3, '$N看到你丢的狼皮发狂似的朝$p扑了过来....\n<wht>一阵烟雾过后,狼王已经消失不见,一只巨大的银色巨狼站在你面前向你咆哮...</wht>');
}
return true;
}
return false;
});
this.is_time = function () {
let dt = new Date();
let hour = dt.getHours();
return dt.getFullYear() === 2024 && dt.getMonth() === 8 && (dt.getDate() >= 15 && dt.getDate() <= 17)
&& hour >= 21 && hour <= 24;
}
this.add_action("use", "", function (me, objid, par) {
var obj = me.find_obj(objid);
if (!obj) {
return false;
}
//1区变身
if (obj.is('food/yuebing')) {
var npc = this.find_obj_bypath('yz/lw/langwang');
if (!npc && !WORLD.DATA.query_temp('zq2', 0) && this.is_time()) {
if (me.query_temp('langpi')) {
me.notify("<hib>你披着着狼皮吞下一块月饼,幽深的密林中月光淼淼,忍不住发出一阵狼嚎:嗷……呜……</hib>");
me.remove_obj(obj);
WORLD.DATA.set_temp("zq2", 1, UTIL.diff_time());
COMMAND.DO("rumor", "听说" + me.name + "在小树林变身狼王,获得称号【月夜之狼】。");
me.add_title('月夜之狼', 'zq');
return true;
}
}
}
//4区刺激变身
if (obj.is('res/langpi')) {
var npc = this.find_obj_bypath('yz/lw/langwang');
if (npc && !WORLD.DATA.query_temp('zq5', 0) && this.is_time()) {
this.create_lw(me, npc, 5, '$n拿出一块完整的狼皮挑衅的披在身上,$N顿时双眼通红咆哮着冲了过来...\n<wht>一阵烟雾过后,狼王已经消失不见,一只巨大的银色巨狼站在你面前向你咆哮...</wht>');
}
}
return false;
});
this.is_killlang = function (me) {
var rm = ROOM.Get('yz/lw/milin2').query_copy2(me);
if (!rm) {
return 0;
}
var lang = 0;
for (var i = 0; i < rm.items.length; i++) {
if (rm.items[i].is('yz/lw/lang')) {
lang++;
}
}
return lang;
}
this.create_lw = function (me, npc, type, msg) {
if (!WORLD.is_server(me)) return;
if (!this.is_time()) return;
if (npc.fight_type) return;
npc.send_room(msg, me);
npc.name = '<wht>月夜狼王<wht>';
npc.desc = "一只巨大的银色巨狼,是森林中的狼王吃了月饼或者见到什么不该见到的东西变成的";
var lv = me.skill_limit();
if (me.level < 3) {
npc.skill_map(
["dodge", lv],
["bite", lv]);
} else {
npc.skill_map(
["dodge", lv],
["bite", lv],
["boss1", lv, "bite"]);
}
npc.hp = npc.max_hp = me.max_hp * 2;
npc.mp = npc.max_mp = me.max_mp;
npc.on_die = this.on_lwdie.bind(this, me, type);
if (me.level >= 4) {
npc.prop = { gj: me.gj, mz: me.mz, fy: me.fy };
}
npc.init();
npc.recount();
this.item_changed(npc, false);
this.item_changed(npc, true);
npc.do_kill(me);
}
this.on_lwdie = function (me, t) {
var type = "zq" + t;
if (WORLD.DATA.query_temp(type)) return;
if (t % 2 === 0)
COMMAND.DO("rumor", "听说" + me.name + "击杀了变异的狼王,获得称号【月夜之狼】。");
else
COMMAND.DO("rumor", "听说" + me.name + "击杀了受到刺激的狼王,获得称号【月夜之狼】。");
me.add_title('月夜之狼', 'zq');
me.notify('<hig>恭喜你获得称号【月夜之狼】</hig>');
WORLD.DATA.set_temp(type, 1, UTIL.diff_time());
}

View File

@@ -0,0 +1,7 @@
this.inherits(ROOM);
this.name = "山谷"
this.desc = "扬州城外的一个小山谷,这里风景还算秀丽,再往里有片很大的森林,人迹罕至。你侧耳倾听,似乎听到不少狼嚎声,你不禁加快了脚步,想快点离开这里。";
this.exits = { "west": "yz/lw/milin" };
//this.set_npc('boss/tian', 'boss/lang', 'boss/pang', 'boss/zhu', 'boss/chi');

View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "南大街"
this.desc="南大街乃是城里的繁华地段,一到晚上,一派灯红酒绿,尤为热闹。笑声、歌声、琴声、箫声,汇成一片送入了你的耳朵,你不禁心猿意马,很想就此停步享受一番。东边是一家店铺,墙上写着一个大大的“当”字。西边则是一片喧嚣,夹杂着“一五一十”的数钱声,原来那是方圆千里之内最大的一家赌场。"
this.exits={"east":"yz/dangpu","south":"yz/nandajie2","west":"yz/duchang","north":"yz/guangchang"};

View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "南大街"
this.desc="你走在一条繁华的街道上,向南北两头延伸。南边是南城门,北边通往市中心,西边是一家顾客众多的武馆。东边是帮派驻地,几个黑衣人守在那里。";
this.exits={"east":"yz/banghui","south":"yz/nanmen","west":"yz/wuguan","north":"yz/nandajie1"};

4
world/map/yz/nanmen.js Normal file
View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "南门"
this.desc="这是南城门,城墙被当成了广告牌,贴满了花花绿绿各行各业的广告,官府的告示(gaoshi)因此不太显目。官兵们被近处的欢声笑语所吸引,似乎不是很认真在执勤。一条笔直的青石板大道向南北两边延伸。";
this.exits={"west":"yz/work","north":"yz/nandajie2"};

7
world/map/yz/neishi.js Normal file
View File

@@ -0,0 +1,7 @@
this.inherits(ROOM);
this.name = "内室"
this.desc = "这是药铺的内室,是平一指炼药的地方,整个房间空荡荡的只有一个药炉,虽说这里人来人往不是很安静,但到底是个可以让你免费炼药的地方";
this.exits = { "south": "yz/yaopu" };
this.add_action("lianyao", "炼药");
this.can_lianyao = true;

View File

@@ -0,0 +1,9 @@
this.inherits(ROOM);
this.name = "钱庄"
this.desc = "这是一家老字号的钱庄,已有几百年的历史,在全国各地都有分店。它发行的银票信誉非常好,通行全国。帐台上有一个牌子。";
this.exits = { "east": "yz/beidajie1" };
this.no_fight = true;
this.add_action("store", "打开仓库");
this.set_npc("pub/qian");
this.allow_store = true;
this.add_action('drop', null, function (me) { return me.notify('这里人多手杂,不能乱丢东西。'); });

15
world/map/yz/shuyuan.js Normal file
View File

@@ -0,0 +1,15 @@
this.inherits(ROOM);
this.name = "书院"
this.desc = "这里是书院的讲堂,窗明几净,一尘不染。一位庄重严肃的老者坐在太师椅上讲学,那就是当今大儒朱先生了。在他的两侧坐满了求学的学生。一张古意盎然的书案放在朱先生的前面,案上摆着几本翻开了的线装书籍。朱先生的身后是一个书架(shujia)讲堂内多历代楹联石刻,足见书院历史的悠久。值得一提的是嵌在讲堂前左壁的学规(xuegui)。书院老夫子刚奉了圣旨颁发学位,就在门口树着书院新立的学位公告板(board)。";
this.exits = { "south": "yz/dongdajie1" };
this.set_item("xuegui", "学规","日讲经书三起,日看纲目数页。\n通晓时务物理参读古文诗赋。\n读书必须过笔会课按时蚤完。\n夜读仍戒晏起疑误定要力争。\n");
this.set_item("shujia", "书架", "一个一尘不染的书架。");
this.set_item("board", "公告板", "本书院奉圣上恩旨自即日起封授学位");
this.no_fight = true;
this.set_npc("yz/zhu");
this.on_leave = function (me, dir) {
if (dir == "north" )
return me.notify_fail("那是朱熹的私人寝室!!");
}

8
world/map/yz/tree1.js Normal file
View File

@@ -0,0 +1,8 @@
this.inherits(ROOM);
this.name = "大榕树上";
this.no_fight = true;
this.desc = "人说大树底下好乘凉,没想到大树上更凉快。这棵大榕树真不愧为千年神木,至今仍绿叶繁茂。据说这里的时间是冻结的,因此便成为许多玩家聊天的地方。这里摆着几张用榕树根做的椅子,中间用几根榕树枝搭在一起,算是一个茶几了。当你抬头往上看的时候似乎有个影在树梢之间移动,不过也许是风吹动所造成的错觉。";
this.exits = { down: "yz/guangchang" };

35
world/map/yz/work.js Normal file
View File

@@ -0,0 +1,35 @@
this.inherits(ROOM);
this.name = "谷物加工厂";
this.no_fight = true;
this.desc = "这是一间谷物加工厂,这里是谷子脱壳成米的地方。米厂老板是一个一看就知道是十分精明的干瘦的中年人,老是带着一脸奸笑。你可以看到许多人正在忙忙碌碌的工作着,门口挂著一块<CMD cmd='look sign'>牌子(sign)</cmd>。";
this.exits = { "east": "yz/nanmen" };
this.set_item("sign", "牌子", "现在正紧缺人手,急需雇佣一批短工来干活。", [[
"work", "开始工作", start_work
]]);
this.add_action("work", "开始工作", start_work);
function start_work(me) {
if (me.level > 1) return me.notify("老板嘿嘿一笑:我这里人手已经够了,做义工可没工钱的哟!");
if (me.gender == 2) return me.notify("老板嘿嘿一笑:我这里可不招女人,你去成衣店和药店看看有没招工的!");
me.send_room("$N开始辛苦地工作......", me);
me.set_state({
id: "work",
type: "work",
title: "工作中",
player: me,
rate: 2,
on_enter: do_work,
on_check: on_check,
no_move: "你还在打工,乱走就没工钱拿了!",
desc: '["你哼哧哼哧的背着一袋谷子,累的满头大汗。","加油呀!谁叫你穷呀!"]',
});
return true;
}
function on_check(me) {
var exp = WORLD.DATA.exps[me.level];
return me.send('你正在打工每10秒增加' + exp + "点经验和潜能1两<wht>白银</wht>。")
}
function do_work(me) {
var exp = WORLD.DATA.get_exp(me);
me.add_exp(exp, exp, 100 + me.random(20));
}

7
world/map/yz/wuguan.js Normal file
View File

@@ -0,0 +1,7 @@
this.inherits(ROOM);
this.name = "扬州武馆"
this.desc = "这里是扬州武馆,附近的少年想要学些基本的拳脚功夫就来这里报名,只收钱不看资质。大门上方一个大大的匾额,上书:武通天下";
this.exits = { "east": "yz/nandajie2", };
this.no_fight = true;
this.set_npc("pub/jiaoxi");
this.set_npc("pub/mpguanli#NONE");

70
world/map/yz/wumiao.js Normal file
View File

@@ -0,0 +1,70 @@
this.inherits(ROOM);
this.name = "武庙"
this.desc = "这里是岳王庙的正殿,内有岳飞像,像上方悬挂岳飞手书“还我河山”的横匾。殿两侧壁上嵌着“精忠报国”四个大字。武人到此,都放下武器,毕恭毕敬地上香礼拜。旁边似乎有一道侧门。";
this.exits = { "east": "yz/beidajie2" };
this.no_fight = true;
this.is_heartbeat = true;
this.on_heart_beat = function () {
for (var i = 0; i < this.items.length; i++) {
var item = this.items[i];
if (item.hp) {
item.add_hp(parseInt(item.max_hp / 10));
item.add_mp(parseInt(item.max_mp / 10));
}
}
}
this.add_action("shangxiang", "上香", function (me) {
var dt = new Date();
if (dt.getMonth() !== 3 || dt.getDate() !== 5) return me.notify("今天不是清明节,不用来上香。");
if (me.query_temp('qm_hd', 0) >= 3) return me.notify("你已经上完香了。");
var id = WORLD.DATA.query_temp("new_die");
if (!id) return me.notify("最近没人变成孤魂野鬼,再等等。");
let fh_user = WORLD.getUser(id);
if (!fh_user) return me.notify("最近没人变成孤魂野鬼,再等等。");
var type = WORLD.DATA.query_temp("new_die_type");
var name = fh_user.name;
var cmds = ["<mag>今天风很大,阳光正好," + name + "走的很安详,嘴角含笑。$N深深的鞠了一躬。</mag>",
"<blu>$N走上前去感叹道" + name + "生前也是个体面人,还是上一炷香再走吧。</blu>",
"<yel>有人的活着他已经死了,而" + name + "虽然不在了,却仍然活在武庙中。</yel>",
"<CYN>一个人的生命应当如" + name + "这样度过:当他回首往事的时候不会因副本中断而感到悔恨,也不会因回到武庙而感到羞愧!</CYN>"].random();
if (me.level >= 1) {
if (type === 1) {
let count = WORLD.DATA.add_temp('qmhd1', 1, 3600000 * 24 * 5);
if (me.random(count) > 100) {
WORLD.DATA.remove_temp('qmhd1');
fh_user.add_title("再来一次的", "qmhd");
fh_user.send("<hig>你获得了称号【再来一次的】。</hig>");
}
} else if (type === 2) {
let count = WORLD.DATA.add_temp('qmhd2', 1, 3600000 * 24 * 5);
if (me.random(count) > 100) {
WORLD.DATA.remove_temp('qmhd2');
fh_user.add_title("武庙常客", "qmhd");
fh_user.send("<hig>你获得了称号【武庙常客】。</hig>");
}
}
}
//me.send("<yel>你点上一炷香深深的鞠了一躬:愿英雄常在,愿逝者永存</yel>");
me.send_room(cmds);
var count = me.add_temp("qm_hd", 1, 3600000 * 24 * 3);
if (count == 1) {
var obj = me.add_obj("cash/tianshifu", 10);
if (obj) {
me.notify("你获得了" + obj.unit_name(10) + "。");
}
} else if (count == 2) {
var obj = me.add_obj("cash/jing#4");
if (obj) {
me.notify("你获得了" + obj.unit_name(1) + "。");
}
} else {
me.add_exp(0, 0, 990000);
}
});

5
world/map/yz/xidajie1.js Normal file
View File

@@ -0,0 +1,5 @@
this.inherits(ROOM);
this.name = "西大街"
this.desc = "这是一条宽阔的青石板街道,向东西两头延伸。西大街是衙门所在,行人稀少,静悄悄地很是冷清。东边是一个热闹的广场。南边是兵营。北边就是衙门了。";
this.exits={"west":"yz/xidajie2","north":"yz/yamen","south":"yz/leitai/ltx","east":"yz/guangchang"};

4
world/map/yz/xidajie2.js Normal file
View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "西大街"
this.desc = "你走在西大街上,感到这里的街面要比别处的干净、整洁。大概因为靠近衙门、兵营可受保护的缘故,富人们都喜欢住在这里。东边静悄悄地没有几个行人,西边是西城门通往郊外。南边是一座镖局,北边是一所富丽堂皇的大宅院。";
this.exits={"east":"yz/xidajie1","south":"yz/biaoju","west":"yz/ximen","north":"yz/home"};

4
world/map/yz/ximen.js Normal file
View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "西门"
this.desc="这是西城门,几年前曾经遭到土匪的攻打,因此显得有些破败。城门正上方勉勉强强可以认出“西门”两个大字,城墙上贴着几张通缉告示(gaoshi)。这里是罪犯逃往西域的必经之地,官兵们戒备森严,动不动就截住行人盘问。一条笔直的青石板大道向东西两边延伸。西边是郊外,骑马的、座轿的、走路的,行人匆匆。东边是城里。";
this.exits={"east":"yz/xidajie2","west":"yz/kuang"};

4
world/map/yz/yamen.js Normal file
View File

@@ -0,0 +1,4 @@
this.inherits(ROOM);
this.name = "衙门大门";
this.desc = "这里是衙门大门,两扇朱木大门紧紧关闭着。“肃静”“回避”的牌子分放两头石狮子的旁边。前面有一个大鼓,显然是供小民鸣冤用的。几名衙役在门前巡逻。";
this.exits = { "south": "yz/xidajie1", "north": "yz/ymzhengting" };

11
world/map/yz/yaolin.js Normal file
View File

@@ -0,0 +1,11 @@
this.inherits(ROOM);
this.name = "药林"
this.desc = "这是一片茂密的树林。很多棵几十丈高的大树聚在一块,象一把把琼天大伞,连日月都被遮蔽得黯然无光,这里生长这很多奇花异草,运气好还可以找到珍稀的药材。"
this.exits = { "north": "yz/dongmen" };
this.no_fight = true;
this.can_caiyao = true;
this.add_action("cai", "采药", function (me) {
return WORLD.COMMANDS['caiyao'].enter(me);
});

32
world/map/yz/yaopu.js Normal file
View File

@@ -0,0 +1,32 @@
this.inherits(ROOM);
this.name = "药铺"
this.desc = "这是一家药铺,一股浓浓的药味让你几欲窒息,那是从药柜上的几百个小抽屉里散发出来的。神医平一指坐在茶几旁,独自喝着茶,看也不看你一眼。一名小伙计站在柜台后招呼着顾客。柜台上贴着一张发黄的<cmd cmd='look guanggao'>广告(guanggao)</cmd>。";
this.exits = { "south": "yz/dongdajie2", "north": "yz/neishi" };
this.set_item("guanggao", "告示", "本店招收学徒", [[
"work", "开始工作", start_work
]]);
this.set_npc("yz/ping");
this.no_fight = true;
this.add_action("work", "开始工作", start_work);
function start_work(me) {
if (me.level > 1) return me.notify("平一指:小店本小利薄,哪里敢劳烦大侠!");
me.send_room("$N开始在在药店当学徒......", me);
me.set_state({
id: "work",
type: "work",
title: "工作中",
player: me,
rate: 2,
on_enter: do_work,
no_move: "你还在打工,乱走就没工钱拿了!",
desc: '["只见你随手一扔,药居然刚好扔进药箱,好运气呀。","你看着手上的药材,想了半天终于还是没有找到该放的地方。","你分的好仔细呀,还要检查一次!"]',
});
return true;
}
function do_work(me) {
var exp = WORLD.DATA.get_exp(me);
me.add_exp(exp, exp, 100 + me.random(20));
}

View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "衙门正厅";
this.desc = "堂上东西有两根楹住,挂着一幅对联,但是你无心细看。正墙上悬挂一个横匾,上书“正大光明”四个金光闪闪的大字。知府正坐在文案后批阅文书,师爷随侍在后";
this.exits = { "south": "yz/yamen"};
this.no_fight = true;
this.set_npc('yz/cheng',"pub/hubu");

8
world/map/yz/zahuopu.js Normal file
View File

@@ -0,0 +1,8 @@
this.inherits(ROOM);
this.name = "杂货铺"
this.desc = "这是一家小小的杂货铺,大箱小箱堆满了一地,都是一些日常用品。杨掌柜懒洋洋地躺在一只躺椅上,招呼着过往行人。据说私底下他也卖一些贵重的东西。摊上立着一块招牌(zhaopai)。";
this.exits = { "north": "yz/dongdajie1", "up": "yz/garments" };
this.no_fight = true;
this.set_item("zhaopai","招牌", "请用 \"list\" 列出货物表,\"buy\" 向老板购物。\n货真价实童叟无欺");
this.set_npc("yz/yang");

View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "镖局正厅"
this.desc = "这里是福威镖局的正厅,几只太师椅一字排开,正中央坐着总镖头,手持烟袋杆正在闭目沉思。墙上挂着几幅字画和一把宝剑。";
this.exits = { "north": "yz/biaoju" };
this.set_npc("yz/linzhennan");
this.no_fight = true;

View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "醉仙楼"
this.desc = "方圆数百里内提起醉仙楼可以说是无人不知,无人不晓。当年苏学士云游到此,对醉仙楼的花雕酒赞不绝口,欣然为其题匾,流下一段传遍海内的佳话,从此醉仙楼名声大震。楼下布置简易,顾客多是匆匆的行人,买点包子、鸡腿、米酒就赶路去了。";
this.exits = { "west": "yz/beidajie2", "up": "yz/zuixianlou2" };
this.set_npc("pub/xiaoer2");
this.no_fight = true;

View File

@@ -0,0 +1,6 @@
this.inherits(ROOM);
this.name = "醉仙楼"
this.desc = "这里是雅座,文人学士经常在这里吟诗作画,富商土豪也在这里边吃喝边作交易。这里也是城里举办喜宴的最佳场所。你站在楼上眺望,只觉得心旷神怡。东面是一池湖水,碧波荡漾。北面是崇山峻岭,而南面可以看到闻名全国的白鹿书院的后庭。";
this.exits = { "down": "yz/zuixianlou" };
this.no_fight = true;