注册 | 登录

游侠NETSHOW论坛





游侠NETSHOW论坛 游侠NETSHOW论坛 金书红颜录 [11/18更新1.1.4版,大概是最终版]写了一个用于辅助路线 ...
查看: 5883|回复: 24
打印 上一主题 下一主题

[讨论] [11/18更新1.1.4版,大概是最终版]写了一个用于辅助路线武功规划的脚本 [复制链接]

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
跳转到指定楼层
楼主
发表于 2015-11-9 16:58:01 |只看该作者 |倒序浏览
本帖最后由 myhead 于 2015-11-18 19:02 编辑

脚本页面:
https://greasyfork.org/zh-CN/scripts/13722-route-assistant
相关维基页面:
http://tpr.inkit.org/tpr5:route
书签调用:
(请直接将楼下的代码保存为书签地址,或下载附件中routeBookmarklet.txt中的文本存为书签的地址,书签名称可自取)

介绍:
该脚本基于相关维基页面的文本内容,提供路线分支选项供规划所用,支持路线绑定功能以及所选路线导入导出功能。在选定路线后,可根据所选择的路线以及周目汇总出该路线所有可以获得的武功,按武功类别分组,以相应系数从小到大的顺序输出武功条目,在数据输出完成后可使用相关选项对输出结果进行过滤。
脚本本身的操作很简单,只要点点点就行了。
而脚本所真正依赖的是维基页面上的武功数据,此前我已大致将当时维基电子书中的武功数据录入,但仍有不少细节信息待完善。就算以后游戏版本更新了,只要编辑维基页面中的相关数据就能保证规划器依然有效,这是这种基于维基的脚本实现方式的优势。

使用方法:
方法一、使用firefox的用户可在安装greasemonkey扩展后,进入脚本页面安装此脚本,此后只要打开相关维基页面即可自动使用。chrome也有相应的扩展,还有一些原生支持javascript的浏览器都可以用类似的方式安装该脚本,因为我只用firefox,所以firefox以外的浏览器该具体怎么做我也不清楚了,请自行尝试。
方法二、将下面提供的代码保存为书签,进入维基页面后点击保存的书签直接使用。
任一方法都可以正确运行脚本。
(补充,我看到Crabby把greasyfork的脚本地址加到网页源码里去了,也就是说,如果你能正常访问greasyfork的话,理论上不用安装插件不用特殊操作也可以直接使用脚本。)

如果想离线使用该路线武功规划脚本,可将维基网页保存(只需要保存html)后,在下载好的页面使用书签方式调用脚本即可;
或者同时下载维基网页和下面提供的route_simple.js文件到同一个文件夹,使用文本编辑器打开网页,在文件尾部的</body>前面添加这么一行:
  1. <script src="route_simple.js"></script>
复制代码
即可在打开该页面后自动运行脚本。

有什么意见或者发现的bug可在此帖反馈。


感谢@Crabby

附件内容:route_simple.js 中为纯净格式的javascript脚本,可自行在支持的浏览器或插件中安装使用,routeBookmarklet.zip中为存有书签地址的文本文件,请将其中内容保存为书签地址使用。


15/11/10 更新1.1版:改进程序逻辑,增加了部分功能。
维基页面的武功数据已基本完善。
15/11/10 更新1.1.1:恢复选项中显示路线绑定。
15/11/10 更新1.1.2:修正排序函数的错误。
15/11/11 更新1.1.3:格式美化。
15/11/18 更新1.1.4:修正脚本匹配网址,略微修改UI,增加路线导入导出功能。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
已有 5 人评分金钱 人气 收起 理由
慕容玄恭 + 40 + 1 狂拽炫酷吊炸天
odust + 10 狂拽炫酷吊炸天
tdwyagon + 3 沼跃鱼已经看穿了一切
zc013 + 20 + 3 高端大气上档次
thirdone + 1 狂拽炫酷吊炸天

总评分: 金钱 + 60  人气 + 18   查看全部评分

使用道具 举报

帖子
3657
精华
0
积分
1880
金钱
14206
荣誉
5
人气
10
评议
0
沙发
发表于 2015-11-9 17:03:23 |只看该作者
斜体字看着好费劲啊

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
板凳
发表于 2015-11-9 17:07:46 |只看该作者
本帖最后由 myhead 于 2015-11-18 19:04 编辑

请复制以下内容存入书签地址,保存后在相应维基页面即可使用:(注:IE浏览器的地址栏允许长度非常有限,可能无法通过这种方式使用脚本)
  1. javascript:var aC1= [],aRoute=[],oResult={},sOrigin='',sResult='',t;window.mainDiv= document.createElement('div'),window.navi= document.createElement('div'),window.div1= document.createElement('div'),window.div2= document.createElement('div'),window.div2p= document.createElement('div'),window.div2f= document.createElement('div'),window.round= document.createElement('select'),window.speci= document.createElement('span'),window.toggle= document.createElement('button'),window.oTarget= {};toggle.innerHTML="打开路线武功规划器";toggle.onclick=function(){if(sOrigin=== '') main();mainDiv.style.display='';};window.onload=function(){toggle.id='__toggle';mainDiv.id='__mainDiv';oTarget= document.getElementById('target');oTarget.insertBefore(toggle,oTarget.firstChild);};function main(){if(!oTarget){alert('找不到源数据');return;}sOrigin=oTarget.textContent;var rP1= /#(.+)/g,sMR='';for(var i=0,aTemp;i<100;i++) {aTemp=rP1.exec(sOrigin);if (aTemp=== null) break;t= aTemp.input.match(/\n\s*.*/)[0].match(/@(.*)/);sMR= t? t[1]:'';aC1[i]={__Con: {sMResult: sMR,sPath: aTemp[0],sName: aTemp[1],sCon: aTemp.input,nStart: aTemp.index,nEnd: undefined},next: []};aRoute[i]= aC1[i];if(i>0)aC1[i-1].__Con.nEnd= aTemp.index-1;}mainDiv.setAttribute('style','position: absolute; left: 200px; top: 100px; width: 830px; height: 600px; background: white; border: solid #E0E0E0; overflow: auto;resize: both;');navi.innerHTML="<button onclick='div1.style.display=\"\";div2.style.display=\"none\";'>路线选择</button>"+"<button onclick='div2.style.display=\"\";div1.style.display=\"none\";'>武功统计</button>"+"<button onclick='mainDiv.style.display=\"none\";' style='float: right;'>隐藏</button>";navi.setAttribute('style','border-bottom: solid #F0F0F0; background: #F0F0F0');navi.setAttribute('style','border-bottom: solid #F0F0F0;background: #F0F0F0');div2.style.display='none';div2.innerHTML+= '请选择周目:';for(var i=1;i<7;i++)round.innerHTML+='<option value='+i+'>'+i+'周</option>';div2.appendChild(round);button= document.createElement('button');button.innerHTML='开始统计';button.onclick= analyse;div2.appendChild(button);div2f.innerHTML+= '结果过滤器:';speci.innerHTML+='名称显示<select><option value=1 selected>简名</option><option value=2>全名</option></select> '+'类别<select><option value=0 selected>&nbsp;&nbsp;&nbsp;&nbsp;</option><option value="拳">拳</option><option value="剑">剑</option><option value="兵">兵</option><option value="特">特</option><option value="暗">暗</option><option value="内">内</option><option value="轻">轻</option><option value="药">药</option><option value="[^拳剑兵特暗内轻药]">其他</option></select>'+'阴阳<select><option value=0 selected>&nbsp;&nbsp;&nbsp;&nbsp;</option><option value="阴">阴</option><option value="阳">阳</option></select>'+'最低数值<select><option value=0 selected>&nbsp;&nbsp;&nbsp;&nbsp;</option><option value=1 >1</option><option value=2 >2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option><option value="9">9</option></select>';div2f.appendChild(speci);button= document.createElement('button');button.innerHTML='过滤结果';button.onclick=filter;div2f.appendChild(button);div2.appendChild(div2f);div2.appendChild(div2p);div2.style.margin='10px';var tarList=document.createElement('ol');for(var i=0,li,doList;i<aC1.length;i++){li= document.createElement('li');li.innerHTML=aC1[i].__Con.sName;doList= dive(aC1[i],1);if(doList.length>0){var select=document.createElement('select');select.onchange=routeQuery;select.innerHTML+="<option value='"+i+"' selected ></option>";for(var j=0;j<doList.length;j++){select.innerHTML+="<option value='"+i+"."+j+"' >"+doList[j].__Con.sName+"</option>";}li.appendChild(select);}tarList.appendChild(li);}button= document.createElement('button');button.innerHTML='检查路线冲突';button.onclick=checkBinding;div1.appendChild(button);button= document.createElement('button');button.innerHTML='路线导入导出';button.onclick=exportAndImport;div1.appendChild(button);div1.appendChild(tarList);mainDiv.appendChild(navi);mainDiv.appendChild(div1);mainDiv.appendChild(div2);document.body.appendChild(mainDiv);}function dive(Pos,nSym){var rP= new RegExp('\\s'+nSym+'(.*)','g'),sMR,sContext= Pos.__Con.sCon.substring(Pos.__Con.nStart,Pos.__Con.nEnd);for(var i=0,aTemp;i<100;i++) {aTemp= rP.exec(sContext);if(aTemp=== null) break;t= aTemp.input.match(/\n\s*.*/)[0].match(/@(.*)/);sMR= t? t[1]:'';Pos.next[i]={__Con: {sMResult: Pos.__Con.sMResult+ sMR,sPath: Pos.__Con.sPath+'-'+aTemp[1],sName: aTemp[1],sCon: aTemp.input,nStart: aTemp.index,nEnd: undefined},next: []};if(i>0) Pos.next[i-1].__Con.nEnd= aTemp.index-1;}return Pos.next;}function sort(aEntry,aTarget){var i,nIndi;if(!aEntry[1]) aEntry.nIndi=0;else aEntry.nIndi=parseInt(aEntry[1].match(/\d/)[0]);if(!aTarget[0]){aTarget[0]=aEntry;return;}for(i=0;i<aTarget.length;i++){if(aEntry.nIndi< aTarget[i].nIndi){for(var j=aTarget.length-1;j>= i;j--){aTarget[j+1]= aTarget[j];}break;}}aTarget[i]= aEntry;}function routeQuery(){while(this.nextSibling)this.parentNode.removeChild(this.nextSibling);if(this.value== this.firstChild.value) return;var aValue=this.value.match(/\d+/g),Pos=aC1[aValue[0]],nSym= 0;for(var i=1;i<aValue.length;i++){Pos=Pos.next[aValue[i]];nSym++;}var list= dive(Pos,nSym+1);if (list.length>0) {var select=document.createElement('select');select.onchange=routeQuery;select.innerHTML+="<option value='"+this.value+"' selected ></option>";for(var j=0;j<list.length;j++){select.innerHTML+="<option value='"+this.value+"."+j+"' >"+list[j].__Con.sName+"</option>";}this.parentNode.appendChild(select);}aRoute[aValue[0]]= Pos;}function analyse(){oResult={};for(var i=0,oT;i<aRoute.length;i++){var rP2=/\S+?(\+[1-9][阴阳]?)?(-\S)?(\?[1-6])?(?=\s|$)/gm;oT=aRoute[i].__Con;sResult= oT.sCon.substring(oT.nStart,oT.nEnd);t= sResult.match(/@(.*)/);sResult= oT.sMResult+(t? t[1]:'');if(sResult=== '') continue;for(var j=0,aT=[];j<200;j++){aT=rP2.exec(sResult);if(!aT) break;if(!aT[1]) aT[1]= '+0';if(aT[3] && parseInt(aT[3].substring(1))> round.value) continue;if(!aT[2]) aT[2]='未分类';else aT[2]=aT[2].substring(1);if(!oResult[aT[2]]) oResult[aT[2]]=[];sort(aT,oResult[aT[2]]);}}sResult='';for(var x in oResult){sResult+= '类别——'+x+':<br /><table width="800"><tr>';var rTp= /[^\-?\s]+/;for(var i=0;i<oResult[x].length;i++){sResult+="<td>"+ oResult[x][i][0]+'</td>';if((i+1)% 4==0) sResult+= "</tr><tr>"}sResult+='</tr></table><br /><br />';}div2p.innerHTML= sResult;}function filter(){var aOut= speci.children,rTp= /[^-?\s]+/;sResult= '';for(var x in oResult){if(aOut[1].value!= '0'){var rP=new RegExp(aOut[1].value);if(!rP.test(x)) continue;}sResult+= '类别——'+x+':<br /><table width="800"><tr>';if(aOut[0].value== 1){for(var i= 0,j=0,aTemp;i<oResult[x].length;i++){aTemp=oResult[x][i];if(aOut[2].value!= '0')if(aTemp[1])if(t= aTemp[1].match(/[阴阳]/))if(t[0]!= aOut[2].value)continue;if(aOut[3].value== '0' || parseInt(aTemp[1].match(/\d/)[0])>= aOut[3].value){sResult+="<td>"+aTemp[0].match(rTp)[0]+'</td>';if((j+1)% 4==0) sResult+= "</tr><tr>";j++;}}}else{for(var i= 0,j=0,aTemp;i<oResult[x].length;i++){aTemp=oResult[x][i];if(aOut[2].value!= '0')if(aTemp[1])if(t= aTemp[1].match(/[阴阳]/))if(t[0]!= aOut[2].value)continue;if(aOut[3].value== '0' || parseInt(aTemp[1].match(/\d/)[0])> aOut[3].value){sResult+="<td>"+ aTemp[0]+'</td>';if((j+1)% 4==0) sResult+= "</tr><tr>";j++;}}}sResult+='</tr></table><br /><br />';}div2p.innerHTML= sResult;}function checkBinding(){var aBind=[],Compare={},sCollision='';for(var i=0;i<aRoute.length;i++){t= aRoute[i];t=t.__Con;var aT= t.sPath.split(/-/);for(var j=0;j<aT.length;j++){Compare[aT[j].match(/[^ ]+/)[0]]= 1;}var rP= /[^ \-\n]*bind\s*([^ \-\n]+)/g;for(var j=0,aT1;j<100;j++){aT1= rP.exec(t.sPath);if(aT1) aBind.push(aT1);else break;}}for(var i=0,aT;i<aBind.length;i++){if(!Compare[aBind[i][1]]) sCollision+= aBind[i].input+"\n";}if(sCollision!== '')alert ('路线冲突:\n'+sCollision.replace(/bind/g,'绑定'));}function exportAndImport(){var i,j,k,sRoot,root,aPath,sOut='请复制以下路线内容来导出:\n';for (i=0;i<aRoute.length;i++){sOut+= aRoute[i].__Con.sPath + ';\n';}var sIn= prompt(sOut,'请将要导入的路线内容粘贴到这里');var aIn1= sIn?sIn.match(/#.*?;/g):null;if (!aIn1) return;var aList= div1.getElementsByTagName('li'),context,aOption,sValue;for (i=0;i<aIn1.length;i++){aPath= aIn1[i].match(/[^\s#-;][^-;]*/g);if (!aPath) continue;sValue=''+i;root= aPath[0];for (j=0;j<aList.length;j++){if (aList[j].firstChild.textContent.indexOf(root)!=-1) {context=aList[j];break;}}if (j== aList.length) continue;for (j=1;j<aPath.length;j++){aOption= context.children[j-1].children;for (k=0;k<aOption.length;k++){if (aOption[k].textContent.indexOf(aPath[j])!=-1){sValue+='.'+(k-1);context.children[j-1].value=sValue;context.children[j-1].onchange();break;}}if (!context.children[j-1].nextSibling) break;}}}try{document.getElementById('__toggle').remove();document.getElementById('__mainDiv').remove();}catch(err){}onload();undefined;
复制代码

使用道具 举报

长乐帮主

帖子
2209
精华
1
积分
1312
金钱
7662
荣誉
0
人气
79
评议
0
地板
发表于 2015-11-9 17:13:00 |只看该作者
不明觉厉
初同燕雀之游,终怀鸿鹄之志,及乎一见任委,长驱伊、洛。前无强阵,攻靡坚城
虽南风不竞,晚致倾覆,其所克捷,亦足称之——《南史·陈庆之列传》

使用道具 举报

武当长老

帖子
4153
精华
1
积分
2338
金钱
4885
荣誉
3
人气
310
评议
0
5#
发表于 2015-11-9 17:15:46 来自手机 |只看该作者
似乎很腻害的样子
从此,吾剑随汝同在,汝之命运与吾共存

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
6#
发表于 2015-11-9 17:19:18 |只看该作者
糊涂智者 发表于 2015-11-9 17:03
斜体字看着好费劲啊

我也不想用斜体的,应该是一开始尝试添加书签链接失败的后遗症。

使用道具 举报

帖子
1390
精华
0
积分
698
金钱
11352
荣誉
0
人气
28
评议
0
7#
发表于 2015-11-9 17:26:31 |只看该作者
似乎很腻害的样子

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
8#
发表于 2015-11-9 21:15:10 |只看该作者
更新了脚本,修复了发现的几个小问题。

另外我倒是找到了把这么长的代码写到href属性字符串里的方法了,但是greasefork那边好像会屏蔽javascript:伪协议的链接,加到维基页面里面增大载入开销也不好,而论坛这边我依然无法把代码写成[url]标签的链接……所以还是请自行将3楼的代码放入书签地址吧。
以后如果有更新我也会同步更新3楼的代码,大概。

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
9#
发表于 2015-11-10 18:25:44 |只看该作者
本帖最后由 myhead 于 2015-11-10 18:29 编辑

更新1.1版:改进程序逻辑,增加了部分功能,至于怎么改的我就不说了,反正估计也没人清楚之前的版本是怎样的……
都一天了,好像没有热心群众有帮忙完善页面数据的意思,于是我自己把维基电子书上的武功数据抓下来了。
目前各路线武功信息已大体添加完成,可能有细节信息错误,周目说明也并不详尽,敬待修改。
想为武功添加专属说明的,可在+号前的武功名中添加括号包围的汉字说明,别太长就行了。

另外以后可能会添加将所选路线以文本形式导入、导出的功能。
添加装备筛选和队友汇总在技术上也没什么难度,不过目前已经有人做了套装规划器了,队友方面估计也都没什么需求,就算了。

使用道具 举报

帖子
193
精华
0
积分
97
金钱
2553
荣誉
0
人气
0
评议
0
10#
发表于 2015-11-10 19:11:50 |只看该作者
myhead 发表于 2015-11-10 18:25
更新1.1版:改进程序逻辑,增加了部分功能,至于怎么改的我就不说了,反正估计也没人清楚之前的版本是怎样 ...

感谢楼主。能否区分,武功是流程得到,或者是彩蛋。

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
11#
发表于 2015-11-10 19:57:58 |只看该作者
nk19901003 发表于 2015-11-10 19:11
感谢楼主。能否区分,武功是流程得到,或者是彩蛋。

技术上没问题。但是游戏中很多彩蛋没有区分的意义,几乎是流程必得的。
我的建议是,对于一些放弃率比较高的特殊彩蛋武功,采取和专属武功一样的对待方法,在编辑维基页面的源数据时,在武功名后面加括号备注。

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
12#
发表于 2015-11-10 21:01:01 |只看该作者
版本号摆脱光棍,更新1.1.2,修正排序函数无法正常工作的错误。

使用道具 举报

帖子
5354
精华
1
积分
2888
金钱
21202
荣誉
0
人气
105
评议
0
13#
发表于 2015-11-10 21:20:58 |只看该作者
这板块人才辈出啊{:13_461:}

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
14#
发表于 2015-11-11 00:34:48 |只看该作者
更新1.1.3,美化格式。短期内大概不会再更新了。

使用道具 举报

帖子
5321
精华
1
积分
2983
金钱
28290
荣誉
10
人气
222
评议
0
15#
发表于 2015-11-11 01:16:20 |只看该作者
LZ辛苦啦
这个一定要支持一下的
天下熙熙 皆为利来 天下攘攘 皆为利往

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
16#
发表于 2015-11-18 00:24:37 |只看该作者
本帖最后由 myhead 于 2015-11-18 19:07 编辑

更新1.1.4,将脚本greasyfork安装版本的匹配网址修正为现在的维基网页,再次略微调整界面,增加此前承诺的路线导入导出功能。

没有意外的话这将是最后一个版本了。维基上我此前整理的数据在5.24f中应该已经有些过时了,然而却没有人愿意去更新页面数据。至于我自己也已经不玩红颜录了,更不会有闲心跟着版本更新的步伐去更新数据。如此已经可以预见这个脚本连同数据页面一起被废弃的未来。我本想就这样把这个脚本放置不管,但鉴于还有一个此前承诺的功能没有实现,于是最后更新一次。
当然,如果以后有人发现bug并提交给我(在这帖回复或者在greasyfork那边反馈)的话我还是会更新进行修补的。

使用道具 举报

帖子
70
精华
0
积分
36
金钱
255
荣誉
0
人气
0
评议
0
17#
发表于 2015-11-18 13:49:20 |只看该作者
2222222222222222222222222222222222222222222222222222

使用道具 举报

帖子
976
精华
1
积分
691
金钱
7627
荣誉
0
人气
23
评议
0
18#
发表于 2015-11-18 14:25:48 |只看该作者
111111111111111

使用道具 举报

帖子
163
精华
0
积分
82
金钱
3871
荣誉
0
人气
0
评议
0
19#
发表于 2015-11-18 17:00:08 |只看该作者
11111111111

使用道具 举报

帖子
55
精华
0
积分
30
金钱
1158
荣誉
0
人气
22
评议
0
20#
发表于 2015-11-18 18:33:31 |只看该作者
呃,怎么附件变成回复可见了……没必要。

如果以后有人愿意整理数据的话,我这里提供一些可以辅助的代码:
  1. sResult= '@ ';
  2. sClass= 'aaNeiGong'+'|'+'aaQingGong'+'|'+'aaQuanZhang'+'|'+'aaYuJian'+'|'+'aaBingQi'+'|'+'aaZhiTui'+'|'+'aaAnDu'+'|'+'abNeiGong'+'|'+'abQingGong'+'|'+'abQuanZhang'+'|'+'abYuJian'+'|'+'abBingQi'+'|'+'abZhiTui'+'|'+'abAnDu';
  3. Map= {
  4.     aaNeiGong: '内',
  5.     aaQingGong: '轻',
  6.     aaQuanZhang: '拳',
  7.     aaYuJian: '剑',
  8.     aaBingQi: '兵',
  9.     aaZhiTui: '特',
  10.     aaAnDu:  '暗',
  11.     abNeiGong: '内',
  12.     abQingGong: '轻',
  13.     abQuanZhang: '拳',
  14.     abYuJian: '剑',
  15.     abBingQi: '兵',
  16.     abZhiTui: '特',
  17.     abAnDu:  '暗'
  18. };
  19. rP=(RegExp('<span class=[\"\']('+sClass+')[\"\']>\\[(.+?)\\]</span>','g'));
  20. sContext= document.body.innerHTML;
  21. aResult= [];
  22. for(var i=0,t;i<200;i++){
  23.     aResult[i]= pr= rP.exec(sContext);
  24.     if(Boolean(pr)){sResult+= ''+pr[2]+'-'+Map[pr[1]]+' ';}
  25.     else break;
  26. }
  27. window.prompt('使用ctrl+c 复制下面的选中内容',sResult);
复制代码
打开维基的攻略页面,将以上代码在控制台运行,就会有一个窗口弹出,该窗口的文本框中选中内容是抓取的该页面武功数据,将这些武功数据复制下来,再手工校对一遍就可以拿来用了。抓取的武功数据顺序即该武功在页面中的出现顺序,目前这个脚本的维基数据页面中的武功顺序也大体是按它们的出现顺序来排的。顺序相同,对比之后进行增改还是比较直观的。
更新数据真的不麻烦。
如果你不会用控制台的话,可以复制下面的代码到浏览器地址栏,或者保存为书签后点击运行:(如果想直接在浏览器地址栏运行请确保开头的"javascript:"没有被漏掉)
  1. javascript:sResult= '@ ';sClass= 'aaNeiGong'+'|'+'aaQingGong'+'|'+'aaQuanZhang'+'|'+'aaYuJian'+'|'+'aaBingQi'+'|'+'aaZhiTui'+'|'+'aaAnDu'+'|'+'abNeiGong'+'|'+'abQingGong'+'|'+'abQuanZhang'+'|'+'abYuJian'+'|'+'abBingQi'+'|'+'abZhiTui'+'|'+'abAnDu';Map= {aaNeiGong: '内',aaQingGong: '轻',aaQuanZhang: '拳',aaYuJian: '剑',aaBingQi: '兵',aaZhiTui: '特',aaAnDu:  '暗',abNeiGong: '内',abQingGong: '轻',abQuanZhang: '拳',abYuJian: '剑',abBingQi: '兵',abZhiTui: '特',abAnDu:  '暗'};rP=(RegExp('<span class=[\"\']('+sClass+')[\"\']>\\[(.+?)\\]</span>','g'));sContext= document.body.innerHTML;aResult= [];for(var i=0,t;i<200;i++){aResult[i]= pr= rP.exec(sContext);if(Boolean(pr)){sResult+= ''+pr[2]+'-'+Map[pr[1]]+' ';}else break;}window.prompt('ctrl+c 复制下面的选中内容',sResult);undefined;
复制代码
效果同上。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-11-21 03:56 , Processed in 0.353949 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到