打开主菜单
少前百科GFwiki
β
搜索
查看“Widget:Tdollquery2”的源代码
←
Widget:Tdollquery2
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
自动确认用户
您没有权限编辑
Widget
名字空间内的页面。
您可以查看与复制此页面的源代码。
<includeonly><style type="text/css"> /* 紧凑模式 */ table#Tdolltable.cardMode > tbody { display:flex; flex-direction: row; flex-wrap: wrap; align-content: center; justify-content: flex-start; align-items: center; background:transparent; width:100%; } table#Tdolltable.cardMode thead {display:none} table#Tdolltable.cardMode > tbody > tr { flex: 1 1 340px; grid-template-columns: 16.6% 16.6% 16.6% 16.6% 16.6% 1fr; grid-template-rows: initial; grid-template-areas: initial; grid-auto-flow: row; grid-auto-columns: initial; grid-auto-rows: initial; display: grid; margin: 2px; padding: 1px; border: 1px solid #f4c430; min-width:330px; } table#Tdolltable.cardMode > tbody > tr > td { background-color:rgba(119 119 119 /0.4); margin:1px; border-width:0px !important; display:flex; flex-direction: column; align-content: center; align-items: center; justify-content: center; min-width:40px !important; flex-wrap: nowrap; max-width: none !important; } table#Tdolltable.cardMode > tbody > tr > td:nth-child(1) {grid-column: 1/span 2;grid-row-start:1;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(2) {grid-column: 1/span 2;grid-row-start:2;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(3) {grid-column: 5/span 2;grid-row:1/span 2;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(4) {grid-column: 3/span 2;grid-row:1/span 2;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(4) br {content:" ";display:none} table#Tdolltable.cardMode > tbody > tr > td:nth-child(4)::before {content:"人形类别";font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(5) {grid-column: auto/span 1;grid-row-start:span 1} table#Tdolltable.cardMode > tbody > tr > td:nth-child(5)::before {content:"生命值";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(6) {grid-column: auto/span 1;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(6)::before {content:"伤害\A";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(7) {grid-column: auto/span 1;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(7)::before {content:"射速\A";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(8) {grid-column: auto/span 1;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(8)::before {content:"命中\A";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(9) {grid-column: auto/span 1;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(9)::before {content:"回避\A";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(10) {grid-column: auto/span 1;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(10)::before {content:"护甲\A";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable > tbody > tr > td:nth-child(10):empty::after {content:"N/A"} table#Tdolltable.cardMode > tbody > tr > td:nth-child(11) {grid-column: auto/span 2;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(11)::before {content:"建造时间\A";white-space:pre;font-weight:bold;color:#f4c430} table#Tdolltable.cardMode > tbody > tr > td:nth-child(12) {grid-column: auto/span 4;min-height: 85px;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(12) div {margin:4px} table#Tdolltable.cardMode > tbody > tr > td:nth-child(13) {grid-column: auto/span 6;min-height: 4rem;} table#Tdolltable.cardMode > tbody > tr > td:nth-child(13)::before {content:"获得方式\A";white-space:pre;font-weight:bold;color:#f4c430} /* 紧凑end */ .error {background-color: red;font-size: inherit;color: inherit;} .skin-vector #buttonContainer div>label{min-width:118px} div.divider { position: relative; margin-top: 3px !important; margin-bottom: 6px !important; height: 1px; } .div-transparent:before { content: ""; position: absolute; top: 0; left: 0%; right: 0%; width: 100%; height: 1px; background-image:linear-gradient(to right, #f4c430 80%, transparent); } div.tileSearchCond { display: inline-block; width: 100px; } .unable { opacity: 0.4; pointer-events: none; } 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 { 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; } #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; } #miniTdolltable{ overflow: hidden; margin: 0px; display: table; } #miniTdolltable .TDavatar:hover {transform:scale(1.05);z-index:10} #miniTdolltable .TDavatar{ transition: 0.2s all ease-in-out; } #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; } #Tdolltable{ margin: 0px; } #tableempty{ background-size: 50px; height: 50px; font-size: 1.5rem; color: red; text-align: center; } div#buttonContainer > div#TDollQuery { vertical-align: baseline; width: auto; display: grid; overflow: hidden; transition: all 0.1s ease-in; grid-template-columns: 1fr 60px; margin: 0.5rem 0; height: 30px; } 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: 10px; 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%} } #Tdolltable > tbody > tr > td.tiles >div {display: grid;grid-template-columns: 50% 1fr;width: 100%;} td.tiles table { margin:auto; border-spacing: 2px; background: rgba(255, 255, 255, 0.33); border: 0px; width:55px; } .tilesTable td{padding:10px;} .tilesTable td.color0{background:#444444;} .tilesTable td.color1{background:#00ffff;} .tilesTable td.color2{background:#ffffff;} .tilesTable td.color3{background:#FFC400;} #buttonContainer div>label>input { display:none; } div#buttonContainer div:not(#TDollQuery) button { padding: 8px 15px; height: auto; margin-bottom: 1px !important; } div#buttonContainer div:not(.divider) { margin:0; margin-bottom: 3px !important; } #buttonContainer div>label { display: inline-block; margin: 0; position: relative; overflow: hidden; vertical-align: top; } #buttonContainer div>label>div { padding: 5px 10px; text-align: center; border: #dddddd solid 1px; user-select: none; overflow: hidden; position: relative; } #buttonContainer div>label>input:checked + div { border:#f4c430 solid 1px; color:#f4c430; } #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; } #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; } <!--{if ($hideinput)==1}-->div#TDollQuery {display:none;}<!--{/if}--> </style><div style="max-width: 66rem;"> <div id="buttonContainer" style="margin: 2px;"> <span>[<a href="javascript:void(0);">全清</a>]</span> <div style="display: block;padding-left: 1rem;margin: 0.1rem auto;">点选下列格子查询人形影响格布局:<br><div class="tileSearchCond">影响格位置: <table class="tileSearch" id="effectarea" align="center" cellpadding="0" cellspacing="0" style="border-spacing: 2px;background: rgba(255, 255, 255, 0.33);border: 0px;"> <tbody><tr><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td></tr> <tr><td></td><td></td><td></td></tr> </tbody></table></div> <div class="tileSearchCond">自身位置: <table class="tileSearch" id="selfpos" align="center" cellpadding="0" cellspacing="0" style="border-spacing: 2px;background: rgba(255, 255, 255, 0.33);border: 0px;"> <tbody><tr><td class="active"></td><td class="active"></td><td class="active"></td></tr> <tr><td class="active"></td><td class="active"></td><td class="active"></td></tr> <tr><td class="active"></td><td class="active"></td><td class="active"></td></tr> </tbody></table></div></div> <div class="tilesAffectBox">影响对象选择: <div id="affectChecker" style="display: block;"> <button class="clearSelect">清除</button> <button class="invertSelect">反选</button> <label for="HGaff"><input type="checkbox" id="HGaff" class="filter_item"><div>影响HG</div></label> <label for="SMGaff"><input type="checkbox" id="SMGaff" class="filter_item"><div>影响SMG</div></label> <label for="ARaff"><input type="checkbox" id="ARaff" class="filter_item"><div>影响AR</div></label> <label for="RFaff"><input type="checkbox" id="RFaff" class="filter_item"><div>影响RF</div></label> <label for="MGaff"><input type="checkbox" id="MGaff" class="filter_item"><div>影响MG</div></label> <label for="SGaff"><input type="checkbox" id="SGaff" class="filter_item"><div>影响SG</div></label> <label for="ALLaff"><input type="checkbox" id="ALLaff" class="filter_item"><div>影响ALL</div></label> </div> </div> <div class="divider div-transparent"></div> <div> <button class="clearSelect">清除</button> <button class="invertSelect">反选</button> <label for="HGDoll"><input type="checkbox" id="HGDoll" class="filter_item" /><div>手枪人形</div></label> <label for="SMGDoll"><input type="checkbox" id="SMGDoll" class="filter_item" /><div>冲锋枪人形</div></label> <label for="ARDoll"><input type="checkbox" id="ARDoll" class="filter_item" /><div>突击步枪人形</div></label> <label for="RFDoll"><input type="checkbox" id="RFDoll" class="filter_item" /><div>步枪人形</div></label> <label for="MGDoll"><input type="checkbox" id="MGDoll" class="filter_item" /><div>机枪人形</div></label> <label for="SGDoll"><input type="checkbox" id="SGDoll" class="filter_item" /><div>霰弹枪人形</div></label> </div> <div class="divider div-transparent"></div> <div> <button class="clearSelect">清除</button> <button class="invertSelect">反选</button> <label for="rarity2"><input type="checkbox" id="rarity2" class="filter_item" /><div>★★</div></label> <label for="rarity3"><input type="checkbox" id="rarity3" class="filter_item" /><div>★★★</div></label> <label for="rarity4"><input type="checkbox" id="rarity4" class="filter_item" /><div>★★★★</div></label> <label for="rarity5"><input type="checkbox" id="rarity5" class="filter_item" /><div>★★★★★</div></label> <label for="rarity6"><input type="checkbox" id="rarity6" class="filter_item" /><div>★★★★★★</div></label> <label for="rarity1"><input type="checkbox" id="rarity1" class="filter_item" /><div>★EXTRA</div></label> </div> <div class="divider div-transparent"></div> <div id="obtainWays"> <button class="clearSelect">清除</button> <button class="invertSelect">反选</button> <label for="buildObtain" title="常规制造/重型制造"><input type="checkbox" id="buildObtain" class="filter_item" /><div>建造获得</div></label> <label for="dropObtain" title="通常战役/战役S评价/常驻活动"><input type="checkbox" id="dropObtain" class="filter_item" /><div>常驻救援</div></label> <label for="otherObtain" title="主线剧情/成就奖励"><input type="checkbox" id="otherObtain" class="filter_item" /><div>任务奖励</div></label> <label for="specialObtain" title="限时战役/限时活动/限时商城/作战纲领/签到奖励/密钥活动"><input type="checkbox" id="specialObtain" class="filter_item" /><div>限时活动</div></label> <label for="unableObtain" title="无法获取"><input type="checkbox" id="unableObtain" class="filter_item" /><div>无法获取</div></label> </div> <div class="divider div-transparent"></div> <div> <button class="clearSelect">清除</button> <button class="invertSelect">反选</button> <label for="DGMindupgraded"><input type="checkbox" id="DGMindupgraded" class="filter_item" /><div>心智升级</div></label> <label for="nonDGMindupgraded"><input type="checkbox" id="nonDGMindupgraded" class="filter_item" /><div>普通人形</div></label> </div> <div id="TDollQuery"><input type="text" placeholder="输入枪名" id="inputQuery"/><button type="button" onclick="clearItem();apply_filter();">清除</button></div> <div > <div style="float:right;clear: right;"> <label for="tableMode"><input type="radio" id="tableMode" data-freeze="true" class="filter_item" name="showType" checked/><div>表格模式</div></label> <label for="cardMode"><input type="radio" id="cardMode" data-freeze="true" class="filter_item" name="showType" /><div>卡片模式</div></label> <label for="iconOnly"><input type="radio" id="iconOnly" data-freeze="true" class="filter_item" name="showType" /><div>精简模式</div></label> </div> <label for="MOD3Data"><input type="checkbox" id="MOD3Data" checked="true" data-freeze="true" class="filter_item" /><div>显示MOD3数据</div></label> </div> </div> <div class="sort-list"> <div>排序方式(按下两次切换升降序):</div> <label><input type="radio" id="sortReldate" name="sort"><div>实装日期</div></label> <label><input type="radio" id="sortId" name="sort"><div>编号</div></label> <label><input type="radio" id="sortRarity" name="sort"><div>稀有度</div></label> <label><input type="radio" id="sortHp" name="sort"><div>生命值</div></label> <label><input type="radio" id="sortAtk" name="sort"><div>伤害</div></label> <label><input type="radio" id="sortRate" name="sort"><div>射速</div></label> <label><input type="radio" id="sortAcc" name="sort"><div>命中</div></label> <label><input type="radio" id="sortEva" name="sort"><div>回避</div></label> <label><input type="radio" id="sortArmor" name="sort"><div>护甲</div></label> <label><input type="radio" id="sortProtime" name="sort"><div>建造时间</div></label> </div> <div id="page-info-div" style="display: block;position: relative;"><a id="PrevPage" href="javascript:void(0);" style="visibility: hidden;float: left;">◀上一页</a> <span id="per-page-span">每页<select id="per-page" style="background: white;"><option>50</option><option>100</option><option>200</option><option>500</option></select></span> <span id="resultBox" style="position: absolute;width: 100%;text-align: center;left: 0px;pointer-events: none;">数据载入中,请稍后</span> <span style="position:absolute;right:16%;">第<select id="cur-page" style="background: white;"></select>页</span> <a id="NextPage" href="javascript:void(0);" style="visibility: visible;float: right;">下一页▶</a></div> <div id="position-marker"></div> </div><BR><script type="text/javascript">(window.RLQ=window.RLQ||[]).push(function(){ 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 class='' id=\"tableempty\"\>无结果\<\/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){return a[mod_key("rarity",a)]!=b[mod_key("rarity",b)]?sortOrder*(a[mod_key("rarity",a)]-b[mod_key("rarity",b)]):sortType.sortId(a,b)} sortType.sortReldate=function (a,b){return a.timeStamp!=b.timeStamp?sortOrder*(a.timeStamp-b.timeStamp):sortType.sortId(a,b)} sortType.sortAtk=function(a,b){return a[mod_key("Atk",a)]!=b[mod_key("Atk",b)]?sortOrder*(a[mod_key("Atk",a)]-b[mod_key("Atk",b)]):sortType.sortRarity(a,b)}; sortType.sortHp=function(a,b){return a[mod_key("Hp",a)]!=b[mod_key("Hp",b)]?sortOrder*(a[mod_key("Hp",a)]-b[mod_key("Hp",b)]):sortType.sortRarity(a,b)} sortType.sortEva=function(a,b){return a[mod_key("Eva",a)]!=b[mod_key("Eva",b)]?sortOrder*(a[mod_key("Eva",a)]-b[mod_key("Eva",b)]):sortType.sortRarity(a,b)} sortType.sortAcc=function(a,b){return a[mod_key("Acc",a)]!=b[mod_key("Acc",b)]?sortOrder*(a[mod_key("Acc",a)]-b[mod_key("Acc",b)]):sortType.sortRarity(a,b)}; sortType.sortArmor=function(a,b){return a[mod_key("Armor",a)]||b[mod_key("Armor",b)]?a[mod_key("Armor",a)]?b[mod_key("Armor",b)]?a[mod_key("Armor",a)]!=b[mod_key("Armor",b)]?sortOrder*(a[mod_key("Armor",a)]-b[mod_key("Armor",b)]):sortType.sortRarity(a,b):-1:1:0}; sortType.sortRate=function(a,b){return a[mod_key("Rate",a)]!=b[mod_key("Rate",b)]?sortOrder*(a[mod_key("Rate",a)]-b[mod_key("Rate",b)]):sortType.sortRarity(a,b)}; sortType.sortProtime=function (a,b){return a.productionTime=="N/A"&&b.productionTime=="N/A"?0:a.productionTime=="N/A"?1:b.productionTime=="N/A"?-1:a.productionTime!=b.productionTime?sortOrder*(a.productionTime>b.productionTime?1:-1):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; } else { checker[i].checked = false } } } if(document.getElementById("section_0")){//判断是否为移动前端 document.getElementById("cardMode").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(){if(getURLParam("filter")){decode_checker(decoded)};if (getURLParam("intext")) {inputText.value = getURLParam("intext")};apply_filter()}); window.apply_filter = function(){apply_filter()} function apply_filter(debug,debugdata){//筛选、排序函数 pushlist=new Array(); if(debug==true){pushlist=debugdata}else{ 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) //console.log(window.DollsData.filter(function(e){return pushlist.indexOf(e)==-1})) } 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 debug_marker(key,data){ if(!data.error){return ""}else if(!!data.error[key]){return `class="${data.error[key]}"`} return ""; } function posDet(tiles){ var pos=new Object; for (var i = 0; i < tiles.length; i++) { for (var j = 0; j < tiles[i].length; j++) { if(tiles[i][j]==2){pos.x=i;pos.y=j;return pos;break} } } } function 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++) { transArray[i+deltaX][j+deltaY]=targetArray[i][j]; } } return transArray } function tileDiff(pushdata) { var tCom = pushdata.tiles.split(",") var newArr=[] while(tCom.length) newArr.push(tCom.splice(0,3)) tCom = newArr;newArr=[]; var tOut = pushdata.tilesMod.split(",") while(tOut.length) newArr.push(tOut.splice(0,3)) tOut = newArr; var temp = offsetArray(posDet(tOut).x-posDet(tCom).x,posDet(tOut).y-posDet(tCom).y,tCom); var final=[]; for (var i = 0; i < 3; i++) { for (var j = 0; j < 3; j++) { if(parseInt(tOut[i][j])!=parseInt(temp[i][j])&&parseInt(tOut[i][j])==1){final.push(3)}else{final.push(parseInt(tOut[i][j]))}; } } return final } 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 = `\<div class\="TDavatar rare${pushdata[i][mod_key("rarity",pushdata[i])]}" style=""\>\<a href\="${url_hash}" title="${pushdata[i].nameIngame}"\>\<img alt="${pushdata[i].nameIngame}" src="${pushdata[i][mod_key("avatar",pushdata[i])]}" width="100" height="100" \>\<\/a\>\<\/div\>` htmlLine += line; } output = `<table id="miniTdolltable" style=""><tbody><tr><td>${htmlLine}\<\/td><\/tr><\/tbody><\/table>` } else {// 表格模式 for (var i in pushdata) { if(mod_key("mod",pushdata[i])){var tileCond = tileDiff(pushdata[i])}else{var tileCond = pushdata[i].tiles.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("Effect1",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} var line = `<tr class="tdollqueryline"> <td>No.${pushdata[i].id}<\/td> <td><b><a href="${url_hash}" title="${pushdata[i].nameIngame}">${pushdata[i].nameIngame}<\/a><\/b><\/td> <td ${debug_marker("e3",pushdata[i])}><div class="TDavatar rare${pushdata[i][mod_key("rarity",pushdata[i])]}"><a href="${url_hash}" title="${pushdata[i].nameIngame}"><img alt="${pushdata[i].nameIngame}" src="${pushdata[i][mod_key("avatar",pushdata[i])]}" width="100" height="100"><\/a><\/div><\/td> <td><a href="#${pushdata[i].tdollClass}" title="点击筛选${pushdata[i].type}人形"><img alt="点击筛选${pushdata[i].type}人形" src="${pushdata[i].typeImg}" width="48" height="27"><\/a><br>${pushdata[i].type}<\/td> <td ${debug_marker("e5",pushdata[i])}>${pushdata[i][mod_key("Hp",pushdata[i])]}<br>(${pushdata[i][mod_key("Hp",pushdata[i])] * 5})<\/td><td ${debug_marker("e6",pushdata[i])}>${pushdata[i][mod_key("Atk",pushdata[i])]}<\/td><td ${debug_marker("e7",pushdata[i])}>${pushdata[i][mod_key("Rate",pushdata[i])]}<\/td><td ${debug_marker("e8",pushdata[i])}>${pushdata[i][mod_key("Acc",pushdata[i])]}<\/td><td ${debug_marker("e9",pushdata[i])}>${pushdata[i][mod_key("Eva",pushdata[i])]}<\/td><td ${debug_marker("e10",pushdata[i])}>${pushdata[i][mod_key("Armor",pushdata[i])]}<\/td><td ${debug_marker("e11",pushdata[i])}>${pushdata[i].productionTime} <\/td><td class="tiles" ${debug_marker("e13",pushdata[i])}><div><div>${pushdata[i][mod_key("affect",pushdata[i])]}<br>${tile_effects}<\/div><table class="tilesTable"><tbody> <tr><td class="color${tileCond[0]}"><\/td><td class="color${tileCond[1]}"><\/td><td class="color${tileCond[2]}"><\/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><\/div><\/td> <td>${pushdata[i].obtainMethod}<\/td><\/tr>` htmlLine += line; } output = `<table id="Tdolltable" class="stattable logo${document.querySelector("#cardMode").checked?" cardMode":""}" style="text-align:center;mid-width:300px;width:100%"> <thead><tr><th style="width: 44px;min-width: 44px;">编号<\/th><th style="width: 70px;min-width: 70px;">枪名<\/th><th style="width: 50px;min-width: 50px;">头像<br>(稀有度)<\/th><th style="width: 50px;min-width: 50px;">枪种<\/th><th>生命<br>(5编制)<\/th><th>伤害<\/th><th>射速<\/th><th>命中<\/th><th>回避<\/th><th>护甲<\/th><th>建造时间<\/th><th>影响格&有效枪种&影响效果<br>(5编制)<\/th><th style="width:130px;min-width:130px;">获得方式<\/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 rarityDisable(box){ var modstat = box.checked; var target = document.querySelector('#rarity6'); if (!modstat){target.checked = false;target.parentNode.classList.add("unable") }else{target.parentNode.classList.remove("unable")} } $('.clearSelect').on("click",function(){clearSelect(this)}); $('.invertSelect').on("click",function(){invertSelect(this)}); $('#TDollQuery button').on("click",function(){clearItem();apply_filter();}); $('#buttonContainer>span>a').on("click",function(){var tilesArea = document.querySelectorAll("#effectarea td");var tilesSelf = document.querySelectorAll("#selfpos td");for(var i in tilesArea){tilesArea[i].className=""};for(var i in tilesSelf){tilesSelf[i].className="active"};clearSelect(this.parentNode)}) $('#MOD3Data').on("click",function(){rarityDisable(this);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}; if(inputText.value.indexOf("t:")>-1&&query.productionTime.split(":").length>1){ var time = inputText.value.substr(inputText.value.indexOf("t:")+2,4); var a = query.productionTime.split(":").join("").substr(0,4)==time; }else{ 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} } } function tileAffect_check(query){ //影响格对象判断 var affectText = query[mod_key("affect",query)].split('/'); var keyword = {MGaff:"机枪",RFaff:"步枪",ARaff:"突击步枪",HGaff:"手枪",SGaff:"霰弹枪",SMGaff:"冲锋枪",ALLaff:"全体"}; var taCheck = new Array(); var taNum = 0; for (var i in keyword){ if(document.getElementById(i).checked){taNum++} for (var j=0;j<affectText.length;j++){ if(affectText[j].lastIndexOf(keyword[i])==0){taCheck.push(i)} } } if (taNum==0){return true} else { for(var i=0;i<taCheck.length;i++){if(document.getElementById(taCheck[i]).checked){return true}};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 checkMethod(element,testString){ var strprobe=element.split("/"); var k=0; for (var i = 0;i<strprobe.length;i++){ if(testString.indexOf(strprobe[i])>-1){k++} } if(k>0){return true}else{return false} } function obtainMethod_check(query){ //获取方式 var checkStat = document.querySelectorAll("#obtainWays input") var j = 0;var k = 0; for (var i = 0;i<checkStat.length;i++){if(checkStat[i].checked==true){if(checkMethod(checkStat[i].labels[0].title,query.obtainMethod)){j++}}else{k++}} if(j>0||k==checkStat.length){return true}else{return false} } function filter_box(cond){ //筛选条件汇总 return tileAffect_check(cond)&&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();})); $('.filter_item').on("change",function(){apply_filter()}); window.runDiagnose = function (){ var diagnose_result=new Array(); for (var k in window.DollsData) { var test = window.DollsData[k]; test.error=new Object; var error = 0; if(test.avatar.indexOf("default")>-1){test.error.e3="error";error++} if(!test.baseHp){test.error.e5="error";error++} if(!test.baseAtk){test.error.e6="error";error++} if(!test.baseRate){test.error.e7="error";error++} if(!test.baseAcc){test.error.e8="error";error++} if(!test.baseEva){test.error.e9="error";error++} if(!test.baseArmor){if(test.tdollClass=="SG"){test.error.e10="error";error++}} if(test.mod=="1"){ if(test.avatarMod.indexOf("default")>-1){test.error.e3="error";error++} if(!test.modHp){test.error.e5="error";error++} if(!test.modAtk){test.error.e6="error";error++} if(!test.modRate){test.error.e7="error";error++} if(!test.modAcc){test.error.e8="error";error++} if(!test.modEva){test.error.e9="error";error++} if(!test.modArmor){if(test.tdollClass=="SG"){test.error.e10="error";error++}} } if(test.obtainBuild==1&&test.productionTime=="N/A"){test.error.e11="error";error++} if(test.tileEffect1.indexOf("%")>-1||test.tileEffect1Time==""||test.tileEffect1Time.indexOf("%%")>-1){test.error.e13="error";error++} if(test.tileEffect2!=""){if(test.tileEffect2.indexOf("%")>-1||test.tileEffect2Time==""||test.tileEffect2Time.indexOf("%%")>-1){test.error.e13="error";error++}} if (error==0){continue}else{diagnose_result.push(test)} } console.log(diagnose_result) apply_filter(true,diagnose_result) } })</script></includeonly>
返回至
Widget:Tdollquery2
。