东天霸自动脚本 – AutoAHK

您所在的位置:网站首页 剑灵自动脚本怎么设置中文 东天霸自动脚本 – AutoAHK

东天霸自动脚本 – AutoAHK

2024-05-01 08:29| 来源: 网络整理| 查看: 265

这次的供学习使用,请自行研究:

;以管理员身份运行 if !A_IsAdmin {     Run *RunAs “%A_ScriptFullPath%”     ExitApp }

IniRead,tj,技能数据.ini,起手,一次 IniRead,gk,技能数据.ini,输出循环,技能 IniRead,ds,技能数据.ini,等待时间,打怪 IniRead,dz,技能数据.ini,等待捡取,物品

Gui, Add, Text, x10 y32 w80 h20 +Center, 起手技能 Gui, Add, Text, x10 y59 w80 h20 +Center, 输出循环技能 Gui, Add, Text, x10 y85 w80 h20 +Center, 打怪等待时间 Gui, Add, Text, x10 y110 w80 h20 +Center, 等待捡取物品 Gui, Add, Text, x30 y10 w100 h20 +Center, F11查看简要说明 Gui, Add, Edit, x85 y30 w50 h20 Lowercase vtj -Multi, %tj% Gui, Add, Edit, w50 h20 Lowercase vgk -Multi, %gk% Gui, Add, Edit, w50 h20 Number vds, %ds% Gui, Add, Edit, w50 h20 Number vdz, %dz% Gui, Add, Button, x50 y145 w70 h30 g确定, 确定 Gui, Show, Center w150 h180, 东天霸 Return

确定: Gui,Submit ,NoHide FileDelete 技能数据.ini IniWrite,%tj%,技能数据.ini,起手,一次 IniWrite,%gk%,技能数据.ini,输出循环,技能 IniWrite,%ds%,技能数据.ini,等待时间,打怪 IniWrite,%dz%,技能数据.ini,等待捡取,物品 MsgBox 设置已保存 return

F11:: MsgBox,游戏中设置:`n 游戏/界面/无视因分辨率对界面大小的调节打√ ,操作镜头横轴必须为30`n 使用前游戏里面的右上角地图要关闭透明化并且最大化,必要的话过滤器里面把好友,门派好友选项关闭。建议用简化模式`n 脚本按键说明:`n F1为启动,F12为关闭脚本,tab为9键,星为“脚本默认释放星无需设置。使用前记得以管理员身份运行此脚本,不然无法使用`n 功能说明:`n 支持武器修理,将修理工具放在7键。如果长时间没进入暴徒之岛,2分钟后会自动传送到武神塔。初次使用前建议先自己在游戏中先打开ctrl+j 一次`n  打怪等待时间:`n (打完一个怪后等待下一个怪出现的时间):输入19000(即19秒)`n 等待捡取物品:`n 为开始打老四到打完老四一共用多久,输入9000(即9秒)脚本内置8秒基础,等于一共17秒,不够的小号可以自行增加时间`n 作者:弎番流水异乡人 return

SetBatchLines,-1 F1::                                                                         ;启动键 Gosub,dt SetTimer,wst,On SetTimer,btd,On SetTimer,CZ,1000 Return

dt: Sleep 2000 sendinput ^j Sleep 1000 Text:=”|*121$31.zDz03z7z01k03bytztk0Qk4s0+E2Qzx/xC00ZybztmzHzwtTdU00U4yzCE6TjjDzDnrbw7z3rz7zlw”          ;向导

if (ok:=FindText(542-150000, 164-150000, 542+150000, 164+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x+511, Y:=ok.1.y+733, Comment:=ok.1.id   Click, %X%, %Y%   Sleep 1000

Text:=”|*121$31.zDz03z7z01k03bytztk0Qk4s0+E2Qzx/xC00ZybztmzHzwtTdU00U4yzCE6TjjDzDnrbw7z3rz7zlw”          ;向导

if (ok:=FindText(542-150000, 164-150000, 542+150000, 164+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x+268, Y:=ok.1.y+487, Comment:=ok.1.id    Click, %X%, %Y%    sleep 1000    Text:=”|*127$19.zAzzwTzsDzwTzwNzyMzzsTzsTzszzslzsszwQTyD7t72sa3Ay3US3sDzsVzsM70z00w”           ;传送

if (ok:=FindText(1211-150000, 901-150000, 1211+150000, 901+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id    Click, %X%, %Y%    Sleep 1000    Text:=”|*141$24.XDzjr3bjqHvjY1jjWp7j+1r7eprLe1rLepkPWpktxlpwU”                                ;确定

if (ok:=FindText(915-150000, 178-150000, 915+150000, 178+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y% } } } } Sleep 10000 Return

wst: Text:=”|*168$29.zzzzzzzzz7zzzsTzzz0zzzs3zzz0Dzzs0Tzy01zzk03zy00Dzw00Tzw00TTy00yTz00wzzU1tzzs1lzzw3Xzzy37zzz6DzzzYTzzzw|*151$50.0000000008020004HuU00C010001+60009jdGU1m0YH0kDTo01UE1+003t9Y2GU000mN6kDjwRwYE9C300000WHVU3rsyMUU0000sA8MTzDzs”                 ;出生地角色位置

if (ok:=FindText(1637, 307, 1680, 342, 0, 0, Text)) { Sleep 2000 Text:=”|*87$27.zzzxwBkw1U4rXM5iw10/bcM9ww11DPf8Bn9Xt9wV4″     ;武器修复

if (ok:=FindText(1613-150000, 1066-150000, 1613+150000, 1066+150000, 0, 0, Text)) {  SendInput 7  Sleep 6000 } Sleep 3000 mouseXY(-500, 0) sendinput {Up Down} sendinput {Shift Down} Sleep 4800 sendinput {Up Up} sendinput {Shift Up} Sleep 1000 mouseXY(750, 0) Sleep 1000 sendinput {Up Down} sendinput {Shift Down} Sleep 2800 sendinput {Up Up} sendinput {Shift Up} Sleep 1000 sendinput {f Down} Sleep 500 sendinput {f Up} Sleep 2000 Text:=”|*139$39.bRs0t06NDTr2xy0u0uIDrr07Gd6yzzuJCk603Gdr/zjuFCvTg3G9pPtjs4iHOJzPxos70DQA|*105$39.zzzzzrs03zzqTyTzzykTnzzzqzyDzzs07ky01qTyNzzyrjnjzzatyTzztrTnzzySnyTzzzlznzzzUTU|*143$38.yxzzyvtrS0DizAbjvUUy0vyvXjji0CtsPvzzgqq0k0OBhmzvynfRjq3iupPtjvDgaofynvHUQ0VUU”

    ;是呀/完成任务时候的下一步

if (ok:=FindText(1462, 855, 1575, 976, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y%   sleep 800    Text:=”|*133$25.zTzzrbk0u0RrMryPSvC03E3TxbTc2a0wxvCzQxazkywTsSEl3lU|*132$25.jDU1o0viljwqxqQ06U6zvCzE581tvqRytvBzVxszkwVW7X|*96$24.jTzVc1U1c1rx2znPgWU0c1jyXTc2A0tugvtngXw7j7wD8Q1szzzzU”

          ;接受

if (ok:=FindText(1624, 856, 1658, 878, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x-36, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y%   Sleep 800    Text:=”|*133$25.zTzzrbk0u0RrMryPSvC03E3TxbTc2a0wxvCzQxazkywTsSEl3lU|*132$25.jDU1o0viljwqxqQ06U6zvCzE581tvqRytvBzVxszkwVW7X|*96$24.jTzVc1U1c1rx2znPgWU0c1jyXTc2A0tugvtngXw7j7wD8Q1szzzzU”

          ;接受 if (ok:=FindText(1624, 856, 1658, 878, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x-36, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y%   Sleep 800    Text:=”|*133$25.zTzzrbk0u0RrMryPSvC03E3TxbTc2a0wxvCzQxazkywTsSEl3lU|*132$25.jDU1o0viljwqxqQ06U6zvCzE581tvqRytvBzVxszkwVW7X|*96$24.jTzVc1U1c1rx2znPgWU0c1jyXTc2A0tugvtngXw7j7wD8Q1szzzzU”

          ;接受 if (ok:=FindText(1624, 856, 1658, 878, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x-36, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y%   Sleep 800 } } } Else { sleep 800 Text:=”|*123$26.yTzzs0DtA03U1Dynbw0Qhjzz1P00LEzNxqTqTRbtbIFAtZ92S1Qtzzzzs”             ;完成任务

if (ok:=FindText(1620, 853, 1662, 876, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id    Click, %X%, %Y%    sleep 800 Text:=”|*105$39.zzzzzrs03zzqTyTzzykTnzzzqzyDzzs07ky01qTyNzzyrjnjzzatyTzztrTnzzySnyTzzzlznzzzUTU”    ;下一步

if (ok:=FindText(1512, 947, 1569, 976, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y%,3   Sleep 800   Text:=”|*123$26.yTzzs0DtA03U1Dynbw0Qhjzz1P00LEzNxqTqTRbtbIFAtZ92S1Qtzzzzs”             ;完成任务

if (ok:=FindText(1620, 853, 1662, 876, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id    Click, %X%, %Y%    sleep 800  Text:=”|*105$39.zzzzzrs03zzqTyTzzykTnzzzqzyDzzs07ky01qTyNzzyrjnjzzatyTzztrTnzzySnyTzzzlznzzzUTU”    ;下一步

if (ok:=FindText(1512, 947, 1569, 976, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y%,3   Sleep 800  Text:=”|*123$26.yTzzs0DtA03U1Dynbw0Qhjzz1P00LEzNxqTqTRbtbIFAtZ92S1Qtzzzzs”             ;完成任务

if (ok:=FindText(1620, 853, 1662, 876, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id    Click, %X%, %Y%    sleep 800  } } }   } } } } Else { Sleep 1000 MouseMove 1838,1041 Sleep 500 Click,2

} Sleep 1600 sendinput {up Down} sleep 400 sendinput {Up Up} sleep 1000 sendinput {f Down} Sleep 500 sendinput {f Up} } Return

btd: Text:=”|*153$51.00000000000U000000340U01zE0Nhxzu8P/bE000lEE00xy068G004A01V0mqsY00M006U4jkC3Tf5kZU7UH9WVZA1k219b080k00FPbDTxzvyM800A0007U|*156$50.000000000010000000AE2007x03BjjzF3Gto000AI400Sz0349014A01V0phl800k00O0Gz0sByQi4g0w2N8cNH0Q0UEnU40M008PbDTxzvyM”   ;判断是否在暴徒之岛

if (ok:=FindText(1317, 7, 1402, 35, 0, 0, Text)) { Sleep 5000 sendinput {Up Down} sendinput {Shift Down} Sleep 1000 sendinput {Space Down} Sleep 2400 sendinput {Space Up} sendinput {Up Up} sendinput {Shift Up} Sleep 1000 sendinput {d Down} Sleep 700 sendinput {d Up} Sleep,2000                   Gosub,qs  SetTimer,jn,On    Sleep,%ds%

 Gosub,qs  SetTimer,jn,On   Sleep,%ds%

 Gosub,qs  SetTimer,jn,On    Sleep,%ds%

 Gosub,qs  SetTimer,jn,On    Sleep,8000 Text:=”|*132$19.MTlU7U1nnVznsztwTwy0Sz17TXnjlwrsyNwTAyDiTHbb87sD7yC|*173$12.kHlXt53UWHCA486Ms5k1k4rsU|*133$20.MTlk3k4QwtDyT3zbkztw0Sz0XjkwvwDaz3tbkyNwDiTNnna1y3szls|*133$19.kzXUD0Hbb/zblznsztw0xy2Cz7bTXtjlwnsyNwTQybDCEDkSDwS”                        ;打怪

if (ok:=FindText(728-150000, 103-150000, 728+150000, 103+150000, 0, 0, Text)) {   Sleep,%dz% } sleep 1000 Text:=”|*138$24.zzzzTk00zzy0kDs0rzk0rzk0rzU0kTU0rz00rz80ryA1ryQ3zyMzzwlzzwVzzx3zU”     ;捡取道具

if (ok:=FindText(1152-150000, 679-150000, 1152+150000, 679+150000, 0, 0, Text)) {  sendinput {f Down}  Sleep 500  sendinput {f Up}  Sleep 500  sendinput {f Down}  Sleep 500  sendinput {f Up} } Else { send {Up Down} sleep 400 send {Up Up} Sleep 500  sendinput {f Down}  Sleep 500  sendinput {f Up}  Sleep 500  sendinput {f Down}  Sleep 500  sendinput {f Up} }

 Sleep 1000  sendinput {i Down}  Sleep 500  sendinput {i Up}  Sleep 1000  MouseMove 1663,741  Sleep 1000  Click  Sleep 1000     Text:=”|*113$39.zzzzzrs03zzqTyTzzykTnzzzqzyDzzs07ky01yTyNzzyrjnjzzatyTzztrTnzzySnyTzzzlznzzzUTU”                  ;下一步

if (ok:=FindText(1512, 947, 1569, 976, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id    Click, %X%, %Y%,3    sleep 1000    Text:=”|*123$26.yTzzs0DtA03U1Dynbw0Qhjzz1P00LEzNxqTqTRbtbIFAtZ92S1QtU”        ;完成

if (ok:=FindText(1620, 853, 1662, 876, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y% } }    Sleep 2000 sendinput {i Down} Sleep 500 sendinput {i Up} Sleep 1000 sendinput ^j Sleep 1000 Text:=”|*121$31.zDz03z7z01k03bytztk0Qk4s0+E2Qzx/xC00ZybztmzHzwtTdU00U4yzCE6TjjDzDnrbw7z3rz7zlw”          ;向导

if (ok:=FindText(542-150000, 164-150000, 542+150000, 164+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x+511, Y:=ok.1.y+733, Comment:=ok.1.id   Click, %X%, %Y%   Sleep 1000

Text:=”|*121$31.zDz03z7z01k03bytztk0Qk4s0+E2Qzx/xC00ZybztmzHzwtTdU00U4yzCE6TjjDzDnrbw7z3rz7zlw”          ;向导

if (ok:=FindText(542-150000, 164-150000, 542+150000, 164+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x+268, Y:=ok.1.y+487, Comment:=ok.1.id    Click, %X%, %Y%    sleep 1000    Text:=”|*127$19.zAzzwTzsDzwTzwNzyMzzsTzsTzszzslzsszwQTyD7t72sa3Ay3US3sDzsVzsM70z00w”           ;传送

if (ok:=FindText(1211-150000, 901-150000, 1211+150000, 901+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id    Click, %X%, %Y%    Sleep 1000    Text:=”|*141$24.XDzjr3bjqHvjY1jjWp7j+1r7eprLe1rLepkPWpktxlpwU”                                ;确定

if (ok:=FindText(915-150000, 178-150000, 915+150000, 178+150000, 0, 0, Text)) {   CoordMode, Mouse   X:=ok.1.x, Y:=ok.1.y, Comment:=ok.1.id   Click, %X%, %Y% } } } } Sleep 7000 jsq =0 } Return

 

 

qs: Text:=”|*132$19.MTlU7U1nnVznsztwTwy0Sz17TXnjlwrsyNwTAyDiTHbb87sD7yC|*173$12.kHlXt53UWHCA486Ms5k1k4rsU|*133$20.MTlk3k4QwtDyT3zbkztw0Sz0XjkwvwDaz3tbkyNwDiTNnna1y3szls|*133$19.kzXUD0Hbb/zblznsztw0xy2Cz7bTXtjlwnsyNwTQybDCEDkSDwS”

 

                          ;打怪

if (ok:=FindText(694, 71, 748, 122, 0, 0, Text)) { sendinput,“ Sleep 300 sendinput,%tj% }

Return

jn: Text:=”|*132$19.MTlU7U1nnVznsztwTwy0Sz17TXnjlwrsyNwTAyDiTHbb87sD7yC|*173$12.kHlXt53UWHCA486Ms5k1k4rsU|*133$20.MTlk3k4QwtDyT3zbkztw0Sz0XjkwvwDaz3tbkyNwDiTNnna1y3szls|*133$19.kzXUD0Hbb/zblznsztw0xy2Cz7bTXtjlwnsyNwTQybDCEDkSDwS”

 

                           ;打怪

if (ok:=FindText(694, 71, 748, 122, 0, 0, Text)) { sendinput,%gk% } Else {  SetTimer,jn,Off }

Return

CZ: jsq+=1 If(jsq=120) { Text:=”|*119$51.vvzrvziQzTTyyTxU1vk7q07c0CIQygzxm7q9D1jy3XorXs0Dxtbas33RziSMkSQvjx08mwTa07j0yIBwzjxzzmiTXhzi0SL6R9dk7nmX79RY4ySTXtnizU3nVySlrw0SszzyTzbvU|*151$65.00000000000000000000EU13Dn000M011jQ0AQx01XM0001kX2Dv4o6xs60000298AW002Swzh2GM4Djltk0O4YbkTT262iUN10U0E8858022Z81U00+F2419030DUU+90KKFw7kzDpVz|*150$37.000000000200009xEzfbs00Eo61nT+2681A490A4221bA2N001A1AVjkA0YEaEA001E8023tU8DxT1bwk”          ;是否在武神塔或者在赤霸王副本内

if (ok:=FindText(1385-150000, 355-150000, 1385+150000, 355+150000, 0, 0, Text)) { SetTimer,wst,Off SetTimer,btd,Off sleep 2000 Gosub,dt SetTimer,CZ,Off SetTimer,wst,On SetTimer,btd,On SetTimer,CZ,On } } Return

mouseXY(x,y) { DllCall(“mouse_event”,uint,1,int,x,int,y,uint,0,int,0) } return

F12:: MsgBox,脚本已关闭 ExitApp Return

;===== Copy The Following Functions To Your Own Code Just once =====

;——————————– ;  FindText – 屏幕找字函数 ;——————————– ;  返回变量 := FindText( ;      X1 –> 查找范围的左上角X坐标 ;    , Y1 –> 查找范围的左上角Y坐标 ;    , X2 –> 查找范围的右下角X坐标 ;    , Y2 –> 查找范围的右下角Y坐标 ;    , err1 –> 文字的黑点容错百分率(0.1=10%) ;    , err0 –> 背景的白点容错百分率(0.1=10%) ;    , Text –> 由工具生成的查找图像的数据,可以一次查找多个,用“|”分隔 ;    , ScreenShot –> 是否截屏,为0则使用上一次的截屏数据 ;    , FindAll –>    是否搜索所有位置,为0则找到一个位置就返回 ;    , JoinText –>   是否组合图像,为1则多个数据组合为一幅图来查找 ;    , offsetX –> 组合图像的每个字和前一个字的最大横向间隔 ;    , offsetY –> 组合图像的每个字和第一个字的最大高低间隔 ;  ) ;  返回变量 –> 如果没找到结果会返回0。否则返回一个二级数组, ;      第一级是每个结果对象,第二级是结果对象的具体信息数组: ;      { 1:左上角X, 2:左上角Y, 3:图像宽度W, 4:图像高度H ;        , x:中心点X, y:中心点Y, id:图像识别文本 } ;  坐标都是相对于屏幕,颜色使用RGB格式,组合查找必须使用统一的颜色模式 ;——————————–

FindText( x1, y1, x2, y2, err1, err0, text, ScreenShot:=1   , FindAll:=1, JoinText:=0, offsetX:=20, offsetY:=10 ) {   local  ; 避免超级全局变量的影响   bch:=A_BatchLines   SetBatchLines, -1   x:=(x116)+zy         , arr.Push( {1:rx, 2:ry, 3:w1, 4:h1         , x:rx+w1//2, y:ry+h1//2, id:comment} )     }     else     {       For i,j in info       {         mode:=j.8, color:=j.9, n:=j.10, comment:=j.11         , w1:=j.2, h1:=j.3, v:=j.1         Loop, 7           NumPut((A_Index=1 ? 0           : A_Index=6 and err1 and !j.12 ? Round(j.4*err1)           : A_Index=7 and err0 and !j.12 ? Round(j.5*err0)           : j[A_Index]), input, 4*(A_Index-1), “int”)         ok:=PicFind( mode,color,n,offsetX,offsetY         , bits,sx,sy,sw,sh,gs,ss,v,s1,s0         , input,7,allpos,allpos_max )         Loop, % ok           pos:=NumGet(allpos, 4*(A_Index-1), “uint”)           , rx:=(pos&0xFFFF)+zx, ry:=(pos>>16)+zy           , arr.Push( {1:rx, 2:ry, 3:w1, 4:h1           , x:rx+w1//2, y:ry+h1//2, id:comment} )         if (ok and !FindAll)           Break       }     }     if (err1=0 and err0=0 and num=1 and !arr.MaxIndex())     {       k:=0       For i,j in info         k+=(!j.12)       IfEqual, k, 0, Break     }     else Break   }   SetBatchLines, %bch%   return, arr.MaxIndex() ? arr:0 }

; 绑定窗口从而可以后台查找这个窗口的图像 ; 相当于始终在前台。解绑窗口使用 Bindwindow(0)

BindWindow(window_id:=0, set_exstyle:=0, get:=0) {   static id, old, Ptr:=A_PtrSize ? “UPtr” : “UInt”   if (get)     return, id   if (window_id)   {     id:=window_id, old:=0     if (set_exstyle)     {       WinGet, old, ExStyle, ahk_id %id%       WinSet, Transparent, 255, ahk_id %id%       Loop, 30       {         Sleep, 100         WinGet, i, Transparent, ahk_id %id%       }       Until (i=255)     }   }   else   {     if (old)       WinSet, ExStyle, %old%, ahk_id %id%     id:=old:=0   } }

xywh2xywh(x1,y1,w1,h1, ByRef x,ByRef y,ByRef w,ByRef h   , ByRef zx:=””, ByRef zy:=””, ByRef zw:=””, ByRef zh:=””) {   SysGet, zx, 76   SysGet, zy, 77   SysGet, zw, 78   SysGet, zh, 79   left:=x1, right:=x1+w1-1, up:=y1, down:=y1+h1-1   left:=leftzx+zw-1 ? zx+zw-1:right   up:=upzy+zh-1 ? zy+zh-1:down   x:=left, y:=up, w:=right-left+1, h:=down-up+1 }

GetBitsFromScreen(x, y, w, h, ScreenShot:=1   , ByRef zx:=””, ByRef zy:=””, ByRef zw:=””, ByRef zh:=””) {   local  ; 避免超级全局变量的影响   static hBM, oldzx, oldzy, oldzw, oldzh, bits:=[]   static Ptr:=A_PtrSize ? “UPtr” : “UInt”   static init:=!GetBitsFromScreen(0,0,0,0,1)   if (!ScreenShot)   {     zx:=oldzx, zy:=oldzy, zw:=oldzw, zh:=oldzh     return, bits   }   bch:=A_BatchLines, cri:=A_IsCritical   Critical   if (zwoldzh or !hBM)   {     DllCall(“DeleteObject”, Ptr,hBM), hBM:=””, bpp:=32     VarSetCapacity(bi, 40, 0), NumPut(40, bi, 0, “int”)     NumPut(zw, bi, 4, “int”), NumPut(-zh, bi, 8, “int”)     NumPut(1, bi, 12, “short”), NumPut(bpp, bi, 14, “short”)     hBM:=DllCall(“CreateDIBSection”, Ptr,0, Ptr,&bi       , “int”,0, Ptr “*”,ppvBits, Ptr,0, “int”,0, Ptr)     Scan0:=(!hBM ? 0:ppvBits), Stride:=((zw*bpp+31)//32)*4     bits.1:=Scan0, bits.2:=Stride     oldzx:=zx, oldzy:=zy, oldzw:=zw, oldzh:=zh     x:=zx, y:=zy, w:=zw, h:=zh   }   if (hBM) and !(w>3&1) . (i>>2&1) . (i>>1&1) . (i&1)     s:=StrReplace(s,A_LoopField,v)   }   ListLines, %lls%   StringCaseSense, Off   s:=SubStr(s,1,InStr(s,”1″,0,0)-1)   s:=RegExReplace(s,”[^01]+”)   return, s }

bit2base64(s) {   s:=RegExReplace(s,”[^01]+”)   s.=SubStr(“100000″,1,6-Mod(StrLen(s),6))   s:=RegExReplace(s,”.{6}”,”|$0″)   Chars:=”0123456789+/ABCDEFGHIJKLMNOPQRSTUVWXYZ”     . “abcdefghijklmnopqrstuvwxyz”   SetFormat, IntegerFast, d   lls:=A_ListLines=0 ? “Off” : “On”   ListLines, Off   Loop, Parse, Chars   {     i:=A_Index-1, v:=”|” . (i>>5&1) . (i>>4&1)       . (i>>3&1) . (i>>2&1) . (i>>1&1) . (i&1)     s:=StrReplace(s,v,A_LoopField)   }   ListLines, %lls%   return, s }

ASCII(s) {   if RegExMatch(s,”\$(\d+)\.([\w+/]+)”,r)   {     s:=RegExReplace(base64tobit(r2),”.{” r1 “}”,”$0`n”)     s:=StrReplace(StrReplace(s,”0″,”_”),”1″,”0″)   }   else s=   return, s }

; 可以在脚本的开头用 PicLib(Text,1) 导入字库, ; 然后使用 PicLib(“说明文字1|说明文字2|…”) 获取字库中的数据

PicLib(comments, add_to_Lib:=0, index:=1) {   static Lib:=[]   SetFormat, IntegerFast, d   if (add_to_Lib)   {     re:=”]*)>[^$]+\$\d+\.[\w+/]+”     Loop, Parse, comments, |       if RegExMatch(A_LoopField,re,r)       {         s1:=Trim(r1), s2:=””         Loop, Parse, s1           s2.=”_” . Ord(A_LoopField)         Lib[index,s2]:=r       }     Lib[index,””]:=””   }   else   {     Text:=””     Loop, Parse, comments, |     {       s1:=Trim(A_LoopField), s2:=””       Loop, Parse, s1         s2.=”_” . Ord(A_LoopField)       Text.=”|” . Lib[index,s2]     }     return, Text   } }

PicN(Number, index:=1) {   return, PicLib(RegExReplace(Number,”.”,”|$0″), 0, index) }

; 使用 PicX(Text) 可以将文字分割成多个单字的组合,从而适应间隔变化 ; 但是不能用于“颜色位置二值化”模式, 因为位置是与整体图像相关的

PicX(Text) {   if !RegExMatch(Text,”\|([^$]+)\$(\d+)\.([\w+/]+)”,r)     return, Text   w:=r2, v:=base64tobit(r3), Text:=””   c:=StrLen(StrReplace(v,”0″))



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3