金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
翻牌规则
1、截止时间:一月十五号。活动期间,LV30及以上的玩家每天登录可以获得1个翻牌机会。
2、LV30及以上的角色通关符合自身等级的推荐地下城2次即可获得1次翻牌机会。每日获得翻牌机会的个数不受限制。
3、消耗1个翻牌机会,可翻两张牌。
翻牌布局是4行4列:
我们可以集满8次翻牌次数之后一次性翻牌。
翻牌次数不够的话,可以通过 通关 “推荐地下城” 获取。
副本名字下有绿色字 "E适应等级" 提示的,就是翻牌规则里所说的 “推荐地下城”
翻牌攻略
卡牌对对翻里图片的分布是固定的五种,
首先需要知道当前翻牌的布局是属于哪种,
然后照着对应的布局点开图片即可:
每种布局的第四排的第二张图片是不一样的。
首次翻牌的时候,翻开第四排第二张图片,就能知道当前翻牌的布局是属于哪种。
流程图
执行步骤
本例子中的脚本为前台脚本,游戏窗口默认大小:800*600
1、游戏窗口移动之后,坐标会发生变化,所以需要获取窗口左上角坐标,来计算出变化后的坐标。
相关院刊:【院刊】-【201412期】简单几个步骤实现游戏掉线重连(上)
代码:
- Hwnd = Plugin.Window.Find("地下城与勇士", "地下城与勇士")
- sRect = Plugin.Window.GetClientRect(Hwnd)
- MyArray = Split(sRect, "|")
- x = Clng(MyArray(0)) : y = Clng(MyArray(1))
复制代码
2、 点击卡牌对对翻的活动图标
3、通过查找 "翻牌次数" 来判断卡牌翻翻界面是否出现。
每隔一秒查找一次,如果找到则退出循环,继续下一步,五次没有找到,则提示信息并且停止脚本运行。
(避免找不到图进入死循环)
代码:
- ////////判断卡牌翻翻界面是否出现/////////
- For 5
- FindPic x 90,y 37,x 322,y 116,"D:\卡牌翻翻\翻牌次数.bmp",0.9,intX,intY
- If intX > 0 And intY > 0 Then
- j=1
- Exit For
- End If
- Delay 1000
- Next
- If j 4、翻开第四排第二张图片,判断第四排第二张图片是哪张图片
- 第一种布局:第四排第二张图片是一只紫色的羊
- 第二种布局:第四排第二张图片是一只粉红色的羊
- 第三种布局:第四排第二张图片是一只绿色的羊
- 第四种布局:第四排第二张图片是一只Yellow色的羊
- 第五种布局:第四排第二张图片是一只蓝色的羊
- 将这五只羊截图以供查找
- 小编没有截取整只羊,只截了一丢丢, 找图的范围也设置在第四排第二张图片的上半部
- 这样可以提高找图效率。
- 代码: 1 Then
- MessageBox "没找到翻牌界面 T_T"
- EndScript
- End If
复制代码
例如,翻开的第四排第二张图是紫色的羊。
那么,接下去应该是:
点开第四排第一张图
点开第一排第一张图
点开第二排第二张图
点开第一排第二张图
点开第一排第三张图
以此类推……
我们需要记录下这一组要点击的坐标
打开抓抓放大镜,移动到第四排的第一张图片上记下它的坐标
再移动到第一排第一张图片的位置上记下它的坐标 ?
这么麻烦?
麻烦的事情还是交给脚本来做吧。
另写一个脚本专门用来获取坐标:
- ////////翻开第四排第二个图片////////////////
- MoveTo x 451,y 467
- LeftClick 1
- Delay 1000
- ////////找第四排第二个图片是哪张图片///////
- For i= 1 to 5
- FindPic x 423,y 420,x 500,y 474,"D:\卡牌翻翻\" & i &".bmp",0.9,intX,intY
- If intX > 0 And intY > 0 Then
- TracePrint i
- 布局=i
- End If
- Next
复制代码
启动“获取坐标”脚本之后,按照布局,依次右击图片
红色框框里的就是我们需要的坐标组了,复制保存起来。
用这种方法将五种布局需要点击的坐标组获取到。
5、根据布局,选择对应的坐标字符串
代码:
- Hwnd = Plugin.Window.Find("地下城与勇士", "地下城与勇士")
- Call Plugin.Window.Move(hwnd,0,0)
- For 32 //16张图片本应该循环16次,但是由于waitclick命令,鼠标按下弹起都会触发一次,所以这里需要循环32次
- last_click=WaitClick()
- If last_click=32773 then //判断鼠标右键是不是按下
- GetCursorPos x, y
- TracePrint x & "," & y
- 坐标字符串 = 坐标字符串 & "x " & x & "," &"y " & y & "|"
- End if
- Next
- TracePrint 坐标字符串
复制代码
6、分割坐标字符串,依次点击坐标
代码:
- ////////根据布局,选择对应的坐标字符串///////
- Select Case 布局
- Case 1 //紫色的羊,第一种布局
- 坐标字符串 ="x 373,y 465|x 372,y 110|x 449,y 231|x 456,y 118|x 552,y 119|x 629,y 113|x 642,y 233|x 366,y 226|x 548,y 235|x 367,y 350|x 460,y 353|x 553,y 349|x 553,y 469|x 636,y 344|x 641,y 468"
- Case 2 // 粉红色的羊,第二种布局
- 坐标字符串 ="x 459,y 241|x 371,y 125|x 638,y 120|x 459,y 114|x 561,y 117|x 377,y 240|x 558,y 244|x 636,y 242|x 634,y 477|x 371,y 353|x 552,y 359|x 448,y 356|x 633,y 354|x 383,y 474|x 548,y 478"
- Case 3 //绿色的羊,第三种布局
- 坐标字符串 ="x 372,y 346|x 361,y 113|x 461,y 244|x 458,y 109|x 549,y 354|x 548,y 116|x 641,y 234|x 645,y 116|x 372,y 481|x 368,y 228|x 556,y 475|x 552,y 233|x 631,y 353|x 465,y 350|x 632,y 467"
- Case 4 //**的羊,第四种布局
- 坐标字符串 ="x 387,y 464|x 366,y 120|x 367,y 344|x 466,y 116|x 364,y 233|x 547,y 121|x 637,y 345|x 646,y 103|x 645,y 239|x 462,y 236|x 559,y 244|x 451,y 349|x 635,y 470|x 550,y 358|x 549,y 464"
- Case 5 //蓝色的羊,第五种布局
- 坐标字符串 ="x 459,y 346|x 373,y 111|x 372,y 244|x 465,y 116|x 466,y 233|x 555,y 117|x 645,y 119|x 546,y 235|x 640,y 472|x 640,y 232|x 544,y 470|x 378,y 353|x 369,y 464|x 553,y 360|x 633,y 360"
- End Select
复制代码
Execute知识相关:
【院刊】-【201410期】 神奇的Execute语句
整体代码
- ////////分割坐标字符串,依次点击坐标//////////////
- 坐标 = Split(坐标字符串, "|")
- For i = 0 To UBound(坐标)
- Execute "MoveTo " & 坐标(i)
- LeftClick 1
- Delay 1000
- Next
复制代码