关于随机行走的问题
今天送信,没找到李捕头,于是手动找(正好无聊中)然后也没找到.....
于是查找了相关代码
每个随机行走的人,都有这么一条语句,以李捕头为例
set("chat_msg", ({
"李捕头挺了挺胸脯,朗声笑道:“听说本官来了,那些为非做歹的人无一不闻风而逃。 \n",
(: random_move :)
}) );
关键就在random_move这里
我又在npc.c中,找到这个函数
int random_move()
{
mapping exits;
string *dirs;
object me = this_object();
if( !environment()
|| !mapp(exits = environment()->query("exits"))
|| me->is_fighting() || me->is_busy()
|| me->query("jingli") < me->query("eff_jingli") / 2 ) return 0;
dirs = keys(exits);
if (sizeof(dirs) < 1) return 0;
add_temp("random_move", 1);
command("go " + dirs);
}
这样就是随机行走了。
虽然c不懂哈,但大体就是这么个函数
另外,在go.c文件中,找到以下内容
if (random(me->query_temp("random_move")) > 15)
// || strsrch(base_name(environment(me)), min) != 1)
me->return_home(dest);
}
中间一段被注释掉了,就剩下唯一的条件了。
结合1楼那段,大体结论就是
随机行走,最多走15步,然后就返回了
换句话说,李捕头出生地在广场北,最多可以走15步,然后就回家
不过,关于回家的路径问题还不好确定,万一跑到长江南怎么办......回不去了呢还......又或者是自动瞬移回去? 这个应该是过一段时间自动回原点的 落叶要归根的,哪儿出来回哪儿去,瞬移 刷新的时候瞬移回去,所以走到哪里都行 ;P;P;P 15格 好大的范围,楼主找找看令狐冲 移动有什么特点? xlang@ts 发表于 2015-5-1 01:39 static/image/common/back.gif
15格 好大的范围,楼主找找看令狐冲 移动有什么特点?
感觉大体弄明白了,虽然有些根本的还是不懂... ltblue@tx 发表于 2015-5-1 19:54 static/image/common/back.gif
感觉大体弄明白了,虽然有些根本的还是不懂...
发来看看啊
页:
[1]