shijian.src

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

SRC
156
字号
// npc: shijian.c
// Jay 3/26/96
#include <ansi.h>
inherit NPC;

void create()
{
	set_name("侍剑", ({ "shijian"}) );
	set("nickname", RED "剑" NOR );
	set("gender", "男性" );
	set("age", 20);
	set("long", 	
		"他头上包着白布头巾,一袭白袍,没有一丝褶皱。\n");
	set("str", 25);
	set("dex", 20);
	set("con", 17);
	set("int", 30);
	set("shen_type", 0);
	set("max_neli",500);
	set("jiali",50);

	set_skill("unarmed", 100);
	set_skill("dodge", 100);
	set_skill("force",150);
	set_skill("sword",150);
	set_skill("parry",90);
	set_temp("apply/attack", 50);
	set_temp("apply/defense", 50);
	set_temp("apply/damage",50);

	set("combat_exp", 250000);
	set("score",0);
	
	set("attitude", "peaceful");
        
	set("inquiry", ([
		"铸剑"  : "师傅命我帮助别人铸剑,但到现在也不见一个人影。谁要铸剑呢?\n",
		"原料"  : "铸剑可用寒丝羽竹,海底金母,千年神木。但效果各不一样。\n",
	]) );

	setup();

	carry_object("/clone/misc/cloth")->wear();
}

void init()
{
	::init();
	add_action("do_zhu","zhu");
}


int accept_object(object who, object ob)
{	
	if(!(who->query_temp("sword") ) ){
		message_vision(HIC"师傅没有同意为你铸剑,您请回吧!\n"NOR, who);
		return 1;
	}
	who->delete_temp("sword");
	who->set_temp("m_sword",1);
//	switch ((string)ob->query("name") ) 
	switch ((string)ob->query("id") ) 
	{
//		case "千年神木": 
		case "shen mu": 
			who->add_temp("shenmu",1);
			break;
//		case "海底金母":
		case "jin mu":
			who->add_temp("jinmu",1);
			break;
//		case "寒丝羽竹": 
		case "han zhu": 
			who->add_temp("hanzhu",1);
			break;
		default :
			message("vision","这是什么!师傅说这不能用来打造兵器!",who);
			return 0;
	}
	message("vision","侍剑低头检视了一下手中的"+(string)ob->query("name")+
			"点了点头说:\n", who);
	message("vision","。。。好我们现在就开始铸剑\n", who);
	write("请这位"+RANK_D->query_respect(who)+"给剑起名字吧!(zhu 剑的名字 英文代号)\n");
	return 2;
}

int do_zhu(string arg)
{
	string o_name,id,w_name;
	object sword,make_time;   //生成的武器句柄
	object me;
	me = this_player();
	if(!(me->query_temp("m_sword")) ) 
		return notify_fail("什么?\n");
	me->delete_temp("m_sword");
	me->delete_temp("get_orc");
	me->delete_temp("or");

	if((me->query("weapon/make")) ){
		say("侍剑一脸茫然:您已经有一把自造的武器了,还来干什么?难到不可手么?\n");
		return 1;
	}
	if( !arg )
		return notify_fail("侍剑认真的说:想好剑的名称及代号后在对我说。\n");

	sscanf(arg ,"%s %s" ,w_name ,id);
	if(!w_name||!id)
		return notify_fail("什么?(使用zhu 剑的名字 英文代号\n)");
	if(me->query_temp("shenmu") ) o_name="千年神木";
	if(me->query_temp("jinmu") )   o_name="海底金母";
	if(me->query_temp("hanzhu") )   o_name="寒丝羽竹";
	make_time=NATURE_D->game_time();
	message_vision(me->name()+"沉吟了一会,对侍剑悄声说了几句话。侍剑点了点头。说:好吧!\n",me );
	message_vision("\n侍剑回过身,转向身后的一个巨大的火炉,鼓动真气燃起了熊熊的大火。说:开始!\n",me );
	message_vision(BLU "$N双手握住一个巨大的铁锤,猛的向炉中渐渐红热起来的"+o_name+"挥去!\n" NOR,me);
	message_vision(RED "只听得棚的一声巨响,锤头和"+o_name+"粘在了一起。\n" NOR,me );
	message_vision(YEL "$N只觉得掌心一热,浑身的血液似乎都沸腾了起来!\n" NOR,me);
	message_vision(HIM "一身精血胶合着汩汩的内气,源源不断的向炉中的"+o_name+"涌去!\n" NOR,me );
	if( (me->query("qi"))<(me->query("max_qi")) || (me->query("jing"))<(me->query("max_jing")) || (me->query("neili"))<(me->query("max_neili")) )
	{
		message_vision(HIR "突然$N觉得气血一阵翻涌,一口真气接不上来。。。。 \n" NOR, me);
		me->set("neili",0);
		me->unconcious();
		return 1;
	}
	message_vision(HIR "只听咯的一声轻响,一柄巨剑从炉中倏然跃起。化作一道青电猛的向$N的前胸刺来!!\n" NOR,me );
	say("侍剑见状大叫:神剑初成,人血以祭!!闪开!\n");
	message_vision("$N只觉得眼前一花,一条白影迅捷无比的挡在了$N的身前。\n",me );	
	message_vision("巨剑透胸穿出,侍剑惨号一声,鲜血溅得你满脸都是!\n",me );
	message_vision(RED "侍剑脚下一个不稳,倒在了地上。侍剑已经奄奄一息了。\n" NOR,me);
	this_object()->set("max_qi",10);
	message_vision("巨剑又飞了起来,飞到半空,当的一声落回到地上。\n炉中的火灭了。一室的劲气化于无形,一切又归于沉寂。\n",me );
	
	me->set("qi",10);
	me->set("jing",10);
	me->set("neili",0);

	me->set("weapon/make",1);		//武器制造后防止再造的标志		
	me->set("weapon/name",w_name);	//武器的名称
	me->set("weapon/id",id);		//武器的代号
	me->set("weapon/lv",1);    	//武器等级
	me->set("weapon/or",o_name);	//记录制造原料
	me->set("weapon/value",0);	      	//记录武器升级已有的点数	
	me->set("weapon/type","剑");
	me->set("weapon/time",make_time);

	sword=new("/d/npc/m_weapon/weapon/m_sword",1);	//生成新剑
	sword->move(this_player());
	message_vision("侍剑摸起地上,带着斑斑血迹还有些烫手的巨剑,说:\n剑。。已。。成。。,侍剑的任务。。。也就完成了。。。。\n",me );
	say("侍剑艰难的说:剑。。您。。收好,我该走了。。。\n");
	message_vision("侍剑说完。倏的便不见了。\n",me);
	this_object()->die();
	return 1;
}

⌨️ 快捷键说明

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