第3回~データベース入力編1~

明石:

第三回ADSオリカ作成講座です。

本日はデータベースに実際にカードを登録していきます。

 

 

響:

хорошо。前回やった、SQL文を使うんだったね。

 

insert into datas values(カードid,制限,同名カード,カテゴリid,カードの種類,攻撃力,守備力,レベル,種族,属性,効果分類);
insert into texts values(カードid,"カード名","効果テキスト","str1 "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ");

夕張:

今回はこのカードを元に、カードを登録していくわ。

 

 

響:

随分と悪用されそうなオリカだね。

 

夕張:

説明優先するために、あえてシンプルな効果にしたわ。

発動条件や、サーチ対象を狭くしすぎると、この後のスクリプトが難しくなっちゃうからね。

明石:

さて、登録するカードを用意したところで、早速SQL文を書いて行きましょう。

まずは『カードid』ですね。

これはカードを区別するための番号です。実物の左下に書いてあるやつですね。重複してはいけません

オリカの場合は『1000~20000』か『100000000~200000000』のidを使用すれば問題無いでしょう。

今回は『5000』にしておきます。

夕張:

次は『制限』ね。これは何かというと、カードがOCGかTCGか非公式かを区別するための数値よ。

数値の意味は下の通りよ。オリカの場合は4ね。

数値 種類
1 OCG
2 TCG
3 OCGとTCG
4 非公式

 

明石:

次は同名カードですね。簡単に言うと、同じカードを区別するための数値です。

『青眼の白龍』や『ブラック・マジシャン』の様な柄違いのカードや、『伝説の都アトランティス』や『置換融合』の様な、ルール上同名カードとして扱うカードであれば、ここに同名のidを入れます。

オリカの場合、『海』として扱う様なカードでもなければ、0で良いでしょう。

響:

『白き霊竜』なんかは、ここに『青眼の白龍』のidを入れるのかな?

 

明石:

いえ、ここを編集するのはあくまで、ルール上同名カードとして扱うカード、つまり同名カードを含めて3枚までしかデッキに入れることの出来ないカードです。

効果で同名カードとして扱うカードは、スクリプトで指定します。

夕張:

 

カテゴリidは、『ブルーアイズ』や『十二獣』みたいな、カードカテゴリね。

ここに既に使われているカテゴリーの一覧が書かれているわ。特に指定が無いなら0だけど、このオリカでは『魔導師』というカテゴリを新たに作るから、設定しなくちゃいけないわ。

 

明石:

カテゴリーidはデータベース上では10進数、スクリプト上では16進数で表記します。上のURLの数値は16進数で書かれていて、カッコの中が10進数です。

 

響:

10進数は分かるけど、16進数は聞き慣れない言葉だね。

 

明石:

10進数と言うのは、普段使っている進数法で、数を10数える毎に、1桁位が上がりますよね?

16進数は10進数と同じように、16数を数える毎に、1桁位が上がる進数法です。10~15はA~Fで表記します。一日は24時間の24進数、一年は365日の365進数でイメージすると分かりやすいかもしれません。

なお、10進数と区別するために、16進数で表記する場合は、数値の前に0xを付けます。

 

夕張:

例えば、10なら0xA、41なら0x29、255なら0xFFね。提督は関数電卓を使っているみたいだけど、このサイトでも10進数⇔16進数で相互に変換出来るわ。

 

明石:

『魔導師』はオリジナルのカテゴリなので、とりあえず『1000』にしておきましょう。16進数では『0x3E8』です。16進数の方はデータベースに直接は入力しませんが、スクリプトなどに使用するのでメモしておいて下さい。

響:

カテゴリが2つ以上の場合は、どうするのかな?

 

 

 

明石:

その場合は、16進数に変換した2つのidの間に、00(0)挿入して、再び10進数に変換します。

 

夕張:

これだと分かりにくから、実際にやって見るわね。

『Em魔導師 高町なのは』みたいなカードがあるとしましょう。

この場合、カテゴリーは『魔導師』と『Em(エンタメイジ)』なので、それぞれのカテゴリidは、『0x3E8(1000)』と『0xC6(198)』になるわ。この2つのidの間に00を入れて合体させると『0x3E800C6』になって、これを10進数に変化すると、『65536198』になる訳ね。組み合わせの順番は、逆でも良いわよ。

ちなみに、後ろ側に持ってくる16進数の数値が3桁なら0は一つ、4桁なら間に0は要らないわ。

響:

複雑だけね……

 

明石:

カテゴリーはそう何度も変えることはありませんから、大変なのは最初だけです。

じゃあ次は、カードの種類ですね。

 

夕張:

カードの種類と言うのは、効果モンスターなのか、エクシーズモンスターなのか、はたまた魔法、罠かという設定だね。下の表の数値から、該当するものを選んで合計してね。

 数値 種類 
1 モンスター
2 魔法
4
16 通常
32 効果
64 融合
128 儀式
512 スピリット
1024 ユニオン
2048 デュアル
4096 チューナー
8192 シンクロ
16384 トークン
65536 速攻
131072 永続
262144 装備
524288 フィールド
1048576 カウンター
2097152 リバース
4194304 トゥーン
8388608 エクシーズ
16777216 ペンデュラム

響:

多いね。

例えば、効果を持ったシンクロモンスターなら、1(モンスター)+32(効果)+8192(シンクロ)=8225を入力する訳かい?

明石:

正解です。ちなみに通常魔法と通常罠の場合は、そのままの数値、2と4で大丈夫ですよ。

このオリカの場合は、効果モンスターですから、1+32=33ですね。

 

 

夕張:

次は攻撃力守備力ね。これはそのままの数値を入力すれば良いわ。『1500』と『1000』ね。

あまり関係無いとは思うけど、『99,999,999』よりも大きい数値を入れると、オーバーフローして表示がバグっちゃうわ。

明石:

次はレベルです。データベースでは最後の難関ですね。

レベルとランクはそのまま入力して良いです。

問題はペンデュラムモンスターで、こちらはちょっと複雑になります。下の画像を見て下さい。

明石:

上の画像を16進数で用意してください。

上の例では、『スケール3、レベル5』と言う意味です。

注意するのは、レベルやスケールが10以上の場合です。16進数の場合10はAなので、例えば『スケール11、スケール10』の場合は、『11110010ではなくB0B000A』になることに注意して下さい。

仮に『11110010』にしてしまうと、スケールは17、レベルが16になってしまいます。

で、この数値を、例のごとく10進数に変換して下さい。『B0B000A』の場合は『185270282』になるのでこの数値を入力します。

夕張:

慣れていない人がよくやらかすミスなので気を付けてね?

次は、種族と属性よ。下の表を参考にしてそのまま入力するだけよ。

オリカの場合は魔法使いの『2』と、光属性の『16』になるわね。

数値 種族 数値2 種族
1 戦士 4096
2 魔法使い 8192 ドラゴン
4 天使 16384
8 悪魔 32768 獣戦士
16 アンデッド 65536 恐竜
32 機械 131072
64 262144 海竜
128 524288 爬虫類
256 岩石 1048576 サイキック
512 鳥獣 2097152 幻神獣
1024 植物 4194304 創造神
2048 昆虫 8388608 幻竜
数値 属性
1
2
4
8
16
32
64

響:

魔法・罠カードの場合は?

 

 

夕張:

種族・属性に限らず魔法・罠カードに無いステータスは全て0を入力してちょうだいね!

やったことは無いけど、多分間違った数値を入れちゃうと、カードとして認識してくれないと思うわ。

明石:

最後はカードの効果の種類ですね。『特殊召喚』とか『サーチ』見たいなもので、検索の時に使います。

ここにまとめられていますけど、特に思い入れが無ければ0で良いと思います。

 

響:

と、こんな感じになったよ。

 

 

insert into datas values(5000,4,0,1000,33,1500,1000,4,2,16,0);
insert into texts values(カードid,"カード名","効果テキスト","str1 "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ");

明石:

良いですね!

今回はここまでです。次回は効果テキストと登録について説明します。

それでは!


まとめ

・10進数と16進数の違いに気をつける。(10→A,15→F)

・カテゴリーidを2つ設定する場合は、16進数のidを2つの間に00を入力して合体させた後、10進数に変換する。『0x3E8』と『0xC6』であれば、『0x3E800C6』にした後、10進数に変換する。(逆でもOK)

・魔法・罠カードの攻守・レベル・種族・属性・の値は0

・カードの種類は、数値を合計する。

・ペンデュラムモンスターのレベルは『左スケール1桁+右スケール2桁+00+レベル2桁』で表記する。


データベース準備編へ

データベース入力編2&登録編へ