看板 mud_mars 關於我們 聯絡資訊
文太多恕刪 >death_prog 100~ mpjunk all mpmload xxxx 1 mpat 1000 rest ~ 所以以上是某 Mob 掛了之後,會清光身上物品 然後產生 1 個 xxxx Mob, 並把這隻 mob 放在編號 1000 房間,讓他坐著休息? 理解有錯嗎 ? 還有產生的時候會有什麼訊息?會直接在 1000 產生 還是在掛掉的Mob那格產生再擺過去? O_o 式就是mob死亡後會清空身上的物品,然後有30%機率產生物品編號427等級100 : 和10%的機率產生物品編號426等級13的物品,這兩者是獨立事件,互不相依。 : 如果你希望只掉落一個物品的話,就加入 break 語法,例如 : >death_prog 100~ : mpjunk all : if rand(30) : mpoload 427 100 : break : endif : if rand(10) : mpoload 426 13 : endif : ~ : 這樣子的話當系統先產生了427這個物品,就不再往下走了,所以沒產生427 : 就有10%機率產生426,要搞清楚兩者個相依性。 : mpgoto,mob前往何處,只有一個參數,就是房間編號。 : 如果希望mob前往一個編號228的房間,mmpgoto 228 : mpat,mob在何處做啥事,參數有兩個,第一個就是房間編號,第二個是指令 : 這個較少使用。 : mptransfer,傳送,兩個參數,第一個是房間編號,第二個是傳送對象ID : mptransfer eplis 311就是傳送 Eplis 到哈水 : mpforce,命令,兩個參數,第一個是命令對象ID,第二個是做啥事, : 請在安全合理公平的範圍內自由發揮。 : 講完了mob指令還有一個東西很重要,我們常會用 greet_prog 來做一些迷的提示 : 但 greet_prog 是對任何生物都會觸發的,無論是 NPC or Player : 總不可能 NPC 會主動找 NPC 解任務吧? : 接下來講的是判斷,其實之前的例子已經使用過了,就是 rand 函式。 : if rand(50) : endif : 要注意的是變數當中$n 代表的是玩家,$i 代表的是NPC本身 : 以下列出常用的判斷式: : isnpc($*) 判斷是否為NPC Ex: isnpc($n) 判斷眼前這個是 NPC 嗎 : ispc($*) PC : isimmort($*) imm : isgood($*) 善良陣營 : isfight($*) 戰鬥狀態 : 以下有判斷符號 == > < >= <= 這些都可使用 : hitprcen($*) <= integer 判斷血量百分比是否小於等於多少 : inroom($*) == integer 該NPC是否在房間編號 xxx : level($*) == integer 對象的等級 : class($*) == integer 對象的職業 : name($*) == string 對象ID是否等於 string : 大概就介紹到這邊,有這些東西應該就可以做出變化很大的區域了 : 所以玩家可以感受得到一個區域是可以很簡單,也可以很複雜的 : 下一篇要來介紹 object 也是個大工程! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.173.219
wake01:你要讓新產生的mob做動作 應該是在那隻新mob的prog寫才對 10/14 19:54
wake01:還有這些prog預設應該都不會有訊息 訊息讓你自己加才靈活 10/14 19:55
wake01:這是別mud的做法 mars應該也差不多吧XD 10/14 19:56