// waiter.c 这个是个最简单的店小二的code, #include <ansi.h> 声明需要用到颜色,比如店小二的名字,说话的显示颜色,如果只用默认的颜色,可以不用这行 inherit NPC; 声明继承NPC,NPC是什么意思不用讲了吧。 inherit F_VENDOR; 声明继承vendor,就是可以对此npc进行买卖操作。 void create() { set_name("店小二", ({ "waiter" }) ); npc名字,中文和英文,也可以 ({ "huofe", "huo","fe" })来表示多个英文ID set("gender", "男性" ); set("age", 22); set("long", 人物描述,当你用l waiter的时候,返回的人物描述 "这位店小二正笑咪咪地忙著,还不时拿起挂在脖子上的抹布擦脸。/n"); set("combat_exp", 5); set_temp("kf_tufei",64); 建立npc时产生的临时变量 set("pursuer", 1); 忘了这个是什么变量了。 set("attitude", "friendly"); set("rank_info/respect", "小二哥"); set("vendor_goods", ([ 出售的东西 "/obj/example/wineskin" : 10, "/obj/example/dumpling" : 30, "/obj/example/chicken_leg" : 40 ]) ); set("inquiry", ([ 使得ask waiter about go 生效 "go" : "小店现在和各大驿站合作,新开驿站服务。十级以下免费使用。/n" ])); setup(); } void init() { 初始化npc object ob; ::init(); if( interactive(ob = this_player()) && !is_fighting() ) {当进入waiter同一个场景的物件是玩家,并且waiter不在战斗中,这里也可以写成 !this_object-> is_fighting() remove_call_out("greeting"); call_out("greeting", 1, ob); } add_action("do_vendor_list", "list"); } void greeting(object ob) { if( !ob || environment(ob) != environment() ) return; switch( random(3) ) { case 0: say( "/n店小二笑咪咪地说道:这位" + RANK_D->query_respect(ob) + ",欢迎光临风云的世界,希望你能玩的开心。/n"); break; case 1: say( "店小二用脖子上的毛巾抹了抹手,说道:这位" + RANK_D->query_respect(ob) + ",您需要点什么?/n"); break; case 2: say( "店小二说道:这位" + RANK_D->query_respect(ob) + ",现在没什么新消息。。/n"); break; } } |