2014年12月4日

ygopro:源數代碼

與標題無關,這是關於ygopro的核心檔案:
cards.cdb、strings.conf、script的一些簡單的說明
可自由轉載,請保留標題及出處
如果這樣仍然太過困難的話請保留標題

https://github.com/Fluorohydride/ygopro
作者Fluorohydride在Github的主頁
Fluorohydride是對岸的網友,百度ygocore吧通常稱他為圓神
ygopro的原作者,奠定ygopro系統的強者

cards.cdb
儲存所有卡片資料的資料庫,格式為sqlite3
裡面分成datas和texts共2個表格
datas儲存的是卡片的數值資料,重要的欄位如下:
id:
實體卡片右下角的密碼,沒有密碼的卡片存放在1000 0000開始的位置
Replica等實體卡片沒有記錄密碼的卡片可以到ocg-list查詢
10000 0000開始的位置是先行卡使用的區段
20000 0000開始的位置是動畫卡和決鬥中不能使用的實體卡片

ot:
標示此卡為OCG或TCG特有,1=O特有,2=T特有,3=OT都有出,4=Custom

setcode:
script中根據這項來判斷卡片屬於哪個系列,完整資料請參考strings.conf
目前版本格式為int64=8 bytes int,以2 bytes為一單位,共可放4組
以16進位表示會比較容易閱讀,窗戶內建的小算盤可做到
目前每張卡都會讀取自己的資料,因此異畫卡也要設定setcode

alias:
同名卡的編號,主要用來處理:
1. 規則上當作X(神鷹女郎SB)
2. 同一張卡的異畫版本
多張卡產生的相同token雖然有各自的編號,但alias會指定為其中某張卡
作者提過如此設計的理由是可以讓各個token擁有不同卡圖

def:
守備力、連結標記,定義參考constant.lua

level:
卡片等級、階級、連結值,默認為int32,魔法陷阱卡一般是0
大師規則3開始的版本P怪獸的左右刻度都儲存在此,左右各1 byte,最後2 bytes是等級
例如讀時的魔術師(左右8,等級3)為0x08080003

category:
牌組編輯畫面搜尋效果分類時使用,決鬥過程不會使用

其餘欄位:
從字面上可以解讀出對應到卡片的哪項資料
非數值的資料轉成數值的對照表可以參考script/constant.lua
或使用下面連結的DataEditorX

關於陷阱怪獸以及衍生物:
可以變成怪獸的陷阱卡和衍生物在效果欄的括號中記載的數值視為「卡片記載的原數值」
也就是說等級、種族、屬性、攻擊力、守備力等數值都要按照括號中的資料記錄在資料庫裡

texts儲存的是卡片的文字資料
name:
實體卡片上印刷的卡片名稱
除了連號的卡片以外不能出現重複的卡名

desc:
效果敘述
靈擺怪獸的刻度在datas中已有記錄
這裡只需寫出在靈擺區的效果即可

str1~str16:
script中需要用到的文字資料
aux.Stringid(id, str_no)使用的就是id這列的對應欄位
注意str_no=0對應到str1

相關連結:
https://github.com/247321453/DataEditorX
Data EditorX
對岸網友247321453製作的cards.cdb編輯器
必須先安裝.Net Framework

http://sourceforge.net/projects/sqlitebrowser/
簡單的SQL資料庫編輯工具
要修正某些特定欄位的時候可能需要

https://sqlite.org/download.html
splite的官方網頁
Precompiled Binaries for Windows下面有窗戶用的命令列工具
可以直接執行SQL指令,有哪些指令請上網搜尋指令教學
即使有編輯工具,SQL指令最好還是要學會基本的操作
工具無法達成的特定操作通常會需要執行底層的指令

NotePad++
泛用的編輯程式
compare模組在比對某些資料的時候會用到


string.conf
遊戲內使用的字串
作者網站有簡體中文的檔案,對照即可得知各項目用途


script
說實話是有些麻煩的部分
建議真的有維護規則的熱忱跟確認目前規則的能力再做考慮
如果想協助ygopro提出改進的話請學習如何使用Github
在Github註冊帳號後在作者的主頁提出Pull request
Github for windows操作相當容易
如果有應用程式無法處理的需求請自行上網搜尋Git指令教學

http://www.db.yugioh-card.com/yugiohdb/?request_locale=ja
官方資料庫,內容除了某些輸入時的筆誤以外大致上都正確
查閱wiki以前請先確認資料庫和FAQ的紀錄
如果有和wiki衝突之處都是以官方資料庫為準
另外某些卡片可能需要藉由查詢相同效果文的其他卡片來尋找答案

http://yugioh-wiki.net/index.php
日本玩家建立的wiki
可以找到一些官方FAQ沒有記載的判例
下方的問答通常有記錄事務局回答時間,原則上較新的回答可靠度較高

http://ocg-list.com/
非常詳盡的資料庫,有紀錄各版本的效果文本
將卡片ID轉為日文卡名時非常有用

http://www.excite.co.jp/world/fantizi/
我看過的日文翻譯網頁裡面最實用的
不懂的部份丟進去至少可以從中文裡面解讀出大部分訊息

沒有留言:

張貼留言