區域寫作--說明 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
資料來源:風之大陸大神(snick)的網站 ------------------------------------------------------------------------------- |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
作者: Autofly (fly) 看板: WindLand 標題: 區域寫作說明 時間: Sun Apr 14 16:21:41 2002 [區域說明] 標 題: 區域寫作說明(For WindMud)-1 所謂的區域檔其實只是一般的ascii檔案而已, 你用pe2,he5,或是記事本 都能寫區域. 檔名都叫做 xxx.are, xxx是你想取的名字, 像是冥駕城就 叫做midgaard.are 在正式寫作之前, 先來談談甚麼是vnum(virtual number). 不管是 Merc 或是Envy的mud, 他們把所有的物品(objects), 房間(rooms), 還是NPC( mobiles), 都分別給了一個數字以示分別, 這個數字就叫做 vnum, 但是 物品,房間, NPC,的vnum都各自獨立, 怎麼說呢, 就是說假設你有個房間 的 vnum設為11000, 其他的room都不能再用11000了, 但是物品或是 NPC 都還能用11000.......(我說的還清楚吧??:*) 接下來就可以準備好你的文書軟體, 找個舒服的椅子, 泡個好茶, 優雅 的坐下來, 開始寫作了:P (我以下以Wind Mud的格式說明) 一個區域檔總共包括以下這些: 1. #AREA 2. #HELP 3. #RECALL 4. #MOBILES 5. #OBJECTS 6. #ROOMS 7. #RESETS 8. #SHOPS 9. #SPECIALS 第2,3,8,9都可以省略, 4, 5,或是7省略的話,你的area就沒有任何的eq 或mob,那要是6省略,那你的區域就沒有房間:P 我來一一說明這些. -------------------------------------------------------------------------------
#AREA ???????~
-------------------------------------------------------------------------------
------------------------------------------------------------------------------- LIGHT 1 光源 SCROLL 2 卷軸 WAND 3 魔杖 STAFF 4 魔棒 WEAPON 5 武器 TREASURE 8 寶藏 ARMOR 9 護甲 POTION 10 藥水 FURNITURE 12 家具 TRASH 13 垃圾 CONTAINER 15 箱子 DRINK_CON 17 容器 KEY 18 鑰匙 FOOD 19 食物 MONEY 20 金錢 BOAT 22 船隻 CORPSE_NPC 23 非玩家屍體 CORPSE_PC 24 玩家屍體 FOUNTAIN 25 噴泉 PILL 26 藥碇 Extra ITEM_ flags: GLOW 1 發光 HUM 2 低鳴 DARK 4 暗黑 LOCK 8 鎖 EVIL 16 邪惡 INVIS 32 隱形 MAGIC 64 魔法 NODROP 128 不可丟棄 BLESS 256 祝福 ANTI_GOOD 512 反善良 ANTI_EVIL 1024 反邪惡 ANTI_NEUTRAL 2048 反中立 NOREMOVE 4096 不可卸下 INVENTORY 8192 攜帶 POISONED 16384 有毒 VAMPIRE_BANE 32768 吸血鬼病毒 HOLY 65536 神聖 Tie ?2097152
WEAR_ flags: TAKE 1 可攜帶 WEAR_FINGER 2 戴在手指上 WEAR_NECK 4 戴在脖子上 WEAR_BODY 8 穿在身上 WEAR_HEAD 16 戴在頭上 WEAR_LEGS 32 穿在腿上 WEAR_FEET 64 穿在腳上 WEAR_HANDS 128 戴在手上 WEAR_ARMS 256 戴在手臂上 WEAR_SHIELD 512 左手裝備著 WEAR_ABOUT 1024 披在身上 WEAR_WAIST 2048 圍在腰上 WEAR_WRIST 4096 戴在手腕上 WIELD 8192 右手裝備著 HOLD 16384 手中握著 表6: 01 ITEM_LIGHT value[0] 沒有使用 value[1] 沒有使用 value[2] 光源可以使用的時間 0 是不能用 -1 是用不完 value[3] 沒有使用 02 ITEM_SCROLL value[0] 等級 value[1] 第一個法術號碼(sn) value[2] 第二個法術號碼(sn) value[3] 第三個法術號碼(sn) 03 ITEM_WAND value[0] 等級 value[1] 最多有幾發 value[2] 目前有幾發 value[3] 法術號碼(sn) 04 ITEM_STAFF value[0] 等級 value[1] 最多有幾發 value[2] 目前有幾發 value[3] 法術號碼(sn) 05 ITEM_WEAPON value[0] 沒有使用 value[1] 沒有使用 (系統自動用來設定傷害力的最大值) value[2] 沒有使用 (系統自動用來設定傷害力的最大值) value[3] 武器種類: 00 直拳 (勿設定) 01 橫切 02 戳刺 03 重砍 04 鞭打 05 利爪 06 鎚擊 07 敲擊 08 轟擊 09 削割 10 利牙 11 突刺 12 吸取 13 橫劈 14 重擊 08 ITEM_TREASURE value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 09 ITEM_ARMOR value[0] 沒有使用 (系統自動亂數設定防護等級) value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 0~ 0~ 0~ 1~ fly 限定 body about 0~ 0~ 0~ 1~ detect invis 限定 head 0~ 0~ 0~ 2~ detect hide 限定 head 0~ 0~ 0~ 3~ detect evil 限定 head 10 ITEM_POTION value[0] 等級 value[1] 第一個法術(sn) value[2] 第二個法術(sn) value[3] 第三個法術(sn) 12 ITEM_FURNITURE value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 13 ITEM_TRASH value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 15 ITEM_CONTAINER value[0] 可以放置的重量 value[1] 旗標:1 可以開關 2 無法撬開的 4 關著的 8 鎖著的 value[2] 鑰匙號碼(vnum) value[3] 沒有使用 17 ITEM_DRINK_CON value[0] 可以裝的容量 value[1] 目前的容量 value[2] 液體號碼 (在 const.c 的 liq_table) value[3] 若是非 0 就是有毒 18 ITEM_KEY value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 19 ITEM_FOOD value[0] 這個食物可以食用的時間 value[1] 沒有使用 value[2] 沒有使用 value[3] 若是非 0 就是有毒 20 ITEM_MONEY value[0] 錢的數量 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 22 ITEM_BOAT value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 23 ITEM_CORPSE_NPC value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 24 ITEM_CORPSE_PC value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 25 ITEM_FOUNTAIN value[0] 沒有使用 value[1] 沒有使用 value[2] 沒有使用 value[3] 沒有使用 26 ITEM_PILL value[0] 等級 value[1] 法術號碼(sn) value[2] 法術號碼(sn) value[3] 法術號碼(sn) 表7: APPLY_ types: NONE 0 無 STR 1 力量 DEX 2 敏捷 INT 3 智力 WIS 4 知識 CON 5 體質 SEX 6 性別 CLASS 7 職業 (沒用) LEVEL 8 等級 (沒用) AGE 9 年齡 (沒用) HEIGHT 10 身高 (沒用) WEIGHT 11 體重 (沒用) MANA 12 法力 HIT 13 生命力 MOVE 14 移動力 GOLD 15 金錢 EXP 16 經驗 AC 17 防護等級 HITROLL 18 加強命中率 DAMROLL 19 加強傷害力 SAVING_PARA 20 對麻痺的抵抗力 SAVING_ROD 21 對魔杖的抵抗力 SAVING_PETRI 22 對石化的抵抗力 SAVING_BREATH 23 對龍燄的抵抗力 SAVING_SPELL 24 對魔法的抵抗力 Allow Race 31 可使用的種族 Non_Allow Race 32 不可使用的種族 Allow Class 33 可使用的職業 Non_Allow Class 34 不可使用的職業 Allow Sex 35 可使用的性別 各職業代碼、簡寫及中文名稱: No. 名稱 中文名稱 0 Mag 法師 10 Arc 大法師 20 Sha 咒術師30 Wiz 巫師 40 Dra 秘龍士90 Del 魔導士 1 Cle 牧師 11 Bar 吟遊詩人21 Dan 舞者 31 Hei 祭司 41 Cru 神官 91 Bis 主教 2 Thi 盜賊 12 Bra 殺手 22 Nin 忍者 92 Asn 暗殺者 3 War 戰士 13 Kni 騎士 23 Gla 武士 33 Che 俠客 43 Pal 聖劍士93 Ser 武將 4 Psi 心靈師 5 Mon 格鬥家 25 Gra 拳法家35 Com 搏鬥家 95 Dua 龍拳士 6 Sum 召喚師 26 Nec 死靈師36 Spr 喚靈使46 btr 喚獸使96 Sor 幻獸師 9 Mob 怪物 各種族中英文對照表: No. 中文名稱 英文名稱 0 人類 Human 1 精靈 Elf 2 半精靈 Halfelf 3 暗精靈 Drow 4 矮人 Dwarf 5 半矮人 Halfdwarf 6 妖精 Hobbit 7 侏儒 Gnome 8 仙靈 Faerie 9 半地精 Halfkobold 10 巨人 Giant 11 巨魔 Ogre 12 半獸人 Orc 13 地精 Kobold 14 牛頭人 Minotaur 15 洞穴巨人 Troll 16 惡鬼 Hobgoblin 17 昆蟲 Insect 18 飛龍 Dragon 19 動物 Animal 20 神族 God 21 不死生物 Undead 22 人首鳥 Harpy 23 熊族 Bear 24 吉仙奇 Githyanki 25 元素 Elemental 26 蝙蝠 Bat 27 植物 Plant 28 巨鼠 Rat 29 吸血鬼 Vampire 30 狼人 Werewolf 31 小惡鬼 Goblin 32 蜘蛛 Arachnid 33 掠心族 Mindflayer 34 物品 Object 35 迷霧 Mist 36 毒蛇 Snake 37 毛蟲 Worm 38 魚族 Fish 39 九頭龍 Hydra 40 蜥蜴 Lizard 例: #2802 trollskin troll skin~ 洞穴巨人毛皮~ 一塊毛皮被留在這兒。~ ~ 9 0 1|1024 ^ ^ ^^^^^^---> 和表5比對可得知這是可以攜帶的和披在身上 | |-----> 和表4比對可得知這是沒有任何屬性:) |-----> 和表3比對可得知這是個護甲類的(armor) 5~ 0~ 0~ 0~ ^--->和表6比對可得知這個"5~"沒有用..因為value[0] 沒有使用 (系統自動亂數設定防護等級) 50 50 50 E troll skin~ ------>當player 打 Look troll或是Look skin時 這是塊從大型的怪獸上剝下來的毛皮 ,它很難看 ,難聞且令人難受。 <---就會看到 ~ A 1 1 <------和表7比對可得知, 穿著會加str 1點 接下來...........我們來說房間的寫法.... ------------------------------------------------------------------------------- 6. #ROOMS { #<vnum:number> <=====同樣, 房間也有它自己的編號 <name:string> <=====房間名稱 <description:string> <=====房間的敘述 <area:number> <room-flags:number> <sector-type:number> ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ 如果你的區域是 見表8 見表9 用10600 ~10601 這個地方就打 "106" { D <door:number> <===這個是設定這個房間有那些出口 0:北, 1:東, 2:南, 3:西, 4:上, 5:下 如果你打D 1, 就代表這個房間有個往東的出口 <description:string> <===方向的敘述, 如果你打look east, 這個就會顯示出來 <keywords:string> <=== 這個用例子解釋 <locks:number> <key:number> <to_room:number> ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ 門的狀態,見表10 鑰匙的vnum 這個房間通往的房間 } { E <====這個就像mob, objects一樣 <keywords:string> <description:string> } S } #0 表8 room-flags:是描述這個房間更詳細的屬性 DARK 1 須要光源 NO_MOB 4 沒怪物 INDOORS 8 室內 PRIVATE 512 允許兩人在該室 SAFE 1024 無法戰鬥的房間 SOLITARY 2048 允許一人在該室 PET_SHOP 4096 寵物店 NO_RECALL 8192 無法 RECALL CONE_OF_SILENCE 16384 失去觀看所有通訊頻道能力 NO_MURDER 32768 不能 MURDER FEN 65536 要飛的才不會中毒 NO_SUMMON 131072 不能 SUMMON 的房間 HALF_GAIN 262144 恢復力減半 NO_TELEPORT 524288 不能 TELEPORT DEADTRAPS 1048576 失去所有裝備與道具 DAMAGETRAP 4194304 每個 TICK 損失HP/MANA/MOVE 一半 表9 SECT_ types: 是定義這個房間是位在什麼地方,這個會影響移動力的耗損, 有一些特殊地方需要一些特別的能力才能夠進入。 INSIDE 0 CITY 1 FIELD 2 FOREST 3 HILLS 4 MOUNTAIN 5 WATER_SWIM 6 WATER_NOSWIM 7 UNDERWATER 8 AIR 9 DESERT 10 表10 值 反 PICK 反 BASH 反 PASS 1 no no no 2 yes no no 3 no yes no 4 yes yes no 5 no no yes 6 yes no yes 7 no yes yes 8 yes yes yes 例: #10924 鎮長的房間~ 這裡豪華的裝飾實在是讓你不敢相信這裡只是一個 鎮長的房子, 鎮長好像現在不在家. 突然你發現東 方的牆壁上掛著的鏡子似乎可以移動它. ~ 109 8 1 <====這可知, 這個房間是在室內(8), 地區為City(1) D 1 <====出口有東方(1) 鏡子的力場 <====當你打Look east...就會出現 "鏡子的力場" ~ 力場~ <====當你打open east... 就會出現 "力場"鎖住了... 8 0 10925 <====這個門都不能pass, pick, bash D 3 <====出口有西方(3) ~ ~ 0 0 10923 我再用畫面解釋一次..... 在mud時...... 鎮長的房間 [出口: 西方] 這裡豪華的裝飾實在是讓你不敢相信這裡只是一個 鎮長的房子, 鎮長好像現在不在家. 突然你發現東 方的牆壁上掛著的鏡子似乎可以移動它. [1233生命 614魔法 940移動] look e 鏡子的力場 [1233生命 614魔法 940移動] op e 力場鎖住了 [1233生命 614魔法 940移動] ------------------------------------------------------------------------------- 7. #RESETS { * <comment:to_eol> } { M <:number> <mob-vnum:number> <limit:number> <room-vnum:number> \ <comment:to_eol> } { O <:number> <obj-vnum:number> <:number> <room-vnum:number> \ <comment:to_eol> } { P <:number> <obj-vnum:number> <:number> <obj-vnum:number> \ <comment:to_eol> } { G <:number> <obj-vnum:number> <:number> \ <comment:to_eol> } { E <:number> <obj-vnum:number> <:number> <wear_loc:number> \ <comment:to_eol> } { D <:number> <room-vnum:number> <door:number> <state:number> \ <comment:to_eol> } { R <:number> <room-vnum:number> <last-door:number> \ <comment:to_eol> } S 這裡很重要, 它影響了你的區域有那些mob和mob身上有那些eq..... 我一一的說明..... 在Resets中, 一共有*,M,O,P,G,E,D,R,S等7種... * 以* 號開頭的都是注解 M 讀入一個mob在某個房間 O 讀入一個東西放在某個房間 P 讀入一個物品放入另一個物品中 G 讀入一個物品給一個mob E 將一個物品裝備到一個mob身上 D 設定一個門的狀態 R 亂數設定一個房間的出口 S 這個部分的結束 M <:number> <mob-vnum:number> <limit:number> <room-vnum:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ mob機率 mob的vnum 最多可多少mob 要放到的房間vnum <:number>如果設定10以上, 代表這mob出現的機率, 機率是 (number-10)/10000 ps.這個命令是會把這個東西給最近所創造出來的mob, 也就是 最近的M指令所創造的mob, 東西的等級就以這個mob的等級 為準.若是前面的M執行失敗,那麼這個物品就不會被創造. O <:number> <obj-vnum:number> <:number> <room-vnum:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ 無用 東西的vnum 無用 要放到的房間vnum ps.如果那個房間內有了這個東西, 那麼這個號碼的東西將不會被創造 出來. 如果那區域有玩家存在, 這個東西也不會被創造 P <:number> <obj-vnum:number> <:number> <obj-vnum:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ 無用 東西的vnum 無用 要放到的容器vnum G <:number> <obj-vnum:number> <:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ item機率 東西的vnum 無用 <:number>如果設定10以上, 代表這東西出現在這mob的機率, 機率是 ( number-10 )/10000, 機率乃各自獨立 E <:number> <obj-vnum:number> <:number> <wear_loc:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^^^^^ item機率 東西的vnum 無用 穿著位置 <:number>如果設定10以上, 代表這東西出現在這mob的機率, 機率是 ( number-10 )/10000, 機率乃各自獨立 裝備穿著位置: NONE -1 LIGHT 0 FINGER_L 1 FINGER_R 2 NECK_1 3 NECK_2 4 BODY 5 HEAD 6 LEGS 7 FEET 8 HANDS 9 ARMS 10 SHIELD 11 ABOUT 12 WAIST 13 WRIST_L 14 WRIST_R 15 WIELD 16 HOLD 17 WIELD_2 18 RIDE 100 ps.這個命令是會把這個東西裝備給最近所創造出來的mob, 也 就是最近的M指令所創造的mob, 東西的等級就以這個mob的 等級為準.若是前面的M執行失敗,那麼這個物品就不會被裝 備. D <:number> <room-vnum:number> <door:number> <state:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ 無用 房間編號 出口位置 門的狀態 出口位置 0:北, 1:東, 2:南, 3:西, 4:上, 5:下 門的狀態 0: 開啟的門 1: 關上且未鎖上的門 2: 關上且鎖上的門 R <:number> <room-vnum:number> <last-door:number> ^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ 無用 房間編號 亂數出口數量(我不會用中文解釋) 假設你有個房間編號是100, 它有個往北的出口通往101的話.... 當你設... R 0 100 1 這時, 你會發現在100的房間內, 往北的出口不見了, 可 能變成往東或是往西或南, 但是不管怎樣, 這個出口還是 通往101.... 舉例... 101 ↑ 102←100→103 ↓ 104 當你設 R 0 100 4 此時100房間往北就不一定通往101, 可能往103 ...或是其他的....... ------------------------------------------------------------------------------- 8. #SHOPS { <keeper:number> <=====要當做老板的怪物編號 <trade-0:number> <trade-1:number> <trade-2:number> <trade-3:number> <trade-4:number> / ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 這個老板可以交易(可賣的或是可買的)的東西種類(表3) <profit-buy:number> <profit-sell:number> <open-hour:number> <close-hour:number> / ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ 加成的價格(玩家買) 扣除的價格(玩家賣) 開店時間(24小時制) 打烊時間(24小時制) <comment:to_eol> / ^^^^^^^^^^^^^^^^ 注解 } 0 例: #Shops 10100 5 9 0 0 0 120 80 7 18 0 這個就是讓編號10100的mob可以賣或是買武器(5), 或是護甲(9), 當玩家賣給老闆時, 會得到eq價格的80%的錢, 當玩家從這個老闆買東西時, 要花120%的eq價格才能買到..... 交易時間是從早上7點到晚上六點.... ------------------------------------------------------------------------------- 9. #SPECIALS { * <comment_to_eol> } { M <mob-vnum:number> <spec-fun:word> <comment:to_eol> ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ mob的編號 見表11 } S 這是area的最後一個部分了............ 這裡是設定mob要有那些特殊的動作......... 表11 spec_breath_any 從下列幾樣龍燄中任選 spec_breath_acid 酸液龍燄 spec_breath_fire 灼熱龍燄 spec_breath_frost 冰冷龍燄 spec_breath_gas 毒氣龍燄 spec_breath_lightning 閃電龍燄 spec_cast_adept 治療者 spec_cast_cleric 戰鬥系牧師 spec_cast_ghost 不死生物的鬼魂(夜間出現, 白日消失) spec_cast_judge Mega1.are 之中的戰鬥法師 spec_cast_mage 戰鬥系法師 spec_cast_psionicist 戰鬥系心靈師 spec_cast_undead 不死生物 spec_executioner 執法者 spec_fido 咬屍的怪物 spec_guard 城市守衛 spec_janitor 清潔工 spec_mayor 市長(midgaard) spec_poison 戰鬥中使人中毒 spec_repairman 修門者 spec_thief 小偷 假設我有個mob編號為10500 #Specials M 10500 spec_cast_mage S 而這個mob在戰鬥中每3秒鐘都會呼叫spec_cast_mage來做一些特殊功能.... 簡單的說...要是這個mob的等級大於20...你就有可能被mob給噴酸 -------------------------------------------------------------------------------
|