MOBcommand 是怪物專用的指令。搭配適當的 trigger 和 if check 就能寫出各種智慧型的怪物和特殊效果。
基本指令
| mpat <dest> <command> | 在某處做某事 |
| mpgoto <dest> | 跑去某處 |
| mptransfer <victim> <dest> | 將某人傳送至某處,無地點則為自己這間 |
| mpforce <victim> <command> | 強迫某人做某事 |
| mpmload <vnum> | load mobiles |
| mpoload <vnum> <level> | load objects |
| mpjunk <object> | 銷毀拿著或穿著的某樣物品,可填 all |
| mppurge | 清除房間內的一切物品(不可加任何參數) |
| mppurge <victim> | 清除該 mob |
| mpkill <victim> | 開戰 |
| mphit <victim> | 物理攻擊 |
| mpcast <spell> <victim> | 施法 |
| mpfull | 補滿生命點數 |
| mpcure | 移除 blindness, poison 等負面效果 |
| mprefresh | 補滿移動點數 |
MPECHOs
基本上都是送出字串。行首不支援空白字元,如有排版需要,請用全形空白。除 MPASOUND 以外,玩家都必須是醒著才會看到訊息。
| mpecho <string> | 在所在房間送出字串 |
| mprecho <room1> <room2> <string> | 對某個區間的怪物送出字串,r1 < r2 |
| mpechoarea <string> | 對整個區域送出字串 |
| mpechoareamob <string> | 對整個區域的怪物送出字串 |
| mpechoaround <victim> <string> | 對特定對象的鄰近房間送出字串 |
| mpasound <string> | 對鄰近的房間送出字串 |
| mpechoat <victim> <string> | 對同房間的特定對象送出字串 |
| mpcecho <string> | MPECHO 的中文版 |
| mpcechoaround <victim> <string> | MPECHOAREAOUND 的中文版 |
| mpcechoat <victim> <string> | MPECHOAT 的中文版 |
| mpeecho <string> | MPECHO 的英文版 |
| mpeechoaround <victim> <string> | MPECHOAREAOUND 的英文版 |
| mpeechoat <victim> <string> | MPECHOAT 的英文版 |
MPMSET
改變目標的某項欄位的資料,或改變其某個或數個 <flag> 之狀態。
語法
mpmset <victim> <field> <value>
mpmset <victim> <string> <value>
mpmset <victim> affect <flag1> <flag2> ... <flagN>
mpmset <victim> act <flag1> <flag2> ... <flagN>
| str int wis dex con | 力量 智商 智慧 反應 體質 |
| sex class level fame | 性別 職業 等級 頭銜 |
| hp mana move | 生命點數 法力點數 移動點數 |
| sp dr hr ac svs | 法術效應 傷害點數 命中點數 防禦力 魔法防禦力(以上修改皆無作用) |
| gold practice align age | 財產 學習點數 陣營 年齡 |
| thirst full drunk | 口渴度 饑餓度 酒醉度(以上皆為數值) |
| name | #MOBILES 的 <keywords:string> |
| short | #MOBILES 的 <short-description:string> |
| long | #MOBILES 的 <long-description:string> |
| description | #MOBILES 的 <description:string> |
| spec | 參見 #SPECIALS 的 spec_*。值為文字。 |
| affect | 參見 affected-flags 對照表。值為文字。 |
| act | 參見 act-flags 對照表。值為文字。 |
範例
if isaffected($i) & 32768判別自己是否受到 sneak 影響
MPMSET self affect sneak若有則關閉 sneak
else
MPMSET self affect sneak若無則開啟 sneak
endif
~ 結束本段
MPOSET
改變物品的某項欄位的資料,或改變其某個或數個 <flag> 之狀態。語法同 MPMSET。
語法
mposet <object> <field> <value>
mposet <object> extra <flag1> <flag2> ... <flagN>
mposet <object> wear <flag1> <flag2> ... <flagN>
| value0 value1 value2 value3 | 參見 item-type 對照表 |
| level | 物品等級 |
| weight | #OBJECTS 的 <weight:number> |
| timer | 物品的時效 |
| extra | 參見 extra-flags 對照表 |
| wear | 參見 wear-flags 對照表 |
MPRSET
改變房間的某項欄位的資料,或改變其某個或數個 <flag> 之狀態。語法同 MPMSET。怪物只能對自己所在的房間進行 MPRSET。
語法
mprset <room-vnum> <field> <value>
mprset <room-vnum> flags <flag1> <flag2> ... <flagN>
| flags | 參見 room-flags 對照表 |
| sector | 參見 sector-type 對照表 |
| limit | #ROOMS 的 L 宣告,人數上限 |
任務相關
這些是負責掌控任務流程的指令。qset 是 questsetval 的簡寫,用來設定某個變數的值。questmark 則是用以設定在 #QUESTS 中定義的任務進度。詳細的說明請見 #QUESTS。
語法
questsetval <victim> <quest-var> <value>
qset <victim> <quest-var> <value>
qadd <victim> <quest-var> <value>
questmark <victim> <quest-number> <quest-index>
直接傷害
MPDAMAGE 可對目標的 hp, mana, mv 進行直接傷害。在進行對生命值的直接傷害時,我們可以在 <attack-msg> 設定特殊的攻擊訊息,如 Kappy's kiss injures you。這不是必填欄位,但可以讓你的怪物更有特色。nomsg 則是讓玩家不會看到被攻擊的訊息,適合拿來作「非戰鬥類型」的傷害,像是從空中摔下來,或是被野狗咬傷。MPDAMAGERANGE 的用法和 MPDAMAGE 一樣,差別在它是以百分比計算,且不支援 <attack-msg> 和 nomsg。
語法
mpdamage <type> <min> <max> <victim>
mpdamage hp <min> <max> <victim> <attack-msg>
mpdamage hp <mix> <max> <victim> nomsg
mpdamagerange <type> <number> <victim>
改變房間敘述
你可以利用這個指令來改變房間的敘述,如果要加在後面的話用加號,要減掉一行就用減號,和 DR 內的 description 指令用法差不多。
語法
mpchroomdesc <chinese/english> + <description>
mpchroomdesc <chinese/english> -
關閉或開啟通路
你可以利用這個指令改變既有的通路,但請自己注意 #RESETS 的設計。
語法
mpclose_tun <int:exit_dir>
mpcreate_tun <int:exit_dir> <int:to_room> <int:exit_flags>
<int:key>
使用 MPCREATE_TUN 時要注意,如果該方向已經有通路了,要先 MPCLOSE_TUN 再 MPCREATE_TUN。
範例
MPCREATE_TUN 5 99 3 -1製造向下通往 #99 關上的門(3=1+2),無鑰匙
封印房間
你可以對房間進行封印,之後一般玩家就無法進入該房間,如果有人登入,就會被傳送到潘城的神殿祭壇。大神不受封印影響。
語法
mprclose <room>
mpropen <room>
特殊指令
| mpgate <victim1> <victim2> | 將 v1 房內的怪物全部傳至 v2 所在處 |
| mpdispose <room1> <room2> | 將屍體隨機丟棄在某個區間,r1 <= r2 |
| mpurbancorpse <victim> | 移轉其同區域內最新鮮的屍體 |
| mphonor <victim> <value> | 設定目標的榮譽值,值在正負 1000 間 |