简单的说明一下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。。。。
虽然我不玩这玩意。但觉得挺有意思的~~~