chufang.c
来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 129 行
C
129 行
// chufang.c (kunlun)// copied from wudang, modify later.// cck modified on 17/6/97#include <ansi.h>inherit ROOM;void init();int do_tap(string arg);int do_sit(string arg);void delete_served(object me);void create(){ set("short", "厨房"); set("long", @LONG这里是昆仑派弟子用餐的地方。由于天长日久,墙壁都被烟熏黑了。屋里摆着几张桌椅,几位昆仑弟子正在大吃大喝,行酒猜拳。LONG ); set("exits", ([ "west" : __DIR__"liangong", "northwest" : __DIR__"xiuxishi", ])); set("objects",([ __DIR__"npc/puren" : 1, __DIR__"obj/rice" : 3, __DIR__"obj/xiangcha" : 3, __DIR__"obj/kaoya" : 2, ])); set("no_fight", 1); setup();}void init(){ add_action("do_tap", "tap"); add_action("do_tap", "knock"); add_action("do_sit", "sit");}int do_tap(string arg){ object me; object cui; if (!arg || (arg != "desk" && arg != "table")) { return notify_fail("你要敲什么?\n"); } me = this_player(); if( !objectp(cui = present("pu ren", environment(me))) ) return notify_fail("你敲了敲桌子,却还是没人理你。你突然感觉自己很无聊。\n"); if( !me->query_temp("marks/sit") ) return notify_fail("你敲了敲桌子,却没想到有对年轻人从桌底下钻出来,愕然地看着你," +"\n你突然感觉自己很愚蠢。\n"); if( me->query_temp("marks/served") ) { message_vision("仆人不耐烦地对$N说道:刚给你上过茶你接着就要,"+ "你不累可我累啊!\n", me); return notify_fail(""); } message_vision("$N端坐在桌前,轻轻扣了下桌面,仆人连忙过来招呼。\n", me); cui->serve_tea(me) ; me->set_temp("marks/served", 1);// remove_call_out("delete_served"); call_out("delete_served", 10, me); return 1;}void delete_served(object me){ if ( objectp(me) ) me->delete_temp("marks/served");}int do_sit(string arg){ if ( !arg || (arg != "chair") ) return notify_fail("你要坐什么上面?\n"); if (this_player()->query_temp("marks/sit")) return notify_fail("你已经有了个座位了。\n"); this_player()->set_temp("marks/sit", 1); return notify_fail("你找了个空位座下,等着上茶。\n");}int valid_leave(object me, string dir){ if ( (dir == "west" || dir == "northwest" ) && ( present("xiang cha", this_player()) || present("ci wan", this_player()) || present("kaoya", this_player()) || present("rice", this_player()) ) && objectp(present("pu ren", environment(me))) ) switch ( random(2) ) { case 0:message_vision("仆人伸手拦住了$N:还是先把东西吃完了再走吧。", me); return notify_fail("\n"); break; case 1: message_vision("仆人拦住$N道:何掌门吩咐,饮食不得带出茶房。", me); return notify_fail("\n"); break; } me->delete_temp("marks/sit"); me->delete_temp("tea_cup"); return ::valid_leave(me, dir);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?