Re: [心得] 區域寫作 mob_prog 2

看板mud_mars (瑪爾斯群英傳)作者 (ATM)時間12年前 (2012/10/14 19:31), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串2/5 (看更多)
文太多恕刪 >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

10/14 19:54, , 1F
你要讓新產生的mob做動作 應該是在那隻新mob的prog寫才對
10/14 19:54, 1F

10/14 19:55, , 2F
還有這些prog預設應該都不會有訊息 訊息讓你自己加才靈活
10/14 19:55, 2F

10/14 19:56, , 3F
這是別mud的做法 mars應該也差不多吧XD
10/14 19:56, 3F
文章代碼(AID): #1GUgAODa (mud_mars)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 5 篇):
文章代碼(AID): #1GUgAODa (mud_mars)