検索条件
全1件
(1/1ページ)
Codeは元はバイナリ列のデータでBase64ライク*1な変換規則で文字列に変換したものである。バイナリ列操作や、文字列への変換操作は、util.js内のbitFieldオブジェクトを通じて行う。
以下はデバッグ用のtoBinメソッドの使用例。
javascript:(new bitField("1zP1xgX00")).toBin() "000000000000111011010000100001000001110011100011000001" ~~~~~~ ここが先頭の1に対応する値 javascript:(new bitField("1zP11hX0Qe00")).toBin() "000000000000001110110100000000111011010001000001000001110011100011000001" javascript:(new bitField("1zP1xhX0Qe0J300")).toBin() "000000000000000011101101000000001110110100000000111011010001100001000001110011100011000001"
javascript:(new bitField("1zP1xgX00")).toBin() "0 0000 0000000111011010 0001 0000 1 000001110011 100011000001" [8][7] [6] [5] [4] [3][2] [1] javascript:(new bitField("1zP11hX0Qe00")).toBin() "000 0000 0000000111011010 0000000111011010 0010 0000 1 000001110011 100011000001" [8] [7] [6] [6] [5] [4] [3][2] [1] javascript:(new bitField("1zP1xhX0Qe0J300")).toBin() "00000 0000 0000000111011010 0000000111011010 0000000111011010 0011 0000 1 000001110011 100011000001" [8] [7] [6] [6] [6] [5] [4] [3][2] [1]
イリスカードのCodeを構成するビット列を意味のある単位で分割すると上記の通りになる。各セクションの意味は以下の通り。
ECO Sim中でビット列を組み立てているコードは以下の通り。(codeは、最後に bf.toString() で得られる。)
[storage.js] var bf = new bitField(); bf.push(target.code.masic_no,12); //イリスカードcodeマジックナンバー bf.push(current_ver,12); //現バージョン [iris.js] if(!enable){ bf.push(0,1); //無効フラグ return; }else{ bf.push(1,1); //有効フラグ } for(i=0;i<iris.parts_num;i++){ bf.push(slot[i].length,4); //この部位の装備カード数(bit 3->4 on version 111) for(j=0;j<slot[i].length;j++){ var idx = slot[i][j]; bf.push(idx,16); //カードindex保存 } }