搜索   Search
你的位置:主页 > 相关资讯 >

霸星过数字排序脱机验证码

发布时间:2019-06-11 作者:剑豪辅助 来源:https://818wg.com
数字排列


/<
function 过验证()
  local str=获取NPC对话内容()
  function 数字替换(nnn)
    local mmm=tonumber(nnn)
    if mmm>=372 and mmm<=391 then
      return mmm-372
    elseif mmm>=394 and mmm<=413 then
      return mmm-394
    end
    return mmm
  end
  local startcheck=str:match("<开始验证/(@[^>]+)>")
  if startcheck then 
    选择(startcheck)
    等待(1500)
    str=获取NPC对话内容()
  end
::start:: -- 循环标签
  str=获取NPC对话内容()
  local ok=str:match("/(@点击验证[^>]+)>")
  if not ok then return end
  local nums=str:match("【[^>]*>(%d+)<】")
  if not nums then return end
-------------------------------------------
-- 分析最小的数
  local mix=nil
  for i=1,#nums do
    tmp=tonumber(nums:sub(i,i))
    if mix then if tmp<mix then mix=tmp end
    else  mix=tmp
    end
  end
-------------------------------------------
-- 计算并记录其他数与最小数的差
  local numsc=""
  for i=1,#nums do
    numsc=numsc..(tonumber(nums:sub(i,i))-mix)
  end
-------------------------------------------
-- 取出所有图片编号并分析最小编号
  local mixpic=nil
  local t={}
  local cs=0
  for i,cmd in str:gmatch("<Img:(%d+):[^/]+/(@[^>]+)>") do
    tmp=数字替换(i)
    table.insert(t,{tmp,cmd})
    if mixpic then if tmp<mixpic then mixpic=tmp end
    else mixpic=tmp end
    cs=cs+1
    if cs>=6 then break end
  end
-------------------------------------------
-- 计算并记录其他编号与最小编号的差(求余10后算差)
  local picsc=""
  local t2={}
  for k,v in pairs(t) do
    _,i=math.modf((tonumber(v[1])-mixpic)/10)
    table.insert(t2,v[2])
    picsc=picsc..i
  end
  picsc=picsc:gsub("0%.","")
  print(numsc,",",picsc)
-------------------------------------------
-- 判断是否排好,排好后选择确定并返回
  if picsc==numsc then
    选择(ok)
    清空NPC对话内容()
    等待(1500)
    return
  end
-------------------------------------------
-- 开始排列
  for i=1,#picsc do
    n1=picsc:sub(i,i)
    n2=numsc:sub(i,i)
    if n1~=n2 then
      i2=picsc:find(n2,i)
      if i2 and i2<= #picsc then 
        选择(t2[i])
        等待(1500)
        选择(t2[i2])
        等待(1500)
      end
      break
    end
  end
-- 回到循环开始
goto start
end
过验证() -- 回收验证保留此行,删除下面一行
设置用户检测("过验证",2000) -- 脱机验证保留此行,删除上面一行
/>