◆少前百科是非盈利性、非官方的少女前线维基百科。
◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科
◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科
◆To foreigners,You can use twitter to contact us.
Icon Nyto Silver.png

“Widget:Tdollquery2”的版本间的差异

来自少前百科GFwiki
跳转至: 导航搜索
第395行: 第395行:
 
case "affect":if (obj.mod==1&&show) {key="tilesAffectMod"}else{key="tilesAffect"};break;
 
case "affect":if (obj.mod==1&&show) {key="tilesAffectMod"}else{key="tilesAffect"};break;
 
case "mod":if (obj.mod==1&&show) {key=true}else{key=false};break;
 
case "mod":if (obj.mod==1&&show) {key=true}else{key=false};break;
 +
case "Effect1":
 +
case "Effect2":if (obj.mod==1&&show) {key=`modtile${str}Time`}else{key=`tile${str}Time`};break;
 
default:key=`${stat}${str}`;break;
 
default:key=`${stat}${str}`;break;
 
}
 
}
第533行: 第535行:
 
for (var i in pushdata) {
 
for (var i in pushdata) {
 
var tileCond = pushdata[i][mod_key("tiles",pushdata[i])].split(",");
 
var tileCond = pushdata[i][mod_key("tiles",pushdata[i])].split(",");
 +
if(pushdata[i].tileEffect2){var tile_effects = `${pushdata[i].tileEffect1} \+${pushdata[i][mod_key("Effect1",pushdata[i])]}`}else{var tile_effects = `${pushdata[i].tileEffect1} \+${pushdata[i][mod_key("Effect2",pushdata[i])]}<BR>${pushdata[i].tileEffect2} \+${pushdata[i][mod_key("Effect2",pushdata[i])]}`}
 
if(mod_key("mod",pushdata[i])){var url_hash = pushdata[i].url+"#MOD3"}else{var url_hash = pushdata[i].url}
 
if(mod_key("mod",pushdata[i])){var url_hash = pushdata[i].url+"#MOD3"}else{var url_hash = pushdata[i].url}
 
var line = `<tr class="tdollqueryline">
 
var line = `<tr class="tdollqueryline">
第544行: 第547行:
 
<tr><td class="color${tileCond[3]}"><\/td><td class="color${tileCond[4]}"><\/td><td class="color${tileCond[5]}"><\/td><\/tr>
 
<tr><td class="color${tileCond[3]}"><\/td><td class="color${tileCond[4]}"><\/td><td class="color${tileCond[5]}"><\/td><\/tr>
 
<tr><td class="color${tileCond[6]}"><\/td><td class="color${tileCond[7]}"><\/td><td class="color${tileCond[8]}"><\/td><\/tr><\/tbody><\/table><\/td>
 
<tr><td class="color${tileCond[6]}"><\/td><td class="color${tileCond[7]}"><\/td><td class="color${tileCond[8]}"><\/td><\/tr><\/tbody><\/table><\/td>
<td><\/td>
+
<td>${tile_effects}<\/td>
 
<td>${pushdata[i][mod_key("skill",pushdata[i])]}<\/td><\/tr>`
 
<td>${pushdata[i][mod_key("skill",pushdata[i])]}<\/td><\/tr>`
 
htmlLine += line;
 
htmlLine += line;

2019年12月3日 (二) 00:23的版本

<style type="text/css"> div.tileSearchCond {

   display: inline-block;
   width: 100px;

} div.tileSearchCond:first-of-type {

   margin-left:1rem

}

table.tileSearch { display:table; margin: 0.1rem 1rem 0.1rem auto; } table.tileSearch td{ padding:10px; background-color:#444 } table.tileSearch#selfpos td.active{ background-color:#fff; } table.tileSearch#effectarea td.active{ background-color:#00ffff; } div#buttonContainer {

   position:relative;

} div#buttonContainer span:first-child {

   float:right;
   margin-right: 1rem;

} .skin-minerva #content div#buttonContainer div:not(#TDollQuery) button {

   padding: 6px 15px;
   height: auto;
   margin-bottom: 0px !important;

} @media screen and (max-width:650px){

   .skin-minerva #Tdolltable {font-size:0.8rem}
   .skin-minerva #Tdolltable .TDavatar {width:80px;height:80px}

} div#buttonContainer button {

   height: 25px;
   padding: 0px 10px;
   margin: 0px;
   background-color:#DDD;
   background-image: linear-gradient(-45deg,#f4c430 5px,transparent 5px);
   border: 0px solid !important;
   position: relative;
   top: 0px;

} div#buttonContainer button:active {

   background-color:#f4c430;

} div#buttonContainer button:hover {

   background-color:#bbb;

} div#buttonContainer button:hover:active {

   background-color:#f4c430;

} div#buttonContainer.disabled::after {

   content:"";
   width: 100%;
   height: 100%;
   top: 0px;
   position: absolute;
   left: 0px;
   background-image: repeating-linear-gradient(-45deg,red 3px,red 4px,transparent 5px,transparent 20px);
   box-shadow: inset 0 0 0 2px red;

}

  1. tableloadingMini {
   background-image: url('/images/a/ac/Gfloading.gif');
   background-repeat: no-repeat;
   background-attachment: local;
   background-position: bottom right;
   background-size: 50px;
   height: 50px;
   text-align: right;
   padding-right: 4rem;
   font-size: 1.5rem;
   vertical-align: bottom;

}

  1. miniTdolltable{
   overflow: hidden;
   margin: 0px;
   display: table;

}

  1. miniTdolltable .TDavatar:hover {transform:scale(1.05);z-index:10}
  2. miniTdolltable .TDavatar{
   transition: 0.2s all ease-in-out;

}

  1. tableloading > td {
   background-image: url('/images/a/ac/Gfloading.gif');
   background-repeat: no-repeat;
   background-attachment: local;
   background-position: bottom right;
   background-size: 50px;
   height: 50px;
   text-align: right;
   padding-right: 4rem;
   font-size: 1.5rem;
   vertical-align: bottom;

}

  1. Tdolltable{
   margin: 0px;

}

  1. tableempty{
   background-size: 50px;
   height: 50px;
   font-size: 1.5rem;
   color: red;
   text-align: center;

} div#TDollQuery {

   vertical-align:baseline;
   width:auto;
   display: inline-flex;
   overflow:hidden;
   transition: all 0.1s ease-in;

} div#TDollQuery input#inputQuery {

   padding:0px;
   margin:0px;
   top:0px;
   border:0px solid;
   border-left:5px solid #eaeaea;
   box-shadow: inset 0 0 5px black;
   padding-left:5px;
   transition: all 0.1s ease-in;

} div#TDollQuery input#inputQuery:focus {

   border-color:#F4c430;

} .disabled {

   pointer-events: none;
   opacity: 0.7;
   filter: blur(0px);

} @media screen and (max-width: 640px) {

   #miniTdolltable div.TDavatar {width:20%;height:20%}

} td.tiles > table { margin-inline-start: auto; margin-inline-end: auto; border-spacing: 2px; background: rgba(255, 255, 255, 0.33); border: 0px; } .tilesTable td{padding:10px;} .tilesTable td.color0{background:#444444;} .tilesTable td.color1{background:#00ffff;} .tilesTable td.color2{background:#ffffff;} .tilesTable td.color3{background:#FFC400;}

  1. buttonContainer div>label>input {

display:none; } div#buttonContainer div:not(#TDollQuery) button {

   padding: 8px 15px;
   height: auto;
   margin-bottom: 1px !important;

} div#buttonContainer div {

   margin:0;
   margin-bottom: 3px !important;

}

  1. buttonContainer div>label {
   display: inline-block;
   margin: 0;
   position: relative;
   overflow: hidden;
   vertical-align: top;

}

  1. buttonContainer div>label>div {
   padding: 5px 10px;
   text-align: center;
   border: #dddddd solid 1px;
   user-select: none;
   overflow: hidden;
   position: relative;

}

  1. buttonContainer div>label>input:checked + div {

border:#f4c430 solid 1px; color:#f4c430; }

  1. buttonContainer div>label>input:checked + div:after {

content:; display:block; width:20px; height:20px; background-color:#f4c430; transform:skewY(-45deg); position:absolute; bottom:-10px; right:0; z-index:1; }

  1. buttonContainer div>label>input:checked + div:before {

content:; display:block; width:3px; height:8px; border-right:#000 solid 2px; border-bottom:#000 solid 2px; transform:rotate(35deg); position:absolute; bottom:2px; right:4px; z-index:2; }

.sort-list>label { display:inline-block; margin:0; position:relative; overflow:hidden; } .sort-list>label>input { display:none; } .sort-list>label>div {

   padding: 5px 15px;
   text-align: center;
   border: #dddddd solid 1px;
   user-select: none;
   overflow: hidden;
   position: relative;

} .sort-list>label>input:checked + div { border:#f4c430 solid 1px; color:#f4c430; } .sort-list>label>input[data-sort-order=desc]:checked + div:after { content:; display:block; width:20px; height:20px; background-color:#f4c430; transform:skewY(-45deg); position:absolute; bottom:-10px; right:0; z-index:1; } .sort-list>label>input[data-sort-order=desc]:checked + div:before {

   content: ;
   display: block;
   width: 5px;
   height: 5px;
   border-right: #000 solid 2px;
   border-bottom: #000 solid 2px;
   transform: rotate(0);
   position: absolute;
   bottom: 3px;
   right: 3px;
   z-index: 2;

}

.sort-list>label>input[data-sort-order=asc]:checked + div:after {

   content: ;
   display: block;
   width: 20px;
   height: 20px;
   background-color: #f4c430;
   transform: skewY(-45deg);
   position: absolute;
   top: -10px;
   left: 0;
   z-index: 1;

} .sort-list>label>input[data-sort-order=asc]:checked + div:before { content: ;

   display: block;
   width: 5px;
   height: 5px;
   border-right: #000 solid 2px;
   border-bottom: #000 solid 2px;
   transform: rotate(180deg);
   position: absolute;
   top: 3px;
   left: 3px;
   z-index: 2;

}


div#TDollQuery {display:none;}

</style>

[<a href="javascript:void(0);"onclick="clearSelect(this.parentNode)">全清</a>]

点选下列格子查询人形影响格布局:
影响格位置: <tbody> </tbody>
自身位置: <tbody> </tbody>

<button onclick="clearSelect(this)">清除</button> <button onclick="invertSelect(this)">反选</button>

<label for="HGDoll"><input type="checkbox" id="HGDoll" onclick="apply_filter()" />
手枪人形
</label> <label for="SMGDoll"><input type="checkbox" id="SMGDoll" onclick="apply_filter()" />
冲锋枪人形
</label> <label for="ARDoll"><input type="checkbox" id="ARDoll" onclick="apply_filter()" />
突击步枪人形
</label> <label for="RFDoll"><input type="checkbox" id="RFDoll" onclick="apply_filter()" />
步枪人形
</label> <label for="MGDoll"><input type="checkbox" id="MGDoll" onclick="apply_filter()" />
机枪人形
</label> <label for="SGDoll"><input type="checkbox" id="SGDoll" onclick="apply_filter()" />
霰弹枪人形
</label>

<button onclick="clearSelect(this)">清除</button> <button onclick="invertSelect(this)">反选</button>

<label for="rarity2"><input type="checkbox" id="rarity2" onclick="apply_filter()" />
★★
</label> <label for="rarity3"><input type="checkbox" id="rarity3" onclick="apply_filter()" />
★★★
</label> <label for="rarity4"><input type="checkbox" id="rarity4" onclick="apply_filter()" />
★★★★
</label> <label for="rarity5"><input type="checkbox" id="rarity5" onclick="apply_filter()" />
★★★★★
</label> <label for="rarity6"><input type="checkbox" id="rarity6" onclick="apply_filter()" />
★★★★★★
</label> <label for="rarity1"><input type="checkbox" id="rarity1" onclick="apply_filter()" />
★EXTRA
</label>

<button onclick="clearSelect(this)">清除</button> <button onclick="invertSelect(this)">反选</button>

<label for="buildObtain"><input type="checkbox" id="buildObtain" onclick="apply_filter()" />
建造获得
</label> <label for="dropObtain"><input type="checkbox" id="dropObtain" onclick="apply_filter()" />
救援获得
</label> <label for="otherObtain"><input type="checkbox" id="otherObtain" onclick="apply_filter()" />
其他/特殊
</label>

<button onclick="clearSelect(this)">清除</button> <button onclick="invertSelect(this)">反选</button>

<label for="DGMindupgraded"><input type="checkbox" id="DGMindupgraded" onclick="apply_filter()" />
心智升级
</label> <label for="nonDGMindupgraded"><input type="checkbox" id="nonDGMindupgraded" onclick="apply_filter()" />
普通人形
</label>
<input type="text" placeholder="输入枪名" id="inputQuery"/><button type="button" onclick="clearItem();apply_filter();">清除</button>
<label for="MOD3Data"><input type="checkbox" id="MOD3Data" checked="true" data-freeze="true" onclick="apply_filter()" />
显示MOD3数据
</label> <label for="iconOnly"><input type="checkbox" id="iconOnly" data-freeze="true" onclick="apply_filter()" />
精简模式
</label>
排序方式(按下两次切换升降序):
<label><input type="radio" id="sortReldate" name="sort">
实装日期
</label> <label><input type="radio" id="sortId" name="sort">
编号
</label> <label><input type="radio" id="sortRarity" name="sort">
稀有度
</label> <label><input type="radio" id="sortHp" name="sort">
生命值
</label> <label><input type="radio" id="sortAtk" name="sort">
伤害
</label> <label><input type="radio" id="sortRate" name="sort">
射速
</label> <label><input type="radio" id="sortAcc" name="sort">
命中
</label> <label><input type="radio" id="sortEva" name="sort">
回避
</label> <label><input type="radio" id="sortArmor" name="sort">
护甲
</label> <label><input type="radio" id="sortProtime" name="sort">
建造时间
</label>
<a id="PrevPage" href="javascript:void(0);" style="visibility: hidden;float: left;">◀上一页</a>

每页<select id="per-page" style="background: white;"><option>50</option><option>100</option><option>200</option><option>500</option></select> 数据载入中,请稍后 第<select id="cur-page" style="background: white;"></select>页

<a id="NextPage" href="javascript:void(0);" style="visibility: visible;float: right;">下一页▶</a>


<script type="text/javascript">

window.DollsData = new Array; $(".dolldata").each( function (index, element){ var o = new Object(); for (var k in element.dataset){ if(k!="artist"){o[k] = element.dataset[k]} } window.DollsData.push(o); element.remove(); })//获取数据

var pushlist=new Array(); var sort_loaded; var inputText = document.getElementById("inputQuery") //文本框定义 var sortList = window.DollsData; // 初始化人形数据

var emptydiv = "\

无结果\<\/div\>"; //无结果label

var inputer = document.getElementById("buttonContainer").getElementsByTagName("input") var baseurl = "\/w\/TDL"

var debounce = function(idle, action){ //去抖函数 文本框使用

 var last
 return function(){
   var ctx = this, args = arguments
   clearTimeout(last)
   last = setTimeout(function(){
       action.apply(ctx, args)
   }, idle)
 }

}; function mod_key(str,obj){ var stat=""; var key=""; var show=$("#MOD3Data").prop("checked"); if(obj.mod==1&&show){stat="mod"}else{stat="base"} switch(str){ case "skill":if (obj.mod==1&&show) {key=`${str}2`}else{key=`${str}1`};break; case "tiles":if (obj.mod==1&&show) {key=`${str}Mod`}else{key=str};break; case "rarity":if (obj.mod==1&&show) {key='modRarity'}else{key=str};break; case "avatar":if (obj.mod==1&&show) {key=str+"Mod"}else{key=str};break; case "affect":if (obj.mod==1&&show) {key="tilesAffectMod"}else{key="tilesAffect"};break; case "mod":if (obj.mod==1&&show) {key=true}else{key=false};break; case "Effect1": case "Effect2":if (obj.mod==1&&show) {key=`modtile${str}Time`}else{key=`tile${str}Time`};break; default:key=`${stat}${str}`;break; } return key; }

//排序函数 var index=$("input[name=sort]"); var lastSort=index[0]; index[0].checked=true;index.attr("data-sort-order","desc"); var sortOrder=-1;

var sortType=new Object(); sortType.sortId=function (a,b){return sortOrder*(a.id - b.id)} sortType.sortRarity=function (a,b){if (a[mod_key("rarity",a)] != b[mod_key("rarity",b)]){return sortOrder*(a[mod_key("rarity",a)] - b[mod_key("rarity",b)])};return sortType.sortId(a,b)} sortType.sortReldate=function (a,b){if (a.timeStamp != b.timeStamp){return sortOrder*(a.timeStamp - b.timeStamp)};return sortType.sortId(a,b)} sortType.sortAtk=function (a,b){if (a[mod_key("Atk",a)] != b[mod_key("Atk",b)]) {return sortOrder*(a[mod_key("Atk",a)] - b[mod_key("Atk",b)])};return sortType.sortRarity(a,b)} sortType.sortHp=function (a,b){if (a[mod_key("Hp",a)] != b[mod_key("Hp",b)]) {return sortOrder*(a[mod_key("Hp",a)] - b[mod_key("Hp",b)])};return sortType.sortRarity(a,b)} sortType.sortEva=function (a,b){if (a[mod_key("Eva",a)] != b[mod_key("Eva",b)]) {return sortOrder*(a[mod_key("Eva",a)] - b[mod_key("Eva",b)])};return sortType.sortRarity(a,b)} sortType.sortAcc=function (a,b){if (a[mod_key("Acc",a)] != b[mod_key("Acc",b)]) {return sortOrder*(a[mod_key("Acc",a)] - b[mod_key("Acc",b)])};return sortType.sortRarity(a,b)} sortType.sortArmor=function (a,b){if (a[mod_key("Armor",a)] != b[mod_key("Armor",b)]) {return sortOrder*(a[mod_key("Armor",a)] - b[mod_key("Armor",b)])};return sortType.sortRarity(a,b)} sortType.sortRate=function (a,b){if (a[mod_key("Rate",a)] != b[mod_key("Rate",b)]) {return sortOrder*(a[mod_key("Rate",a)] - b[mod_key("Rate",b)])};return sortType.sortRarity(a,b)} sortType.sortProtime=function (a,b){if (a.productionTime != b.productionTime){return sortOrder*(a.productionTime > b.productionTime?1:-1)};return sortType.sortRarity(a,b)}

function sortStatusChange(obj){ if(obj==lastSort&&obj.dataset.sortOrder=="desc"){$(obj).attr("data-sort-order","asc")}else{$(obj).attr("data-sort-order","desc")} if(obj.dataset.sortOrder=="asc"){sortOrder=1}else{sortOrder=-1} lastSort=obj; page_switch() } index.on("click",function(){sortStatusChange(this)}); //排序END


function getURLParam(name) { //解析url参数 return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search)||[,""])[1].replace(/\+/g, '%20'))||null; }

var decoded = getURLParam("filter");

function decode_checker(code) {//传输checkbox选择情况 var check_status = code.split(","); var checker = new Array(); for (var i = 0;i<inputer.length;i++){ if(inputer[i].type=="checkbox"){checker.push(inputer[i])} }; for (var i = 0; i < checker.length; i++) { if(check_status[i]=="1"){ checker[i].checked = true;console.log(checker[i].innerHTML); } else { checker[i].checked = false } } }

$(function(){if(getURLParam("filter")){decode_checker(decoded)};if (getURLParam("intext")) {inputText.value = getURLParam("intext")}});

RLQ.push(function(){ //首次载入函数,RLQ.push防止mwapi未载入时加载 if(document.getElementById("section_0")){//判断是否为移动前端 document.getElementById("iconOnly").checked = true; } sortList.sort(function(a,b){if(b.timeStamp != a.timeStamp){return b.timeStamp - a.timeStamp};return b.id - a.id}) apply_filter(); } );

function apply_filter(){//筛选、排序函数 pushlist=new Array(); for (var i = 0; i < sortList.length; i++) { if(filter_box(sortList[i])){

pushlist.push(sortList[i]) } }; var pages; switch($('#per-page').prop("selectedIndex")){ case 0:pages = Math.ceil(pushlist.length/50);break; case 1:pages = Math.ceil(pushlist.length/100);break; case 2:pages = Math.ceil(pushlist.length/200);break; case 3:pages = Math.ceil(pushlist.length/500);break; } if (pages == 1) {$("#PrevPage,#NextPage").css('visibility',"hidden")}else{$("#PrevPage").css('visibility',"hidden");$("#NextPage").css('visibility',"visible")} if(pages != 0){$("#cur-page option").remove();for (var i = 0; i < pages; i++) {$('#cur-page').append(`\<option\>${i+1}\<\/option\>`)};}else{$("#cur-page option").remove();$('#cur-page').append(`\<option\>1\<\/option\>`);}

$('#cur-page option')[0].selected = true; document.getElementById("resultBox").innerHTML = `共${pushlist.length}个`; if (pushlist.length == 0) {$("#position-marker").html(emptydiv);return pushlist} page_switch(); //最终输出函数 };

function page_switch(){ pushlist.sort(function(a,b){return sortType[lastSort.id](a,b)}); var splitList = new Array(); var len; switch($('#per-page').prop("selectedIndex")){ case 0:len=50;break; case 1:len=100;break; case 2:len=200;break; case 3:len=500;break; } var cPage = $("#cur-page").prop("selectedIndex"); for (var i = 0; i < len; i++) { if(!pushlist[i+cPage*len]){break}else{splitList.push(pushlist[i+cPage*len])} } parse_list(splitList) }

function change_page(obj){ var cSel = $("#cur-page").prop("selectedIndex"); if(obj.id=="NextPage"){cSel++}else if(obj.id=="PrevPage"){cSel--} $("#cur-page option")[cSel].selected = true; var cLen = $("#cur-page option").length-1; switch(cSel){ case 0:$("#PrevPage").css('visibility',"hidden");$("#NextPage").css('visibility',"visible");break; case cLen:$("#PrevPage").css('visibility',"visible");$("#NextPage").css('visibility',"hidden");break; default:$("#PrevPage,#NextPage").css('visibility',"visible");break; } page_switch(); }

$("#PrevPage,#NextPage").on("click",function(){change_page(this)}); $("#cur-page").on("change",function(){change_page(this)}); $("#per-page").on("change",function(){apply_filter()});

function parse_list(pushdata){ var htmlLine = "",output = ""; var ministat = document.getElementById("iconOnly");

if (ministat.checked==true){//小图标模式 for (var i in pushdata) { if(mod_key("mod",pushdata[i])){var url_hash = pushdata[i].url+"#MOD3"}else{var url_hash = pushdata[i].url}

var line = `\
\<a href\="${url_hash}" title="${pushdata[i].nameIngame}"\>\${pushdata[i].nameIngame}\<\/a\>\<\/div\>`

htmlLine += line; }

output = `<tbody>
${htmlLine}\<\/td><\/tr><\/tbody><\/table>`

} else {// 表格模式 for (var i in pushdata) { var tileCond = pushdata[i][mod_key("tiles",pushdata[i])].split(","); if(pushdata[i].tileEffect2){var tile_effects = `${pushdata[i].tileEffect1} \+${pushdata[i][mod_key("Effect1",pushdata[i])]}`}else{var tile_effects = `${pushdata[i].tileEffect1} \+${pushdata[i][mod_key("Effect2",pushdata[i])]}
${pushdata[i].tileEffect2} \+${pushdata[i][mod_key("Effect2",pushdata[i])]}`} if(mod_key("mod",pushdata[i])){var url_hash = pushdata[i].url+"#MOD3"}else{var url_hash = pushdata[i].url}

var line = `
No.${pushdata[i].id}<\/td> <a href="${url_hash}" title="${pushdata[i].nameIngame}">${pushdata[i].nameIngame}<\/a><\/b><\/td>
<a href="${url_hash}" title="${pushdata[i].nameIngame}">${pushdata[i].nameIngame}<\/a><\/div><\/td>
<a href="#${pushdata[i].tdollClass}" title="点击筛选${pushdata[i].type}人形">点击筛选${pushdata[i].type}人形<\/a>
${pushdata[i].type}<\/td>
${pushdata[i][mod_key("Hp",pushdata[i])]}
(${pushdata[i][mod_key("Hp",pushdata[i])] * 5})<\/td>
${pushdata[i][mod_key("Atk",pushdata[i])]}<\/td>${pushdata[i][mod_key("Rate",pushdata[i])]}<\/td>${pushdata[i][mod_key("Acc",pushdata[i])]}<\/td>${pushdata[i][mod_key("Eva",pushdata[i])]}<\/td>${pushdata[i][mod_key("Armor",pushdata[i])]}<\/td>${pushdata[i].productionTime} <\/td>${pushdata[i][mod_key("affect",pushdata[i])]}
<tbody>
<\/td><\/td><\/td><\/tr>
<\/td><\/td><\/td><\/tr>
<\/td><\/td><\/td><\/tr><\/tbody><\/table><\/td> ${tile_effects}<\/td> ${pushdata[i][mod_key("skill",pushdata[i])]}<\/td><\/tr>`

htmlLine += line; }

output = ` <thead>
编号<\/th>枪名<\/th>头像
(稀有度)<\/th>
枪种<\/th>生命
(5编制)<\/th>
伤害<\/th>射速<\/th>命中<\/th>回避<\/th>护甲<\/th>建造时间<\/th>影响格&
有效枪种<\/th>
影响效果
(5编制)<\/th>
技能<\/th><\/tr><\/thead>

<tbody>${htmlLine}<\/tbody> <\/table>` } $("#position-marker").html(output); }

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} } apply_filter(); }

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 } apply_filter(); }

function clearItem(){inputText.value = ""} //清除输入框内容

function mod_check(query){ //心智升级人形判断函数 var modcheck = document.getElementById('DGMindupgraded').checked; var normalcheck = document.getElementById('nonDGMindupgraded').checked; if (!(modcheck^normalcheck)){ return true; } else { if(query.mod == 1){ if(modcheck){return true;}else{return false;} } else { if(normalcheck){return true;}else{return false;} } } }

function text_check(query){ //文本输入框判断(现仅实现判断枪名) if (!inputText){return true}; var a = new RegExp(inputText.value,"i").test(query.nameIngame); if (a) { return true } else { return false } }

function rarity_check(query){ //稀有度判断 var rCheck = new Array(); var nt=0; for (var i = 1;i <= 6;i++){ rCheck[i] = document.getElementById('rarity'+i).checked; if (rCheck[i]) {nt++} } if (nt == 0){return true} else { if(rCheck[query[mod_key("rarity",query)]]){return true} else {return false} } }

function type_check(query){ //枪种判断 var tCheck = new Array(); var nt=0; var type = ["MG","RF","AR","HG","SG","SMG"] for (var i = 0;i < type.length ;i++){ tCheck[type[i]] = document.getElementById(type[i]+'Doll').checked; if (tCheck[type[i]]) {nt++} } if (nt == 0){return true} else { if(tCheck[query.tdollClass]){return true} else {return false} } } /*------------------------------------------------------------------------------------------/ / 影响格查询部分 START / / 影响格查询实现思路来源于少女前线英文维基 https://en.gfwiki.com/wiki/T-Doll_Tile_Search/ / / 本代码作者 http://www.gfwiki.org/w/user:Mikumikuer/ / / Doll tile Search idea inspired by https://en.gfwiki.com/wiki/T-Doll_Tile_Search / / coding by http://www.gfwiki.org/w/user:Mikumikuer/ / /------------------------------------------------------------------------------------------*/ var tileshook = document.querySelectorAll("table.tileSearch td"); for (var i = 0 ; i < tileshook.length ; i++){ tileshook[i].onclick = function(){activeTile(this)} }

function activeTile(tile){//切换影响格状态 if(!tile.className){tile.className="active"}else{tile.className=""} apply_filter(); }

function getEffectrange(){//获取查询影响位置 var effect_tileSet = new Array(3) var querySet = document.getElementById("effectarea").getElementsByTagName("tr"); for (var i = 0 ;i <querySet.length ;i++ ){ effect_tileSet[i] = new Array(3); var queryCol = querySet[i].getElementsByTagName("td") for (var j = 0; j < queryCol.length; j++) { if(!queryCol[j].className){ effect_tileSet[i][j] = 0 } else { effect_tileSet[i][j] = 1 } } } return effect_tileSet; }

function getSelfpos() {//获取查询人形位置 去除同位置有查询影响格的位置 var Self_pos = new Array(); var querySet = document.getElementById("selfpos").getElementsByTagName("tr") for (var i = 0 ;i <querySet.length ;i++ ){ var queryCol = querySet[i].getElementsByTagName("td") for (var j = 0; j < queryCol.length; j++) { if(!!queryCol[j].className){ if(document.getElementById("effectarea").getElementsByTagName("tr")[i].getElementsByTagName("td")[j].className == ""){Self_pos.push({x:i,y:j})} } } } return Self_pos; }

function combineTilesArray(dollpos) { var combination = new Array(); for (var i = 0; i < dollpos.length; i++) { combination[i]=getEffectrange(); combination[i][dollpos[i].x][dollpos[i].y] = 2 } return combination; }

function add_offsetArray(deltaX,deltaY,targetArray){ var transArray = [[0,0,0],[0,0,0],[0,0,0]]; var count=0; for (var i = 0; i < targetArray.length; i++) { transArray[i+deltaX]=new Array(); for (var j = 0; j < targetArray[i].length; j++) { count++ if(i+deltaX>2||i+deltaX<0){if(targetArray[i][j]==1){return false}}; if(j+deltaY>2||j+deltaY<0){if(targetArray[i][j]==1){return false}}; if(targetArray[i][j]==0){continue} transArray[i+deltaX][j+deltaY]=targetArray[i][j]; } } return transArray }

function compare_tiles(queryTile,dollTile){ var point = 0; for (var i = 0; i < dollTile.length; i++) { for (var j = 0; j < dollTile[i].length; j++) { if(!queryTile[i][j]){if(dollTile[i][j]==0){point++}} else if(queryTile[i][j]==1){if(queryTile[i][j]==dollTile[i][j]){point++}else{point-=10}} else{continue} } } if(point>0){return true}else{return false} }

function tiles_check(query){//影响格查找人形 if(document.querySelectorAll("table#effectarea td.active").length==0){return true} var tdoll_tile_data = query[mod_key("tiles",query)].split(',') for (var i = 0; i < tdoll_tile_data.length; i++) { if(tdoll_tile_data[i]==3){tdoll_tile_data[i]="1"} } var tdoll_tile= new Array(3); var count = 0 for (var i = 0 ;i < 3 ;i++ ){ tdoll_tile[i] = new Array(3); for (var j = 0; j < 3 ; j++) { tdoll_tile[i][j]=parseInt(tdoll_tile_data[count]);if(tdoll_tile_data[count]==2){var tdoll_position = {x:i,y:j};}count++; } } var possible_dollpos = getSelfpos(); var valid_combination = combineTilesArray(getSelfpos()); for (var k = 0; k < possible_dollpos.length; k++) {//将要查询的人形影响格偏移至提供的人形影响格数据位置 var offset_x = tdoll_position.x - possible_dollpos[k].x;//x偏移值 var offset_y = tdoll_position.y - possible_dollpos[k].y;//y偏移值 var offset_tile = add_offsetArray(offset_x,offset_y,valid_combination[k]);//偏移的影响格矩阵,偏移后超出3x3 返回false if(!offset_tile){continue}; var result = compare_tiles(offset_tile,tdoll_tile); if(!result){continue}else{return true} } return false } /*----------------------/ / 影响格查询部分 END / /----------------------*/

function obtainMethod_check(query){ //获取方式 var checkStat = []; checkStat.push(document.getElementById('buildObtain').checked,document.getElementById('dropObtain').checked,document.getElementById('otherObtain').checked); var j = 0; for (var i = 0;i<checkStat.length;i++){if(checkStat[i]==false){continue}else{j++}} if (j==0){return true;} if(checkStat[0]==true){if(query.obtainBuild==1){return true;}} if(checkStat[1]==true){if(query.obtainDrop==1){return true;}} if(checkStat[2]==true){if(query.obtainSpecial==1){return true;}} return false; }

function filter_box(cond){ //筛选条件汇总 return mod_check(cond)&&text_check(cond)&&rarity_check(cond)&&type_check(cond)&&tiles_check(cond)&&obtainMethod_check(cond); }

function classIconFilter(){ //人形图标筛选 var tab = decodeURIComponent(location.hash.replace('#', ))+"Doll"; clearSelect(document.getElementById(tab)); document.getElementById(tab).checked = 'true'; apply_filter();location.hash=; }

$(window).on('hashchange', function(e){if(decodeURIComponent(location.hash.replace('#', ))!=){classIconFilter();}});

$("#inputQuery").on('input propertychange',debounce(250, function (){apply_filter();}));

</script>