
	Eastern Stories v1.1e - The Final Frontier Extension v0.6b
			mudlib 系統函式說明書	第 1.0 版

		Spock of The Final Frontier 98.Sep.15.

第一章	前言

  此說明書最主要的目的, 是說明在本版 mudlib 中, 所提供的系統函式功能.
由於本 mudlib 改寫自東方故事二 v1.1e  版, 因此有絕大部份的基本系統並無
改變, 此份說明書也「有一部份」適用於東方故事二 mudlib.

  據我的觀察, 撰寫 mud  程式的人當中, 從最高位的 admin  到最低位的
apprentice, 十個有九個不使用 mudlib  中已有的函式, 而有以下的三種情形:
 (在此我們以讓玩家受傷的狀況為例)
	1.  直接 ob->set("kee", ob->query("kee") - damage );
	    這種作法等於無視於 mudlib 存在.
	2.  ob->set("last_damage_from", me );
	    ob->set("kee", ob->query("kee") - damage );
	    這種作法比上一種考慮得更周詳, 因為 last_damage_from 變數是
	    謠言頻道喊出被誰殺死的依據. 但是,  mudlib 參考 
	    last_damage_from  的部份一旦經過修改, 第一行就變成錯誤的程
	    式碼.
	3.  ob->receive_damage("kee", damage, me );
	    mudlib  該做的事, 就應該交給 mudlib.  包括檢查及後續處理.

  您的作法是哪一種 ?

  mudlib  已有的函式, 就表示該功能已經包含在該 mudlib 的架構中, 如果不
使用 mudlib 的函式, 必然會影響到 mudlib 結構的完整性, 輕者影響 mudlib
設計者所構想的平衡性及政策, 重者埋下日後難以解決的潛在 bug.

  這也是為什麼很多架設 mud  的管理者雖然有能力, 卻不願意改寫 mudlib 的
原因之一. 一旦改寫, 很多區域的物件就會冒出一群群的 bug.

  筆者在離開 mud  界之前, 想想還是寫一份像這樣子的說明書好了. 希望對各
位能有幫助.

  由於安老大的 ES2  實在博大精深, 筆者對於不是自己撰寫的 ES2 mudlib 不
甚了解. 如果有什麼地方有錯誤, 什麼地方明顯打混, 請各位多多幫忙補足並將
補充或改正的部份寄給我, 我會收錄在更新的說明書版本內.

  本說明書依照各程式物件的目錄編排. 寫好的部份會馬上貼在 BBS mud  版,
全部的說明書內容如果在西元 2000 年之前寫得完, 會集合成一個檔案放在
ftp ff.muds.net 4100

			Spock of The Final Frontier	98.Sep.15
