游戏王吧 关注:1,030,253贴子:4,293,259

游戏王ydk卡组可视化工具

只看楼主收藏回复


本人菜鸟一枚,每每上来看大家发这样的卡组图总是一头雾水,介尼玛认识谁是谁啊,这样对新手打击太大了,于是乎利用上班时间写了个脚本程序,可以将ydk格式的卡组导出为文本。
PS:这个VBS脚本360可能会误报,这个大家放心,楼下会贴出源代码,童叟无欺!!!
具体效果图如下:

点击确定之后会生成一个文本文档:

打开文本文档:

太爽了。希望大神们多多把这样的卡组发上来让我们这些菜鸟们看哦^_^
楼下会提供下载地址


IP属地:北京1楼2016-07-13 18:34回复
    下载地址:
    https://pan.baidu.com/s/1c1VOPHY
    大家可以试试"第二个脚本",很有意思哦,和第一个脚本的用法是一样的。


    IP属地:北京2楼2016-07-13 18:36
    回复
      下面准备贴出源代码


      IP属地:北京3楼2016-07-13 18:37
      回复
        为什么不让发网盘地址


        IP属地:北京4楼2016-07-13 18:49
        收起回复
          髓一生不喜与人抢 但该得到的也不会让


          5楼2016-07-13 18:54
          回复
            地址怎么也发不上来,我把源VBS代码贴上来,大家自己做吧,步骤很简单,创建一个文档,把代码复制进去,后缀名改成vbs就可以了。


            IP属地:北京7楼2016-07-13 18:56
            收起回复
              ydk_NAME=InputBox("请输入卡组名:")
              msgbox "请等待几秒钟直到finished弹框出现"
              set fso=createobject("scripting.filesystemobject")
              set file=fso.opentextfile(ydk_NAME)
              set f_input = fso.OpenTextFile(ydk_NAME&".txt", 8, true)
              function getHTTPPage(Url)
              dim Http
              set Http=createobject("MSXML2.XMLHTTP")
              Http.open "GET",Url,false
              Http.send()
              if Http.readystate <> 4 then
              exit function
              end if
              getHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
              set http=nothing
              if err.number <> 0 then err.Clear
              end function
              Function BytesToBstr(body,Cset)
              dim objstream
              set objstream = CreateObject("adodb.stream")
              objstream.Type = 1
              objstream.Mode =3
              objstream.Open
              objstream.Write body
              objstream.Position = 0
              objstream.Type = 2
              objstream.Charset = Cset
              BytesToBstr = objstream.ReadText
              objstream.Close
              set objstream = nothing
              End Function
              Function getStrBetween(Str,StartStr,EndStr)
              StartStrPos = Instr(Str, StartStr)+Len(StartStr)
              EndStrPos = Instr(Str,EndStr)
              Length = EndStrPos - StartStrPos
              Res= Mid(Str,StartStrPos,Length)
              getStrBetween = Res
              End Function
              Function RegExpTest(patrn, strng)
              Dim regEx, Match, Matches
              Set regEx = New RegExp
              regEx.Pattern = patrn
              regEx.IgnoreCase = True
              regEx.Global = True
              Set Matches = regEx.Execute(strng)
              For Each Match in Matches
              RetStr=Match.Value
              Next
              RegExpTest = RetStr
              End Function
              Function ReplaceTest(patrn, replStr)
              Dim regEx, str1
              str1 = base_info
              Set regEx = New RegExp
              regEx.Pattern = patrn
              regEx.IgnoreCase = True
              ReplaceTest = regEx.Replace(str1, replStr)
              End Function
              sa=file.readall
              strarry=split(sa,vbcrlf)
              for each card_code in strarry
              isnum = isnumeric(card_code)
              if isnum = true then
              Url="http://www.ourocg.cn/S.aspx?key="&card_code
              Dim Html
              Html = getHTTPPage(Url)
              Str = Html
              StartStr_base ="/figure"
              EndStr_base ="p><div class=""hidden-xs"""
              On Error Resume Next
              base_info = getStrBetween(Str,StartStr_base,EndStr_base)
              if err.number =5 then
              name_info="找不到卡"&card_code
              f_input.WriteLine(name_info)
              elseif err.number <> 0 then
              msgbox "error:"&err.number
              else
              effect_arr = Split(base_info, "effect")
              StartStr_name ="查看["
              EndStr_name ="]的效果调整"
              name_info = getStrBetween(base_info,StartStr_name,EndStr_name)
              ATK_base = ReplaceTest("ATK: </span><span>", "ATK:")
              DEF_base = ReplaceTest("DEF: </span><span>", "DEF:")
              card_tp_arr = split(base_info,"sCardType:")
              card_tp_arr1 = split(card_tp_arr(1),")")
              card_tp = card_tp_arr1(0)
              if InStr(card_tp,"怪兽") <> 0 Then
              level = RegExpTest ("level:[1-9][0-9]*",Html)
              tribe_arr = split(base_info,"tribe:")
              tribe_arr1 = split(tribe_arr(1),")")
              tribe = tribe_arr1(0)
              element_arr = split(base_info,"element:")
              element_arr1 = split(element_arr(1),")")
              element = element_arr1(0)
              ATK = RegExpTest ("ATK:[0-9][0-9]*",ATK_base)
              DEF = RegExpTest ("DEf:[0-9][0-9]*",DEF_base)
              'msgbox name_info
              'msgbox level
              'msgbox ATK
              'msgbox DEF
              'msgbox card_tp
              'msgbox tribe
              'msgbox element
              'msgbox effect_arr(1)
              f_input.WriteLine(name_info)
              else
              'msgbox name_info
              'msgbox card_tp
              'msgbox effect_arr(1)
              f_input.WriteLine(name_info)
              end if
              end if
              set fso=createobject("scripting.filesystemobject")
              fso.createtextfile("d:\1.txt").write base_info
              else
              f_input.WriteLine(card_code)
              end if
              next
              f_input.close
              file.close
              msgbox "finished"


              IP属地:北京8楼2016-07-13 18:56
              收起回复
                你直接把百度网盘链接后半部分贴出就行,就不会被清理了。


                IP属地:新西兰来自Android客户端9楼2016-07-13 18:58
                收起回复
                  vbscript壮哉我大VB家族
                  --Windows10Mobile 10586


                  IP属地:浙江来自WindowsPhone客户端10楼2016-07-13 19:13
                  回复
                    感觉好厉害,难得看到正经点的帖子


                    IP属地:广东来自Android客户端11楼2016-07-13 19:17
                    回复
                      居然是VB


                      IP属地:广东来自Android客户端12楼2016-07-13 19:29
                      回复
                        学Pascal的路过帮顶


                        IP属地:浙江来自Android客户端13楼2016-07-13 19:47
                        回复
                          良心程序员好评


                          IP属地:上海来自Android客户端15楼2016-07-13 20:15
                          回复
                            0.0
                            可是如果你有了ydk文件,在ygocore里打开,不就可以看详细信息了吗


                            IP属地:上海16楼2016-07-13 20:28
                            收起回复