第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桁』で表記する。
コメントを残す