Re: [wizs]move_path??
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間16年前 (2010/03/29 18:48)推噓4(4推 0噓 3→)留言7則, 2人參與討論串2/2 (看更多)
※ 引述《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
推
03/29 19:36, , 1F
03/29 19:36, 1F
→
03/29 19:37, , 2F
03/29 19:37, 2F
→
03/29 19:41, , 3F
03/29 19:41, 3F
沒記錯的話要先有 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)
推
03/29 20:13, , 4F
03/29 20:13, 4F
推
03/29 20:53, , 5F
03/29 20:53, 5F
推
03/29 21:31, , 6F
03/29 21:31, 6F
→
03/29 22:30, , 7F
03/29 22:30, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
10
18