⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 baby2.c

📁 C实现的MUD,对大家基本入门网络游戏很有帮助!
💻 C
📖 第 1 页 / 共 2 页
字号:
// baby.c#include <ansi.h>#include <combat.h>inherit NPC;string *cmds = ({"wield", "unwield", "wear", "remove", "enable", "jifa", "prepare", "bei", "exert","yun", "perform", "yong", "enforce", "jiali", "eat", "drink", "kill", "hit", "say"});void try_move();void exec_cmd(object me, string arg);void create(){        set_name("宝宝", ({"xiao baobao","baby"}) );if (random(10)>5){        set("gender", "女性");}else {        set("gender", "男性");}        set("age", 1);        set_temp("no_kill",1);        set("attitude", "friendly");        set("long","乖宝宝。你可以用nie,shua命令来和他玩\n");        set("combat_exp", 1);        set("str",3);        set("parents",({"dad","mom"}));           set("chat_chance", 2);        set("chat_msg", ({           (: random_move :)        }));        set("is_baby",1);        // to allow the identification of baby. by mon.        setup();	carry_object(__DIR__"candy");carry_object(__DIR__"candy2");carry_object(__DIR__"candy3");}void init(){	object ob;	ob = this_object();       add_action("do_kill",({"kill","fight","hit","steal"}));  add_action ("do_setid", "setid");  add_action ("do_setname", "setname");  add_action ("do_nie", "nie");  add_action ("do_shua", "shua");  add_action("do_get","get");  add_action("do_drop","drop");  add_action("do_shape", "ck");  add_action("do_cun", "cundang");   add_action("do_teach", "jiaoyang");     add_action("do_order", "minglin");add_action("do_make", "makebb");}int do_drop(string arg){      object me=this_object(),who=this_player(),env;      if(!arg) return 0;      env = environment(who);      if(present(arg,who)!=me) return 0;      if(me->move(env))      {             message_vision("$N把$n从怀里放了下来。\n",who,me);             return 1;      }      return 0;}int do_get(string arg){      object me=this_object(),who=this_player(),env;      if(!arg) return 0;      env = environment(who);      if(present(arg,env)!=me) return 0;      if(member_array(who->query("id"),             me->query("parents"))>-1)      {             if(me->move(who))             {                   message_vision("$N弯下腰把$n抱了起来,搂在怀里。\n",who,me);             }             else             {                   message_vision("$N弯下腰一抱却没把$n抱起来,小家伙好沉哪!\n",who,me);             }      }      else      {             message_vision("$N蹲下身朝$n伸开双手,$n却一下子闪开了...\n",who,me);      }      return 1;}int do_kill(string arg){             object me,who;      string name,verb,what,obj;      if (!arg) return 0;      verb=query_verb();      me=this_player();         if(verb=="steal")      {             if(sscanf(arg, "%s from %s", what, obj)!=2 )              return 0;      }      else obj=arg;      if(!objectp(who=present(obj,environment(me)))             || !living(who)) return 0;//    if(who->query("is_baby")) {      if(who==this_object())      {             switch(verb)             {                    case "kill"://         command("chat* "+                         tell_object(environment(this_object()),                         who->query("name")+"拼命地哭了起来:爹~~,娘~~,"+                             me->query("name")+"要杀我...快回来呀!\n");                         break;                    case "hit"://         command("chat* "+                         tell_object(environment(this_object()),                         who->query("name")+"大哭了起来:爹~~,娘~~,"+                             me->query("name")+"欺负我...快回来呀!\n");                         break;                    case "fight"://         command("chat* "+                         tell_object(environment(this_object()),                         who->query("name")+"哭了起来:爹~~,娘~~,"+                             me->query("name")+"要抢我的糖吃...快回来呀!\n");                         break;                    case "steal"://         command("chat* "+                         tell_object(environment(this_object()),                         who->query("name")+"哭了起来:爹~~,娘~~,"+                             me->query("name")+"要偷吃我的糖!\n");                         break;                    case "beg"://         command("chat* "+                         tell_object(environment(this_object()),                         who->query("name")+"小嘴一歪哭了起来:爹~~,娘~~,"+                             me->query("name")+"要骗我的糖吃!\n");                         break;             }      }      command(verb);      return 0;}void relay_emote(object ob, string verb){      if( !userp(ob) ) return;      switch(verb)      {            case "kick":                 command("say 爹~~,娘~~,"  + ob->query("name") + "踢我耶!");                 command("kick " + ob->query("id"));                 break;            case "slap":                 command("say 爹~~,娘~~,"  + ob->query("name") +                 "打我耶,好痛啊~~~~");                 command("slap " + ob->query("id"));                 break;            case "hit":                 command("pain " + ob->query("id"));                 break;            case "bite":                 command("face " + ob->query("id"));                 break;              case "papaya":                 command("angry");                 break;        }}void relay_whisper(object me, string msg){      if (member_array(me->query("id"),query("parents"))==-1)      {            message_vision((string)this_object()->query("name")                        + "疑惑地看着$N。\n", me);            return;      }      //note, do not allow the order contain "chat", "tell"...      //may need disable more later...      if( strsrch(msg, "chat") != -1 ||          strsrch(msg, "tell") != -1 ||          strsrch(msg, "follow") != -1 ||          strsrch(msg, "apprentice") != -1 ||          strsrch(msg, "recruit") != -1 )            return;      if (msg)      {            remove_call_out ("relaying");            call_out ("relaying", 1+random(3), msg);      }}void relaying (string msg){//execute the order.      command (msg);}int do_setid (string arg){  object me = this_player();  string name = this_object()->query("name");  if (!wizardp(me))    return 0;  this_object()->set_name(name, ({ arg }) );  return 1;}int do_setname (string arg){  object me = this_player();  if (!wizardp(me))    return 0;this_object()->set("name"," "+ arg+" ");//  this_object()->set("name",arg);  this_object()->set("long","一"+this_object()->query("unit")+arg+"。\n");  return 1;}int do_setunit (string arg){  object me = this_player();  if (!wizardp(me))    return 0;  this_object()->set("unit",arg);  this_object()->set("long","一"+arg+this_object()->query("name")+"。\n");  return 1;}string rdm(string *strs){  return strs[random(sizeof(strs))];}int do_nie (string arg){  string *dos = ({    "用手指轻轻一捏",    "轻轻捏了一下",    "小心地捏一捏",    "捏一捏",    "轻碰了一下",    "碰碰",    "用手指点一点",  });  string *parts = ({    "脑袋",    "头发",    "脸蛋",    "胖腮帮",    "嘴嘴",    "小嘴唇",    "耳朵",    "眉心",    "长睫毛",    "鼻子",    "小鼻尖",    "下巴",    "小脖子",    "手",    "胳膊",    "腿",    "脚",    "肚肚",    "小屁屁",  });  string *actions = ({    "张开小口吱吱地叫了两声。",    "张开嘴啊哟了一声。",    "天真地呀呀叫出了声音。",    "睁开大眼睛吧嗒吧嗒地眨了几下。",    "睡意朦胧地慢慢睁开一对大眼睛。",    "睁开眼睛,又满意地合上眼睛睡着了。",    "摇了摇硕大的脑袋。",    "东倒西歪地努力抬起大脑袋。",    "认真地点点脑袋。",    "瞪着大眼睛看着$N。",    "呆呆地看着$N,吃吃地笑出声来。",    "把胖胖的手指放到嘴里,一边吮吸一边看着$N。",    "把脑袋往两边一转看了看,又抬头看看$N。",    "害羞地把脑袋往$N怀里一钻。",    "甜甜地把大脑袋贴在$N身上。",    "皱了一皱月儿眉。",    "小老头儿般地皱了一皱额头。",    "高兴地把眼睛眯成一条缝。",    "咧开小嘴哇地一声哭了出来。",    "摆出一副可爱的小苦瓜脸。",    "张开小嘴哭得喘不过气来。",    "眯着眼睛,张开小嘴笑了出来。",    "甜蜜一笑。",    "笑呀笑呀笑呀。",    "呀呀哟哟地唱了几句。",    "高兴地唱了起来:咿噜啊哈哩……",    "唱起摇篮曲:睡睡吧,乖乖耶……",    "不高兴地噘了噘小嘴。",    "满脸不高兴嘟囔着小嘴儿。",    "噘起小嘴儿眼儿一翻扭过头去不理人了。",    "用小手揪住$N的袖口。",    "一把揪住$N的衣服死死不放。",    "揪住$N的手眼巴巴地望着$N。",    "伸出两条小腿胡乱踢了几下。",    "抬起一条小腿伸在$N的脸上。",    "高兴地拍打着两条小腿儿。",    "扭了扭腰肢。",    "撅了撅小屁屁。",    "把小屁屁向$N一歪。",    "笑了起来。",    "咯咯咯笑个不停。",    "搂着$N的脖子笑了起来。",    "甜甜地一笑:叔叔阿姨,我要撒娇娇……",    "天真地问:我撒个娇娇好不好呀?",    "问$N:要是我撒个娇娇你是不是更喜欢我呀?",    "突然开口说:咦,那个叔叔有小胡子,我怎么没有呢?",    "说:哟,阿姨头发真长,挠在宝宝的脸上痒痒耶。",    "问道:小宝宝我什么时候能长成大宝宝老宝宝?",    "说道:阿姨,要不要听我唱支歌?",    "说道:宝宝想唱支儿歌,哪一支呢?我想不起来哪支最好听的。",    "嘟嘟囔囔地说:叔叔阿姨,我是个最好的小乖乖耶。",    "一字一句地说:我最乖乖耶,叔叔阿姨只喜欢我一个小乖乖好吗?",    "自言自语地说:我是小乖乖,小乖乖是我。",    "细声细气地说:小乖乖我……想吃糖糖耶。",    "说:往我嘴里放一颗糖糖好不好?",    "说:叔叔阿姨能变魔术吗?变出糖糖来好不好?",  });  string str1 = "$N"+rdm(dos)+"$n的"+rdm(parts)+"。\n";    string str2 = "$n"+rdm(actions)+"\n";    if (arg != this_object()->query("id"))    return 0;  remove_call_out ("delayed_action");  call_out ("delayed_action",1,str1,this_player(),this_object());  remove_call_out ("delayed_reaction");  call_out ("delayed_reaction",3,str2,this_player(),this_object());  return 1;}int do_shua (string arg){  object me = this_object();  object who;  string my_name = me->query("name");  string *dos = ({    "飞快地从$N手中跑下来,爬到$n的",    "从$N身上滑下来,蹿到$n的",    "从$N手中使劲往$n身上一跳,贴在$n的",    "朝$N点点头,一转身扒在$n的",    "会意地爬到$n的",    "老练地扑到$n的",    "鬼鬼祟祟地蹦到$n的",    "一个弹跳扑到$n的",    "跳上$n的",    "呼地一跳,跃在$n的",    "一个小飞身跃在$n的",    "身子一闪,已站在$n的",    "巧巧地一翻身,抓在$n的",    "机灵地抓在$n的",  });  string *parts = ({    "后脑勺",    "扁脑门",    "乱头发",    "秃顶",    "水泡眼",    "老鼠眼",    "腮帮",    "黄脸蛋",    "厚嘴唇",    "咧开的嘴巴",    "肥耳朵",    "大暴牙",    "酒糟鼻子",    "宽鼻梁",    "肥下巴",    "斜酒窝",    "歪脖子",    "瘦喉结",    "塌肩膀",    "鸡胸",    "短拇指",    "肥掌",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -