開発環境 メモ帳
実行環境 Internet Explorer 11

kcship.html
<html>
<head>
<title>kcship</title>
<script src="api_start2.js"></script>
<script type="text/javascript">
<!--
var fld_ship = [
["api_id", "ID"],
["api_name", "名前"],
["api_stype", "艦種"],
["api_afterlv", "改造Lv"],
["api_houg", "火力", 2],
["api_raig", "雷装", 2],
["api_tyku", "対空", 2],
["api_tais", "対潜", 2],
["api_saku", "索敵", 2],
["api_luck", "運"],
["api_taik", "耐久"],
["api_souk", "装甲", 2],
["api_kaih", "回避", 2],
["api_sokuh", "高速"],
["api_leng", "射程"],
["api_slot_num", "スロット"],
["api_maxeq", "搭載", 1],
["api_fuel_max", "燃料"],
["api_bull_max", "弾薬"],
];
 
var fld_slot = [
["api_id", "ID", 0],
["api_sortno", "No", 0],
["api_name", "装備名", 0],
["api_type", "type", 0],
//["api_taik", "taik", 0],
["api_souk", "装甲", 0],
["api_houg", "砲撃", 0],
["api_raig", "雷撃", 0],
//["api_soku", "soku", 0],
["api_baku", "爆撃", 0],
["api_tyku", "対空", 0],
["api_tais", "対潜", 0],
//["api_atap", "atap", 0],
["api_houm", "砲撃命中", 0],
//["api_raim", "雷撃命中", 0],
["api_houk", "砲撃回避", 0],
//["api_raik", "雷撃回避", 0],
//["api_bakk", "爆撃回避", 0],
["api_saku", "索敵", 0],
//["api_sakb", "", 0],
//["api_luck", "運", 0],
["api_leng", "射程", 0],
["api_rare", "レア", 0],
["api_broken", "破棄", 0],
//["api_info", "", 0],
//["api_usebull", "", 0],
];
 
function CreateSlotTable()
{
	var slot = svdata.api_data.api_mst_slotitem;
	var table = CreateTable(fld_slot);
 
	// body
	for (var r = 0; r < slot.length; r++) {
		var record = slot[r];
		var tbody = table.createTBody();
		var row = tbody.insertRow();
		row.bgColor = (r & 1) ? "WHEAT" : "WHITE";
		AppendCell(row, r + 1);
		for (var i in fld_slot) {
			var value = record[fld_slot[i][0]];
			switch (fld_slot[i][2]) {
			case 1:
				break;
			}
			AppendCell(row, value);
		}
	}
}
 
function CreateGeneralTable(name)
{
	var mst = svdata.api_data[name];
	var table = CreateTable(mst[0]);
 
	// caption
	{
		var cap = table.createCaption();
		cap.style.setAttribute("text-align", "left");
		cap.style.setAttribute("margin", "3px");
		var text = document.createTextNode(name);
		cap.appendChild(text);
	}
 
	// body
	for (var r = 0; r < mst.length; r++) {
		var record = mst[r];
		var tbody = table.createTBody();
		var row = tbody.insertRow();
		row.bgColor = (r & 1) ? "WHEAT" : "WHITE";
		AppendCell(row, r + 1);
		for (var key in record) {
			var value = record[key];
			AppendCell(row, value);
		}
	}
}
 
function CreateShipTable()
{
	// 艦種
	var stype = null;
	for (var i = 0; i < document.f1.r1.length; i++) {
		if (document.f1.r1[i].checked) {
			stype = document.f1.r1[i].value.split(",");
			break;
		}
	}
	if (stype == null) {
		window.alert("艦種を選んでください。");
		return;
	}
 
	var ship = svdata.api_data.api_mst_ship;
	var table = CreateTable(fld_ship);
 
	// body
	var line = 0;
	for (var r in ship) {
		var record = ship[r];
		if (record.api_sortno == 0) {
			continue;
		}
		if (stype.indexOf(String(record.api_stype)) < 0) {
			continue;
		}
		if (record.api_afterlv == 0) {
			if (document.f1.c2.checked == false) {
				continue;
			}
		} else {
			if (document.f1.c1.checked == false) {
				continue;
			}
		}
		var tbody = table.createTBody();
		var row = tbody.insertRow();
		row.bgColor = (line++ & 1) ? "WHEAT" : "WHITE";
		AppendCell(row, line);
		for (var i in fld_ship) {
			var value = record[fld_ship[i][0]];
			if (3 <= fld_ship[i].length) {
				switch (fld_ship[i][2]) {
				case 1:
					var sum = 0;
					var slot = new Array();
					for (var n in value) {
						if (value[n] == 0) break;
						sum += value[n];
						slot.push(value[n]);
					}
					if (sum == 0) {
						value = 0;
					} else {
						value = String(sum) + " (" + slot.join("/") + ")";
					}
					break;
				case 2:
					value = value[1];
					break;
				}
			}
			AppendCell(row, value);
		}
	}
}
 
function CreateTable(title)
{
	var table = document.createElement("table");
	table.border = 1;
	table.cellSpacing = 0;
	table.cellPadding = 3;
	table.style.setAttribute("border-collapse", "collapse");
 
	var thead = table.createTHead();
	CreateTitle(thead, title);
 
	var tfoot = table.createTFoot();
	CreateTitle(tfoot, title);
 
	var d1 = document.getElementById("d1");
	for (var i = d1.childNodes.length - 1; 0 <= i; i--) {
		d1.removeChild(d1.childNodes[i]);
	}
	d1.appendChild(table);
 
	return table;
}
 
function CreateTitle(elem, obj)
{
	var row = elem.insertRow();
	row.bgColor = "KHAKI";
	AppendCell(row, "#");
	for (var key in obj) {
		AppendCell(row, (obj instanceof Array) ? obj[key][1] : key);
	}
}
 
function AppendCell(row, str)
{
	var cell = row.insertCell();
	var text = document.createTextNode(str);
	cell.appendChild(text);
}
// -->
</script>
</head>
 
<body>
<button onclick="CreateGeneralTable('api_mst_stype')">艦種マスタ</button>
<button onclick="CreateSlotTable()">装備マスタ</button>
<hr>
<form name="f1">
<input type="radio" name="r1" value="7,11,18"> 正規空母/軽空母/装甲空母<br>
<input type="radio" name="r1" value="8,9,10"> 戦艦/航空戦艦<br>
<input type="radio" name="r1" value="5,6"> 重巡洋艦/航空巡洋艦<br>
<input type="radio" name="r1" value="3,4"> 軽巡洋艦/重雷装巡洋艦<br>
<input type="radio" name="r1" value="2"> 駆逐艦<br>
<input type="radio" name="r1" value="13,14"> 潜水艦/潜水空母<br>
<input type="radio" name="r1" value="17,19"> 揚陸艦/工作艦<br>
<br>
改造
<input type="checkbox" name="c1">可
<input type="checkbox" name="c2" checked>不可<br>
<br>
<input type="button" value="検索" onclick="CreateShipTable()">
</form>
<div id="d1"></div>
</body>
</html>
 
最終更新:2014年05月14日 23:00