【為什麼會有這種腳本(4)】把公會串變成創作!
寫在前面
奇妙的插件系列第四彈!(居然呀...第四代了XD)
這個東西...說實在話,以前應該有人就想過了
『如果說我能夠快速的把公會串存成創作,那是不是會很方便呢?』
沒錯!存串麻煩的地方就在於複製麻煩、貼上麻煩、整理成相同格式更麻煩!
如果今天能有魔法代勞呢?
就在今天!這個方便的魔法誕生了!
只要一鍵!一鍵幫你把對串轉存到創作!
覺得固定的格式太呆版?
沒有問題!自訂的樣版讓你有客製化的存串格式!
2020的存串新觀念,與其靠別人,不如自己來!
安裝腳本
有鑑於好像很多人不知道【使用者腳本】是個怎樣的東西,還請容我耐心解釋:
使用者腳本讓您控制您的瀏覽體驗。當您安裝後,使用者腳本可以為網頁增加功能、簡化使用方法、或移除煩人的東西。(引用自GreaseFork官網)
只要你知道該怎麼修改一個網頁,
使用者腳本就可以幫你把原有的網頁增加許許多多新功能囉
那麼在使用腳本之前,你會需要一個使用者腳本管理器,
關於這個東西我之前已經寫過很多次了:
這個腳本需要您先安裝使用者腳本管理器,我推薦你以下的選擇:
Chrome、Vivaldi使用者:Tampermonkey 或 Violentmonkey
Firefox:Greasemonkey、Tampermonkey、或 Violentmonkey
Safari︰Tampermonkey
Microsoft Edge︰Tampermonkey
您應該可以在瀏覽器的軟體商店中找到這些軟體。
當然,其他瀏覽器的使用者也有類似的選擇
我們將相關的教學連結放在這裡,您應該可以找到合適的腳本管理器。
沒有安裝好使用者腳本管理器,是沒法安裝腳本的喔~
想安裝腳本的朋友,這次的腳本有點麻煩,一共有兩個腳本要安裝
第二個腳本,主要在連動創作頁面,讓你能夠直接把對串貼過去:連結 (目前確定第二個腳本會影響圖片上傳功能,如果你發現圖片無法上傳或有其他問題,請將腳本暫時禁用之後F5在試一次)
第二個腳本很短,不用害怕,就真的只有一行而已XD
也不用擔心順序問題,只要安裝兩個都有安裝好,功能就會啟動囉~
使用方法
安裝完之後,請將巴哈姆特的首頁重新整理一次,
再點進去任何一個串裡面(要進去看才看的到喔)
你就會發現右側欄位多出一個區塊【公會串轉存創作】了~
你目前有兩個方式可以轉存創作,
左邊的【轉存公會創作】會幫您打開新增創作的編輯器,
並且把轉存的串內容貼到原始碼裡頭,
你只需要稍作修改,就可以輕鬆的把對串轉存創作囉
(目前確定在轉存上可能會出現沒有自動貼上轉存結果的狀況,不用擔心,請點擊原始碼模式,按CTRL+V就可以將結果貼上囉~)
請看看這個將主線劇本轉存成創作的範例:
那如果你想要把轉存的內容貼到別的地方(例如說WIKI)的話?
右邊的【複製到剪貼簿】可以把轉存的內容送到剪接簿,
這樣你就可以在任何地方貼上結果囉~
如果你不喜歡我的預設樣板該怎麼辦?那你會需要自己創作模板的!
客製化修改
【管理轉存樣板】
客製化~這個腳本賦予你可以動手的能力,一切就從按下【管理轉存樣板】開始!
點下去之後會彈出新的視窗:
首先我要來介紹一點技術性質的東西,這個腳本的原理是運用模板引擎,把蒐集到的對串資訊當成變數,再加上預先設定好的模板,兩者結合在一起後就可以得到轉換後的結果囉~
我們使用art-template這套頗具話題的模板引擎負責進行渲染,理所當然的,你的模板必須以符合art-template的格式進行撰寫,身為魔法師的你不用害怕,這個引擎有美好的中文文件,你可以在無壓力的狀況下寫出屬於你的art-template樣板~
至於不是魔法師的你們......我答應你們,之後會寫一篇文章好好講解如何撰寫模板的,
所以,不要擔心,好嗎(#
【變數定義】
至於裡頭的變數定義,我們規範如下:
變數名稱 |
定義 |
guild_id |
該串所屬的公會名稱 |
guild_name |
該串所屬的公會編號 |
player_stat |
參與該串的玩家與其對串數量,dictionary型態(表2) |
reply_data |
回覆內容,array型態(表3) |
total_reply |
總回覆數量 |
msg_id |
該串的串編號 |
msg_owner_nickname |
開串者的暱稱 |
msg_owner_id |
開串者的帳號 |
msg_owner_picurl |
開串者的大頭貼網址 |
msg_text |
該串的串首內容 |
msg_create_time |
該串的開串時間 |
表1:變數定義
在這裡頭,player_stat算是比較複雜的型態,他是由兩組dictionary所構成的,請看下面的定義:
變數名稱 |
定義 |
player_stat['XXX'] |
XXX為參與對串的用戶帳號 |
player_stat['XXX']['nickname'] |
該玩家的暱稱 |
player_stat['XXX']['count'] |
該玩家的留言次數 |
表2:player_stat定義
reply_data是標準的array,裡頭以dictionary記錄各回覆內容,其定義如下:
變數名稱 |
定義 |
reply_id |
回覆的官方編號(通常不重要) |
user_id |
回覆者的帳號 |
user_nick |
回覆者的暱稱 |
content |
回覆內容 |
time |
回覆時間 |
msgid |
該串的串編號(等於msg_id) |
reply_num |
回覆的流水號(其實就是第幾串啦) |
表3:reply_data定義
如果你完全不知道我在說什麼.....不要緊,請先點一下【複製到剪貼簿】,
之後打開開發者工具(Chrome是按下F12),
每一次的轉存都會把變數用console.log輸出到開發者工具中,
請找到像object的東西,然後展開他:
登登~變數就會一覽無遺囉~這樣應該會讓你更能夠了解變數的定義~
【模板內容】
當你千辛萬苦地開發完新的模板之後,請把模板貼到【管理轉存樣板】網頁的【模板內容】中,這樣你的客製化模板就會開始運作囉~
為了怕你模板寫到壞掉(不要嫌我烏鴉嘴,你知道我預設模板寫多久嗎XDD)
當你發現使用客製模板後功能失常,請打開開發者工具檢查錯誤訊息,
我有把樣板引擎的DEBUG模式打開~
而為了讓你更快的上手,我把我設計的預設樣板貼在這裡,這樣你應該能比較快上手
考慮到你會有需要修改變數的時候,為了方便各位魔法師的作業,
這個腳本裡準備了一個Eval() Before Render欄位,
讓你可以在準備渲染之前對變數進行操作
在這裡頭,將要被送入渲染引擎的變數名為template_value,
而模板的內容為template_str,有這兩個東西,你就可以隨心所欲地亂搞了XD
但容許小弟提醒您!eval的危險性應該每個操作JS的魔法師們都心知肚明了
這項功能極為強大,但也是把雙面刃,所以....
如果你有一絲絲不確定你在幹嘛,就不要動這個東西!
結語
花了一個晚上寫了這篇文件,我果然很不喜歡寫文件的說......
這個腳本的由來......其實是看到有新人在反應現有的存串方式並不好用,
所以才起了念頭,把這個很久以前就有的想法寫成了腳本
不過這個東西並不是我的首創喔,相似的東西有非常多人寫過了,例如說像這個.... 而我不過就是繼承了這個想法,繼續把這個點子打磨成品而已
說真的,沙鷗邁入了新的階段,實在是越來越懶得繼續創作.....
趁著我還有心力開發新的東西,希望這份小小的作品能夠送給新來公會之人
願這份微不足道的禮物,能夠幫助各位在對串後好好收藏每份回憶
如果這能成為你的助力,那就是對沙鷗最大的鼓勵了
更新紀錄
VER 0.1:初次發布