this.inherits(ROOM); this.name = "赌场" this.desc = "赌桌围着黑压压的赌徒,吆喝声、惊叹声、欢呼声、咒骂声、哄笑声和噼哩啪啦的声响使你的耳朵几乎无法忍受,赌桌旁的墙上贴有一张。"; 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("这里还没庄家,你要试着当庄家吗?"); 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("这里已经有庄家了,等他摇骰子吧。"); } this.master = me; me.send_room("$N现在是这里的庄家。"); 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("$N拿出一个骰盅,双手随意挥舞着,看上去颇有几分气势。\n$P“啪”的一声把骰盅扣在桌子上喊道:下注啦!"); 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("$N不当庄家了,你可以点击掷骰子来当庄家。"); 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("$N一把掀开骰盅喊道:买定离手啦,开……" + num1 + "," + num2 + "," + num3 + "……" + name + "!!!"); 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("恭喜你赢了一个铜板。"); } else { this.items[i].notify("这局你输了一个铜板。"); } } } } 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; });