一个生成随机区域的设想
MUD至少北侠里只有小范围的随机的迷宫,并没有随机的大面积地图(或者有但是我不知道)。而即时战略游戏多有一个功能随机生成地图以供对战使用,并避免玩家的审美
疲劳。MUD里如果能有随机产生一块地图,那么最直接的功能就是奖励手动。
假设用多米诺效应(A产生随机方向影响B,B影响C)可行是可行,生成的地图完全无法控
制地图的走向,并生成很多不合理的回路。而且我生成的地图,看起来完全不像合理的
地形,比如山路eastup到草地了westup又能回到山路。总之就是乱七八糟,完全不符
合真实世界的地形。
构想:已经确定某固定位置节点。以华山五峰为例:莲花峰连接地图文件A,朝阳峰连
接地图文件B,文件A,B之间用2个随机路段α,β(中间固定位置C)C点连接朝阳峰形
成回环。α,β段以及C地名都是同样的山路。
这样实际生成的地图总算有模有样了~
附上1个文件,请各位大大帮助修正。
// 山路
// edit: by zine 11 Sep 2010
inherit ROOM;
#include <ansi.h>
string* sl = ({
__DIR__"shanlu",
__DIR__"shanlu2",
__DIR__"shanlu3",
__DIR__"shanlu4",
});
void create()
{
object nextdoor=load_object("/d/test/shanlu2");
int n=random(100);
set("short", "山路");
set("long", @LONG
这是一条蜿蜒曲折的山路,雾中的山顶若隐若现。
LONG
);
if (n>74)
{
set("exits", ([
"westup" : __DIR__"shanlu2",
]));
nextdoor->set("exits/eastdown", __DIR__"shanlu");
}
if (n>49)
{
set("exits", ([
"eastup" : __DIR__"shanlu2",
]));
nextdoor->set("exits/westdown", __DIR__"shanlu");
}
if (n>24)
{
set("exits", ([
"southup" : __DIR__"shanlu2",
]));
nextdoor->set("exits/northdown", __DIR__"shanlu");
}
else
{
set("exits", ([
"northup" : __DIR__"shanlu2",
]));
nextdoor->set("exits/southdown", __DIR__"shanlu");
}
setup();
}
void init()
{
object me=this_player();
object nextroom = load_object( sl );
if (userp(me) && (random(10)>7))
{
me->move(nextroom);
tell_object(me,HIY "山上滚下落石,你慌乱地躲避,不知不觉,越走越远。\n"NOR);
tell_room(environment(),"一个人影匆匆奔了过来,十分狼狈。\n");
}
return;
}
本来生成随机方向的那部分是用switch的,但Jason指点random小的时候随机性非常差。
随机方向加上20%几率的乱入加上前面方向上的回环。Grin,不过手动还是很容易走出来的。我做
的第一个版本,就是自己一分钟刷新方向,因为没刷新一个方向,下一个路段就生成一个反方向,
所以路径变得四通八达(直接成迷宫),本意是随机地图而不是随机迷宫,所以改成了这个比较简
单的,只随机4个方向。 看不懂!
果断加精! 对迷宫深恶痛绝,我是纯手动玩家,如果产生的是随机密宫的话,
对自动不一定是灭顶之灾,对手动却肯定是增加了难度,所以支持随机地图,但坚决反对随机迷宫 随机地图,首先要定义好房间。比如草地,山地,沼泽,沙漠,不同的地形有不同的描述。
其次,房间要有属性,否则生成了地图也没有意义。属性包括npc,物品等
然后,要有一个算法,让房间合理连接,这个已经有了。 房间连接易,合理难啊
比如草地下一个是小山,合理应该是xxxup,但如果随机给一个xxxdown,那这是什么山啊~~盆地嘛~ 那就不要updown了,只有e,w,n,s四个方向好了 原帖由 zine 于 2010-9-11 11:58 PM 发表 http://pkuxkx.net/forum/images/common/back.gif
房间连接易,合理难啊
比如草地下一个是小山,合理应该是xxxup,但如果随机给一个xxxdown,那这是什么山啊~~盆地嘛~
有些草地,他就是在山顶上的,往下走遇到个小山,不稀奇 过几天我来写一个我的版本的随机地图。不过我现在自己机器上没有mudos环境,还要等一两天搭建一个环境熟悉熟悉再说 就是,就是,真大 我有个想法
先生成迷宫,立体式的迷宫,也就是三维矩阵,这样就包括了游戏里会出现的方向
然后根据up、down的层面顺序,把描述塞进去就行了
页:
[1]