gaohehui.c

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

C
186
字号
// gaohehui.c 高和惠

inherit NPC;
inherit F_DEALER;
string ask_me();

int do_mo(string arg); 
int do_fenyao(string arg); 
int do_zhengli(string arg); 
void reward(object me); 

void create()
{
	set_name("高和惠", ({ "gao hehui", "gao" }));
	set("per", 29);
	set("no_get",1);
	set("str", 20);
	set("gender", "女性");
	set("age", 22);
            set("title", "名医");
	set("long", "她是神医世家的长女。\n");
	set("combat_exp", 250);
	set("attitude", "friendly");
	set("vendor_goods", ({
		"/clone/misc/jinchuang",
		"/clone/misc/yangjing",
		"/clone/misc/wuchangdan",
		"/clone/misc/zhujingchan",
		"/clone/misc/dust",
		"/d/shenlong/obj/xionghuang",
	}));
        set("inquiry", ([
                "工作" : (: ask_me :),
                "job"  : (: ask_me :),
        ]));

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

void init()
{
        add_action("do_list", "list");
        add_action("do_buy", "buy");
        add_action("do_mo", "moyao"); 
        add_action("do_fenyao", "fenyao"); 
        add_action("do_zhengli", "zhengli"); 
}

string ask_me() 
{ 
object me = this_player(); 

if(me->query("family/family_name")!="飞天御剑流")
return "你是谁啊,我不认识你!";

 if (me->query("qi") < 30) 
return "你还是歇会儿吧! 在做下去我这里又要多了个病人了"; 

if (me->query_temp("smith/mo")) //检查标记
return "不是让你磨药去了吗(moyao)?"; 

if (me->query_temp("smith/fenyao")) 
return "叫分药你分完没有(fenyao)?"; 

if (me->query_temp("smith/zhengli")) 
return "叫整理你整理没有(zhengli)?"; 

switch(random(3))//随机分配三个工作
{ 
case 0: 
me->set_temp("smith/mo", 6+random(11)); 
return "好吧!你帮我磨一下药(moyao)。"; 

case 1: 
me->set_temp("smith/fenyao", 6+random(11)); 
return "这样吧,你帮我分一下药(fenyao)。"; 

case 2:
me->set_temp("smith/zhengli", 6+random(11)); 
return "这里药物太杂乱了,你帮我整理一下(zhengli)。"; 
}
return "快去做事吧!!"; 
}
 
int do_mo(string arg) 
{ 
object me = this_player(); 

if (me->is_busy()) 
return notify_fail("你现在正忙。\n"); 

if (! me->query_temp("smith/mo")) 
{ 
message_vision("$n拿起药锄正准备磨药时。" 
"就听见$N对$n大喝道:谁让你在这里乱搞的。\n", 
this_object(), me); 
return 1; 
} 

if ((int)me->query_temp("smith/mo") > 1) 
{
message_vision("$n拿起药材跟工具认真的磨了起来,$N看了点了点头。\n", 
this_object(), me); 
me->start_busy(1);
me->add_temp("smith/mo",-1);
} else reward(me); 
return 1; 
} 

int do_fenyao(string arg) 
{ 
object me = this_player(); 

if (me->is_busy()) 
return notify_fail("你现在正忙。\n"); 

if (! me->query_temp("smith/fenyao")) 
{ 
message_vision("$n胡乱的抓了几把药在手中。" 
"只听见$N对$n大喝道:放下,在这里乱搞什么。\n", 
this_object(), me); 
return 1; 
} 

if ((int)me->query_temp("smith/fenyao") > 1) 
{
message_vision("$n仔细看着手中的药材开始分药," 
"$N“嗯”了一声,看上去有些满意。\n", 
this_object(), me); 
me->add_temp("smith/fenyao",-1);
me->start_busy(1);
}
else reward(me); 
return 1; 
} 

int do_zhengli(string arg) 
{ 
object me = this_player(); 

if (me->is_busy()) 
return notify_fail("你现在正忙。\n"); 

if (! me->query_temp("smith/zhengli")) 
{ 
message_vision("$n乘$N不注意拿起药品就打算往柜子里丢," 
"就听见$N对$n大喝道:你想害死人啊,还不快给我放下。\n", 
this_object(),me);
return 1; 
} 

if ((int)me->query_temp("smith/zhengli") > 1) 
{
message_vision("$N抽开药柜按照药签把药品分类放好。\n", 
me); 
me->start_busy(1);
me->add_temp("smith/zhengli",-1);
} else reward(me);

return 1; 
} 

void reward(object me) //工作结束,分配奖赏,移除标记
{ 
object coin; 
int exp,pot;
exp=15+random(25);
pot=10+random(10);
me->delete_temp("smith/mo"); 
me->delete_temp("smith/fenyao"); 
me->delete_temp("smith/zhengli"); 

coin = new("/clone/money/coin"); 
coin->set_amount(20 + random(50)); 
coin->move(this_player()); 
message_vision("$N对$n道:这是给你的工钱。\n", 
this_object(), me); 
me->add("potential", pot); 
me->add("combat_exp", exp); 
me->receive_damage("qi", me->query("qi")/20); 
me->receive_damage("jing", me->query("jing")/20); 
me->start_busy(1); 
tell_object(me,"你被奖励了\n"+chinese_number(exp)+"点实战经验\n"
		+chinese_number(pot)+"点潜能\n");
} 

⌨️ 快捷键说明

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