Initial commit
This commit is contained in:
commit
349a784840
9
README.md
Normal file
9
README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# IIDX
|
||||
|
||||
Plugin Version: **v1.4.1**
|
||||
|
||||
This is A Core IIDX Plugin.
|
||||
|
||||
Supported Versions:
|
||||
|
||||
- HEROIC VERSE
|
352
data/27customlist.ts
Normal file
352
data/27customlist.ts
Normal file
@ -0,0 +1,352 @@
|
||||
// 参考:bemaniwiki
|
||||
export const frame_list: string[] = ["デフォルト"];
|
||||
|
||||
export const menumusic_list: string[] = ["デフォルト"];
|
||||
|
||||
export const noteburst_list: string[] = [
|
||||
"デフォルト",
|
||||
"初代",
|
||||
"9th style",
|
||||
"IIDX RED(オレンジ爆発)",
|
||||
"HAPPY SKY",
|
||||
"DistorteD",
|
||||
"GOLD",
|
||||
"DJ TROOPERS",
|
||||
"EMPRESS",
|
||||
"SIRIUS",
|
||||
"Resort Anthem",
|
||||
"Lincle",
|
||||
"tricoro",
|
||||
"SPADA",
|
||||
"オンリーワンボム",
|
||||
"PENDUAL",
|
||||
"copula",
|
||||
"SINOBUZ",
|
||||
"キャノンスパーク",
|
||||
"Rootage",
|
||||
"HEROIC VERSE",
|
||||
];
|
||||
|
||||
export const turntable_list: string[] = [
|
||||
"デフォルト",
|
||||
"トラン",
|
||||
"JOJO",
|
||||
"デルタ",
|
||||
"オレンジディスク",
|
||||
"DistorteD",
|
||||
"GOLD",
|
||||
"DJ TROOPERS",
|
||||
"EMPRESS",
|
||||
"SIRIUS",
|
||||
"Resort Anthem",
|
||||
"Lincle",
|
||||
"tricoro",
|
||||
"SPADA",
|
||||
"灼熱",
|
||||
"オンリーワンレコード",
|
||||
"PENDUAL",
|
||||
"copula",
|
||||
"SINOBUZ",
|
||||
"キャノンボーラーズ",
|
||||
"Rootage",
|
||||
"HEROIC VERSE",
|
||||
"BPL",
|
||||
"BPL ROUND1",
|
||||
"BPL APINA VRAMeS",
|
||||
"BPL SILKHAT",
|
||||
"BPL レジャーランド",
|
||||
"BPL SUPER NOVA Tohoku",
|
||||
"BPL GAME PANIC",
|
||||
];
|
||||
|
||||
export const lanecover_list: string[] = [
|
||||
"デフォルト",
|
||||
"sigsig",
|
||||
"内部フレーム",
|
||||
"空",
|
||||
"KAMAITACHI",
|
||||
"タオル",
|
||||
"コスモス",
|
||||
"度胸兄弟",
|
||||
"Blind Justice",
|
||||
"迷彩",
|
||||
"bloomin' feeling",
|
||||
"Marie Antoinette(AC未使用)", //削除曲のため
|
||||
"Elisha",
|
||||
"Kung-fu Empire",
|
||||
"Tune of beat#3",
|
||||
"EMPRESS",
|
||||
"Programmed World",
|
||||
"3y3s",
|
||||
"UMEGIRI",
|
||||
"KANZAKI",
|
||||
"Rock Da House",
|
||||
"THE DOOR INTO RAINBOW",
|
||||
"Aegis",
|
||||
"Vermilion",
|
||||
"Phoenix",
|
||||
"Lucky Days",
|
||||
"Almace",
|
||||
"DIAMOND CROSSING",
|
||||
"Mamonis",
|
||||
"Ashemu",
|
||||
"Bulluvegola",
|
||||
"Beridzebeth",
|
||||
"Levaslater",
|
||||
"STN",
|
||||
"Rche",
|
||||
"Neulakyussra",
|
||||
"Cybele",
|
||||
"Cuvelia",
|
||||
"Liberation",
|
||||
"Praludium",
|
||||
"少女アリスと箱庭幻想コンチェルト",
|
||||
"Re:GENERATION",
|
||||
"20 system bg",
|
||||
"旋律のドグマ~Miserables~/TYPE A",
|
||||
"旋律のドグマ~Miserables~/TYPE B",
|
||||
"Elektric U-Phoria",
|
||||
"MAGIC & LOVE",
|
||||
"スパーダレリーフ",
|
||||
"S!ck",
|
||||
"CONCEPTUAL",
|
||||
"ΕΛΠΙΣ",
|
||||
"rumrum triplets",
|
||||
"SYNC-ANTHEM",
|
||||
"Thor's Hammer",
|
||||
"Plan 8",
|
||||
"仮想空間の旅人たち",
|
||||
"8bit Princess",
|
||||
"planarian",
|
||||
"Dynamite1",
|
||||
"龍と少女とデコヒーレンス",
|
||||
"トリカゴノ鳳凰",
|
||||
"Proof of the existence",
|
||||
"BRAVE GLOW/機動怪獣リングール",
|
||||
"BRAVE GLOW/トリコロイダー",
|
||||
"VEGA/VEGAうさぎ",
|
||||
"VEGA/中のひと",
|
||||
"カジノファイヤーことみちゃん",
|
||||
"New Lights",
|
||||
"灼熱くんやきそば",
|
||||
"即席!脳直★ミュージックシステム",
|
||||
"キャトられ恋はモ~モク",
|
||||
"オンリーワンカバー",
|
||||
"ジザル",
|
||||
"ジャックティーロ",
|
||||
"ジャックハンス",
|
||||
"イェンス",
|
||||
"アムドゥシアン",
|
||||
"マクスウェリオン",
|
||||
"ラプラシア",
|
||||
"ルシェ",
|
||||
"スモモ",
|
||||
"ファウラ",
|
||||
"ベリゼベス",
|
||||
"エルピス・キラ",
|
||||
"フェリーラ",
|
||||
"オールパトナ",
|
||||
"あいむちゃん",
|
||||
"人魚のPrim",
|
||||
"アヤカシ二人",
|
||||
"SHELTER OF THE MIND",
|
||||
"Acid Pumper",
|
||||
"X",
|
||||
"ハーティー",
|
||||
"Nightmare before oversleep",
|
||||
"Highcharge Divolt",
|
||||
"Godspeed(少年)",
|
||||
"車掌イージス",
|
||||
"GENERATE",
|
||||
"Dynamite2",
|
||||
"格闘乙女",
|
||||
"レル DX2300系",
|
||||
"つゆ太",
|
||||
"La dolce primavera",
|
||||
"AO-1",
|
||||
"真 地獄超特急 -HELL or HELL-",
|
||||
"モード",
|
||||
"ミニョンヌ鉄道兄弟",
|
||||
"冬椿",
|
||||
"PAPAYAPA BASS",
|
||||
"鴉",
|
||||
"AsiaN distractive",
|
||||
"TOGAKUSHI",
|
||||
"Modular Technology",
|
||||
"獅子霞麗ノ舞",
|
||||
"Music is The Answer",
|
||||
"!Viva!",
|
||||
"SINOBUZ UI",
|
||||
"ChaserXX",
|
||||
"Amor De Verao",
|
||||
"エディブルフラワーの独白",
|
||||
"ハイ*ビスカス ft. Kanae Asaba",
|
||||
"Midnight Lady",
|
||||
"FUTURE is Dead",
|
||||
"Break Stasis",
|
||||
"草原の王女-軌跡を辿って-",
|
||||
"Exhaust Hype",
|
||||
"25UI",
|
||||
"焔極OVERKILL",
|
||||
"Breakin' Chain",
|
||||
"津軽雪",
|
||||
"Yellow Sketch(RX-Ver.S.P.L.)",
|
||||
"Steel Edge",
|
||||
"Go Ahead!!",
|
||||
"Sky High(AC未使用)",
|
||||
"イザナミノナゲキ",
|
||||
"GuNGNiR",
|
||||
"ディッシュウォッシャー◎彡おいわちゃん(AC未使用)",
|
||||
"BroGamer",
|
||||
"FUZIN RIZIN(AC未使用)",
|
||||
"Mare Nectaris(AC未使用)",
|
||||
"Quakes",
|
||||
"Rave Cannon(AC未使用)",
|
||||
"ECHIDNA",
|
||||
"Snakey Kung-fu",
|
||||
"刃図羅",
|
||||
"忍恋花",
|
||||
"法具「バズラ」",
|
||||
"HADES",
|
||||
"DEATH†ZIGOQ",
|
||||
"東京神話",
|
||||
"Initiation",
|
||||
"EMERALDAS",
|
||||
"Chemical Cookie",
|
||||
"ナイトシティー・アヴァンチュール",
|
||||
"シムルグの目醒め",
|
||||
"n'pa pa BBQ",
|
||||
"ANCHOR",
|
||||
"IIDX AIR RACE",
|
||||
"THE DAY OF JUBILATIONS",
|
||||
"HEISEI",
|
||||
"IDC feat.REVERBEE (Mo'Cuts Ver)",
|
||||
"Yum Yum Jelly",
|
||||
"夏の匂い。キミの残像。 ft. Kanae Asaba",
|
||||
"Hurry Hurry",
|
||||
"OVERTIME",
|
||||
"ミストレス・アンに花束を",
|
||||
"Ember Lights",
|
||||
"Rootage",
|
||||
"Urban Constellations",
|
||||
"金野火織の金色提言",
|
||||
"龍王の霊廟(Mausoleum Of The Primal Dragon)",
|
||||
"Painful Fate",
|
||||
"Drastic Dramatic",
|
||||
"抱きしめてモナムール",
|
||||
"Trill auf G",
|
||||
"Lethal Weapon",
|
||||
"HEROIC VERSE",
|
||||
"Primitive Vibes",
|
||||
"Calvados Queen",
|
||||
"Ska-sh All Neurons!!",
|
||||
"Moving on",
|
||||
"Hyper Drive feat. ぷにぷに電機",
|
||||
"THE BRAVE MUST DIE",
|
||||
"曼荼羅恋々",
|
||||
"Silly Love",
|
||||
"Change Yourself",
|
||||
"Virus Funk",
|
||||
"BPL",
|
||||
"BPL ROUND1",
|
||||
"BPL APINA VRAMeS",
|
||||
"BPL SILKHAT",
|
||||
"BPL レジャーランド",
|
||||
"BPL SUPER NOVA Tohoku",
|
||||
"BPL GAME PANIC",
|
||||
];
|
||||
|
||||
export const judge_list: string[] = [
|
||||
"デフォルト",
|
||||
"デジタル",
|
||||
"スマート",
|
||||
"メタリックブルー",
|
||||
"テクノ",
|
||||
"ワイヤー",
|
||||
"ABYSS",
|
||||
"SPADA",
|
||||
"ANCIENT",
|
||||
"オンリーワンジャッジ",
|
||||
"電光掲示板風",
|
||||
"SINOBUZ",
|
||||
"セグメント",
|
||||
"Rootage",
|
||||
"HEROIC VERSE",
|
||||
];
|
||||
|
||||
export const notes_list: string[] = [
|
||||
"デフォルト",
|
||||
"細いノーツ",
|
||||
"極細ノーツ",
|
||||
"ゴージャス",
|
||||
"アクア",
|
||||
"ギャル",
|
||||
"フォトン",
|
||||
"パステル",
|
||||
"シンプルカラー",
|
||||
"ライト",
|
||||
"tricoro",
|
||||
"バブル",
|
||||
];
|
||||
|
||||
export const keybeam_list: string[] = [
|
||||
"デフォルト",
|
||||
"ショート",
|
||||
"ロング",
|
||||
"オレンジ",
|
||||
"ピンク",
|
||||
"モノクロ",
|
||||
"ベリーショート",
|
||||
"ライトニング",
|
||||
"オンリーワンビーム",
|
||||
"コピュライト",
|
||||
"CBビーム",
|
||||
"HVビーム(AC未使用)",
|
||||
];
|
||||
|
||||
export const fullcombo_list: string[] = [
|
||||
"デフォルト",
|
||||
"IIDX RED",
|
||||
"HAPPY SKY",
|
||||
"DistorteD",
|
||||
"GOLD",
|
||||
"DJ TROOPERS",
|
||||
"EMPRESS",
|
||||
"SIRIUS",
|
||||
"Resort Anthem",
|
||||
"Lincle",
|
||||
"tricoro",
|
||||
"SPADA",
|
||||
"オンリーワンフルコンボ",
|
||||
"PENDUAL",
|
||||
"copula",
|
||||
"SINOBUZ",
|
||||
"キャノンフィニッシュ",
|
||||
"Rootage",
|
||||
"HEROIC VERSE",
|
||||
];
|
||||
|
||||
export const effect_list: string[] = [
|
||||
"OFF",
|
||||
"ECHO / REVERB",
|
||||
"COMPRESSOR / REVERB EX",
|
||||
"CHORUS / FLANGER",
|
||||
"GARGLE / DISTORTION",
|
||||
"EQ ONLY"
|
||||
];
|
||||
|
||||
export const bombsize_list: string[] = [
|
||||
"100%",
|
||||
"70%",
|
||||
"80%",
|
||||
"90%",
|
||||
"110%",
|
||||
"120%",
|
||||
"130%",
|
||||
];
|
||||
|
||||
export const first_note_preview_list: string[] = [
|
||||
"default",
|
||||
"Always ON",
|
||||
"Always OFF",
|
||||
];
|
1
data/settingslist.ts
Normal file
1
data/settingslist.ts
Normal file
@ -0,0 +1 @@
|
||||
export const ShopRanking_list: string[] = ["PersonalBest","AllProfilesRanking"];
|
92
handlers/IIDXgrade.ts
Normal file
92
handlers/IIDXgrade.ts
Normal file
@ -0,0 +1,92 @@
|
||||
import { grade } from "../models/grade";
|
||||
import { GetVersion, IIDXidTorefid } from "../util";
|
||||
import { pc_data } from "../models/pc_data";
|
||||
|
||||
export const graderaised: EPR = async (info, data, send) => {
|
||||
const iidxid = parseInt($(data).attr().iidxid);
|
||||
const refid = await IIDXidTorefid(iidxid);
|
||||
const version = GetVersion(info);
|
||||
const style = parseInt($(data).attr().gtype);
|
||||
const gid = parseInt($(data).attr().gid);
|
||||
const cstage = parseInt($(data).attr().cstage);
|
||||
const achi = parseInt($(data).attr().achi);
|
||||
const grade = await DB.FindOne<grade>(refid, {
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: style,
|
||||
grade: gid,
|
||||
});
|
||||
const pc_data = await DB.FindOne<pc_data>(refid, {
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
});
|
||||
if (grade) {
|
||||
if (cstage <= grade.dArray[2]) {
|
||||
let archmax = Math.max(achi, grade.dArray[3]);
|
||||
let cstagemax = Math.max(cstage, grade.dArray[2]);
|
||||
await DB.Upsert<grade>(
|
||||
refid,
|
||||
{
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: style,
|
||||
grade: gid,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
version: version,
|
||||
style: style,
|
||||
grade: gid,
|
||||
dArray: [style, gid, cstagemax, archmax],
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
} else {
|
||||
await DB.Upsert<grade>(
|
||||
refid,
|
||||
{
|
||||
collection: "grade",
|
||||
version: version,
|
||||
style: style,
|
||||
grade: gid,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
version: version,
|
||||
style: style,
|
||||
grade: gid,
|
||||
dArray: [style, gid, cstage, achi],
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
if (cstage == 4 && style == 0 && pc_data.sgid < gid) {
|
||||
await DB.Upsert<pc_data>(
|
||||
refid,
|
||||
{
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
sgid: gid,
|
||||
},
|
||||
}
|
||||
);
|
||||
} else if (cstage == 4 && style == 1 && pc_data.dgid < gid) {
|
||||
await DB.Upsert<pc_data>(
|
||||
refid,
|
||||
{
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
dgid: gid,
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
send.object(K.ATTR({ pnum: "1337" }));
|
||||
};
|
493
handlers/IIDXmusic.ts
Normal file
493
handlers/IIDXmusic.ts
Normal file
@ -0,0 +1,493 @@
|
||||
import { score, score_detail } from "../models/score";
|
||||
import { profile } from "../models/profile";
|
||||
import { shop_data } from "../models/shop_data";
|
||||
import {
|
||||
base64decode,
|
||||
ClidToRank,
|
||||
GetVersion,
|
||||
IIDXidTorefid,
|
||||
DateToName,
|
||||
refidToName,
|
||||
} from "../util";
|
||||
import { pc_data } from "../models/pc_data";
|
||||
import { ShopRanking_list } from "../data/settingslist";
|
||||
|
||||
export const musicreg: EPR = async (info, data, send) => {
|
||||
const iidxid = parseInt($(data).attr().iidxid);
|
||||
const version = GetVersion(info);
|
||||
const refid = await IIDXidTorefid(iidxid);
|
||||
const profile = await DB.FindOne<profile>(refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
const shop_data = await DB.FindOne<shop_data>({
|
||||
collection: "shop_data",
|
||||
});
|
||||
const pc_data = await DB.FindOne<pc_data>(refid, {
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
});
|
||||
const qpro = {
|
||||
head: U.GetConfig("qpro_head"),
|
||||
hair: U.GetConfig("qpro_hair"),
|
||||
hand: U.GetConfig("qpro_hand"),
|
||||
face: U.GetConfig("qpro_face"),
|
||||
body: U.GetConfig("qpro_body"),
|
||||
};
|
||||
|
||||
//譜面難易度(0がSPビギナー 4がSPレジェンダリア 5がDPビギナー(該当曲無し) 9がDPレジェンダリア)
|
||||
const clid = parseInt($(data).attr().clid);
|
||||
//musicid
|
||||
const music_id = parseInt($(data).element("music_play_log").attr().music_id);
|
||||
//SPが0 DPが1
|
||||
const style = parseInt($(data).element("music_play_log").attr().play_style);
|
||||
//譜面難易度(0がビギナー 4がレジェンダリア)
|
||||
const rank = parseInt($(data).element("music_play_log").attr().note_id);
|
||||
//クリア(0:noplay 1:failed 2:assisted 3:easy 4:normal 5:hard 6:exhard 7:fc)
|
||||
const clear = parseInt($(data).element("music_play_log").attr().clear_flg);
|
||||
//exscore
|
||||
const exscore = parseInt($(data).element("music_play_log").attr().ex_score);
|
||||
//ミスカウント
|
||||
const miss = parseInt($(data).element("music_play_log").attr().miss_num);
|
||||
//途中落ちかどうか(途中落ち:0 完走:1)
|
||||
const is_sudden_death = !$(data)
|
||||
.element("music_play_log")
|
||||
.bool("is_sudden_death");
|
||||
//ゴースト(base64)
|
||||
const ghost = $(data)
|
||||
.element("music_play_log")
|
||||
.buffer("ghost")
|
||||
.toString("base64");
|
||||
|
||||
let mArray = [-1, music_id, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1];
|
||||
let dbflg = 0;
|
||||
let update = 1;
|
||||
|
||||
const music_data: score | null = await DB.FindOne<score>(refid, {
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
});
|
||||
|
||||
const score_temp: score_detail | null = await DB.FindOne<score_detail>(
|
||||
refid,
|
||||
{
|
||||
collection: "score_detail",
|
||||
music_id: music_id,
|
||||
|
||||
clid: clid,
|
||||
}
|
||||
);
|
||||
|
||||
//mArrayがDB内に見つかったら代入
|
||||
|
||||
if (music_data) {
|
||||
if (style == 0 && music_data.spmArray) {
|
||||
mArray = music_data.spmArray;
|
||||
dbflg = 1;
|
||||
if (
|
||||
_.isNil(score_temp) &&
|
||||
(music_data.spmArray[rank + 2] != 0 ||
|
||||
music_data.spmArray[rank + 7] != 0)
|
||||
) {
|
||||
await DB.Insert<score_detail>(refid, {
|
||||
collection: "score_detail",
|
||||
|
||||
music_id: music_id,
|
||||
clid: clid,
|
||||
|
||||
score: music_data.spmArray[rank + 7],
|
||||
clflg: music_data.spmArray[rank + 2],
|
||||
miss: music_data.spmArray[rank + 12],
|
||||
time: Date.now() - 86400000,
|
||||
});
|
||||
}
|
||||
} else if (style == 1 && music_data.dpmArray) {
|
||||
mArray = music_data.dpmArray;
|
||||
dbflg = 1;
|
||||
if (
|
||||
_.isNil(score_temp) &&
|
||||
(music_data.dpmArray[rank + 2] != 0 ||
|
||||
music_data.spmArray[rank + 7] != 0)
|
||||
) {
|
||||
await DB.Insert<score_detail>(refid, {
|
||||
collection: "score_detail",
|
||||
|
||||
music_id: music_id,
|
||||
clid: clid,
|
||||
|
||||
score: music_data.dpmArray[rank + 7],
|
||||
clflg: music_data.dpmArray[rank + 2],
|
||||
miss: music_data.dpmArray[rank + 12],
|
||||
time: Date.now() - 86400000,
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//クリアランプ
|
||||
mArray[rank + 2] = Math.max(clear, mArray[rank + 2]);
|
||||
// 完走の場合ミスカウントセーブ
|
||||
if (is_sudden_death) {
|
||||
// -1の場合大小比較出来ない為
|
||||
if (mArray[rank + 12] == -1) {
|
||||
mArray[rank + 12] = miss;
|
||||
} else {
|
||||
mArray[rank + 12] = Math.min(mArray[rank + 12], miss);
|
||||
}
|
||||
}
|
||||
if (style == 0) {
|
||||
if (mArray[rank + 7] < exscore || dbflg == 0) {
|
||||
//スコア
|
||||
mArray[rank + 7] = Math.max(exscore, mArray[rank + 7]);
|
||||
await DB.Upsert<score>(
|
||||
refid,
|
||||
{
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
music_id: music_id,
|
||||
spmArray: mArray,
|
||||
[clid]: ghost,
|
||||
},
|
||||
}
|
||||
);
|
||||
} else {
|
||||
mArray[rank + 7] = Math.max(exscore, mArray[rank + 7]);
|
||||
update = 0;
|
||||
await DB.Upsert<score>(
|
||||
refid,
|
||||
{
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
music_id: music_id,
|
||||
spmArray: mArray,
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
} else if (style == 1) {
|
||||
if (mArray[rank + 7] < exscore || dbflg == 0) {
|
||||
mArray[rank + 7] = Math.max(exscore, mArray[rank + 7]);
|
||||
await DB.Upsert<score>(
|
||||
refid,
|
||||
{
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
music_id: music_id,
|
||||
dpmArray: mArray,
|
||||
[clid]: ghost,
|
||||
},
|
||||
}
|
||||
);
|
||||
} else {
|
||||
mArray[rank + 7] = Math.max(exscore, mArray[rank + 7]);
|
||||
update = 0;
|
||||
await DB.Upsert<score>(
|
||||
refid,
|
||||
{
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
music_id: music_id,
|
||||
dpmArray: mArray,
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
//スコア詳細
|
||||
await DB.Insert<score_detail>(refid, {
|
||||
collection: "score_detail",
|
||||
|
||||
music_id: music_id,
|
||||
clid: clid,
|
||||
|
||||
score: exscore,
|
||||
clflg: clear,
|
||||
miss: miss,
|
||||
|
||||
time: Date.now(),
|
||||
});
|
||||
|
||||
const result = {
|
||||
shopdata: K.ATTR({ rank: "1" }),
|
||||
LDJ: K.ATTR({
|
||||
clid: "1",
|
||||
crate: "1000",
|
||||
frate: "0",
|
||||
mid: String(music_id),
|
||||
}),
|
||||
ranklist: {
|
||||
data: [],
|
||||
},
|
||||
};
|
||||
//スコア詳細ロード[スコア,クリアランプ]
|
||||
const scores = (
|
||||
await DB.Find<score_detail>(refid, {
|
||||
collection: "score_detail",
|
||||
music_id: music_id,
|
||||
|
||||
clid: clid,
|
||||
})
|
||||
).map((r) => [r.score, r.clflg, r.time]);
|
||||
|
||||
scores.sort((a, b) => b[0] - a[0] || a[1] - b[1]);
|
||||
|
||||
//スコアが5つの時削除(仮)
|
||||
if (scores.length >= 5) {
|
||||
const dscore = scores[4][0];
|
||||
const dclflg = scores[4][1];
|
||||
const dtime = scores[4][2];
|
||||
await DB.Remove<score_detail>(refid, {
|
||||
collection: "score_detail",
|
||||
|
||||
music_id: music_id,
|
||||
clid: clid,
|
||||
|
||||
score: dscore,
|
||||
clflg: dclflg,
|
||||
time: dtime,
|
||||
});
|
||||
}
|
||||
|
||||
if (ShopRanking_list.indexOf(U.GetConfig("ShopRanking")) == 0) {
|
||||
//今プレイした順位を計算
|
||||
const currentrank = scores.findIndex(
|
||||
(item) => item[0] == exscore && item[1] == clear
|
||||
);
|
||||
|
||||
const now = Date.now();
|
||||
|
||||
scores.forEach((rankscore, index) => {
|
||||
if (index == currentrank) {
|
||||
result.ranklist.data.push(
|
||||
K.ATTR({
|
||||
body: qpro.body,
|
||||
clflg: String(rankscore[1]),
|
||||
dgrade: String(pc_data.dgid),
|
||||
face: qpro.face,
|
||||
hair: qpro.hair,
|
||||
hand: qpro.hand,
|
||||
head: qpro.head,
|
||||
iidx_id: String(profile.iidxid),
|
||||
myFlg: "1",
|
||||
name: profile.name,
|
||||
opname: shop_data.shop_name,
|
||||
pid: String(profile.pid),
|
||||
rnum: String(index + 1),
|
||||
score: String(rankscore[0]),
|
||||
sgrade: String(pc_data.sgid),
|
||||
update: String(update),
|
||||
})
|
||||
);
|
||||
} else {
|
||||
result.ranklist.data.push(
|
||||
K.ATTR({
|
||||
body: qpro.body,
|
||||
clflg: String(rankscore[1]),
|
||||
dgrade: String(pc_data.dgid),
|
||||
face: qpro.face,
|
||||
hair: qpro.hair,
|
||||
hand: qpro.hand,
|
||||
head: qpro.head,
|
||||
iidx_id: String(profile.iidxid),
|
||||
myFlg: "0",
|
||||
name: DateToName(now, rankscore[2]),
|
||||
opname: shop_data.shop_name,
|
||||
pid: String(profile.pid),
|
||||
rnum: String(index + 1),
|
||||
score: String(rankscore[0]),
|
||||
sgrade: String(pc_data.sgid),
|
||||
update: "0",
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
} else if (ShopRanking_list.indexOf(U.GetConfig("ShopRanking")) == 1) {
|
||||
let pscores: any[][];
|
||||
if (style == 0) {
|
||||
pscores = (
|
||||
await DB.Find(null, {
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
spmArray: { $exists: true },
|
||||
})
|
||||
).map((r) => [r.spmArray[rank + 7], r.spmArray[rank + 2], r.__refid]);
|
||||
} else if (style == 1) {
|
||||
pscores = (
|
||||
await DB.Find(null, {
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
dpmArray: { $exists: true },
|
||||
})
|
||||
).map((r) => [r.dpmArray[rank + 7], r.dpmArray[rank + 2], r.__refid]);
|
||||
}
|
||||
pscores.sort((a, b) => b[0] - a[0]);
|
||||
const currentrank = pscores.findIndex((item) => item[2] == refid);
|
||||
|
||||
pscores = await Promise.all(
|
||||
pscores.map(async (r) => [r[0], r[1], await refidToName(r[2])])
|
||||
);
|
||||
|
||||
pscores.forEach((rankscore, index) => {
|
||||
if (index == currentrank) {
|
||||
result.ranklist.data.push(
|
||||
K.ATTR({
|
||||
body: qpro.body,
|
||||
clflg: String(rankscore[1]),
|
||||
dgrade: String(pc_data.dgid),
|
||||
face: qpro.face,
|
||||
hair: qpro.hair,
|
||||
hand: qpro.hand,
|
||||
head: qpro.head,
|
||||
iidx_id: String(profile.iidxid),
|
||||
myFlg: "1",
|
||||
name: profile.name,
|
||||
opname: shop_data.shop_name,
|
||||
pid: String(profile.pid),
|
||||
rnum: String(index + 1),
|
||||
score: String(rankscore[0]),
|
||||
sgrade: String(pc_data.sgid),
|
||||
update: String(update),
|
||||
})
|
||||
);
|
||||
} else if (rankscore[0] != 0 || rankscore[1] != 0) {
|
||||
result.ranklist.data.push(
|
||||
K.ATTR({
|
||||
body: qpro.body,
|
||||
clflg: String(rankscore[1]),
|
||||
dgrade: String(pc_data.dgid),
|
||||
face: qpro.face,
|
||||
hair: qpro.hair,
|
||||
hand: qpro.hand,
|
||||
head: qpro.head,
|
||||
iidx_id: String(profile.iidxid),
|
||||
myFlg: "0",
|
||||
name: rankscore[2],
|
||||
opname: shop_data.shop_name,
|
||||
pid: String(profile.pid),
|
||||
rnum: String(index + 1),
|
||||
score: String(rankscore[0]),
|
||||
sgrade: String(pc_data.sgid),
|
||||
update: "0",
|
||||
})
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
send.object(result);
|
||||
};
|
||||
|
||||
export const musicgetrank: EPR = async (info, data, send) => {
|
||||
const cltype = $(data).attr().cltype;
|
||||
const iidxid = parseInt($(data).attr().iidxid);
|
||||
const refid = await IIDXidTorefid(iidxid);
|
||||
|
||||
const spmArray: any = (
|
||||
await DB.Find(refid, {
|
||||
collection: "score",
|
||||
spmArray: { $exists: true },
|
||||
})
|
||||
).map((r) => r.spmArray);
|
||||
spmArray.sort((a: number, b: number) => a[1] - b[1]);
|
||||
|
||||
const dpmArray: any = (
|
||||
await DB.Find(refid, {
|
||||
collection: "score",
|
||||
dpmArray: { $exists: true },
|
||||
})
|
||||
).map((r) => r.dpmArray);
|
||||
dpmArray.sort((a: number, b: number) => a[1] - b[1]);
|
||||
|
||||
const result: any = {
|
||||
style: K.ATTR({ type: cltype }),
|
||||
m: [],
|
||||
best: K.ARRAY(
|
||||
"u16",
|
||||
[
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
65535,
|
||||
],
|
||||
{ rno: "-1" }
|
||||
),
|
||||
};
|
||||
if (cltype == "0") {
|
||||
spmArray.forEach((m: number[]) => {
|
||||
result.m.push(K.ARRAY("s16", m));
|
||||
});
|
||||
} else if (cltype == "1") {
|
||||
dpmArray.forEach((m: number[]) => {
|
||||
result.m.push(K.ARRAY("s16", m));
|
||||
});
|
||||
}
|
||||
send.object(result);
|
||||
};
|
||||
|
||||
export const musicappoint: EPR = async (info, data, send) => {
|
||||
const iidxid = parseInt($(data).attr().iidxid);
|
||||
const refid = await IIDXidTorefid(iidxid);
|
||||
const music_id = parseInt($(data).attr().mid);
|
||||
const clid = parseInt($(data).attr().clid);
|
||||
const rank = ClidToRank(clid).rank;
|
||||
const style = ClidToRank(clid).style;
|
||||
let ghost: string,
|
||||
score = 0;
|
||||
const music_data_sp = await DB.FindOne(refid, {
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
spmArray: { $exists: true },
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
const music_data_dp = await DB.FindOne(refid, {
|
||||
collection: "score",
|
||||
music_id: music_id,
|
||||
dpmArray: { $exists: true },
|
||||
[clid]: { $exists: true },
|
||||
});
|
||||
|
||||
if (style == 0 && music_data_sp) {
|
||||
score = music_data_sp.spmArray[rank + 7];
|
||||
ghost = base64decode(music_data_sp[clid]);
|
||||
send.object({ mydata: K.ITEM("bin", ghost, { score: String(score) }) });
|
||||
} else if (style == 1 && music_data_dp) {
|
||||
score = music_data_dp.dpmArray[rank + 7];
|
||||
ghost = base64decode(music_data_dp[clid]);
|
||||
send.object({ mydata: K.ITEM("bin", ghost, { score: String(score) }) });
|
||||
} else {
|
||||
send.success();
|
||||
}
|
||||
};
|
||||
|
||||
export const musiccrate: EPR = async (info, data, send) => {
|
||||
const version = info.module;
|
||||
send.pugFile("pug/crate.pug", { version });
|
||||
};
|
446
handlers/IIDXpc.ts
Normal file
446
handlers/IIDXpc.ts
Normal file
@ -0,0 +1,446 @@
|
||||
import { settings } from "../models/settings";
|
||||
import { pc_data, IIDX27_pc_data} from "../models/pc_data";
|
||||
import { shop_data } from "../models/shop_data";
|
||||
import { profile } from "../models/profile";
|
||||
import { grade } from "../models/grade";
|
||||
import { GetVersion, IDToCode, AppendSettingConverter } from "../util";
|
||||
import {
|
||||
first_note_preview_list,
|
||||
bombsize_list,
|
||||
effect_list,
|
||||
} from "../data/27customlist";
|
||||
import {
|
||||
frame_list,
|
||||
fullcombo_list,
|
||||
judge_list,
|
||||
keybeam_list,
|
||||
lanecover_list,
|
||||
menumusic_list,
|
||||
noteburst_list,
|
||||
notes_list,
|
||||
turntable_list,
|
||||
} from "../data/27customlist";
|
||||
|
||||
export const pccommon: EPR = async (info, data, send) => {
|
||||
const version = GetVersion(info);
|
||||
if (version == 27) {
|
||||
send.pugFile("pug/27pccommon.pug");
|
||||
}
|
||||
};
|
||||
|
||||
export const pcoldget: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().rid;
|
||||
const profile = await DB.FindOne<profile>(refid, { collection: "profile" });
|
||||
if (profile) {
|
||||
send.success();
|
||||
} else {
|
||||
send.deny();
|
||||
}
|
||||
};
|
||||
|
||||
export const pcgetname: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().rid;
|
||||
const profile = await DB.FindOne<profile>(refid, { collection: "profile" });
|
||||
send.object(
|
||||
K.ATTR({
|
||||
idstr: profile.iidxidstr,
|
||||
name: profile.name,
|
||||
pid: String(profile.pid),
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
export const pctakeover: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().rid;
|
||||
const profile = await DB.FindOne<profile>(refid, { collection: "profile" });
|
||||
const version = GetVersion(info);
|
||||
let pc_data: object;
|
||||
|
||||
if (version == 27) {
|
||||
pc_data = IIDX27_pc_data;
|
||||
}
|
||||
|
||||
await DB.Upsert<profile>(
|
||||
refid,
|
||||
{
|
||||
collection: "profile",
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
name: $(data).attr().name,
|
||||
pid: parseInt($(data).attr().pid),
|
||||
iidxid: profile.iidxid,
|
||||
iidxidstr: profile.iidxidstr,
|
||||
refid: refid,
|
||||
},
|
||||
}
|
||||
);
|
||||
await DB.Upsert<pc_data>(
|
||||
refid,
|
||||
{
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: pc_data,
|
||||
}
|
||||
);
|
||||
send.object(
|
||||
K.ATTR({
|
||||
id: String(profile.iidxid),
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
export const pcreg: EPR = async (info, data, send) => {
|
||||
const id = _.random(10000000, 99999999);
|
||||
const id_str = IDToCode(id);
|
||||
const refid = $(data).attr().cid.split('|')[0];
|
||||
const version = GetVersion(info);
|
||||
let pc_data: object;
|
||||
|
||||
if (version == 27) {
|
||||
pc_data = IIDX27_pc_data;
|
||||
}
|
||||
|
||||
await DB.Upsert<profile>(
|
||||
refid,
|
||||
{
|
||||
collection: "profile",
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
name: $(data).attr().name,
|
||||
pid: parseInt($(data).attr().pid),
|
||||
iidxid: id,
|
||||
iidxidstr: id_str,
|
||||
refid: refid,
|
||||
},
|
||||
}
|
||||
);
|
||||
await DB.Upsert<pc_data>(
|
||||
refid,
|
||||
{
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: pc_data,
|
||||
}
|
||||
);
|
||||
|
||||
send.object(
|
||||
K.ATTR({
|
||||
id: id,
|
||||
id_str: id_str,
|
||||
// status: "0",
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
export const pcget: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().rid;
|
||||
const version = GetVersion(info);
|
||||
const pc_data = await DB.FindOne<pc_data>(refid, {
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
});
|
||||
if (_.isNil(pc_data)) {
|
||||
send.deny();
|
||||
} else {
|
||||
const profile = await DB.FindOne<profile>(refid, { collection: "profile" });
|
||||
const shop_data = await DB.FindOne<shop_data>({
|
||||
collection: "shop_data",
|
||||
});
|
||||
const dArray = (
|
||||
await DB.Find<grade>(refid, {
|
||||
collection: "grade",
|
||||
version: version,
|
||||
})
|
||||
).map((r) => r.dArray);
|
||||
dArray.sort((a, b) => a[0] - b[0] || a[1] - b[1]);
|
||||
const settings: settings = {
|
||||
frame: frame_list.indexOf(U.GetConfig("frame")),
|
||||
menu_music: menumusic_list.indexOf(U.GetConfig("menu_music")),
|
||||
note_burst: noteburst_list.indexOf(U.GetConfig("note_burst")),
|
||||
turntable: turntable_list.indexOf(U.GetConfig("turntable")),
|
||||
lane_cover: lanecover_list.indexOf(U.GetConfig("lane_cover")),
|
||||
pacemaker_cover: lanecover_list.indexOf(U.GetConfig("pacemaker_cover")),
|
||||
note_skin: notes_list.indexOf(U.GetConfig("note_skin")),
|
||||
judge_font: judge_list.indexOf(U.GetConfig("judge_font")),
|
||||
note_beam: keybeam_list.indexOf(U.GetConfig("note_beam")),
|
||||
full_combo_splash: fullcombo_list.indexOf(
|
||||
U.GetConfig("full_combo_splash")
|
||||
),
|
||||
score_folders: Boolean(U.GetConfig("score_folders")),
|
||||
clear_folders: Boolean(U.GetConfig("clear_folders")),
|
||||
difficulty_folders: Boolean(U.GetConfig("difficulty_folders")),
|
||||
alphabet_folders: Boolean(U.GetConfig("alphabet_folders")),
|
||||
hide_playcount: Boolean(U.GetConfig("hide_playcount")),
|
||||
disable_graphcutin: Boolean(U.GetConfig("disable_graphcutin")),
|
||||
classic_hispeed: Boolean(U.GetConfig("classic_hispeed")),
|
||||
hide_iidxid: Boolean(U.GetConfig("hide_iidxid")),
|
||||
disable_musicpreview: Number(U.GetConfig("disable_musicpreview")),
|
||||
vefx_lock: Number(U.GetConfig("vefx_lock")),
|
||||
effect: effect_list.indexOf(U.GetConfig("effect")),
|
||||
bomb_size: bombsize_list.indexOf(U.GetConfig("bomb_size")),
|
||||
disable_hcn_color: Number(U.GetConfig("disable_hcn_color")),
|
||||
first_note_preview: first_note_preview_list.indexOf(
|
||||
U.GetConfig("first_note_preview")
|
||||
),
|
||||
qpro_head: U.GetConfig("qpro_head"),
|
||||
qpro_hair: U.GetConfig("qpro_hair"),
|
||||
qpro_hand: U.GetConfig("qpro_hand"),
|
||||
qpro_face: U.GetConfig("qpro_face"),
|
||||
qpro_body: U.GetConfig("qpro_body"),
|
||||
};
|
||||
|
||||
const appendsetting = AppendSettingConverter(
|
||||
settings.score_folders,
|
||||
settings.clear_folders,
|
||||
settings.difficulty_folders,
|
||||
settings.alphabet_folders,
|
||||
settings.hide_playcount,
|
||||
settings.disable_graphcutin,
|
||||
settings.classic_hispeed,
|
||||
settings.hide_iidxid
|
||||
);
|
||||
|
||||
if (version == 27) {
|
||||
send.pugFile("pug/27get.pug", {
|
||||
settings,
|
||||
profile,
|
||||
appendsetting,
|
||||
pc_data,
|
||||
shop_data,
|
||||
dArray,
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
export const pcsave: EPR = async (info, data, send) => {
|
||||
const refid = $(data).attr().cid.split('|')[0];
|
||||
const cltype = parseInt($(data).attr().cltype);
|
||||
const version = GetVersion(info);
|
||||
const pc_data = await DB.FindOne<pc_data>(refid, {
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
});
|
||||
let spnum = pc_data.spnum,
|
||||
dpnum = pc_data.dpnum,
|
||||
sprank = pc_data.sprank,
|
||||
sppoint = pc_data.sppoint,
|
||||
dprank = pc_data.dprank,
|
||||
dppoint = pc_data.dppoint,
|
||||
spradar = pc_data.spradar,
|
||||
dpradar = pc_data.dpradar,
|
||||
dp_clear_mission_clear = pc_data.dp_clear_mission_clear,
|
||||
dp_clear_mission_level = pc_data.dp_clear_mission_level,
|
||||
dp_dj_mission_clear = pc_data.dp_dj_mission_clear,
|
||||
dp_dj_mission_level = pc_data.dp_dj_mission_level,
|
||||
dp_level = pc_data.dp_level,
|
||||
dp_mission_point = pc_data.dp_mission_point,
|
||||
dp_mplay = pc_data.dp_mplay,
|
||||
enemy_damage = pc_data.enemy_damage,
|
||||
progress = pc_data.progress,
|
||||
sp_clear_mission_clear = pc_data.sp_clear_mission_clear,
|
||||
sp_clear_mission_level = pc_data.sp_clear_mission_level,
|
||||
sp_dj_mission_clear = pc_data.sp_dj_mission_clear,
|
||||
sp_dj_mission_level = pc_data.sp_dj_mission_level,
|
||||
sp_level = pc_data.sp_level,
|
||||
sp_mission_point = pc_data.sp_mission_point,
|
||||
sp_mplay = pc_data.sp_mplay,
|
||||
tips_read_list = pc_data.tips_read_list;
|
||||
|
||||
let d_liflen = 0,
|
||||
s_liflen = 0,
|
||||
ngrade = 0;
|
||||
if (cltype == 0) {
|
||||
spnum = pc_data.spnum + 1;
|
||||
dpnum = pc_data.dpnum;
|
||||
}
|
||||
if (cltype == 1) {
|
||||
spnum = pc_data.spnum + 1;
|
||||
//dpnumって何
|
||||
dpnum = pc_data.dpnum + 1;
|
||||
}
|
||||
//liflenが存在したとき
|
||||
if ($(data).attr().d_lift) {
|
||||
d_liflen = parseInt($(data).attr().d_lift);
|
||||
}
|
||||
if ($(data).attr().s_lift) {
|
||||
s_liflen = parseInt($(data).attr().s_lift);
|
||||
}
|
||||
|
||||
if (!_.isNil($(data).attr("step").dp_clear_mission_clear)) {
|
||||
dp_clear_mission_clear = parseInt(
|
||||
$(data).attr("step").dp_clear_mission_clear
|
||||
);
|
||||
dp_clear_mission_level = parseInt(
|
||||
$(data).attr("step").dp_clear_mission_level
|
||||
);
|
||||
dp_dj_mission_clear = parseInt($(data).attr("step").dp_dj_mission_clear);
|
||||
dp_dj_mission_level = parseInt($(data).attr("step").dp_dj_mission_level);
|
||||
dp_level = parseInt($(data).attr("step").dp_level);
|
||||
dp_mission_point = parseInt($(data).attr("step").dp_mission_point);
|
||||
dp_mplay = parseInt($(data).attr("step").dp_mplay);
|
||||
enemy_damage = parseInt($(data).attr("step").enemy_damage);
|
||||
progress = parseInt($(data).attr("step").progress);
|
||||
sp_clear_mission_clear = parseInt(
|
||||
$(data).attr("step").sp_clear_mission_clear
|
||||
);
|
||||
sp_clear_mission_level = parseInt(
|
||||
$(data).attr("step").sp_clear_mission_level
|
||||
);
|
||||
sp_dj_mission_clear = parseInt($(data).attr("step").sp_dj_mission_clear);
|
||||
sp_dj_mission_level = parseInt($(data).attr("step").sp_dj_mission_level);
|
||||
sp_level = parseInt($(data).attr("step").sp_level);
|
||||
sp_mission_point = parseInt($(data).attr("step").sp_mission_point);
|
||||
sp_mplay = parseInt($(data).attr("step").sp_mplay);
|
||||
tips_read_list = parseInt($(data).attr("step").tips_read_list);
|
||||
}
|
||||
|
||||
if ($(data).attr("dj_rank.1").style == "1") {
|
||||
sprank = $(data).element("dj_rank").numbers("rank");
|
||||
sppoint = $(data).element("dj_rank").numbers("point");
|
||||
dprank = $(data).element("dj_rank.1").numbers("rank");
|
||||
dppoint = $(data).element("dj_rank.1").numbers("point");
|
||||
} else if ($(data).attr("dj_rank").style == "0") {
|
||||
sprank = $(data).element("dj_rank").numbers("rank");
|
||||
sppoint = $(data).element("dj_rank").numbers("point");
|
||||
dprank = pc_data.dprank;
|
||||
dppoint = pc_data.dppoint;
|
||||
} else if ($(data).attr("dj_rank").style == "1") {
|
||||
sprank = pc_data.sprank;
|
||||
sppoint = pc_data.sppoint;
|
||||
dprank = $(data).element("dj_rank").numbers("rank");
|
||||
dppoint = $(data).element("dj_rank").numbers("point");
|
||||
} else {
|
||||
sprank = pc_data.sprank;
|
||||
sppoint = pc_data.sppoint;
|
||||
dprank = pc_data.dprank;
|
||||
dppoint = pc_data.dppoint;
|
||||
}
|
||||
|
||||
if ($(data).attr("notes_radar.1").style == "1") {
|
||||
spradar = $(data).element("notes_radar").numbers("radar_score");
|
||||
dpradar = $(data).element("notes_radar.1").numbers("radar_score");
|
||||
} else if ($(data).attr("notes_radar").style == "0") {
|
||||
spradar = $(data).element("notes_radar").numbers("radar_score");
|
||||
dpradar = pc_data.dpradar;
|
||||
} else if ($(data).attr("notes_radar").style == "1") {
|
||||
spradar = pc_data.spradar;
|
||||
dpradar = $(data).element("notes_radar").numbers("radar_score");
|
||||
} else {
|
||||
spradar = pc_data.spradar;
|
||||
dpradar = pc_data.dpradar;
|
||||
}
|
||||
if (version == 27) {
|
||||
await DB.Upsert<pc_data>(
|
||||
refid,
|
||||
{
|
||||
collection: "pc_data",
|
||||
version: version,
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
deller:
|
||||
pc_data.deller + parseInt($(data).element("deller").attr().deller),
|
||||
|
||||
trophy: $(data)
|
||||
.element("achievements")
|
||||
.bigints("trophy")
|
||||
.slice(0, 10)
|
||||
.map(String),
|
||||
|
||||
sprank: sprank,
|
||||
sppoint: sppoint,
|
||||
dprank: dprank,
|
||||
dppoint: dppoint,
|
||||
|
||||
spradar: spradar,
|
||||
dpradar: dpradar,
|
||||
|
||||
dp_clear_mission_clear: dp_clear_mission_clear,
|
||||
dp_clear_mission_level: dp_clear_mission_level,
|
||||
dp_dj_mission_clear: dp_dj_mission_clear,
|
||||
dp_dj_mission_level: dp_dj_mission_level,
|
||||
dp_level: dp_level,
|
||||
dp_mission_point: dp_mission_point,
|
||||
dp_mplay: dp_mplay,
|
||||
enemy_damage: enemy_damage,
|
||||
progress: progress,
|
||||
sp_clear_mission_clear: sp_clear_mission_clear,
|
||||
sp_clear_mission_level: sp_clear_mission_level,
|
||||
sp_dj_mission_clear: sp_dj_mission_clear,
|
||||
sp_dj_mission_level: sp_dj_mission_level,
|
||||
sp_level: sp_level,
|
||||
sp_mission_point: sp_mission_point,
|
||||
sp_mplay: sp_mplay,
|
||||
tips_read_list: tips_read_list,
|
||||
|
||||
dpnum: dpnum,
|
||||
d_auto_scrach: parseInt($(data).attr().d_auto_scrach),
|
||||
d_camera_layout: parseInt($(data).attr().d_camera_layout),
|
||||
d_disp_judge: parseInt($(data).attr().d_disp_judge),
|
||||
d_gauge_disp: parseInt($(data).attr().d_gauge_disp),
|
||||
d_ghost_score: parseInt($(data).attr().d_ghost_score),
|
||||
d_gno: parseInt($(data).attr().d_gno),
|
||||
d_graph_score: parseInt($(data).attr().d_graph_score),
|
||||
d_gtype: parseInt($(data).attr().d_gtype),
|
||||
d_hispeed: parseFloat($(data).attr().d_hispeed),
|
||||
d_judge: parseInt($(data).attr().d_judge),
|
||||
d_judgeAdj: parseInt($(data).attr().d_judgeAdj),
|
||||
d_lane_brignt: parseInt($(data).attr().d_lane_brignt),
|
||||
d_liflen: d_liflen,
|
||||
d_notes: parseFloat($(data).attr().d_notes),
|
||||
d_opstyle: parseInt($(data).attr().d_opstyle),
|
||||
d_pace: parseInt($(data).attr().d_pace),
|
||||
d_sdlen: parseInt($(data).attr().d_sdlen),
|
||||
d_sdtype: parseInt($(data).attr().d_sdtype),
|
||||
d_sorttype: parseInt($(data).attr().d_sorttype),
|
||||
d_timing: parseInt($(data).attr().d_timing),
|
||||
d_tsujigiri_disp: parseInt($(data).attr().d_tsujigiri_disp),
|
||||
dach: parseInt($(data).attr().d_achi),
|
||||
dp_opt: $(data).attr().dp_opt,
|
||||
dp_opt2: $(data).attr().dp_opt2,
|
||||
d_sub_gno: parseInt($(data).attr().d_sub_gno),
|
||||
|
||||
gpos: parseInt($(data).attr().gpos),
|
||||
mode: parseInt($(data).attr().mode),
|
||||
pmode: parseInt($(data).attr().pmode),
|
||||
rtype: parseInt($(data).attr().rtype),
|
||||
|
||||
spnum: spnum,
|
||||
s_auto_scrach: parseInt($(data).attr().s_auto_scrach),
|
||||
s_camera_layout: parseInt($(data).attr().s_camera_layout),
|
||||
s_disp_judge: parseInt($(data).attr().s_disp_judge),
|
||||
s_gauge_disp: parseInt($(data).attr().s_gauge_disp),
|
||||
s_ghost_score: parseInt($(data).attr().s_ghost_score),
|
||||
s_gno: parseInt($(data).attr().s_gno),
|
||||
s_graph_score: parseInt($(data).attr().s_graph_score),
|
||||
s_gtype: parseInt($(data).attr().s_gtype),
|
||||
s_hispeed: parseFloat($(data).attr().s_hispeed),
|
||||
s_judge: parseInt($(data).attr().s_judge),
|
||||
s_judgeAdj: parseInt($(data).attr().s_judgeAdj),
|
||||
s_lane_brignt: parseInt($(data).attr().s_lane_brignt),
|
||||
s_liflen: s_liflen,
|
||||
s_notes: parseFloat($(data).attr().s_notes),
|
||||
s_opstyle: parseInt($(data).attr().s_opstyle),
|
||||
s_pace: parseInt($(data).attr().s_pace),
|
||||
s_sdlen: parseInt($(data).attr().s_sdlen),
|
||||
s_sdtype: parseInt($(data).attr().s_sdtype),
|
||||
s_sorttype: parseInt($(data).attr().s_sorttype),
|
||||
s_timing: parseInt($(data).attr().s_timing),
|
||||
s_tsujigiri_disp: parseInt($(data).attr().s_tsujigiri_disp),
|
||||
sach: parseInt($(data).attr().s_achi),
|
||||
sp_opt: $(data).attr().sp_opt,
|
||||
s_sub_gno: parseInt($(data).attr().s_sub_gno),
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
send.success();
|
||||
};
|
77
handlers/IIDXshop.ts
Normal file
77
handlers/IIDXshop.ts
Normal file
@ -0,0 +1,77 @@
|
||||
import { shop_data } from "../models/shop_data";
|
||||
export const shopgetname: EPR = async (info, data, send) => {
|
||||
// バージョン
|
||||
console.debug(`Version:${info.module.substr(0, 6)}`);
|
||||
const shop_data = await DB.FindOne<shop_data>({
|
||||
collection: "shop_data",
|
||||
});
|
||||
const shop_data_old = await DB.FindOne<shop_data>(null, {
|
||||
collection: "shop_data",
|
||||
});
|
||||
if(shop_data_old){
|
||||
await DB.Remove<shop_data>(null, {
|
||||
collection: "shop_data",
|
||||
});
|
||||
}
|
||||
if (_.isNil(shop_data)) {
|
||||
await DB.Insert<shop_data>({
|
||||
collection: "shop_data",
|
||||
|
||||
shop_name: "Asphyxia",
|
||||
});
|
||||
send.object(
|
||||
K.ATTR({
|
||||
cls_opt: "0",
|
||||
hr: "0",
|
||||
mi: "0",
|
||||
opname: "Asphyxia",
|
||||
pid: "57",
|
||||
// status: "0",
|
||||
})
|
||||
);
|
||||
} else {
|
||||
send.object(
|
||||
K.ATTR({
|
||||
cls_opt: "0",
|
||||
hr: "0",
|
||||
mi: "0",
|
||||
opname: shop_data.shop_name,
|
||||
pid: "57",
|
||||
// status: "0",
|
||||
})
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
export const shopgetconvention: EPR = async (info, data, send) => {
|
||||
send.object(
|
||||
K.ATTR(
|
||||
{
|
||||
end_time: "0",
|
||||
music_0: "23051",
|
||||
music_1: "24010",
|
||||
music_2: "12004",
|
||||
music_3: "26007",
|
||||
start_time: "0",
|
||||
// status: "0",
|
||||
},
|
||||
{
|
||||
valid: K.ITEM("bool", 0),
|
||||
}
|
||||
)
|
||||
);
|
||||
};
|
||||
|
||||
export const shopsavename: EPR = async (info, data, send) => {
|
||||
await DB.Upsert<shop_data>(
|
||||
{
|
||||
collection: "shop_data",
|
||||
},
|
||||
{
|
||||
$set: {
|
||||
shop_name: $(data).attr().opname,
|
||||
},
|
||||
}
|
||||
);
|
||||
send.success();
|
||||
};
|
199
index.ts
Normal file
199
index.ts
Normal file
@ -0,0 +1,199 @@
|
||||
import {
|
||||
shopgetname,
|
||||
shopgetconvention,
|
||||
shopsavename,
|
||||
} from "./handlers/IIDXshop";
|
||||
import {
|
||||
pccommon,
|
||||
pcoldget,
|
||||
pcreg,
|
||||
pcget,
|
||||
pcsave,
|
||||
pctakeover,
|
||||
pcgetname,
|
||||
} from "./handlers/IIDXpc";
|
||||
import {
|
||||
effect_list,
|
||||
frame_list,
|
||||
fullcombo_list,
|
||||
judge_list,
|
||||
keybeam_list,
|
||||
lanecover_list,
|
||||
menumusic_list,
|
||||
noteburst_list,
|
||||
notes_list,
|
||||
turntable_list,
|
||||
} from "./data/27customlist";
|
||||
import {
|
||||
musicreg,
|
||||
musicgetrank,
|
||||
musicappoint,
|
||||
musiccrate,
|
||||
} from "./handlers/IIDXmusic";
|
||||
import { graderaised } from "./handlers/IIDXgrade";
|
||||
import { bombsize_list, first_note_preview_list } from "./data/27customlist";
|
||||
import { ShopRanking_list } from "./data/settingslist";
|
||||
|
||||
export function register() {
|
||||
R.Contributor("sol#1207", "https://twitter.com/0x1F5");
|
||||
|
||||
R.Config("ShopRanking", {
|
||||
type: "string",
|
||||
default: "PersonalBest",
|
||||
options: ShopRanking_list,
|
||||
});
|
||||
R.Config("frame", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: frame_list,
|
||||
});
|
||||
R.Config("menu_music", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: menumusic_list,
|
||||
});
|
||||
R.Config("note_burst", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: noteburst_list,
|
||||
});
|
||||
|
||||
R.Config("turntable", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: turntable_list,
|
||||
});
|
||||
|
||||
R.Config("lane_cover", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: lanecover_list,
|
||||
});
|
||||
R.Config("pacemaker_cover", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: lanecover_list,
|
||||
});
|
||||
R.Config("note_skin", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: notes_list,
|
||||
});
|
||||
R.Config("judge_font", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: judge_list,
|
||||
});
|
||||
R.Config("note_beam", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: keybeam_list,
|
||||
});
|
||||
R.Config("full_combo_splash", {
|
||||
type: "string",
|
||||
default: "デフォルト",
|
||||
options: fullcombo_list,
|
||||
});
|
||||
R.Config("score_folders", { type: "boolean", default: true });
|
||||
R.Config("clear_folders", { type: "boolean", default: true });
|
||||
R.Config("difficulty_folders", { type: "boolean", default: true });
|
||||
R.Config("alphabet_folders", { type: "boolean", default: true });
|
||||
R.Config("hide_playcount", { type: "boolean", default: false });
|
||||
R.Config("disable_graphcutin", { type: "boolean", default: false });
|
||||
R.Config("classic_hispeed", { type: "boolean", default: false });
|
||||
R.Config("hide_iidxid", { type: "boolean", default: false });
|
||||
R.Config("disable_musicpreview", { type: "boolean", default: false });
|
||||
R.Config("vefx_lock", { type: "boolean", default: false });
|
||||
R.Config("effect", {
|
||||
type: "string",
|
||||
default: "OFF",
|
||||
options: effect_list,
|
||||
});
|
||||
R.Config("bomb_size", {
|
||||
type: "string",
|
||||
default: "100%",
|
||||
options: bombsize_list,
|
||||
});
|
||||
R.Config("disable_hcn_color", { type: "boolean", default: false });
|
||||
R.Config("first_note_preview", {
|
||||
type: "string",
|
||||
default: "default",
|
||||
options: first_note_preview_list,
|
||||
});
|
||||
|
||||
R.Config("qpro_head", { type: "integer", default: 0 });
|
||||
R.Config("qpro_hair", { type: "integer", default: 0 });
|
||||
R.Config("qpro_hand", { type: "integer", default: 0 });
|
||||
R.Config("qpro_face", { type: "integer", default: 0 });
|
||||
R.Config("qpro_body", { type: "integer", default: 0 });
|
||||
|
||||
R.GameCode("LDJ");
|
||||
const MultiRoute = (method: string, handler: EPR | boolean) => {
|
||||
// Helper for register multiple versions.
|
||||
R.Route(`IIDX27${method}`, handler);
|
||||
//R.Route(`IIDXのバージョン${method}`, handler);
|
||||
};
|
||||
|
||||
//pc
|
||||
MultiRoute("pc.get", pcget);
|
||||
MultiRoute("pc.reg", pcreg);
|
||||
//MultiRoute("pc.lcommon", true);
|
||||
MultiRoute("pc.save", pcsave);
|
||||
MultiRoute("pc.getname", pcgetname);
|
||||
//MultiRoute("pc.locaend", true);
|
||||
MultiRoute("pc.common", pccommon);
|
||||
MultiRoute("pc.takeover", pctakeover);
|
||||
//MultiRoute("pc.playstart", true);
|
||||
//MultiRoute("pc.playend", true);
|
||||
MultiRoute("pc.delete", true);
|
||||
//MultiRoute("pc.visit", true);
|
||||
//MultiRoute("pc.shopregister", true);
|
||||
MultiRoute("pc.oldget", pcoldget);
|
||||
MultiRoute("pc.eaappliresult", true);
|
||||
MultiRoute("pc.eaappliexpert", true);
|
||||
MultiRoute("pc.logout", true);
|
||||
//MultiRoute("pc.qrreward", true);
|
||||
//MultiRoute("pc.qrcompe", true);
|
||||
//MultiRoute("pc.qrfollow", true);
|
||||
|
||||
//music
|
||||
MultiRoute("music.getrank", musicgetrank);
|
||||
//MultiRoute("music.lplay", true);
|
||||
//MultiRoute("music.play", true);
|
||||
MultiRoute("music.reg", musicreg);
|
||||
MultiRoute("music.crate", musiccrate);
|
||||
MultiRoute("music.appoint", musicappoint);
|
||||
//MultiRoute("music.nosave", true);
|
||||
//MultiRoute("music.arenaCPU", true);
|
||||
|
||||
//grade
|
||||
MultiRoute("grade.raised", graderaised);
|
||||
|
||||
//shop
|
||||
MultiRoute("shop.sentinfo", true);
|
||||
//MultiRoute("shop.keepalive", true);
|
||||
MultiRoute("shop.savename", shopsavename);
|
||||
MultiRoute("shop.getname", shopgetname);
|
||||
//MultiRoute("shop.setconvention", true);
|
||||
MultiRoute("shop.getconvention", shopgetconvention);
|
||||
//MultiRoute("shop.sendpcbdetail", true);
|
||||
MultiRoute("shop.sendescapepackageinfo", true);
|
||||
//MultiRoute("shop.recoveryfilelog", true);
|
||||
|
||||
//ranking
|
||||
//MultiRoute("ranking.entry", true);
|
||||
//MultiRoute("ranking.oentry", true);
|
||||
MultiRoute("ranking.getranker", true);
|
||||
//MultiRoute("ranking.classicentry", true);
|
||||
//MultiRoute("ranking.conventionentry", true);
|
||||
|
||||
//lobby
|
||||
//MultiRoute("lobby.entry", true);
|
||||
//MultiRoute("lobby.update", true);
|
||||
//MultiRoute("lobby.delete", true);
|
||||
|
||||
//gameSystem
|
||||
MultiRoute("gameSystem.systemInfo", true);
|
||||
|
||||
R.Unhandled();
|
||||
}
|
8
models/grade.ts
Normal file
8
models/grade.ts
Normal file
@ -0,0 +1,8 @@
|
||||
export interface grade {
|
||||
collection: "grade";
|
||||
|
||||
version: number;
|
||||
style: number,
|
||||
grade: number,
|
||||
dArray: number[];
|
||||
}
|
194
models/pc_data.ts
Normal file
194
models/pc_data.ts
Normal file
@ -0,0 +1,194 @@
|
||||
export interface pc_data {
|
||||
collection: "pc_data";
|
||||
|
||||
version: number;
|
||||
|
||||
sgid: number;
|
||||
dgid: number;
|
||||
|
||||
deller: number;
|
||||
trophy: string[];
|
||||
|
||||
sprank: number[];
|
||||
sppoint: number[];
|
||||
dprank: number[];
|
||||
dppoint: number[];
|
||||
|
||||
spradar: number[];
|
||||
dpradar: number[];
|
||||
|
||||
dp_clear_mission_clear: number;
|
||||
dp_clear_mission_level: number;
|
||||
dp_dj_mission_clear: number;
|
||||
dp_dj_mission_level: number;
|
||||
dp_level: number;
|
||||
dp_mission_point: number;
|
||||
dp_mplay: number;
|
||||
enemy_damage: number;
|
||||
progress: number;
|
||||
sp_clear_mission_clear: number;
|
||||
sp_clear_mission_level: number;
|
||||
sp_dj_mission_clear: number;
|
||||
sp_dj_mission_level: number;
|
||||
sp_level: number;
|
||||
sp_mission_point: number;
|
||||
sp_mplay: number;
|
||||
tips_read_list: number;
|
||||
|
||||
dpnum: number;
|
||||
d_auto_scrach: number;
|
||||
d_camera_layout: number;
|
||||
d_disp_judge: number;
|
||||
d_gauge_disp: number;
|
||||
d_ghost_score: number;
|
||||
d_gno: number;
|
||||
d_graph_score: number;
|
||||
d_gtype: number;
|
||||
d_hispeed: number;
|
||||
d_judge: number;
|
||||
d_judgeAdj: number;
|
||||
d_lane_brignt: number;
|
||||
d_liflen: number;
|
||||
d_notes: number;
|
||||
d_opstyle: number;
|
||||
d_pace: number;
|
||||
d_sdlen: number;
|
||||
d_sdtype: number;
|
||||
d_sorttype: number;
|
||||
d_timing: number;
|
||||
d_tsujigiri_disp: number;
|
||||
dach: number;
|
||||
dp_opt: string;
|
||||
dp_opt2: string;
|
||||
d_exscore: number;
|
||||
d_sub_gno: number;
|
||||
d_tune: number;
|
||||
|
||||
gpos: number;
|
||||
mode: number;
|
||||
pmode: number;
|
||||
rtype: number;
|
||||
ngrade: number;
|
||||
|
||||
spnum: number;
|
||||
s_auto_scrach: number;
|
||||
s_camera_layout: number;
|
||||
s_disp_judge: number;
|
||||
s_gauge_disp: number;
|
||||
s_ghost_score: number;
|
||||
s_gno: number;
|
||||
s_graph_score: number;
|
||||
s_gtype: number;
|
||||
s_hispeed: number;
|
||||
s_judge: number;
|
||||
s_judgeAdj: number;
|
||||
s_lane_brignt: number;
|
||||
s_liflen: number;
|
||||
s_notes: number;
|
||||
s_opstyle: number;
|
||||
s_pace: number;
|
||||
s_sdlen: number;
|
||||
s_sdtype: number;
|
||||
s_sorttype: number;
|
||||
s_timing: number;
|
||||
s_tsujigiri_disp: number;
|
||||
sach: number;
|
||||
sp_opt: string;
|
||||
s_exscore: number;
|
||||
s_sub_gno: number;
|
||||
s_tune: number;
|
||||
}
|
||||
|
||||
export const IIDX27_pc_data = {
|
||||
version: 27,
|
||||
|
||||
deller: 0,
|
||||
sgid: -1,
|
||||
dgid: -1,
|
||||
trophy: ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0"],
|
||||
sprank: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
sppoint: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
dprank: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
dppoint: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
|
||||
spradar: [0, 0, 0, 0, 0, 0],
|
||||
dpradar: [0, 0, 0, 0, 0, 0],
|
||||
|
||||
dp_clear_mission_clear: 0,
|
||||
dp_clear_mission_level: 0,
|
||||
dp_dj_mission_clear: 0,
|
||||
dp_dj_mission_level: 0,
|
||||
dp_level: 0,
|
||||
dp_mission_point: 0,
|
||||
dp_mplay: 0,
|
||||
enemy_damage: 0,
|
||||
progress: 0,
|
||||
sp_clear_mission_clear: 0,
|
||||
sp_clear_mission_level: 0,
|
||||
sp_dj_mission_clear: 0,
|
||||
sp_dj_mission_level: 0,
|
||||
sp_level: 0,
|
||||
sp_mission_point: 0,
|
||||
sp_mplay: 0,
|
||||
tips_read_list: 0,
|
||||
|
||||
dpnum: 0,
|
||||
d_auto_scrach: 0,
|
||||
d_camera_layout: 0,
|
||||
d_disp_judge: 0,
|
||||
d_gauge_disp: 0,
|
||||
d_ghost_score: 0,
|
||||
d_gno: 0,
|
||||
d_graph_score: 0,
|
||||
d_gtype: 0,
|
||||
d_hispeed: 0,
|
||||
d_judge: 0,
|
||||
d_judgeAdj: 0,
|
||||
d_lane_brignt: 0,
|
||||
d_liflen: 0,
|
||||
d_notes: 0,
|
||||
d_opstyle: 0,
|
||||
d_pace: 0,
|
||||
d_sdlen: 0,
|
||||
d_sdtype: 0,
|
||||
d_sorttype: 0,
|
||||
d_timing: 0,
|
||||
d_tsujigiri_disp: 0,
|
||||
dach: 0,
|
||||
dp_opt: "0",
|
||||
dp_opt2: "0",
|
||||
d_sub_gno: 0,
|
||||
d_tune: 0,
|
||||
|
||||
gpos: 0,
|
||||
mode: 0,
|
||||
pmode: 0,
|
||||
rtype: 0,
|
||||
|
||||
spnum: 0,
|
||||
s_auto_scrach: 0,
|
||||
s_camera_layout: 0,
|
||||
s_disp_judge: 0,
|
||||
s_gauge_disp: 0,
|
||||
s_ghost_score: 0,
|
||||
s_gno: 0,
|
||||
s_graph_score: 0,
|
||||
s_gtype: 0,
|
||||
s_hispeed: 0,
|
||||
s_judge: 0,
|
||||
s_judgeAdj: 0,
|
||||
s_lane_brignt: 0,
|
||||
s_liflen: 0,
|
||||
s_notes: 0,
|
||||
s_opstyle: 0,
|
||||
s_pace: 0,
|
||||
s_sdlen: 0,
|
||||
s_sdtype: 0,
|
||||
s_sorttype: 0,
|
||||
s_timing: 0,
|
||||
s_tsujigiri_disp: 0,
|
||||
sach: 0,
|
||||
sp_opt: "0",
|
||||
s_sub_gno: 0,
|
||||
s_tune: 0,
|
||||
};
|
9
models/profile.ts
Normal file
9
models/profile.ts
Normal file
@ -0,0 +1,9 @@
|
||||
export interface profile {
|
||||
collection: "profile";
|
||||
|
||||
name: string;
|
||||
pid: number;
|
||||
iidxid: number;
|
||||
iidxidstr: string;
|
||||
refid: string;
|
||||
}
|
21
models/score.ts
Normal file
21
models/score.ts
Normal file
@ -0,0 +1,21 @@
|
||||
export interface score {
|
||||
collection: "score";
|
||||
|
||||
music_id: number;
|
||||
|
||||
spmArray: number[];
|
||||
dpmArray: number[];
|
||||
}
|
||||
|
||||
export interface score_detail {
|
||||
collection: "score_detail";
|
||||
|
||||
music_id: number;
|
||||
clid: number;
|
||||
|
||||
score: number;
|
||||
clflg: number;
|
||||
miss: number;
|
||||
|
||||
time: number;
|
||||
}
|
32
models/settings.ts
Normal file
32
models/settings.ts
Normal file
@ -0,0 +1,32 @@
|
||||
export interface settings {
|
||||
frame: number;
|
||||
menu_music: number;
|
||||
note_burst: number;
|
||||
turntable: number;
|
||||
lane_cover: number;
|
||||
pacemaker_cover: number;
|
||||
note_skin: number;
|
||||
judge_font: number;
|
||||
note_beam: number;
|
||||
full_combo_splash: number;
|
||||
score_folders: boolean;
|
||||
clear_folders: boolean;
|
||||
difficulty_folders: boolean;
|
||||
alphabet_folders: boolean;
|
||||
hide_playcount: boolean;
|
||||
disable_graphcutin: boolean;
|
||||
classic_hispeed: boolean;
|
||||
hide_iidxid: boolean;
|
||||
disable_musicpreview: number;
|
||||
vefx_lock: number;
|
||||
effect: number;
|
||||
bomb_size: number;
|
||||
disable_hcn_color: number;
|
||||
first_note_preview: number;
|
||||
|
||||
qpro_head: number;
|
||||
qpro_hair: number;
|
||||
qpro_hand: number;
|
||||
qpro_face: number;
|
||||
qpro_body: number;
|
||||
}
|
5
models/shop_data.ts
Normal file
5
models/shop_data.ts
Normal file
@ -0,0 +1,5 @@
|
||||
export interface shop_data {
|
||||
collection: "shop_data";
|
||||
|
||||
shop_name: string;
|
||||
}
|
58
pug/27get.pug
Normal file
58
pug/27get.pug
Normal file
@ -0,0 +1,58 @@
|
||||
IIDX27pc(status="0")
|
||||
pcdata(d_auto_scrach=pc_data.d_auto_scrach d_camera_layout=pc_data.d_camera_layout d_disp_judge=pc_data.d_disp_judge d_gauge_disp=pc_data.d_gauge_disp d_ghost_score=pc_data.d_ghost_score d_gno=pc_data.d_gno d_graph_score=pc_data.d_graph_score d_gtype=pc_data.d_gtype d_hispeed=pc_data.d_hispeed d_judge=pc_data.d_judge d_judgeAdj=pc_data.d_judgeAdj d_lane_brignt=pc_data.d_lane_brignt d_liflen=pc_data.d_liflen d_notes=pc_data.d_notes d_opstyle=pc_data.d_opstyle d_pace=pc_data.d_pace d_sdlen=pc_data.d_sdlen d_sdtype=pc_data.d_sdtype d_sorttype=pc_data.d_sorttype d_sub_gno=pc_data.d_sub_gno d_timing=pc_data.d_timing d_tsujigiri_disp=pc_data.d_tsujigiri_disp d_tune=pc_data.d_tune dach=pc_data.dach dp_opt=pc_data.dp_opt dp_opt2=pc_data.dp_opt2 dpnum=0 gpos=pc_data.gpos id=profile.iidxid idstr=profile.iidxidstr mode=pc_data.mode name=profile.name pid=profile.pid pmode=pc_data.pmode rtype=pc_data.rtype s_auto_scrach=pc_data.s_auto_scrach s_camera_layout=pc_data.s_camera_layout s_disp_judge=pc_data.s_disp_judge s_gauge_disp=pc_data.s_gauge_disp s_ghost_score=pc_data.s_ghost_score s_gno=pc_data.s_gno s_graph_score=pc_data.s_graph_score s_gtype=pc_data.s_gtype s_hispeed=pc_data.s_hispeed s_judge=pc_data.s_judge s_judgeAdj=pc_data.s_judgeAdj s_lane_brignt=pc_data.s_lane_brignt s_liflen=pc_data.s_liflen s_notes=pc_data.s_notes s_opstyle=pc_data.s_opstyle s_pace=pc_data.s_pace s_sdlen=pc_data.s_sdlen s_sdtype=pc_data.s_sdtype s_sorttype=pc_data.s_sorttype s_sub_gno=pc_data.s_sub_gno s_timing=pc_data.s_timing s_tsujigiri_disp=pc_data.s_tsujigiri_disp s_tune=pc_data.s_tune sach=pc_data.sach sp_opt=pc_data.sp_opt spnum=pc_data.spnum)
|
||||
join_shop(join_cflg="1" join_id="ea" join_name=shop_data.shop_name joinflg="1")
|
||||
grade(sgid=pc_data.sgid dgid=pc_data.dgid)
|
||||
- for (let d of dArray)
|
||||
g(__type="u8" __count="4") #{d[0]} #{d[1]} #{d[2]} #{d[3]}
|
||||
deller(deller=pc_data.deller rate="0")
|
||||
rlist
|
||||
ir_data
|
||||
secret_course_data
|
||||
secret
|
||||
flg1(__type="s64" __count="3") 0 0 0
|
||||
flg2(__type="s64" __count="3") 0 0 0
|
||||
flg3(__type="s64" __count="3") 0 0 0
|
||||
flg4(__type="s64" __count="3") 0 0 0
|
||||
achievements(last_weekly="0" pack="0" pack_comp="0" rival_crush="0" visit_flg="0" weekly_num="0")
|
||||
trophy(__type="s64" __count="20") #{pc_data.trophy[0]} #{pc_data.trophy[1]} #{pc_data.trophy[2]} #{pc_data.trophy[3]} #{pc_data.trophy[4]} #{pc_data.trophy[5]} #{pc_data.trophy[6]} #{pc_data.trophy[7]} #{pc_data.trophy[8]} #{pc_data.trophy[9]}
|
||||
expert_point
|
||||
classic_course_data
|
||||
qprodata(__type="u32" __count="5") #{settings.qpro_head} #{settings.qpro_hair} #{settings.qpro_face} #{settings.qpro_hand} #{settings.qpro_body}
|
||||
step(dp_clear_mission_clear=pc_data.dp_clear_mission_clear dp_clear_mission_level=pc_data.dp_clear_mission_level dp_dj_mission_clear=pc_data.dp_dj_mission_clear dp_dj_mission_level=pc_data.dp_dj_mission_level dp_level=pc_data.dp_level dp_mission_point=pc_data.dp_mission_point dp_mplay=pc_data.dp_mplay enemy_damage=pc_data.enemy_damage progress=pc_data.progress sp_clear_mission_clear=pc_data.sp_clear_mission_clear sp_clear_mission_level=pc_data.sp_clear_mission_level sp_dj_mission_clear=pc_data.sp_dj_mission_clear sp_dj_mission_level=pc_data.sp_dj_mission_level sp_level=pc_data.sp_level sp_mission_point=pc_data.sp_mission_point sp_mplay=pc_data.sp_mplay tips_read_list=pc_data.tips_read_list)
|
||||
is_track_ticket(__type="bool") 1
|
||||
dj_rank(style="0")
|
||||
rank(__type="s32" __count="15") #{pc_data.sprank[0]} #{pc_data.sprank[1]} #{pc_data.sprank[2]} #{pc_data.sprank[3]} #{pc_data.sprank[4]} #{pc_data.sprank[5]} #{pc_data.sprank[6]} #{pc_data.sprank[7]} #{pc_data.sprank[8]} #{pc_data.sprank[9]} #{pc_data.sprank[10]} #{pc_data.sprank[11]} #{pc_data.sprank[12]} #{pc_data.sprank[13]} #{pc_data.sprank[14]}
|
||||
point(__type="s32" __count="15") #{pc_data.sppoint[0]} #{pc_data.sppoint[1]} #{pc_data.sppoint[2]} #{pc_data.sppoint[3]} #{pc_data.sppoint[4]} #{pc_data.sppoint[5]} #{pc_data.sppoint[6]} #{pc_data.sppoint[7]} #{pc_data.sppoint[8]} #{pc_data.sppoint[9]} #{pc_data.sppoint[10]} #{pc_data.sppoint[11]} #{pc_data.sppoint[12]} #{pc_data.sppoint[13]} #{pc_data.sppoint[14]}
|
||||
dj_rank(style="1")
|
||||
rank(__type="s32" __count="15") #{pc_data.dprank[0]} #{pc_data.dprank[1]} #{pc_data.dprank[2]} #{pc_data.dprank[3]} #{pc_data.dprank[4]} #{pc_data.dprank[5]} #{pc_data.dprank[6]} #{pc_data.dprank[7]} #{pc_data.dprank[8]} #{pc_data.dprank[9]} #{pc_data.dprank[10]} #{pc_data.dprank[11]} #{pc_data.dprank[12]} #{pc_data.dprank[13]} #{pc_data.dprank[14]}
|
||||
point(__type="s32" __count="15") #{pc_data.dppoint[0]} #{pc_data.dppoint[1]} #{pc_data.dppoint[2]} #{pc_data.dppoint[3]} #{pc_data.dppoint[4]} #{pc_data.dppoint[5]} #{pc_data.dppoint[6]} #{pc_data.dppoint[7]} #{pc_data.dppoint[8]} #{pc_data.dppoint[9]} #{pc_data.dppoint[10]} #{pc_data.dppoint[11]} #{pc_data.dppoint[12]} #{pc_data.dppoint[13]} #{pc_data.dppoint[14]}
|
||||
notes_radar(style="0")
|
||||
radar_score(__type="s32" __count="6") #{pc_data.spradar[0]} #{pc_data.spradar[1]} #{pc_data.spradar[2]} #{pc_data.spradar[3]} #{pc_data.spradar[4]} #{pc_data.spradar[5]}
|
||||
notes_radar(style="1")
|
||||
radar_score(__type="s32" __count="6") #{pc_data.dpradar[0]} #{pc_data.dpradar[1]} #{pc_data.dpradar[2]} #{pc_data.dpradar[3]} #{pc_data.dpradar[4]} #{pc_data.dpradar[5]}
|
||||
arena_data(play_num="0" play_num_dp="1" play_num_sp="1")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="0" rating_value="0")
|
||||
achieve_data(arena_class="19" best_top_class_continuing="0" now_top_class_continuing="0" play_style="1" rating_value="0")
|
||||
cube_data(cube="0" season_id="0")
|
||||
ea_premium_course
|
||||
bind_eaappli
|
||||
leggendaria_open
|
||||
pay_per_use(item_num="99")
|
||||
playlist(encrypt_playlist="0" index="0" play_style="0")
|
||||
spdp_rival(flg="0")
|
||||
enable_qr_reward
|
||||
visitor(anum="0" pnum="0" snum="0" vs_flg="0")
|
||||
konami_stytle(skip_flg="0")
|
||||
arena_penalty
|
||||
defeat(defeat_flg="0")
|
||||
bemani_vote(music_list="-1")
|
||||
floor_infection3(music_list="-1")
|
||||
language_setting(language="-1")
|
||||
leggendaria_semi_open(flg="0")
|
||||
kac_entry_info
|
||||
enable_kac_deller
|
||||
disp_kac_mark
|
||||
is_kac_entry
|
||||
is_kac_evnet_entry
|
||||
kac_secret_music
|
||||
skin(__type="s16" __count="20") #{settings.frame} #{settings.turntable} #{settings.note_burst} #{settings.menu_music} #{appendsetting} #{settings.lane_cover} 0 0 #{settings.note_skin} #{settings.full_combo_splash} #{settings.note_beam} #{settings.judge_font} 0 #{settings.disable_musicpreview} #{settings.pacemaker_cover} #{settings.vefx_lock} #{settings.effect} #{settings.bomb_size} #{settings.disable_hcn_color} #{settings.first_note_preview}
|
42
pug/27pccommon.pug
Normal file
42
pug/27pccommon.pug
Normal file
@ -0,0 +1,42 @@
|
||||
IIDX27pc(status="0")
|
||||
monthly_mranking(__type="u16" __count="1") 65535
|
||||
total_mranking(__type="u16" __count="1") 65535
|
||||
internet_ranking
|
||||
secret_ex_course
|
||||
kac_mid(__type="s32" __count="1") 65535
|
||||
kac_clid(__type="s32" __count="1") 0
|
||||
ir(beat="3")
|
||||
cm(compo="cm_ultimate" folder="cm_ultimate" id="0")
|
||||
tdj_cm
|
||||
cm(filename="cm_bn_001" id="0")
|
||||
cm(filename="cm_bn_002" id="1")
|
||||
cm(filename="event_bn_001" id="2")
|
||||
cm(filename="event_bn_004" id="3")
|
||||
cm(filename="event_bn_006" id="4")
|
||||
cm(filename="fipb_001" id="5")
|
||||
cm(filename="year_bn_004" id="6")
|
||||
cm(filename="year_bn_005" id="7")
|
||||
cm(filename="year_bn_006_2" id="8")
|
||||
cm(filename="year_bn_007" id="9")
|
||||
license
|
||||
string(__type="str") Asphyxia
|
||||
file_recovery(url="https://example.com")
|
||||
button_release_frame( frame="0")
|
||||
escape_package_info
|
||||
list(apply_file_name="XXX" apply_release_code="XXX")
|
||||
expert(phase="1")
|
||||
expert_random_secret(phase="2")
|
||||
boss(phase="0")
|
||||
vip_pass_black
|
||||
deller_bonus(open="1")
|
||||
newsong_another(open="1")
|
||||
pcb_check(flg="0")
|
||||
expert_secret_full_open
|
||||
eaorder_phase(phase="2")
|
||||
common_evnet(flg="65535")
|
||||
system_voice_phase(phase="0")
|
||||
extra_boss_event(phase="0")
|
||||
event1_phase(phase="0")
|
||||
premium_area_news(open="1")
|
||||
premium_area_qpro(open="1")
|
||||
ignore_button_mashing
|
362
pug/crate.pug
Normal file
362
pug/crate.pug
Normal file
@ -0,0 +1,362 @@
|
||||
//-
|
||||
crateはSPクリアレート5つ(Begginer~Leddendaria)DPクリアレート5つ
|
||||
SPフルコンボレート5つDPフルコンボレート5つの20項目で表されます
|
||||
クリアレートはMax1000(100%)で小数点第一位まで設定できます
|
||||
|
||||
書式例
|
||||
<c __type="s32" __count="20" mid=曲番号>Numbers</c>
|
||||
|
||||
今回は12のみレートを実装します
|
||||
レートはCPI難易度表(2020/10/20)を参考にしています
|
||||
https://cpi.makecir.com/scores/tables#clear
|
||||
https://cpi.makecir.com/scores/tables#hard
|
||||
2250-曲レートをレートとして表示しています
|
||||
クリアレートがノマゲレートでフルコンボレートがハードクリアレートになっています
|
||||
|
||||
#{version}(status="0")
|
||||
c(__type="s32" __count="20" mid="5021") -1 -1 -1 793 -1 -1 -1 -1 -1 -1 -1 -1 -1 746 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="6005") -1 -1 -1 799 -1 -1 -1 -1 -1 -1 -1 -1 -1 718 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="7002") -1 -1 -1 905 -1 -1 -1 -1 -1 -1 -1 -1 -1 811 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="8031") -1 -1 -1 715 -1 -1 -1 -1 -1 -1 -1 -1 -1 698 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="8048") -1 -1 -1 736 -1 -1 -1 -1 -1 -1 -1 -1 -1 661 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="9012") -1 -1 -1 799 -1 -1 -1 -1 -1 -1 -1 -1 -1 749 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="9038") -1 -1 -1 828 -1 -1 -1 -1 -1 -1 -1 -1 -1 736 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="10022") -1 -1 -1 845 -1 -1 -1 -1 -1 -1 -1 -1 -1 788 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="10028") -1 -1 838 802 -1 -1 -1 -1 -1 -1 -1 -1 702 690 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="10049") -1 -1 -1 698 -1 -1 -1 -1 -1 -1 -1 -1 -1 692 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="11012") -1 -1 -1 -1 738 -1 -1 -1 -1 -1 -1 -1 -1 -1 720 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="11026") -1 -1 -1 603 -1 -1 -1 -1 -1 -1 -1 -1 -1 581 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="11030") -1 -1 -1 682 -1 -1 -1 -1 -1 -1 -1 -1 -1 672 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="11032") -1 -1 -1 -1 834 -1 -1 -1 -1 -1 -1 -1 -1 -1 769 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="11037") -1 -1 899 817 -1 -1 -1 -1 -1 -1 -1 -1 880 803 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="11040") -1 -1 -1 829 -1 -1 -1 -1 -1 -1 -1 -1 -1 767 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="12002") -1 -1 -1 -1 688 -1 -1 -1 -1 -1 -1 -1 -1 -1 672 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="12004") -1 -1 -1 594 -1 -1 -1 -1 -1 -1 -1 -1 -1 231 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="12007") -1 -1 -1 665 -1 -1 -1 -1 -1 -1 -1 -1 -1 550 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="12016") -1 -1 -1 -1 632 -1 -1 -1 -1 -1 -1 -1 -1 -1 603 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="12045") -1 -1 -1 807 -1 -1 -1 -1 -1 -1 -1 -1 -1 750 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="12054") -1 -1 -1 755 -1 -1 -1 -1 -1 -1 -1 -1 -1 685 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="13005") -1 -1 -1 531 -1 -1 -1 -1 -1 -1 -1 -1 -1 516 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="13010") -1 -1 -1 -1 546 -1 -1 -1 -1 -1 -1 -1 -1 -1 542 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="13031") -1 -1 -1 691 -1 -1 -1 -1 -1 -1 -1 -1 -1 645 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="13038") -1 -1 -1 -1 592 -1 -1 -1 -1 -1 -1 -1 -1 -1 585 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="13054") -1 -1 -1 806 -1 -1 -1 -1 -1 -1 -1 -1 -1 715 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="13055") -1 -1 -1 814 -1 -1 -1 -1 -1 -1 -1 -1 -1 791 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14004") -1 -1 -1 -1 425 -1 -1 -1 -1 -1 -1 -1 -1 -1 408 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14005") -1 -1 -1 726 -1 -1 -1 -1 -1 -1 -1 -1 -1 711 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14009") -1 -1 -1 830 484 -1 -1 -1 -1 -1 -1 -1 -1 757 453 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14021") -1 -1 -1 845 -1 -1 -1 -1 -1 -1 -1 -1 -1 762 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14022") -1 -1 -1 -1 811 -1 -1 -1 -1 -1 -1 -1 -1 -1 737 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14029") -1 -1 -1 777 -1 -1 -1 -1 -1 -1 -1 -1 -1 720 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14030") -1 -1 -1 802 -1 -1 -1 -1 -1 -1 -1 -1 -1 753 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14035") -1 -1 -1 692 -1 -1 -1 -1 -1 -1 -1 -1 -1 659 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14046") -1 -1 -1 -1 348 -1 -1 -1 -1 -1 -1 -1 -1 -1 328 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14052") -1 -1 -1 627 -1 -1 -1 -1 -1 -1 -1 -1 -1 410 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="14053") -1 -1 -1 -1 880 -1 -1 -1 -1 -1 -1 -1 -1 -1 835 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15001") -1 -1 -1 622 -1 -1 -1 -1 -1 -1 -1 -1 -1 586 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15004") -1 -1 -1 -1 610 -1 -1 -1 -1 -1 -1 -1 -1 -1 598 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15007") -1 -1 -1 -1 680 -1 -1 -1 -1 -1 -1 -1 -1 -1 652 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15013") -1 -1 -1 769 -1 -1 -1 -1 -1 -1 -1 -1 -1 722 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15014") -1 -1 -1 900 -1 -1 -1 -1 -1 -1 -1 -1 -1 820 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15016") -1 -1 -1 795 -1 -1 -1 -1 -1 -1 -1 -1 -1 760 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15023") -1 -1 -1 782 335 -1 -1 -1 -1 -1 -1 -1 -1 652 34 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15039") -1 -1 -1 763 -1 -1 -1 -1 -1 -1 -1 -1 -1 703 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15049") -1 -1 -1 587 -1 -1 -1 -1 -1 -1 -1 -1 -1 529 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="15061") -1 -1 -1 -1 665 -1 -1 -1 -1 -1 -1 -1 -1 -1 628 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16002") -1 -1 -1 -1 559 -1 -1 -1 -1 -1 -1 -1 -1 -1 537 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16003") -1 -1 -1 715 -1 -1 -1 -1 -1 -1 -1 -1 -1 666 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16006") -1 -1 -1 703 -1 -1 -1 -1 -1 -1 -1 -1 -1 684 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16009") -1 -1 -1 702 -1 -1 -1 -1 -1 -1 -1 -1 -1 671 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16015") -1 -1 -1 -1 757 -1 -1 -1 -1 -1 -1 -1 -1 -1 707 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16020") -1 -1 -1 349 -1 -1 -1 -1 -1 -1 -1 -1 -1 275 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16026") -1 -1 -1 567 -1 -1 -1 -1 -1 -1 -1 -1 -1 406 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16028") -1 -1 -1 542 -1 -1 -1 -1 -1 -1 -1 -1 -1 399 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16045") -1 -1 -1 -1 678 -1 -1 -1 -1 -1 -1 -1 -1 -1 631 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="16051") -1 -1 -1 739 -1 -1 -1 -1 -1 -1 -1 -1 -1 414 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17006") -1 -1 -1 644 -1 -1 -1 -1 -1 -1 -1 -1 -1 629 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17007") -1 -1 -1 748 -1 -1 -1 -1 -1 -1 -1 -1 -1 665 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17009") -1 -1 -1 646 -1 -1 -1 -1 -1 -1 -1 -1 -1 637 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17016") -1 -1 -1 581 -1 -1 -1 -1 -1 -1 -1 -1 -1 526 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17017") -1 -1 -1 756 -1 -1 -1 -1 -1 -1 -1 -1 -1 674 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17022") -1 -1 -1 644 -1 -1 -1 -1 -1 -1 -1 -1 -1 609 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17028") -1 -1 -1 -1 589 -1 -1 -1 -1 -1 -1 -1 -1 -1 580 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17032") -1 -1 -1 729 -1 -1 -1 -1 -1 -1 -1 -1 -1 623 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17044") -1 -1 -1 850 -1 -1 -1 -1 -1 -1 -1 -1 -1 778 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17054") -1 -1 -1 733 -1 -1 -1 -1 -1 -1 -1 -1 -1 696 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17056") -1 -1 -1 727 -1 -1 -1 -1 -1 -1 -1 -1 -1 672 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17059") -1 -1 -1 627 -1 -1 -1 -1 -1 -1 -1 -1 -1 610 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17060") -1 -1 -1 798 608 -1 -1 -1 -1 -1 -1 -1 -1 728 587 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="17061") -1 -1 -1 757 -1 -1 -1 -1 -1 -1 -1 -1 -1 712 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18001") -1 -1 -1 732 -1 -1 -1 -1 -1 -1 -1 -1 -1 637 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18004") -1 -1 -1 483 -1 -1 -1 -1 -1 -1 -1 -1 -1 477 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18007") -1 -1 -1 698 -1 -1 -1 -1 -1 -1 -1 -1 -1 663 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18009") -1 -1 -1 576 -1 -1 -1 -1 -1 -1 -1 -1 -1 559 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18017") -1 -1 -1 686 -1 -1 -1 -1 -1 -1 -1 -1 -1 655 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18026") -1 -1 -1 627 -1 -1 -1 -1 -1 -1 -1 -1 -1 611 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18032") -1 -1 -1 414 -1 -1 -1 -1 -1 -1 -1 -1 -1 305 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18039") -1 -1 -1 684 -1 -1 -1 -1 -1 -1 -1 -1 -1 632 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18050") -1 -1 -1 680 -1 -1 -1 -1 -1 -1 -1 -1 -1 595 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18059") -1 -1 -1 780 -1 -1 -1 -1 -1 -1 -1 -1 -1 734 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18060") -1 -1 -1 853 -1 -1 -1 -1 -1 -1 -1 -1 -1 785 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18061") -1 -1 -1 936 -1 -1 -1 -1 -1 -1 -1 -1 -1 833 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18068") -1 -1 -1 810 -1 -1 -1 -1 -1 -1 -1 -1 -1 757 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="18071") -1 -1 -1 983 -1 -1 -1 -1 -1 -1 -1 -1 -1 861 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19001") -1 -1 -1 665 -1 -1 -1 -1 -1 -1 -1 -1 -1 576 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19002") -1 -1 -1 625 -1 -1 -1 -1 -1 -1 -1 -1 -1 594 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19003") -1 -1 -1 853 -1 -1 -1 -1 -1 -1 -1 -1 -1 793 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19005") -1 -1 -1 813 -1 -1 -1 -1 -1 -1 -1 -1 -1 749 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19007") -1 -1 -1 644 -1 -1 -1 -1 -1 -1 -1 -1 -1 621 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19008") -1 -1 -1 430 -1 -1 -1 -1 -1 -1 -1 -1 -1 415 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19016") -1 -1 -1 866 -1 -1 -1 -1 -1 -1 -1 -1 -1 778 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19026") -1 -1 -1 855 -1 -1 -1 -1 -1 -1 -1 -1 -1 786 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19028") -1 -1 -1 794 -1 -1 -1 -1 -1 -1 -1 -1 -1 735 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19030") -1 -1 -1 781 -1 -1 -1 -1 -1 -1 -1 -1 -1 730 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19033") -1 -1 -1 678 -1 -1 -1 -1 -1 -1 -1 -1 -1 657 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19037") -1 -1 -1 591 -1 -1 -1 -1 -1 -1 -1 -1 -1 528 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19042") -1 -1 -1 712 -1 -1 -1 -1 -1 -1 -1 -1 -1 631 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19063") -1 -1 -1 -1 660 -1 -1 -1 -1 -1 -1 -1 -1 -1 637 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19064") -1 -1 -1 768 -1 -1 -1 -1 -1 -1 -1 -1 -1 688 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19065") -1 -1 -1 692 -1 -1 -1 -1 -1 -1 -1 -1 -1 631 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19068") -1 -1 -1 749 -1 -1 -1 -1 -1 -1 -1 -1 -1 715 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19071") -1 -1 -1 667 -1 -1 -1 -1 -1 -1 -1 -1 -1 654 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19074") -1 -1 -1 -1 485 -1 -1 -1 -1 -1 -1 -1 -1 -1 437 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="19075") -1 -1 -1 622 -1 -1 -1 -1 -1 -1 -1 -1 -1 604 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20002") -1 -1 -1 783 -1 -1 -1 -1 -1 -1 -1 -1 -1 722 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20003") -1 -1 -1 883 -1 -1 -1 -1 -1 -1 -1 -1 -1 825 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20004") -1 -1 -1 771 -1 -1 -1 -1 -1 -1 -1 -1 -1 714 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20006") -1 -1 -1 739 -1 -1 -1 -1 -1 -1 -1 -1 -1 693 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20007") -1 -1 -1 647 -1 -1 -1 -1 -1 -1 -1 -1 -1 603 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20008") -1 -1 -1 488 -1 -1 -1 -1 -1 -1 -1 -1 -1 472 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20012") -1 -1 -1 707 -1 -1 -1 -1 -1 -1 -1 -1 -1 672 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20019") -1 -1 -1 -1 682 -1 -1 -1 -1 -1 -1 -1 -1 -1 660 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20020") -1 -1 -1 471 -1 -1 -1 -1 -1 -1 -1 -1 -1 453 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20029") -1 -1 -1 525 -1 -1 -1 -1 -1 -1 -1 -1 -1 401 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20038") -1 -1 -1 398 -1 -1 -1 -1 -1 -1 -1 -1 -1 393 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20039") -1 -1 -1 -1 645 -1 -1 -1 -1 -1 -1 -1 -1 -1 640 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20041") -1 -1 -1 677 -1 -1 -1 -1 -1 -1 -1 -1 -1 664 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20043") -1 -1 -1 491 -1 -1 -1 -1 -1 -1 -1 -1 -1 441 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20047") -1 -1 -1 660 -1 -1 -1 -1 -1 -1 -1 -1 -1 615 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20048") -1 -1 -1 849 -1 -1 -1 -1 -1 -1 -1 -1 -1 783 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20049") -1 -1 -1 679 -1 -1 -1 -1 -1 -1 -1 -1 -1 652 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20051") -1 -1 -1 708 -1 -1 -1 -1 -1 -1 -1 -1 -1 674 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20054") -1 -1 -1 784 -1 -1 -1 -1 -1 -1 -1 -1 -1 727 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20058") -1 -1 -1 776 -1 -1 -1 -1 -1 -1 -1 -1 -1 746 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20062") -1 -1 -1 626 -1 -1 -1 -1 -1 -1 -1 -1 -1 603 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20063") -1 -1 -1 678 -1 -1 -1 -1 -1 -1 -1 -1 -1 627 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20067") -1 -1 -1 667 -1 -1 -1 -1 -1 -1 -1 -1 -1 619 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20070") -1 -1 -1 636 -1 -1 -1 -1 -1 -1 -1 -1 -1 548 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20071") -1 -1 -1 614 -1 -1 -1 -1 -1 -1 -1 -1 -1 536 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20073") -1 -1 -1 646 -1 -1 -1 -1 -1 -1 -1 -1 -1 613 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20074") -1 -1 -1 666 -1 -1 -1 -1 -1 -1 -1 -1 -1 648 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20083") -1 -1 -1 686 -1 -1 -1 -1 -1 -1 -1 -1 -1 661 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20093") -1 -1 -1 782 -1 -1 -1 -1 -1 -1 -1 -1 -1 726 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20094") -1 -1 -1 587 -1 -1 -1 -1 -1 -1 -1 -1 -1 581 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20097") -1 -1 -1 723 -1 -1 -1 -1 -1 -1 -1 -1 -1 670 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20099") -1 -1 -1 549 -1 -1 -1 -1 -1 -1 -1 -1 -1 516 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="20101") -1 -1 -1 746 -1 -1 -1 -1 -1 -1 -1 -1 -1 701 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21002") -1 -1 -1 754 -1 -1 -1 -1 -1 -1 -1 -1 -1 706 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21005") -1 -1 -1 745 -1 -1 -1 -1 -1 -1 -1 -1 -1 683 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21012") -1 -1 -1 741 607 -1 -1 -1 -1 -1 -1 -1 -1 685 574 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21019") -1 -1 -1 766 -1 -1 -1 -1 -1 -1 -1 -1 -1 734 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21029") -1 -1 -1 -1 655 -1 -1 -1 -1 -1 -1 -1 -1 -1 609 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21032") -1 -1 -1 546 -1 -1 -1 -1 -1 -1 -1 -1 -1 499 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21033") -1 -1 -1 654 -1 -1 -1 -1 -1 -1 -1 -1 -1 611 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21044") -1 -1 -1 671 -1 -1 -1 -1 -1 -1 -1 -1 -1 623 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21045") -1 -1 -1 721 -1 -1 -1 -1 -1 -1 -1 -1 -1 683 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21047") -1 -1 -1 654 -1 -1 -1 -1 -1 -1 -1 -1 -1 611 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21048") -1 -1 -1 719 314 -1 -1 -1 -1 -1 -1 -1 -1 681 304 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21050") -1 -1 -1 632 372 -1 -1 -1 -1 -1 -1 -1 -1 572 309 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21052") -1 -1 -1 786 570 -1 -1 -1 -1 -1 -1 -1 -1 730 431 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21055") -1 -1 -1 777 -1 -1 -1 -1 -1 -1 -1 -1 -1 714 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21059") -1 -1 -1 526 404 -1 -1 -1 -1 -1 -1 -1 -1 519 399 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21062") -1 -1 -1 613 -1 -1 -1 -1 -1 -1 -1 -1 -1 544 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21069") -1 -1 -1 774 570 -1 -1 -1 -1 -1 -1 -1 -1 736 556 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21073") -1 -1 -1 874 579 -1 -1 -1 -1 -1 -1 -1 -1 792 570 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21076") -1 -1 -1 772 -1 -1 -1 -1 -1 -1 -1 -1 -1 713 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21081") -1 -1 -1 701 -1 -1 -1 -1 -1 -1 -1 -1 -1 639 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21082") -1 -1 -1 489 -1 -1 -1 -1 -1 -1 -1 -1 -1 479 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21088") -1 -1 -1 758 -1 -1 -1 -1 -1 -1 -1 -1 -1 705 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="21089") -1 -1 -1 597 429 -1 -1 -1 -1 -1 -1 -1 -1 565 410 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22001") -1 -1 -1 697 -1 -1 -1 -1 -1 -1 -1 -1 -1 684 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22003") -1 -1 -1 692 -1 -1 -1 -1 -1 -1 -1 -1 -1 559 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22004") -1 -1 -1 662 -1 -1 -1 -1 -1 -1 -1 -1 -1 653 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22005") -1 -1 -1 771 -1 -1 -1 -1 -1 -1 -1 -1 -1 703 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22006") -1 -1 -1 -1 691 -1 -1 -1 -1 -1 -1 -1 -1 -1 661 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22007") -1 -1 -1 600 -1 -1 -1 -1 -1 -1 -1 -1 -1 565 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22008") -1 -1 -1 -1 553 -1 -1 -1 -1 -1 -1 -1 -1 -1 539 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22009") -1 -1 -1 832 -1 -1 -1 -1 -1 -1 -1 -1 -1 756 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22011") -1 -1 -1 724 -1 -1 -1 -1 -1 -1 -1 -1 -1 649 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22012") -1 -1 -1 552 -1 -1 -1 -1 -1 -1 -1 -1 -1 523 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22015") -1 -1 -1 623 -1 -1 -1 -1 -1 -1 -1 -1 -1 604 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22016") -1 -1 -1 686 -1 -1 -1 -1 -1 -1 -1 -1 -1 624 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22017") -1 -1 -1 885 -1 -1 -1 -1 -1 -1 -1 -1 -1 798 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22018") -1 -1 -1 747 -1 -1 -1 -1 -1 -1 -1 -1 -1 670 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22027") -1 -1 -1 -1 771 -1 -1 -1 -1 -1 -1 -1 -1 -1 724 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22031") -1 -1 -1 -1 569 -1 -1 -1 -1 -1 -1 -1 -1 -1 551 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22032") -1 -1 -1 708 -1 -1 -1 -1 -1 -1 -1 -1 -1 671 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22033") -1 -1 -1 713 -1 -1 -1 -1 -1 -1 -1 -1 -1 659 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22038") -1 -1 -1 889 -1 -1 -1 -1 -1 -1 -1 -1 -1 799 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22039") -1 -1 -1 663 -1 -1 -1 -1 -1 -1 -1 -1 -1 576 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22043") -1 -1 -1 679 -1 -1 -1 -1 -1 -1 -1 -1 -1 642 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22053") -1 -1 -1 751 -1 -1 -1 -1 -1 -1 -1 -1 -1 708 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22054") -1 -1 -1 466 -1 -1 -1 -1 -1 -1 -1 -1 -1 438 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22055") -1 -1 -1 800 -1 -1 -1 -1 -1 -1 -1 -1 -1 749 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22065") -1 -1 -1 719 -1 -1 -1 -1 -1 -1 -1 -1 -1 693 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22069") -1 -1 -1 767 -1 -1 -1 -1 -1 -1 -1 -1 -1 709 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22070") -1 -1 -1 647 -1 -1 -1 -1 -1 -1 -1 -1 -1 621 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22073") -1 -1 -1 662 -1 -1 -1 -1 -1 -1 -1 -1 -1 621 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22074") -1 -1 -1 672 -1 -1 -1 -1 -1 -1 -1 -1 -1 640 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22077") -1 -1 -1 760 -1 -1 -1 -1 -1 -1 -1 -1 -1 732 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22079") -1 -1 -1 804 -1 -1 -1 -1 -1 -1 -1 -1 -1 755 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22080") -1 -1 -1 720 -1 -1 -1 -1 -1 -1 -1 -1 -1 660 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22083") -1 -1 -1 907 530 -1 -1 -1 -1 -1 -1 -1 -1 858 525 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22087") -1 -1 -1 756 -1 -1 -1 -1 -1 -1 -1 -1 -1 708 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22089") -1 -1 -1 715 507 -1 -1 -1 -1 -1 -1 -1 -1 656 469 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22091") -1 -1 -1 744 -1 -1 -1 -1 -1 -1 -1 -1 -1 706 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22093") -1 -1 -1 683 -1 -1 -1 -1 -1 -1 -1 -1 -1 638 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22095") -1 -1 -1 735 -1 -1 -1 -1 -1 -1 -1 -1 -1 686 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="22099") -1 -1 -1 712 -1 -1 -1 -1 -1 -1 -1 -1 -1 646 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23000") -1 -1 -1 642 -1 -1 -1 -1 -1 -1 -1 -1 -1 560 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23001") -1 -1 -1 497 -1 -1 -1 -1 -1 -1 -1 -1 -1 477 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23005") -1 -1 -1 747 -1 -1 -1 -1 -1 -1 -1 -1 -1 710 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23007") -1 -1 -1 830 -1 -1 -1 -1 -1 -1 -1 -1 -1 760 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23009") -1 -1 -1 762 -1 -1 -1 -1 -1 -1 -1 -1 -1 719 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23013") -1 -1 -1 707 -1 -1 -1 -1 -1 -1 -1 -1 -1 684 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23018") -1 -1 -1 677 -1 -1 -1 -1 -1 -1 -1 -1 -1 626 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23027") -1 -1 -1 627 -1 -1 -1 -1 -1 -1 -1 -1 -1 560 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23031") -1 -1 -1 -1 664 -1 -1 -1 -1 -1 -1 -1 -1 -1 641 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23037") -1 -1 -1 701 -1 -1 -1 -1 -1 -1 -1 -1 -1 666 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23041") -1 -1 -1 571 -1 -1 -1 -1 -1 -1 -1 -1 -1 535 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23045") -1 -1 -1 760 -1 -1 -1 -1 -1 -1 -1 -1 -1 721 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23051") -1 -1 -1 296 -1 -1 -1 -1 -1 -1 -1 -1 -1 253 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23055") -1 -1 -1 682 -1 -1 -1 -1 -1 -1 -1 -1 -1 622 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23061") -1 -1 -1 612 -1 -1 -1 -1 -1 -1 -1 -1 -1 601 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23063") -1 -1 -1 565 -1 -1 -1 -1 -1 -1 -1 -1 -1 560 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23070") -1 -1 -1 -1 662 -1 -1 -1 -1 -1 -1 -1 -1 -1 632 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23072") -1 -1 -1 722 -1 -1 -1 -1 -1 -1 -1 -1 -1 652 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23074") -1 -1 -1 791 -1 -1 -1 -1 -1 -1 -1 -1 -1 670 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23075") -1 -1 -1 712 -1 -1 -1 -1 -1 -1 -1 -1 -1 641 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23079") -1 -1 -1 891 -1 -1 -1 -1 -1 -1 -1 -1 -1 772 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23083") -1 -1 -1 884 -1 -1 -1 -1 -1 -1 -1 -1 -1 774 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23085") -1 -1 -1 696 -1 -1 -1 -1 -1 -1 -1 -1 -1 661 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23088") -1 -1 -1 575 -1 -1 -1 -1 -1 -1 -1 -1 -1 546 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23090") -1 -1 -1 664 -1 -1 -1 -1 -1 -1 -1 -1 -1 628 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23092") -1 -1 -1 665 -1 -1 -1 -1 -1 -1 -1 -1 -1 636 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23094") -1 -1 -1 645 -1 -1 -1 -1 -1 -1 -1 -1 -1 609 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="23095") -1 -1 -1 -1 595 -1 -1 -1 -1 -1 -1 -1 -1 -1 582 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24001") -1 -1 -1 513 -1 -1 -1 -1 -1 -1 -1 -1 -1 502 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24003") -1 -1 -1 758 -1 -1 -1 -1 -1 -1 -1 -1 -1 694 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24005") -1 -1 -1 733 -1 -1 -1 -1 -1 -1 -1 -1 -1 697 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24006") -1 -1 -1 826 -1 -1 -1 -1 -1 -1 -1 -1 -1 756 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24007") -1 -1 -1 775 -1 -1 -1 -1 -1 -1 -1 -1 -1 690 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24010") -1 -1 -1 235 -1 -1 -1 -1 -1 -1 -1 -1 -1 231 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24012") -1 -1 -1 759 -1 -1 -1 -1 -1 -1 -1 -1 -1 695 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24014") -1 -1 -1 667 -1 -1 -1 -1 -1 -1 -1 -1 -1 629 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24018") -1 -1 -1 629 -1 -1 -1 -1 -1 -1 -1 -1 -1 603 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24020") -1 -1 -1 565 -1 -1 -1 -1 -1 -1 -1 -1 -1 527 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24021") -1 -1 -1 595 -1 -1 -1 -1 -1 -1 -1 -1 -1 584 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24023") -1 -1 -1 734 -1 -1 -1 -1 -1 -1 -1 -1 -1 657 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24024") -1 -1 -1 756 -1 -1 -1 -1 -1 -1 -1 -1 -1 690 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24034") -1 -1 -1 415 -1 -1 -1 -1 -1 -1 -1 -1 -1 346 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24036") -1 -1 -1 750 -1 -1 -1 -1 -1 -1 -1 -1 -1 712 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24039") -1 -1 -1 919 -1 -1 -1 -1 -1 -1 -1 -1 -1 817 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24041") -1 -1 -1 -1 707 -1 -1 -1 -1 -1 -1 -1 -1 -1 659 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24044") -1 -1 -1 741 -1 -1 -1 -1 -1 -1 -1 -1 -1 700 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24050") -1 -1 -1 569 -1 -1 -1 -1 -1 -1 -1 -1 -1 530 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24051") -1 -1 -1 645 -1 -1 -1 -1 -1 -1 -1 -1 -1 632 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24065") -1 -1 -1 692 -1 -1 -1 -1 -1 -1 -1 -1 -1 657 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24070") -1 -1 -1 791 -1 -1 -1 -1 -1 -1 -1 -1 -1 735 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24072") -1 -1 -1 677 -1 -1 -1 -1 -1 -1 -1 -1 -1 658 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24073") -1 -1 -1 659 -1 -1 -1 -1 -1 -1 -1 -1 -1 631 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24076") -1 -1 -1 742 -1 -1 -1 -1 -1 -1 -1 -1 -1 716 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24077") -1 -1 -1 806 -1 -1 -1 -1 -1 -1 -1 -1 -1 759 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24078") -1 -1 -1 833 -1 -1 -1 -1 -1 -1 -1 -1 -1 743 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24086") -1 -1 -1 819 -1 -1 -1 -1 -1 -1 -1 -1 -1 746 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24089") -1 -1 -1 838 -1 -1 -1 -1 -1 -1 -1 -1 -1 779 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24094") -1 -1 -1 737 -1 -1 -1 -1 -1 -1 -1 -1 -1 709 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="24095") -1 -1 -1 872 -1 -1 -1 -1 -1 -1 -1 -1 -1 806 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25000") -1 -1 -1 689 -1 -1 -1 -1 -1 -1 -1 -1 -1 659 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25003") -1 -1 -1 572 -1 -1 -1 -1 -1 -1 -1 -1 -1 523 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25004") -1 -1 -1 587 -1 -1 -1 -1 -1 -1 -1 -1 -1 544 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25007") -1 -1 -1 468 -1 -1 -1 -1 -1 -1 -1 -1 -1 407 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25008") -1 -1 -1 655 -1 -1 -1 -1 -1 -1 -1 -1 -1 627 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25009") -1 -1 -1 700 -1 -1 -1 -1 -1 -1 -1 -1 -1 669 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25015") -1 -1 -1 601 -1 -1 -1 -1 -1 -1 -1 -1 -1 586 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25017") -1 -1 -1 568 -1 -1 -1 -1 -1 -1 -1 -1 -1 536 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25019") -1 -1 -1 693 -1 -1 -1 -1 -1 -1 -1 -1 -1 626 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25021") -1 -1 -1 624 -1 -1 -1 -1 -1 -1 -1 -1 -1 582 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25025") -1 -1 -1 687 -1 -1 -1 -1 -1 -1 -1 -1 -1 640 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25027") -1 -1 -1 619 -1 -1 -1 -1 -1 -1 -1 -1 -1 567 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25029") -1 -1 -1 636 -1 -1 -1 -1 -1 -1 -1 -1 -1 612 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25040") -1 -1 -1 654 -1 -1 -1 -1 -1 -1 -1 -1 -1 629 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25049") -1 -1 -1 667 -1 -1 -1 -1 -1 -1 -1 -1 -1 639 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25052") -1 -1 -1 783 -1 -1 -1 -1 -1 -1 -1 -1 -1 745 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25058") -1 -1 -1 547 -1 -1 -1 -1 -1 -1 -1 -1 -1 488 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25063") -1 -1 -1 739 -1 -1 -1 -1 -1 -1 -1 -1 -1 640 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25074") -1 -1 -1 651 -1 -1 -1 -1 -1 -1 -1 -1 -1 628 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25075") -1 -1 -1 808 -1 -1 -1 -1 -1 -1 -1 -1 -1 760 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25080") -1 -1 -1 891 -1 -1 -1 -1 -1 -1 -1 -1 -1 820 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25083") -1 -1 -1 632 -1 -1 -1 -1 -1 -1 -1 -1 -1 584 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25085") -1 -1 -1 664 -1 -1 -1 -1 -1 -1 -1 -1 -1 625 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25088") -1 -1 -1 855 -1 -1 -1 -1 -1 -1 -1 -1 -1 785 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25091") -1 -1 -1 820 -1 -1 -1 -1 -1 -1 -1 -1 -1 782 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="25093") -1 -1 -1 656 -1 -1 -1 -1 -1 -1 -1 -1 -1 593 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26000") -1 -1 -1 701 -1 -1 -1 -1 -1 -1 -1 -1 -1 658 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26001") -1 -1 -1 686 -1 -1 -1 -1 -1 -1 -1 -1 -1 666 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26003") -1 -1 -1 664 -1 -1 -1 -1 -1 -1 -1 -1 -1 638 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26007") -1 -1 -1 327 -1 -1 -1 -1 -1 -1 -1 -1 -1 196 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26010") -1 -1 -1 786 -1 -1 -1 -1 -1 -1 -1 -1 -1 739 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26011") -1 -1 -1 712 -1 -1 -1 -1 -1 -1 -1 -1 -1 683 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26012") -1 -1 -1 625 -1 -1 -1 -1 -1 -1 -1 -1 -1 610 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26025") -1 -1 -1 613 -1 -1 -1 -1 -1 -1 -1 -1 -1 573 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26029") -1 -1 -1 625 -1 -1 -1 -1 -1 -1 -1 -1 -1 596 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26033") -1 -1 -1 765 -1 -1 -1 -1 -1 -1 -1 -1 -1 715 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26034") -1 -1 -1 745 -1 -1 -1 -1 -1 -1 -1 -1 -1 716 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26037") -1 -1 -1 432 -1 -1 -1 -1 -1 -1 -1 -1 -1 417 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26038") -1 -1 -1 721 -1 -1 -1 -1 -1 -1 -1 -1 -1 696 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26039") -1 -1 -1 611 -1 -1 -1 -1 -1 -1 -1 -1 -1 596 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26043") -1 -1 -1 717 -1 -1 -1 -1 -1 -1 -1 -1 -1 697 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26047") -1 -1 -1 511 -1 -1 -1 -1 -1 -1 -1 -1 -1 435 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26059") -1 -1 -1 682 -1 -1 -1 -1 -1 -1 -1 -1 -1 632 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26070") -1 -1 -1 646 -1 -1 -1 -1 -1 -1 -1 -1 -1 601 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26072") -1 -1 -1 537 -1 -1 -1 -1 -1 -1 -1 -1 -1 417 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26078") -1 -1 -1 580 -1 -1 -1 -1 -1 -1 -1 -1 -1 566 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26079") -1 -1 -1 755 -1 -1 -1 -1 -1 -1 -1 -1 -1 709 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26080") -1 -1 -1 689 -1 -1 -1 -1 -1 -1 -1 -1 -1 660 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26083") -1 -1 -1 729 -1 -1 -1 -1 -1 -1 -1 -1 -1 691 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26085") -1 -1 -1 761 -1 -1 -1 -1 -1 -1 -1 -1 -1 688 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26086") -1 -1 -1 484 -1 -1 -1 -1 -1 -1 -1 -1 -1 483 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26087") -1 -1 -1 607 -1 -1 -1 -1 -1 -1 -1 -1 -1 561 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26093") -1 -1 -1 677 -1 -1 -1 -1 -1 -1 -1 -1 -1 656 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26095") -1 -1 -1 879 -1 -1 -1 -1 -1 -1 -1 -1 -1 796 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26102") -1 -1 -1 826 -1 -1 -1 -1 -1 -1 -1 -1 -1 739 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26104") -1 -1 -1 705 -1 -1 -1 -1 -1 -1 -1 -1 -1 692 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26106") -1 -1 -1 681 -1 -1 -1 -1 -1 -1 -1 -1 -1 656 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26107") -1 -1 -1 709 -1 -1 -1 -1 -1 -1 -1 -1 -1 634 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26108") -1 -1 -1 547 -1 -1 -1 -1 -1 -1 -1 -1 -1 529 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="26110") -1 -1 -1 725 -1 -1 -1 -1 -1 -1 -1 -1 -1 686 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27000") -1 -1 -1 631 -1 -1 -1 -1 -1 -1 -1 -1 -1 611 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27003") -1 -1 -1 562 -1 -1 -1 -1 -1 -1 -1 -1 -1 535 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27007") -1 -1 -1 826 -1 -1 -1 -1 -1 -1 -1 -1 -1 754 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27009") -1 -1 -1 736 -1 -1 -1 -1 -1 -1 -1 -1 -1 688 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27012") -1 -1 -1 631 -1 -1 -1 -1 -1 -1 -1 -1 -1 612 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27018") -1 -1 -1 606 -1 -1 -1 -1 -1 -1 -1 -1 -1 589 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27019") -1 -1 -1 740 -1 -1 -1 -1 -1 -1 -1 -1 -1 688 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27020") -1 -1 -1 456 -1 -1 -1 -1 -1 -1 -1 -1 -1 429 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27030") -1 -1 -1 750 -1 -1 -1 -1 -1 -1 -1 -1 -1 733 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27034") -1 -1 -1 713 -1 -1 -1 -1 -1 -1 -1 -1 -1 664 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27035") -1 -1 -1 601 -1 -1 -1 -1 -1 -1 -1 -1 -1 573 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27039") -1 -1 -1 499 -1 -1 -1 -1 -1 -1 -1 -1 -1 456 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27043") -1 -1 -1 991 -1 -1 -1 -1 -1 -1 -1 -1 -1 852 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27044") -1 -1 -1 816 -1 -1 -1 -1 -1 -1 -1 -1 -1 732 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27052") -1 -1 -1 628 -1 -1 -1 -1 -1 -1 -1 -1 -1 597 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27054") -1 -1 -1 687 -1 -1 -1 -1 -1 -1 -1 -1 -1 645 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27056") -1 -1 -1 783 -1 -1 -1 -1 -1 -1 -1 -1 -1 743 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27059") -1 -1 -1 631 -1 -1 -1 -1 -1 -1 -1 -1 -1 604 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27060") -1 -1 -1 625 -1 -1 -1 -1 -1 -1 -1 -1 -1 597 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27064") -1 -1 -1 767 -1 -1 -1 -1 -1 -1 -1 -1 -1 715 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27078") -1 -1 -1 689 -1 -1 -1 -1 -1 -1 -1 -1 -1 618 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27084") -1 -1 -1 605 -1 -1 -1 -1 -1 -1 -1 -1 -1 567 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27088") -1 -1 -1 572 -1 -1 -1 -1 -1 -1 -1 -1 -1 566 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27094") -1 -1 -1 560 -1 -1 -1 -1 -1 -1 -1 -1 -1 557 -1 -1 -1 -1 -1 -1
|
||||
c(__type="s32" __count="20" mid="27102") -1 -1 -1 729 -1 -1 -1 -1 -1 -1 -1 -1 -1 686 -1 -1 -1 -1 -1 -1
|
109
util.ts
Normal file
109
util.ts
Normal file
@ -0,0 +1,109 @@
|
||||
import { profile } from "./models/profile";
|
||||
import { Profile } from "../sdvx@asphyxia/models/profile";
|
||||
|
||||
export function IDToCode(id: number) {
|
||||
const padded = _.padStart(id.toString(), 8);
|
||||
return `${padded.slice(0, 4)}-${padded.slice(4)}`;
|
||||
}
|
||||
|
||||
export function base64decode(s: string) {
|
||||
const base64list =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||
let t = "",
|
||||
p = -8,
|
||||
a = 0,
|
||||
c: number,
|
||||
d: number;
|
||||
|
||||
for (let i = 0; i < s.length; i++) {
|
||||
if ((c = base64list.indexOf(s.charAt(i))) < 0) continue;
|
||||
a = (a << 6) | (c & 63);
|
||||
if ((p += 6) >= 0) {
|
||||
d = (a >> p) & 255;
|
||||
if (c != 64) t += String.fromCharCode(d);
|
||||
a &= 63;
|
||||
p -= 8;
|
||||
}
|
||||
}
|
||||
return t;
|
||||
}
|
||||
|
||||
export function GetVersion(info: EamuseInfo) {
|
||||
return parseInt(info.module.substr(4, 2));
|
||||
}
|
||||
|
||||
export async function IIDXidTorefid(iidxid: number) {
|
||||
const profile = await DB.FindOne<profile>(null, {
|
||||
collection: "profile",
|
||||
iidxid: iidxid,
|
||||
});
|
||||
return profile.refid;
|
||||
}
|
||||
|
||||
export function ClidToRank(clid: number) {
|
||||
let style: number, rank: number;
|
||||
if (clid >= 5) {
|
||||
style = 1;
|
||||
rank = clid - 5;
|
||||
} else {
|
||||
style = 0;
|
||||
rank = clid;
|
||||
}
|
||||
return {
|
||||
style: style,
|
||||
rank: rank,
|
||||
};
|
||||
}
|
||||
|
||||
export function AppendSettingConverter(
|
||||
sf: boolean,
|
||||
cf: boolean,
|
||||
df: boolean,
|
||||
af: boolean,
|
||||
hp: boolean,
|
||||
dg: boolean,
|
||||
ch: boolean,
|
||||
hi: boolean
|
||||
) {
|
||||
const result =
|
||||
Number(sf) * 1 +
|
||||
Number(cf) * 2 +
|
||||
Number(df) * 4 +
|
||||
Number(af) * 8 +
|
||||
Number(hp) * 256 +
|
||||
Number(dg) * 512 +
|
||||
Number(ch) * 1024 +
|
||||
Number(hi) * 4196;
|
||||
return result;
|
||||
}
|
||||
|
||||
export function DateToName(now: number, score_time: number) {
|
||||
const msPerMinute = 60 * 1000;
|
||||
const msPerHour = msPerMinute * 60;
|
||||
const msPerDay = msPerHour * 24;
|
||||
const msPerMonth = msPerDay * 30;
|
||||
const msPerYear = msPerDay * 365;
|
||||
|
||||
const elapsed = now - score_time;
|
||||
|
||||
if (elapsed < msPerMinute) {
|
||||
return "-" + Math.round(elapsed / 1000) + "s";
|
||||
} else if (elapsed < msPerHour) {
|
||||
return "-" + Math.round(elapsed / msPerMinute) + "m";
|
||||
} else if (elapsed < msPerDay) {
|
||||
return "-" + Math.round(elapsed / msPerHour) + "h";
|
||||
} else if (elapsed < msPerMonth) {
|
||||
return "-" + Math.round(elapsed / msPerDay) + "d";
|
||||
} else if (elapsed < msPerYear) {
|
||||
return "-" + Math.round(elapsed / msPerMonth) + "mo";
|
||||
} else {
|
||||
return "-" + Math.round(elapsed / msPerYear) + "yr";
|
||||
}
|
||||
}
|
||||
|
||||
export async function refidToName(refid: string) {
|
||||
const profile = await DB.FindOne<profile>(refid, {
|
||||
collection: "profile",
|
||||
});
|
||||
return profile.name;
|
||||
}
|
58
webui/profile_detail.pug
Normal file
58
webui/profile_detail.pug
Normal file
@ -0,0 +1,58 @@
|
||||
//DATA//
|
||||
profile: DB.FindOne(refid, { collection: "profile" })
|
||||
pc_data: DB.FindOne(refid, { collection: "pc_data" })
|
||||
|
||||
-
|
||||
const gradelist=[
|
||||
"七級",
|
||||
"六級",
|
||||
"五級",
|
||||
"四級",
|
||||
"三級",
|
||||
"二級",
|
||||
"一級",
|
||||
"初段",
|
||||
"二段",
|
||||
"三段",
|
||||
"四段",
|
||||
"五段",
|
||||
"六段",
|
||||
"七段",
|
||||
"八段",
|
||||
"九段",
|
||||
"十段",
|
||||
"中伝",
|
||||
"皆伝"]
|
||||
|
||||
div
|
||||
.card
|
||||
.card-header
|
||||
p.card-header-title
|
||||
span.icon
|
||||
i.mdi.mdi-account-edit
|
||||
| Detail
|
||||
.card-content
|
||||
.field
|
||||
label.label Name
|
||||
.body
|
||||
body #{profile.name}
|
||||
.field
|
||||
label.label IIDX ID
|
||||
.body
|
||||
body #{profile.iidxidstr}
|
||||
.field
|
||||
label.label SP Grade
|
||||
.body
|
||||
- const a = pc_data.sgid
|
||||
if a==-1
|
||||
body ----
|
||||
else
|
||||
body #{gradelist[pc_data.sgid]}
|
||||
.field
|
||||
label.label DP Grade
|
||||
.body
|
||||
- const b = pc_data.dgid
|
||||
if b==-1
|
||||
body ----
|
||||
else
|
||||
body #{gradelist[pc_data.dgid]}
|
Loading…
Reference in New Issue
Block a user