Re: [心得] 區域寫作 mob_prog 2
文太多恕刪
>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
10/14 19:54, 1F
→
10/14 19:55, , 2F
10/14 19:55, 2F
→
10/14 19:56, , 3F
10/14 19:56, 3F
討論串 (同標題文章)
mud_mars 近期熱門文章
10
10
PTT遊戲區 即時熱門文章
32
102