jason
发表于 2010-8-21 09:46:22
原帖由 zine 于 2010-8-21 09:20 AM 发表 http://pkuxkx.com/forum/images/common/back.gif
同意jason的说法,现在创意比代码多出10倍不止,有些是不太容易实现的。谁主张谁施行的原则,要把自己的想法实现出来似乎是一件比mud里练级还好玩的事情:)
就是那个文件包里给的example太少了,有些想法不知道该 ...
我解释两个sample文件吧
map.c,这个是每个地图必须的,名字不能变。inherit F_DBASE;
void create()
{
set("name","华山之巅");//地图名字
set("family_entries",//决定可以有几个门派参加,每个门派是一项
({
([
"entry":"eastgate.c",//门派1的入口
"number":3//门派1最多可以参加的人数
]),
([
"entry":"westgate.c",//门派2的入口
"number":3//门派2最多可以参加的人数
]),
})
);
set("flag_numbers",4);//旗帜个数
}eastgate.c,这是其中一个门的代码#include "/biwu/entryroom.h"//必须#include这个文件
//其他基本是标准房间的代码。
void create()
{
set("short","水龙门");
set("long",@LONG
一扇汉白玉制成的大门,通体透白,上面雕刻着一条蟠龙,穿行于波涛之间。比武的英雄,
请在此等候比武开始后进入比武场。
LONG
);
set("exits",
([
"enter":__DIR__"e2",//从入口进入后的第一个房间。
]));
//以下三行必须有
set("no_fight",1);
set("no_reset",1);
set("no_clean_up",1);
setup();
}e2.c //一个比武房间的名字inherit "/biwu/biwuroom";//必须继承这个
void create()
{
set("short", "流云谷");
set("long", @LONG
两座山峰之间形成的一道山谷,仿佛一个漏斗一般,吸纳着半山腰上的云雾。行走在谷中,
就仿佛行走在云层之上。这里有一面云旗,上绘九天流云。
你可以用duo这个命令来夺旗。
LONG
);
set("exits", ([ /* sizeof() == 3 */
"south" : __DIR__"e3",
"north" : __DIR__"e1",
"west" : __DIR__"e5",
"out" : __DIR__"eastgate",
]));
set("no_clean_up", 0);
set("flag","云旗");//这里有旗,名字叫云旗
set("default_flag_hp",5);//旗的血量,等于要duo的次数
set("flag_hp",5); //旗的血量,等于要duo的次数
setup();
}
至于标准房间的写法,add_action之类的,没办法解释了。自己看lpc入门吧。这方面资料很多的。
zine
发表于 2010-8-21 09:57:16
已有的example自己揣摩揣摩能弄个八九不离十出来。
改变人物状态的语句呢?
比如
{
if(userp(invs) && invs->query("family/family_name") != this_player()->query("family/family_name"))
{
this_player()->kill_ob(invs);
}
}
this_player()->add_busy(1);
}
只要有现成的语句,就好理解,比如this_player()->add_busy(1)应该是下killall的玩家自身busy 1 个心跳(或别的一个计时单位)吧?
比如要让一个房间易守难攻,假设这个房间有玩家,就给不同门派的后进这个房间的玩家set 3心跳的busy,不知道这个判断条件怎么写,因为不知道最基本的一些人物属性是怎么定义的(没有例子)
jason
发表于 2010-8-21 12:10:13
写在init函数里
上面的例子已经说明了如何检查门派。。。
不过,路还很远啊,要把变态叫来就好了,让他教你