一開始我只是想著要讓Mv讀取excel的檔案,這個應該也不難,粽子大大的多語系插件裡面就有一個讀取excel用的外掛。所以我要做的話只需要去破解哦不是,是參考一下應該就能知道大概的做法。不過那個外掛有點大,蠻累贅的,所以我一直沒裝...當然我也找不到人幫我翻譯英文,所以一直沒去下載他...
也前幾天忽然想到,mv不是已經自帶json了嗎?
圖1) MV\data\裡面的資料庫檔案
圖2)Items.json裡面的內容:
我幹嘛那麼麻煩把整張excel掛進去,應該要用excel轉json才對。所以我就去google excel to json等關鍵字,還真的找到一堆資料。
第一個找到的是它:Excel to JSON
直接幫Excel裝外掛,來輸出Json格式,看了看,竟然是收月費...!
Pricing
US$2.99/month
立刻放棄這方案
然後也找了好幾個線上轉檔的網站,但是要貼過來貼過去的好麻煩...
如果不介意麻煩的話,我給連結:
基本上這些網站速度都蠻快的也很好用,
但我試著要處理Item表單時候,發現這張表裡面還包著物件,格式就變成這樣
物件{1,2,3,4,5{5-1,5-2,5-3},6[{6-1-1,6-1-2,}{6-2-1,6-2-2}]}
用線上轉檔的話會失去裡面的物件資料
所以就要回來動用VBA...
damage這個物件透過VBA先轉成字串,再輸出最後的Json
以下四筆資料就是新專案預設好的四個道具,用來測試是否正常用
需要的資料對應:
itypeId | |
0 | |
1 | 常規道具 |
2 | 關鍵道具 |
3 | 隱藏道具A |
4 | 隱藏道具B |
hitType | |
0 | 必中 |
1 | 物理 |
2 | 魔法 |
scope | |
0 | 無 |
1 | 一個敵人 |
2 | 所有敵人 |
3 | 隨機1個敵人 |
4 | 隨機2個敵人 |
5 | 隨機3個敵人 |
6 | 隨機4個敵人 |
7 | 一個盟友 |
8 | 所有盟友 |
9 | 一個盟友(死亡) |
10 | 所有盟友(死亡) |
11 | 使用者 |
occasion | |
0 | 總是 |
1 | 戰鬥 |
2 | 平常 |
3 | 從不 |
damage type | |
0 | 無 |
1 | HP傷害 |
2 | MP傷害 |
3 | HP恢復 |
4 | MP恢復 |
5 | HP吸收 |
6 | MP吸收 |
另外道具的effect效果是額外處理的,另建一張長這樣的表單
每一個效果都有一組四個值,預設的卻除藥草就有七組(解除7個狀態)
code號碼對應,細節可搜尋Game_Action(),下貼整理版:
Effect code | dataId | value1 | value2 | ||
11 | RECOVER_HP | HP恢復 | 0 | % | 值 |
12 | RECOVER_MP | MP恢復 | 0 | % | 值 |
13 | GAIN_TP | 獲得TP | 0 | 值 | 0 |
21 | ADD_STATE | 增加狀態 | 狀態ID | % | 0 |
22 | REMOVE_STATE | 移除狀態 | 狀態ID | % | 0 |
31 | ADD_BUFF | 增加正面效果 | 屬性編號 | 持續時間(場景段) | 0 |
32 | ADD_DEBUFF | 增加負面效果 | 屬性編號 | 持續時間(場景段) | 0 |
33 | REMOVE_BUFF | 移除正面效果 | 屬性編號 | 持續時間(場景段) | 0 |
34 | REMOVE_DEBUFF | 移除負面效果 | 屬性編號 | 持續時間(場景段) | 0 |
41 | SPECIAL | 逃走 | 0 | 1 | 0 |
42 | GROW | 增加最大值 | 屬性編號 | 值 | 0 |
43 | LEARN_SKILL | 學習技能 | 技能ID | 1 | 0 |
44 | COMMON_EVENT | 共通事件 | 事件ID | 1 | 0 |
屬性編號 | |
0 | 最大HP |
1 | 最大MP |
2 | 攻擊 |
3 | 防御 |
4 | 魔攻 |
5 | 魔防 |
6 | 敏捷 |
7 | 幸運 |
在Excel裡面使用YEP的方法:
斷行符號: \n
所有的文字內嵌代碼都要從單斜線\改成雙斜線\\
比如說\C[n] -> \\C[n]
已測試過顯示完全正常
我想所有的表單應該都可以用excel來處理,但目前先做了道具表,畢竟我想玩合成系統嘛!
使用Excel除了填值方便以外,還有一個更大的好處就是可以很方便的全面幫item增加屬性,就只要增加Excel的欄位就可以了,多的東西進json是不會當機的,用腳本也能讀取到這個屬性。
以下測試成功不會當機
所以想要增加道具等級、合成消耗Cost、合成獲得經驗值、或是增加某個道具成功率上升等等,都可以用這樣的方法實現。
....
補記
用VBA預設輸出的文字檔案是ANSI格式,在裡面出中文讀進MV會變成亂碼
需要利用Notepad++轉碼UTF-8