shenxiandao.c

来自「C实现的MUD,对大家基本入门网络游戏很有帮助!」· C语言 代码 · 共 103 行

C
103
字号
// shenxiandao.c// inherit F_CLEAN_UP;inherit COMBINED_ITEM;#include <ansi.h>void create(){	set_name("神仙倒", ({ "shenxiandao","yao"}) );	if( clonep() )                       		set_default_object(__FILE__);	else {		set("long",			"这是一包五毒教的圣药,吃了它连大罗金仙也要倒下。\n你可以用(pour)命令试试。\n" );		set("unit", "些");		set("base_value", 200);		set("base_unit", "包");		set("base_weight", 30);		set("value", 800);	}	set_amount(1);                     // 21}void init(){	add_action("do_pour", "pour");}int do_pour(string arg){	string  what;	object ob,me,who,victim;//     object *inv;	function f;       me = this_player();	if( !arg	||	sscanf(arg, "%s in %s", who, what)!=2       ||victim == me)		return notify_fail("命令格式: pour <人物> in <物品>。\n");	victim = present(who, environment(me));	if( !victim || victim==me) return notify_fail("没有你想下毒的人哦。\n");       if ((string)me->query("family/family_name") != "五毒教")                  return notify_fail("下毒!!你怎么能干这么卑鄙的事哦?\n");       if ((int)me->query_skill("duji",1) < 50)                  return notify_fail("才这么点本事就想害人?别弱了我五毒教的威名啊!\n");	ob = present(what, victim);	if( !ob )                               // 41		return notify_fail("对方身上没有" + what + "这样东西。\n");//	if( me->query_temp("being_toudu") )//		return notify_fail("你已经在找机会下手了!\n");	if( ob->query("max_liquid"))       {           int myskill = (me->query_skill("duji",1))*10+me->query("neili");           int skill = victim->query("neili");           if((int)ob->query("liquid/remaining")<1)       	    return notify_fail("那个容器是空的,不能用来溶解毒粉!\n");           if (random(myskill)<random(skill))           {		tell_object(me, HIR "糟糕!你失手了!\n\n" NOR);		message_vision("$N一回头,正好发现$n正想向$P身上的" + ob->name() + "下毒!\n\n"			+ "$N喝道:「干什么!」\n\n", victim, me);		if( userp(victim) )		{			victim->fight_ob(me);			me->fight_ob(victim);		}		else		{			victim->kill_ob(me);			me->kill_ob(victim);		}              me->start_busy(3);              return 1;           }           f = (: call_other, __FILE__, "drink_drug" :);	    ob->set("liquid/drink_func", bind(f, ob));	    ob->add("liquid/slumber_effect", 1000);	    message("vision","你与" + victim->name() + "擦身而过,偷偷将《" + name() + "》洒进他的" + ob->name()+ "里面。\n", this_player());	    add_amount(-1);           me->start_busy(2);		if( random(myskill) < skill/2 )			message("vision", "你看到" + me->name() + "鬼鬼祟祟地在"				+ victim->name() + "身上的一" + ob->query("unit")				+ ob->name() + "里洒入了一些"+name()                           +"!\n", environment(me), ({ me, victim }) );	     return 1;       }       else return notify_fail("毒只能下在饮水里面!\n");       return 1;  }int drink_drug(object ob){	this_player()->apply_condition("slumber_drug",		(int)this_player()->query_condition("slumber_drug") 		+ (int)ob->query("liquid/slumber_effect") );	return 0;}

⌨️ 快捷键说明

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