📄 baby2.c
字号:
// 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 + -