************************			最近更新日期為:	1999.03.23
 *** 夢幻七域巫師手冊 ***
  ************************			By Shengsan@DS

+----------+
| 閱讀導覽 |
+----------+
1. 本手冊將不定期更新, 請各位巫師能隨時留意.
2. 內容更新部分, 將會在該行的前一行末加入 * NEW * 的字樣.(只有與上一次更新
   後的內容不一樣才會加上)

+----------+------------------------------------------------------------------+
| 時空簡介 |                                                                  |
+----------+------------------------------------------------------------------+
1. 夢幻七域分為三大時代, 分別為古代(past), 現代(now), 未來(future).
2. 時代與時代間要靠特殊的方法才能穿梭時空.
3. 除了特殊的物品外, 跨越不同時代時身上所有的物品(包括武器和防具),
   都會被暫時存放到原來的時代裡; 也就是說不能帶著物品穿越時空. 當回
   到原時代後, 會自動將暫存的物品歸還.
4. 技能可以跨時空使用.

+----------+------------------------------------------------------------------+
| 玩家人物 |            From: Shengsan@DS   Luky@DS                           |
+----------+------------------------------------------------------------------+
基本狀態:
	生命值(hp)
	體力值(mp)
基本經驗值:
	戰鬥熟練度(combat_exp):
	經驗值(exp):
屬性:
	力量(str): 與攻擊力和負重有關
	體質(con): 與生命力上限和生命力回覆速度有關
	智慧(int): 與學習和施法有關
	敏捷(dex): 命中率 與 閃躲率

	屬性必須要請求導師為你提升, 或是自己穿裝備吃物品得到額外的暫時屬性

	請求導師為你提升屬性要花 (屬性+1)*7)^2 點經驗值

	力量(str) 必須小於或等於 等級(level)*2
	體質(con) 必須小於或等於 等級(level)*2
	智慧(int) 必須小於或等於 等級(level)*2
	敏捷(dex) 必須小於或等於 等級(level)*2

	力量(str)+體質(con)+智慧(int)+敏捷(dex) <= 等級(level)*5 +8

戰鬥屬性:
	物理攻擊力
	物理防禦力
	心靈抵抗力
	攻擊命中率
	閃躲迴避率

人物態度: 人格(evil)	evil值的範圍為(-999 ~ +999) 正的表邪惡, 復的表善良.

	人格主要是影響遊戲中的非玩家人物(NPC)對此玩家角色的反應與態度. 善良的
	人通常不會和邪惡的人交往. 人格有時也會影響一些法術與技能方面的表現.

技能:
	向導師學習:
		needexp = (skill_level)^2 * cost/30 ( cost = 難度 )
		needmoney = needexp
	自己的進步:
		needskillexp = (skill_level+1)^2



+----------+------------------------------------------------------------------+
| 職業規則 |            From: Shengsan@DS                                     |
+----------+------------------------------------------------------------------+
1. 目前的職業規則是定義在 GUILDMASTER(/std/char/guildmaster.c) 裡.
2. 夢幻七域的職業只有基本職業和進階職業兩種等級, 進階職業為基本職業
   的相關職業, 進階職業要 Level 25 級才可以加入.
3. 玩家不可以到其他職業工會學習技能, 增加屬性或升級.
4. 
5. 玩家及NPC的職業相關參數如下:
   a. set("adv_class",x)	x = 數值(1~2)
      此參數是說明此玩家或NPC目前的職業是第幾級, 1 就是第一級, 也就是最初
      的職業等級, 2 就是第二級, 依此類推...
   b. set("class1",x)		x = 職業字串(英文)
      這是第一級職業的職業英文名稱, 不管此玩家或NPC目前為第幾級的職業, 這
      個參數一定要定義, 否則程式就不會正常工作... 記住, 職業歷程要完整...
   c. set("class2",x)		x = 職業字串(英文)
      這是第二級職業的職業英文名稱...



+----------+------------------------------------------------------------------+
| 技能系統 |            From: Luky@DS    Shengsan@DS                          |
+----------+------------------------------------------------------------------+
1. 技能系統定義於 SKILL(/std/skill.c) 和 GUILDMASTER(/std/char/guildmaster.c) 裡
2. 技能的升級分為兩種方式:
   a. 向導師學習:
      玩家可以向導師學習某項技能, 玩家要有足夠的經驗值(exp)和金錢,
      導師才會教授.
   b. 自己的進步:
      常常的使用某種技能, 該樣技能的熟練度就會增加, 當熟練度到達某
      種程度, 該項技能就會自動升級.
      
   向導師學習會有學習的上限, 當導師不能教授時, 剩下的部分就得靠玩家
   打拼了, 所以不要讓導師可以教授等級太高的技能. 目前的技能上限我們
   設定為 100 , 所以導師可以教導的等級術必須小於 100 . 建議的指導上
   限為 <基本技能:60>  <行動技能:50> .  保留其他部分讓玩家自行鍛鍊.

3. 法術(spell)與技能(skill)已經於1999.3.25分開成為兩個獨立的部分,寫
   法也因此有些改變. (如技能用query_skill(),而法術則用query_spell())
   spell 的執行檔案必須放置於/daemon/spell/目錄下面 , 而skill 的執行
   檔案則必須放在/daemon/skill/目錄之下.
4. 法術的施展一定要有延遲(delay), 而施展法術的專用指令為 cast (help cast)
5. 技能的施展指令則獨立化, 而施展技能的指令必須放置於物品(職業象徵物)中
   (利用add_action) 或是/cmds/std/目錄中.
6. 技能分為;
   a. 基本技能(如武器技能)   自動生效(大多用在戰鬥中: 如閃躲迴避.空手搏鬥 )
   b. 行動技能(如偷竊,開鎖)  必須使用者下達指令始作用. (如下達berserk就會開始瘋狂攻擊) 

7. 法術分為:
   a. 攻擊系: 讓敵方受到傷害. 
   b. 回復系: 回復自方或是其他活著的對象的一些消耗性點數或是解除異常狀態.
   c. 輔助系: 一段時間內增加自方的能力(狀態),或是降低(或解除)敵方的能力(狀態)
   d. 行動系: 開啟一個魔法傳送門或是建立一個結界封閉出入口.

8. 有關於技能和法術的相關函式功能及用法參見 /feature/skill.c 與 spell.c



+----------+------------------------------------------------------------------+
| 戰鬥系統 |            From: Luky@DS                                         |
+----------+------------------------------------------------------------------+
0. 本遊戲戰鬥系統承襲[龍與地下城系列]與[東方故事], 以亂數機率為始,
   再輔以各項屬性技能與攻擊型態來加以修正計算來決定戰鬥結果.
1. 初始機率修正
   首先, 系統會以亂數random(HITROLE) 決定初始機率. [註:HITROLE 定義
   於combat.h 目前為200] 然後再根據攻擊者的各項屬性技能狀態來增加命中
   機率[attack_factor()],並根據受攻擊者的各項屬性技能狀態減少命中機率
   [dodge_factor()]. 這裡要注意一點, 我們加入了奮力一擊和重心不穩的因
   素, 當初始機率random(200)的值大於HITHEAVY(195)或是小於HITMISS(5)則
   此兩種因素會生效. 奮力一擊將忽略對手閃躲因子而直接判定命中, 且傷害
   力會比一般增加七成, 而重心不穩則相反, 會直接判定對方閃躲成功, 並且
   攻擊失誤者將在短暫的時間內無法進行攻擊動作.
2. 閃躲
   當計算之後的命中機率大於或等於命中標準THACO(100)時, 我們判定攻擊
   有效,反之若小於命中標準THACO, 則判定對方閃避成功, 此時會判斷命中機
   率是否大於EXPCO(50),若成立, 則閃躲成功的一方將可以獲得閃躲技能進步
   的機會.[註: 這樣的設定則表示只有在對手強度和我方強度相當或是強過我
   方時, 閃躲技能才能進步, 當對手程度比我方弱很多時, 將不容易進步.]而
   如果命中判定成立, 我們則開始判斷對方是否能招架這次的攻擊.
3. 招架
   影響招架的因素為裝備, 技能及力量. 力量太弱是不容易招架敵人攻擊的
   . 當受攻擊方有裝備盾牌時, 以盾牌招架技能(block)為主, 若無盾牌,則以
   武器招架技能(parry)為主, 否則就是用空手技能(unarmed), 但空手技能能
   給予的招架修正只有裝備品的一半. 這時會再輔以力量因素來計算招架修正
   , 若是招架機率大於招架標準值, 則判定招架成功. ( 招架技能進步的計算
   方式同閃躲)
4. 傷害
   當對方無法閃躲且招架又失敗時, 我們就開始計算這次攻擊的傷害值了.
	damage = me->query_damage() + me->query_str()*2;
	damage = (damage + random(damage*3)) / 3;
   (以上兩行是基本的計算方式, 其他部分的修正請看/adm/daemons/combatd.c)
   query_damage(), query_str() 都是在/feature/attribute.c 下面定義的函式
   而第二行則是加入些許的亂數, 讓原本的傷害值有 1/3 到 4/3 的變化度.補充
   說明一點, 當傷害大於受攻者的最大生命力1/7時, 將有可能會使得受攻方某一
   部位受傷. 傷口是會影響戰鬥能力的, 必須用道具(醫療用品)或是醫療技能(醫
   生, 牧師等等..) 來使其傷口復原. [註:巫師可以使用refresh指令復原] 關於
   各部位之影響我之前有說明過, 影響的程度可以在score或是skills時看出來.
5. 補充
   1.巫師可以 set debug 1 來顯示戰鬥中各項修正量, unset debug 可以取消之.
     內定值為 不顯示除錯訊息.
   2.玩家或巫師可以 set report 1 來顯示戰鬥時對方狀態(ES模式) unset report 取消.
     內定值為 不顯示對方狀態.
   3.各部位傷口的影響: 
   
	頭部(head) 影響人物各項技能.
	身體(body) 影響人物基本屬性.
	雙手(head) 影響人物攻擊命中率和攻擊力.
	雙腳(foot) 影響人物閃躲率. 嚴重時可能會無法移動.
	
6. 相關資料
   /adm/daemons/combatd.c
   /include/combat.h
   /feature/attribute.c
   /feature/damage.c
   /feature/skill.c
   /cmds/usr/score.c
   /cmds/usr/skills.c


+----------+------------------------------------------------------------------+
| 經濟體制 |            From: Aiwa@DS                                         |
+----------+------------------------------------------------------------------+
