□ 技能系統 我們使用的技能系統是屬於多元成長途徑的系統﹐有別於傳統用經驗值換取等級的 方式﹐一個技能由兩個數值來描述﹕「等級」與「學習點數」﹐平常使用時只看等 級﹐學習點數完全不影響技能的效力。 由於技能的性質不同﹐我們將技能分為兩大類﹕基本技能跟特殊技能﹐基本技能又 可以稱為技能種類﹐所有的特殊技能都必須有至少一種的基本技能為基礎﹐舉例來 說﹐「xx劍法」是一種特殊技能﹐以「基本劍術」、「拆招卸力之法」為基礎﹐這 個意思是說﹐這種劍法可以被「使用」在劍術與拆招卸力的用途上﹐並不是說必須 先學過基本劍術與拆招卸力之法才能學這個劍術﹐有關技能的學習限制完全由技能 本身定義﹐系統不預作假設。 通常我們公式中計算技能等級的時候﹐使用的是一種稱為「有效等級」的計算方式 ﹐所謂的有效等級﹐是以「技能種類」(基本技能)為索引的﹐特殊技能沒有有效等 級﹐因為有效等級的計算是合併 ぇ 基本技能、え 被「致能」的特殊技能﹐ 以及 ぉ 裝備、法術等其他影響﹐所計算出來的﹐其中基本技能的等級以二分之一計算 ﹐特殊技能以原來等級計算﹐裝備及其他法術影響以修正值計算(可正可負)。大概 的公式如下﹕ 有效等級 = (基本技能 / 2) + 特殊技能(enabled) + 修正值 大多數的公式中所稱的「技能等級」指的便是上面的有效等級。 □ 技能定義 所有的技能包括基本技能與特殊技能﹐我們都用一個物件來定義﹐定義技能的物件 必須繼承標準技能物件 SKILL﹐並且定義以下幾個函數﹕ string type() 傳回技能的型態﹐目前有 "knowledge"、"martial" 兩種﹐其中 "martial" 型態 的技能 learn 指令會自動限制當實戰經驗小於技能(不是有效技能)三次方的時候 不能學習。 int valid_learn(object me) 檢查 me 是否有學習這項技能的條件﹐這裡的學習包括 learn, study, practice ﹐但是不包括經由使用而進步的情形。如果合乎條件﹐傳回 1﹐否則傳回 0。 int valid_enable(string usage) 檢查這個技能是否可以用在 usage 的用途上﹐若是﹐傳回 1﹐否則傳回 0。 int practice_skill(object me) 讓一個人物「練習」一個技能﹐這個函數是由 practice 指令呼叫﹐作為技能物件 的處理函數。 void skill_improved(object me) 每當一個人物的技能等級提昇了﹐就會呼叫這個函數﹐你可以在這裡面做一些跟等 級相關的改變或獎勵。 By Annihilator (07/28/95)