Re: [心得] 區域寫作 MOB

作者: eplis (Eplis)   2013-01-16 11:12:53
※ 引述《eplis (Eplis)》之銘言:
這篇來介紹mob怎麼寫,將非常的複雜..,按照慣例先來個完整例子
==========================================================================
#4097
elf warrior~
精靈族武士(elf warrior)~
全付武裝, 嚴陣待敵的精靈族武士(warrior)
~
呵!Ep是個俊男!真是的...入村以來沒有一個人
長得難看的!上天真是不公平...#@%&$
這位英俊的武士全身穿著淺綠色的鎧甲, 嚴密注視
周遭的動靜.
~
131072 8|32|8192 30 S
72 80 -75 23000d0+0 30d0+0
2000 60000
0 0 1
0 3 0 0 2 0 0 0 10 3 0 0 0 0 0
>rand_prog 100~
if rand(1)
say 可惡的獸人, 不斷來侵擾我族; 真是煩不勝煩!
sigh
endif
~
>fight_prog 100~
if rand(10)
emote 冷笑....
say 邪惡的傢伙! 精靈豈是你能撂得倒的???
wear all
disarm
say 我倒要瞧瞧你能怎麼打?
break
endif
if rand(20)
emote 吼道 「 讓你嘗嘗我們精靈的厲害!!!」
wear all
disarm
slash heavily
blast multi
endif
~
|
==========================================================================
#4097
mob編號
elf warrior~
mob英文ID,記得用 ~ 結尾
精靈族武士(elf warrior)~
mob在敘述上的完整名稱,用~結尾
全付武裝, 嚴陣待敵的精靈族武士(warrior)
玩家輸入look,在房間看到該mob的敘述
~
呵! 又是個俊男! 真是的...入村以來沒有一個人
長得難看的! 上天真是不公平...#@%&$
這位英俊的武士全身穿著淺綠色的鎧甲, 嚴密注視
周遭的動靜.
~
look elf warrior 時顯示的敘述,用兩個~為起始和結束。
131072 8|32|8192 30 S
[act] [aff] [align]
[act]:動作屬性,代表此mob會有啥動作,一樣在這個屬性內都用 | 隔開
:#define ACT_IS_NPC 1 /* 設定為mob */
硬性規定NPC一定要使用這個flag!!
:#define ACT_SENTINEL 2 /* 在原地不走動 */
:#define ACT_SCAVENGER 4 /* 會亂撿物品 */
:#define ACT_AGGRESSIVE 32 /* 自動攻擊玩家 */
:#define ACT_STAY_AREA 64 /* 不離開這個區域 */
:#define ACT_WIMPY 128 /* 被打就馬上跑 */
:#define ACT_PET 256 /* 設定為寵物 */
:#define ACT_TRAIN 512 /* 可以幫玩家train */
:#define ACT_PRACTICE 1024 /* 可以幫玩家practice */
:#define ACT_TRIP 2048 /* 會絆倒 */
:#define ACT_ALBERT 4096 /* 亞伯特旗標 */
:#define ACT_HALIYA 8192 /* 哈里亞旗標 */
:#define ACT_DOCTOR 16384 /* 醫師 */
:#define ACT_FRIENDLY_NPC 32768
/* 掛 ACT_FRIENDLY_NPC 旗標的NPC, 玩家的廣域魔法不會打到他.
但是其它 NPC的攻擊會造成其傷害. 適於用在此 NPC 與玩家
同一戰線時使用(在需要時再加此 flag, 寫成special function)
法術寫作者也請將此一旗標列入廣域魔法的攻擊判斷中. */
#define ACT_FRANK 65536
#define ACT_HUNT 131072
#define ACT_REMEMBER_ENEMY 262144
#define ACT_NOREBORN 524288 /* mob 不會再生. */
#define ACT_SETATTRIB 1048576 /* mob 可以設定屬性 */
[aff] mob目前身上的狀態
#define AFF_BLIND 1
#define AFF_INVISIBLE 2
#define AFF_DETECT_EVIL 4
#define AFF_DETECT_INVIS 8
#define AFF_DETECT_MAGIC 16
#define AFF_DETECT_HIDDEN 32
#define AFF_RENT 64
#define AFF_SANCTUARY 128
#define AFF_FAERIE_FIRE 256
#define AFF_INFRARED 512
#define AFF_CURSE 1024
#define AFF_BURN 2048
#define AFF_POISON 4096
#define AFF_PROTECT 8192
#define AFF_PARALYSIS 16384 /* Unused */
#define AFF_SNEAK 32768
#define AFF_HIDE 65536
#define AFF_SLEEP 131072
#define AFF_CHARM 262144
#define AFF_FLYING 524288
#define AFF_PASS_DOOR 1048576
#define AFF_PA_RESIST 2097152 /* 不死生物旗標 Undead */
#define AFF_JAIL 4194304 /* 天牢旗標 */
#define AFF_NOSUMMON 8388608 /* 不能summon*/
#define AFF_NOMOVE 16777216 /* 龍王有時後會走動soOOXX*/
#define AFF_NO_TELL 33554432 /* 不能給他說話 by Coman */
#define AFF_NO_WHIPWIND 67108864 /* 不能捲武器 by Eplis */
#define AFF_NO_CALL 134217728 /* 不能Call by Eplis */
[align] mob的陣營,範圍在 -1000 ~ 1000
最後用 S 結尾
72 80 -75 23000d0+0 30d0+0
[Lv] [hitroll] [ac] [hp]d[career]+[class_sort] [damroll]d0+0
1.要注意 ac 是 *5
2.damroll如果是一般練攻區域就設0,因為隨著lv提升就會增加了
且目前技能傷害普遍提升,不用加太多玩家就會被打爆了
3.class_sort就先預設0
4.career如下
0 <
作者: dasskabusk (達斯卡)   2013-09-28 12:31:00
真是複雜... 懶得弄了 XDDD
作者: wake01 (醒來)   2013-09-28 13:56:00
以roc經驗我覺得寫prog比較好玩 基本設定太繁雜 area也是

Links booklink

Contact Us: admin [ a t ] ucptt.com