Re: [wizs]move_path??

看板mud_sanc (Sanctuary - 聖殿)作者 (小太保)時間16年前 (2010/03/29 18:48), 編輯推噓4(403)
留言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
..不行...我set("move_path",({"east","west"})之類
03/29 19:36, 1F

03/29 19:37, , 2F
的..他還是會去跑up,down之類的..
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
...如果設定move_speed就會走..會亂走....
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
文章代碼(AID): #1Bi8M0r_ (mud_sanc)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
4
7
文章代碼(AID): #1Bi8M0r_ (mud_sanc)