作者laechan (小太保)
看板mud_sanc
标题Re: [wizs]move_path??
时间Mon Mar 29 18:48:29 2010
※ 引述《justinj (闇冥)》之铭言:
: 档案 /std/gmonster.c
: .
: .
: .
: int mp=0;
: mixed mo;
: void move_path()
: {
: object env;
: int tt;
: tt=sizeof(data["move_path"]);
: if(tt==1)
: {
: me->force_me("say 行走路线要成为回圈呀, 不然我会迷路!\n");
: return ;
: }
: if(mp==tt) mp=0;
: if(mo=data["move_path"])
: {
: env=environment(me);
: --More--行数(69/233)--按enter继续--按q离开--
: if(!env->query("exits") || !env->query("exits/"+mo[mp]) )
: {
: me->force_me("say 奇怪了!我要走的是"+mo[mp]+",为什找不到路了?\n");
: me->remove();
: return ;
: }
: else
: {
: me->force_me("go "+mo[mp]);
: mp++;
: return ;
: }
: }
: }
: .
: .
: .
: 感觉好像有用处...我设定set("move_path",XXX),或void move_path()
: 重编进mob档里都没用(就自跑自的)..问一下有什麽方法可以用到这个path吗?
一、想像一下,怪物「有心跳」,心跳的意思就是系统定时会叫
怪物「心脏跳一下」,表现出来的样子就是..
系统 叫 怪物→heart_beat()函数
某些怪物一开始没心跳,要让怪物有心跳,在 void create
函数里头这样做就可以了:
set_heart_beat(1); // 1 代表叫它心脏开始跳动
二、怪物有心跳後,set("move_path",XXX); 就会有作用。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 119.15.246.228
1F:推 justinj :..不行...我set("move_path",({"east","west"})之类 03/29 19:36
2F:→ justinj :的..他还是会去跑up,down之类的.. 03/29 19:37
3F:→ laechan :......不是那样设啦 03/29 19:41
没记错的话要先有 move_power = 1~4
再来是 set("move_path","自订行走函数");
若没有 move_path 它就随机往房间的随机一个出口移动。
所以一般情况下重点是 set("move_power",多少); // 设定行走频率
set_heart_beat(1); // 设定心跳
※ 编辑: laechan 来自: 119.15.246.228 (03/29 19:43)
4F:推 justinj :...如果设定move_speed就会走..会乱走.... 03/29 20:13
5F:推 justinj :...不过看看有没有限某些方向不能走的方法... 03/29 20:53
6F:推 justinj :...自定行走函数?..也就是要另外写就对了.. 03/29 21:31
7F:→ laechan :是的 03/29 22:30