#MOBILES 負責的是怪物的設計,可以說是區域的精髓。本區以 #0 結尾。
#MOBILES
{
#<vnum:number>
<keywords:string>
<short-description:string>
<long-description:string>
<description:string>
<act-flags:number> <affected-flags:number>
\
<alignment:number> S
<level:number> <hitroll:number> <armor:number> \
<hitnodice:number> d <hitsizedice:number> + \
<hitplus:number> <damnodice:number> d \
<damsizedice:number> + <damroll:number>
<gold:number> <exp:number>
<race:number> <unused:number>
<sex:number>
}
#0
基本資料
<keywords:string> | mob 的真名 |
<short-description:string> | scan 時看到的怪物名字 |
<long-description:string> | 在房間裡 look 時看到的怪物名字 |
<description:string> | look <victim> 時看到的敘述 |
特殊習性
<act-flags:number> | 請參考 act-flags 對照表 |
<affected-flags:number> | 請參考 affected-flags 對照表 |
<alignment:number> | 請參考陣營對照表 |
為利於維護,act-flags 和 affected-flags 請使用文字表記。砍殺 align > 900 的怪物會讓玩家成為兇手。邪惡的老闆能夠和 Dark Savant 進行交易。邪惡的 AGGRESSIVE 怪物,將不會對 Dark Savant 進行主動攻擊。
強度
<level:number> | 怪物的等級 |
<hitroll:number> | 怪物的命中點數,填 0 則為系統預設值 |
<armor:number> | 怪物的防禦力,填 0 則為系統預設值 |
AC 值愈低,防禦力愈高。比較需要說明的是生命點數和傷害點數的計算方式:
a | <hitnodice:number> | 生命點數的擲骰次數 |
b | <hitsizedice:number> | 生命點數的骰子面數 |
c | <hitplus:number> | 生命點數的加權值 |
x | <damnodice:number | 傷害點數的擲骰次數 |
y | <damsizedice:number> | 傷害數的骰子面數 |
z | <damroll:number> | 傷害點數的加權值 |
adb+c 就是「擲 b 面的骰子 a 次,再加上 c」的意思。xdy+z 也是一樣的道理。擲骰次數和骰子面數若都設為 0,怪物的強度就是系統預設值,並依等級而定。也就是說,如果是 0d0+c/z 的情況,c/z 將會被自動視為 0。如果你需要做精確的控制,可以利用單面骰:
強度計算公式範例
0d0+400
0x0+0=系統預設值 != 400
1d1+399
1x1+399=400
這裡設定的強度數值,皆為「未裝備任何物品」的初始狀態。如果你的怪物是有穿衣服的,要注意的是,裝備的效果會再往上加乘。因此,你可以在這裡做一些調整,以避免讓怪物過於勇猛。例如,調降牠天生的防禦力或傷害點數。另外,目前無法直接設定怪物的法術效應和魔法防禦力,必須另外寫在裝備上才行。
其他資料
<gold:number> | 金錢,填 0 則為系統預設值 |
<exp:number> | 經驗值,填 0 則為系統預設值 |
<race:number> | 請參考種族對照表 |
<unused:number> | 未使用的欄位,填 0 即可 |
<sex:number> | 請參考性別對照表 |
MOBprogram
以上設計的都只是怪物的基本骨架。要讓怪物「活」起來的話,就必須再加寫怪物專用的程式,即 MOBprogram。MOBprogram 緊接在正常的 #MOBILE 設定之後,於 <sex:number> 後另起新行。每一段程式皆需以 > 開頭,以 ~ 結尾。
你可以為同一隻怪物設計很多段不同的程式(參照 trigger type )。不論你設計了幾段程式,最後請以 | 為 MOBprogram 結尾。沒有設計 MOBprogram 的怪物則不需要加 | 符號。
沒有 MOBprogram 的範例
#10904
cityguard guard~
a cityguard~
A royal guard of Adderly is here.
~
He is a friendly soldier, also a good fighter.
~
STAY 0 900 S
17 0 0 0d0+0 0d0+0
0 0
1024 0 1
有 MOBprogram 的範例
#25102
tea farmer~
a tea farmer~
A tea farmer is working with his tea trees.
~
He is a hard working farmer.
~
STAY|UNCHARM 0 0 S
15 0 0 0d0+0 0d0+0
0 0
1024 0 1
>greet_prog 70~
if ispc($n)
smile
say Good day, isn't it? Would you like some tea?
endif
~
>death_prog 100~
MPJUNK all
~
|