◆少前百科是非盈利性、非官方的少女前线维基百科。 ◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科。 ◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科 ◆To foreigners,You can use twitter to contact us. |
“Widget:Equipquery”的版本间的差异
(测试) |
(测试) |
||
第355行: | 第355行: | ||
</div> | </div> | ||
<div id="position-marker"></div> | <div id="position-marker"></div> | ||
− | </div></div><BR></includeonly> | + | </div></div><BR> |
+ | <script> | ||
+ | var equipElement = document.querySelectorAll('.equipdata'); | ||
+ | var equipTarget = new Array(1000); | ||
+ | for (var k = 0; k < 1000; k++) { equipTarget[k] = 0; } | ||
+ | |||
+ | /* HG:0 SMG:1 AR:2 RF:3 MG:4 SG:5 */ | ||
+ | var gunDollStr = ["HG", "SMG", "AR", "RF", "MG", "SG"]; | ||
+ | /* 光学瞄具:6 全息瞄具:7 红点瞄具:8 夜战装备:9 消音器:10 特殊:11 */ | ||
+ | var gunType1Str = ["光学瞄具", "全息瞄具", "红点瞄具", "夜战装备", "消音器", "特殊"]; | ||
+ | /* 状态弹:12 穿甲弹:13 高速弹:14 霰弹:15 特殊:16 */ | ||
+ | var gunType2Str = ["状态弹", "穿甲弹", "高速弹", "霰弹", "特殊"]; | ||
+ | /* 外骨骼:17 伪装披风:18 防弹插板:19 弹链箱:20 芯片:21 特殊:22 */ | ||
+ | var gunType3Str = ["外骨骼", "伪装披风", "防弹插板", "弹链箱", "芯片", "特殊"]; | ||
+ | /* 光学瞄具:23 全息瞄具:24 红点瞄具:25 夜战装备:26 消音器:27 特殊:28 */ | ||
+ | var gunGetStr = ["主线战役", "常驻活动", "限时活动", "心智升级", "黑市商店"]; | ||
+ | |||
+ | var equipCheckbox = document.querySelectorAll('input'); | ||
+ | for (var i = 0; i < equipCheckbox.length; i++) { | ||
+ | equipCheckbox[i].addEventListener('click', reloadEquip); | ||
+ | } | ||
+ | |||
+ | function reloadEquip() { //重新加载 | ||
+ | for (var k = 0; k < 1000; k++) { equipTarget[k] = 0; } | ||
+ | for (var i = 0; i < equipElement.length; i++) { | ||
+ | checkGunDollStr(i); | ||
+ | } | ||
+ | revealEquip(); | ||
+ | } | ||
+ | |||
+ | function checkGunDollStr(i) { //装备枪种 | ||
+ | for (var j = 0; j < gunDollStr.length; j++) { | ||
+ | if (equipCheckbox[j].checked == false) continue; | ||
+ | if (gunDollStr[j] == equipElement[i].getAttribute('data-equip-dolltype')) { | ||
+ | checkGunTypeStr(i); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function checkGunTypeStr(i) { //装备种类 | ||
+ | var equipClass1 = equipElement[i].getAttribute('data-equip-class1'); | ||
+ | var equipClass2 = equipElement[i].getAttribute('data-equip-class2'); | ||
+ | for (var j = 0; j < gunType1Str.length; j++) { | ||
+ | if (equipCheckbox[j + gunDollStr.length].checked == false) continue; | ||
+ | if (equipClass1 == "配件" && equipClass2 == gunType1Str[j]) { | ||
+ | checkGunGetStr(i); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | for (var j = 0; j < gunType2Str.length; j++) { | ||
+ | if (equipCheckbox[j + gunDollStr.length + gunType1Str.length].checked == false) continue; | ||
+ | if (equipClass1 == "弹匣" && equipClass2 == gunType2Str[j]) { | ||
+ | checkGunGetStr(i); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | for (var j = 0; j < gunType3Str.length; j++) { | ||
+ | if (equipCheckbox[j + gunDollStr.length + gunType1Str.length + gunType2Str.length].checked == false) continue; | ||
+ | if (equipClass1 == "人形" && equipClass2 == gunType3Str[j]) { | ||
+ | checkGunGetStr(i); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function checkGunGetStr(i) { //获得途径 | ||
+ | for (var j = 0; j < gunGetStr.length; j++) { | ||
+ | if (equipCheckbox[j + gunDollStr.length + gunType1Str.length + gunType2Str.length + gunType3Str.length].checked == false) continue; | ||
+ | if (equipElement[i].getAttribute('data-obtain') == gunGetStr[j]) { | ||
+ | equipPrep(i); | ||
+ | return; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | function equipPrep(i) { //输出准备 | ||
+ | for (var j = 0; j < 1000; j++) { | ||
+ | if (equipTarget[j] == 0) { equipTarget[j] = i; return; } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | var positionT = document.querySelector('#position-marker'); | ||
+ | function revealEquip() { //最终输出 | ||
+ | positionT.innerHTML = ""; | ||
+ | |||
+ | var htmlline = ""; | ||
+ | for (var j = 0; j < 1000; j++) { | ||
+ | if (equipTarget[j] == 0) break; | ||
+ | var tar = equipElement[equipTarget[j]]; | ||
+ | console.log(tar.getAttribute('data-name-ingame')); | ||
+ | |||
+ | var thisline = "<tr><td>"; | ||
+ | thisline += "<a href=\"" + tar.getAttribute('data-url') + "\"><b>" + tar.getAttribute('data-name-ingame') + "<\/b><\/a><\/td><td>"; | ||
+ | thisline += "<img style=\"width:100px; \" src=" + tar.getAttribute('data-avatar') + " \/>" + "<\/td><td>"; | ||
+ | thisline += tar.getAttribute('data-equip-class1') + "<\/br>" + tar.getAttribute('data-equip-class2') + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-atk') != "0" ? tar.getAttribute('data-base-atk') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-acc') != "0" ? tar.getAttribute('data-base-acc') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-eva') != "0" ? tar.getAttribute('data-base-eva') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-rate') != "0" ? tar.getAttribute('data-base-rate') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-criper') != "0" ? tar.getAttribute('data-base-criper') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-crirate') != "0" ? tar.getAttribute('data-base-crirate') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-ampierce') != "0" ? tar.getAttribute('data-base-ampierce') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-night') != "0" ? tar.getAttribute('data-base-night') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-bullet') != "0" ? tar.getAttribute('data-base-bullet') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-move') != "0" ? tar.getAttribute('data-base-move') : "") + "<\/td><td>"; | ||
+ | thisline += (tar.getAttribute('data-base-target') != "0" ? tar.getAttribute('data-base-target') : "") + "<\/td><td>"; | ||
+ | thisline += toDollName(j) + "<\/td><td>"; | ||
+ | thisline += tar.getAttribute('data-obtain') + "<\/td><\/tr>"; | ||
+ | //'<td>装备<\/td><td>图标<\/td><td>类型<\/td><td>伤害<\/td><td>命中<\/td><td>回避<\/td><td>射速<\/td><td>暴击<\/td><td>暴伤<\/td><td>穿甲<\/td><td>夜视<\/td><td>弹量<\/td><td>移速<\/td><td>目标<\/td><td>适用人形<\/td><td>获得途径<\/td>' | ||
+ | htmlline += thisline; | ||
+ | } | ||
+ | |||
+ | var output = `<table id="Equiptable" class="stattable" style="text-align:center; mid-width:300px; width:100%;"> | ||
+ | <thead><tr><th style="width:120px;">装备<\/th><th>图标<\/th><th>类型<\/th><th>伤害<\/th><th>命中<\/th><th>回避<\/th><th>射速<\/th><th>暴击<\/th><th>暴伤<\/th><th>穿甲<\/th><th>夜视<\/th><th>弹量<\/th><th>移速<\/th><th>目标<\/th><th style="width:110px;">适用人形<\/th><th>获得途径<\/th><\/tr><\/thead> | ||
+ | <tbody id="Equiptbody">` + htmlline + `<\/tbody><\/table>`; | ||
+ | positionT.innerHTML = output; | ||
+ | } | ||
+ | |||
+ | $('.clearSelect').on("click",function(){clearSelect(this)}); | ||
+ | $('.invertSelect').on("click",function(){invertSelect(this)}) | ||
+ | |||
+ | function invertSelect(box) {//反选函数 | ||
+ | var get_checker_box = box.parentNode.getElementsByTagName("input"); | ||
+ | for (var i = 0; i < get_checker_box.length; i++) { | ||
+ | if (get_checker_box[i].dataset.freeze) { continue; } | ||
+ | if (get_checker_box[i].checked) { get_checker_box[i].checked = false } else { get_checker_box[i].checked = true } | ||
+ | } | ||
+ | reloadEquip(); | ||
+ | } | ||
+ | |||
+ | function clearSelect(box) { //清除选择 | ||
+ | var get_checker_box = box.parentNode.getElementsByTagName("input"); | ||
+ | for (var i = 0; i < get_checker_box.length; i++) { | ||
+ | if (get_checker_box[i].dataset.freeze) { continue; } | ||
+ | get_checker_box[i].checked = false | ||
+ | } | ||
+ | reloadEquip(); | ||
+ | } | ||
+ | |||
+ | function toDollName(i) { //Name模板 | ||
+ | var dollstr; | ||
+ | var thisDoll = equipElement[equipTarget[i]].getAttribute('data-equip-dollname1'); | ||
+ | dollstr = thisDoll | ||
+ | //{{Name|" + thisDoll + "|{{#show:" + thisDoll + "|?枪种|link=none}}|{{#show:" + thisDoll + "|?稀有度|link=none}}}} | ||
+ | var thisDoll2 = equipElement[equipTarget[i]].getAttribute('data-equip-dollname2'); | ||
+ | if (thisDoll2 != false) { dollstr += "<br>" + thisDoll2; } | ||
+ | var thisDoll3 = equipElement[equipTarget[i]].getAttribute('data-equip-dollname3'); | ||
+ | if (thisDoll3 != false) { dollstr += "<br>" + thisDoll3; } | ||
+ | return dollstr; | ||
+ | } | ||
+ | </script></includeonly> |