Contents |
OpenKore 是因許多為其投注心力的人而得以繼續活躍的。沒有他們為 OpenKore 所做的偉大貢獻,OpenKore 不會是現在這個樣子。我們非常歡迎大家為 OpenKore 貢獻心力,哪怕只有一點技術技巧的人都很歡迎!
這個 wiki 頁面將提供一些對於未來該做的指示說明之類的概述。假如你有興趣對 OpenKore 做出貢獻,本頁將會提供一個不錯的導覽指南以供開始。
每一個待辦事項都會以一個 "難度等級" 做標記:
請記住,假如你有問題,你可以在 論壇或 IRC 問我們。我們將會很高興與你互相切磋。:)
等級: 變動
就像任何一支程式一樣,OpenKore 也有一些 bug。Bug 能被修正總是很感激的。請參見 OpenKore 的 bug 資料庫。
等級: 容易
在 OpenKore 資料夾底下不用一個單一的 npcs.txt,取代而之的是產生一個以伺服器名為根據而分開來的 npcs.txt(在同一伺服器中的 npc 不會變更他們位置的假設下;即在特定的伺服器之中的卡普拉維持站在同樣一個地方,不論你用的是哪一隻角色)。
等級: 非常容易
仍有一些傳點遺失了。舉例來說:
我們需要更多且更好的文件。具體來說,我們需要以下文件:
等級: 非常容易
等級:容易/中等
我們需要一個新的網路應用程式來維護手冊。Wiki 限制太多了。這個網路應用程式必須支援多國語言翻譯以及多人編輯。假如對於一個存在的物件沒有適當的翻譯,那麼翻譯必須得體地回歸至英文。此外,這個網路應用程式必須能夠支援多人編輯/維護。
這些程式碼應該清楚地被說明與維護。先前的企圖導致了難以維護錯綜複雜的程式碼。:(
等級: 中等
緊急度: 高
一些私服使用我們稱之為 "padded 封包"(以前也稱為 "突變封包")的 Aegis 10.2 做為伺服器軟體。它們影響了 OpenKore 攻擊與使用技能的能力。這將會影響到:
解決的方法必須儘快地被找到。請參見 本論壇的主題 以獲得更多資訊與討論。
等級: 困難
目前的 AI 設計有點舊了而且顯示出它的極限。請見 New_AI_design 以了解新的 AI 設計提議的討論。
等級: 中等
目前的順序是:買物、存倉、賣物。有時候這種順序並不合理,因為卡普拉與商人NPC可能在不同的位置(甚至在分開的地圖上)。
等級: 中等
functions.pl 會存在是有歷史原因的。它並不真的具有良好定義的用途,而只是包含各式各樣功能的集合。我們需要做的是移動這些功能至其它的模組,使它們可被了解。我們也需要一些 "Core" 之類的模組來仿製 OpenKore 的 "core",這東西可把所有東西黏合在一起。(Also, we need some kind of "Core" module which will model OpenKore's "core", the thing that glues everything together.)
為了幫助那些想要仿製 OpenKore 的人,這裡有 functions.pl 包含的東西:
等級: 容易
VCL 的註解:你們真的想要這樣做嗎?現在的處理格式有什麼不好?
讓 OpenKore 使用現在的文字處理格式或新的,以 XML 為基礎的格式。 Template:範例: 這個概念並不局限在只有 Config.txt 上。而也可以用在一些資料表檔案像是 npcs.txt 或任何其它不依賴由 RO 的 data.grf 解開的文字檔(例如 items.txt)的表格檔案。
除此之外,一個額外用來解析以上文字格式的解析器也會被開發,甚至可能是一個內建的 config 編輯器。
等級: 容易
OpenKore 應該要能選擇性地載入 plugin 的列表。舉例來說:
autoLoad 2 # 0:不自動載入 plugin # 1:自動載入所有的 plugin # 2:選擇性載入 plugin loadPlugins locationSkill, macro, arrowCraft
目前自動連技似乎有許多關於成功發動速率的問題。從封包的型式來看,它看起來像是你接收了六合拳的延遲狀態不止一次。舉例來說,假如你使用六合拳後準備接連環全身掌,你將會接收到六合拳的延遲封包一次,然後再接收到連環全身掌的(然後假如你連環全身掌成功使出來,你還會接收到另一個關於 Raging Thrust(猛龍跨強?)的延遲封包)。
這個問題似乎是因為 OpenKore 是由*第一個*連技封包來計算連技延遲時間的。然而,由上段敘述可以推斷事實上應該要由第二個連技封包開始做計算。由第一個連技封包來開始做計算的話是非常不精確的,因為兩端的網路跟伺服器一樣會 lag 而導致失敗。
相較於顯示 您再度成為: 六合拳延遲狀態,把它們堆起來然後接收到第一個封包時顯示 您現在為: 六合拳延遲狀態 (1),然後再顯示 您現在為: 六合拳延遲狀態 (2),依此類推...也許是比較好的做法。要達成這個方法我們可以設定與 whenStatusActive 六合拳延遲狀態 (2) 在一起的一個 waitBeforeUse $char->{combo_delay}。
以下是在 XKore 模式下使用連環全身掌熱鍵的訊息記錄:
技能 連環全身掌 失敗 (Requirement) 技能 連環全身掌 失敗 (Requirement) 你現在為: 六合拳延遲 您有連技的延遲 884 [ 95/ 64] 您施展 六合拳 (lvl 5) 於怪物 *** (0) - 傷害: 270 (延遲 29.7) 技能 連環全身掌 失敗 (Requirement) 技能 連環全身掌 失敗 (Requirement) [ 95/ 64] 怪物 艾吉歐蜈蚣 (0) 攻擊您 - 傷害: Miss! (延遲 79.2) 技能 連環全身掌 失敗 (Requirement) 技能 連環全身掌 失敗 (Requirement) 您再度為: 六合拳延遲 您不再為: 六合拳延遲 您現在為: 六合拳延遲 您有連技的延遲 584 [ 95/ 62] 您施展連環全身掌 (lvl 3) 於怪物 *** (0) - 傷害: 332 (延遲 29.7) 技能 連環全身掌 失敗 (Requirement) 技能 連環全身掌 失敗 (Requirement)
由上可知,連環全身掌只有在第二個六合拳延遲封包收到後才會發動成功。
關於這個的一個其它方法是去 spam 連技的封包 ...但這樣做的話效能差且手法不是很漂亮。
等級: 中等
人工生命體目前是被分類為寵物(以致於 Kore 不會去攻擊它)。然而,當人工生命體變得越來越特別時,把它們分類至一個分開的類別中顯得越來越重要。以下這些事需要去完成: