Discuz 7.2 插件開發筆記 – 技能系統(1)

最近在開發論壇插件,說真的,這個系統挺有意義的。
一般人會認為這是「娛樂插件」不過,錯了!!
這是一個「能力指標」的插件喔!

其實我的技能系統,並非「遊戲娛樂」的使用。

技能,如果在現實世界中,可以說是「會使用的技巧與擁有的能力」
那麼,我的技能系統就是用來「紀錄」的系統。

不過,仰賴 7.2 的強大插件擴充,讓我開發上非常順手。

目前系統共兩個資料檔案:「技能資訊」與「修煉資訊」
會這樣做其實很簡單,因為要避免「隨意的升級」

每項技能想要升級,就得通過「修煉選項」的達成,才可以進行升級。
整體來看,可以說是不錯的系統了!

下面就簡單分享使用到的「技巧」
不過說真的,有使用到的就只有 Discuz 上的 Ajax 控制屬於高難度。

我使用的是 Ajax 視窗,因此用 showWindow() 的 JavaScript函式呼叫。

<a href="plugin.php?id=dofskill:upskill&skillid=$key" onclick="javascript:showWindow('upskill', this.href);return false;" title="升級技能">升級技能!</a>

整體上為模仿 Discuz 的作法,而 showWindow 的參數共四個:
1. id 名稱(方便控制)
2. 目標位子
3. 傳遞資料方式,預設get (post用法我其實不會)
4. 是否緩存預設似乎是開啟的

而目標位子的頁面,就很講究了!
Discuz 設計成「直接讀取正常版模」的設計。

所以設計版模時,要照常加入 {template header} 與 {template footer}
否則,就會看空白畫面!

其餘大多是使用 PHP 達成的控制,其實也沒有什麼特別。

說實在的,其實技能系統只是一個基礎系統,實際上沒有太大的意義。

3 thoughts on “Discuz 7.2 插件開發筆記 – 技能系統(1)