简单的说明一下LPC中人物构建的代码含义
// 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","这位店小二正笑咪咪地忙著,还不时拿起挂在脖子上的抹布擦脸。/n");//人物描述,当你用l waiter的时候,返回的人物描述
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", ([
"go" : "小店现在和各大驿站合作,新开驿站服务。十级以下免费使用。/n"
]));//使得ask waiter about go 生效
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;
}
}
文章评分1次,平均分5.0:★★★★★

啥玩意?都看晕乎了
一个npc的构建代码
喂喂,头文件都没了
什么意思?
Sofa。。。。
虽然我不玩这玩意。但觉得挺有意思的~~~