挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
游戏交易就上寄售网-专注稳定-诚信赢天下玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 11548|回复: 43
打印 上一主题 下一主题

[按键辅助教程] 秒杀所有类似疾风之刃的创建角色思路

[复制链接]
3正式会员
142/300

142

积分

47

主题

5

听众
已帮网友解决0 个问题
好评
0
贡献
95
海币
290
交易币
0
跳转到指定楼层
楼主
发表于 2015-3-24 14:06:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


秒杀所有类似疾风之刃创建角色思路
本文按键学院提供技术支持

按键学院交流群(1群已满):376122403
零基础学按键精灵群(2群):372671254


上一期院刊中,我们分享了XNF自动登录的思路,以及代码。
今天我们体验下《疾风之刃》的创建角色。
并且附带上,《疾风之刃》自动登录代码。





疾风之刃自动登录

《疾风之刃》的自动登录和上一期的XNF的思路流程是一样的,套用进去即可。

上期院刊链接地址:
游客,如果您要查看本帖隐藏内容请回复





创建角色——流程图






脚本界面


1Form1.InputBox1    帐号信息。(帐号多,可使用txt方式记录读取)
2Form1.InputBox2    密码信息。
3Form1.ListBox1       角色职业信息。(疾风之刃目前暂时只有四类角色。)
4Form1.OptionBox1  Form1.OptionBox1 在该区服是否有创建过角色
    (如果在该区服是第一次建立角色,选择区服登录游戏之后,播放完游戏动画后会直接跳转到创建角色的界面)
    (如果在该区服已经建立过角色,选择区服登录游戏之后,会跳转到选频道的界面)

  


在该区服已创建过角色





目前疾风之刃四个大区
自动登录里,小编做的选区例子选择的是电信一区幽眠峡谷
如果之前在这个区服中创建过角色,点击进入游戏,游戏动画播放完之后会进入选频道的界面


{:4_88:}
那么,问题来了,播放动画很耗时,跳过动画播放的方法是点击游戏窗口按ESC键
但是,我们在上期的时候提到过,游戏窗口句柄生成并不代表窗口界面已经完全加载好显示出来了。
所以估摸不好,要在什么时候按下ESC键
性能不好点的电脑,加载游戏的时候,虽然窗口边缘出来了,但是窗口内里还是空的透明的。所以通过找窗口标题条的图片也不得行。
例子中,小编没有跳过动画,而是等动画播放完毕。如果童鞋们有好的解决方法,欢迎跟帖分享~~






所以,选好区服点击 进入游戏 按钮之后,
咱们就开始循环找图

找选频道界面的这个选择频道按钮。
如果找到了,说明动画已经播放完毕。



{:4_91:}
接着就是绑定窗口了,游戏窗口的类名为"JFZR"
我们就用类名来查找窗口。
与登录窗口不同,游戏窗口是支持后台图色模式的,
测试发现,dx模式可以截取到后台图色。

图色模式:dx模式
鼠标模式:
windows模式
键盘模式:
windows模式
文本输入:SendString2


本例子中,游戏窗口的分辨率为1280*720,窗口模式





{:4_87:}

选择频道默认选中的是上次登录过的频道
不需去改变它。
绑定窗口之后我们点击进入频道进入选角色的界面





循环找图判断 “创建角色” 按钮 是否出现,出现则说明到了选择角色界面。
注意:找到创建角色按钮图片的时候,界面并没有完全加载,所以如果找到就马上点击的话,会出现没有响应的情况。在找到创建角色 按钮图片的代码之后,我们可以加点延时。延时过后再点击创建角色按钮 进入创建角色界面。




在该区服未创建过角色
未创建过角色,在选好区服点击进入游戏之后,游戏动画播放完毕直接进入到创建角色界面。





我们通过循环找 “生成”按钮,来判断是不是已经到了创建角色界面。

疾风之刃选择角色职业的方式,是靠点击来选择的,点击生成按钮上方的小圈圈选择中意的职业。
每个圈圈之间间隔87个像素点(没有很精确,小编估算了下是87。误差一点没有关系,只要保证四个角色,点击的位置都在有效范围即可。)
第一个职业圈圈的中心点为 500,590.
也就是说,如果我们想要点击第二个的话,要在第一个的基础上,x坐标加上87个像素点,y坐标不变。
第三个的x坐标加上2个87
第四个的x坐标加上3个87


{:4_95:}
我们用列表框来作为职业选择框,列表框的索引起始是0
剑斗士放在第一位,它的索引为0
刃武者第二位,索引为1
控魔师第三位,索引为2
千月姬第四位,索引为3


列表框的ListIndex属性,返回的是当前列表框选中项的索引值。
x坐标 = 500 + 87 *   Form1.ComboBox1.ListIndex
这样,一行代码就可以计算出当前要创建的职业的图标x坐标的值。
x坐标的值知道了,y坐标值不变,我们就可以开始点击要创建的职业图标,
点击之后会切换职业画面,我们设置个延时,等画面切完之后,点击“生成”按钮



拓展:
有的游戏是通过点击左右键来滚动切换角色,进行角色职业的选择。
角色排列顺序是固定的情况下,我们可以 以默认职业作为基点,计算到自己要创建的角色,需要再此基础上点击多少次右键或者左键才能选到。
通过这样的方式,即可选择要创建的职业。

取名界面




通过循环找 “名称”字样,来判断是不是已经到了取名界面。
用dm插件的SendString2命令向输入框输入名称,可以是指定的名称,也可以是随机的。
例子中,我们使用随机取名

{:4_92:}
怎么个随机法呢?

我的命令库——》算法








算法下就有随机取姓名函数
直接调用十分方便。
如果不想随机取中规中矩的姓名,
我们也可以自己设置要随机的名字。


详细内容可参见:  
游客,如果您要查看本帖隐藏内容请回复

输入名称之后,点击 创建角色 按钮。


判断名字是否重复



如果取的名字重复了会出现上图中的提示
如果名字可以使用,则角色创建成功,会返回到选择角色的界面





所以,我们点击创建角色之后,循环判断上图中的“是”按钮有没有出现(出现则返回到随机取名的步骤,重新取名重新输入。)  同时判断 “创建角色” 按钮是否出现,出现则说明创建成功,脚本结束。



整体代码




  1. ////////////////////////////////////////////////////////////////////////////////
  2. //                              自动登录                        ////////////////
  3. //////////////////////////////////////////////////////////////////////////////
  4. 帐号 =  Form1.InputBox1.Text
  5. 密码 = Form1.InputBox2.Text




  6. //////////////////////////////////
  7. //   释放附件、注册大漠等  ////////
  8. /////////////////////////////////
  9. PutAttachment "D:\test","*.*"'释放附件
  10. Call register()'调用注册大漠子程序
  11. dm_ret = dm.SetDict(0, "test.txt")'加载字库
  12. RunApp "E:\疾风之刃\TCLS\Client.exe"'启动游戏




  13. ////////////////////////////////////
  14. ////    查找登录窗口句柄     ////////
  15. ///////////////////////////////////
  16. Do
  17.     hwnd = Plugin.Window.find(0, "疾风之刃登录程序") '查找登录窗口句柄
  18.     Delay 200
  19. Loop While hwnd = 0



  20. ////////////////////////////////////
  21. ////      绑定窗口句柄       ////////
  22. ///////////////////////////////////
  23. dm_ret = dm.BindWindow(hwnd,"normal","windows","windows",0)'绑定窗口
  24. dm_ret = dm.GetClientRect(hwnd, x1, y1, x2, y2)'获取窗口客户区大小




  25. ////////////////////////////////////
  26. ////  判断是否在帐号输入界面 ////////
  27. //////////////////////////////////
  28. Call  判断(x1, y1, x2, y2, "判断是否在帐号输入界面.bmp")
  29. Rem 输入帐号密码
  30. Delay 1000
  31. MoveTo x1 + 966, y1 + 565'点击帐号输入框
  32. LeftClick 1



  33. ////////////////////////////////////
  34. ////      删除之前的帐号    ////////
  35. //////////////////////////////////
  36. For 20
  37.     KeyPress 8,1
  38. Next
  39. For 20
  40.     KeyPress 46,1
  41. Next



  42. ////////////////////////////////////
  43. ////      输入帐号          ////////
  44. //////////////////////////////////
  45. SayString 帐号



  46. ////////////////////////////////////
  47. //// 输入密码、点击 进入游戏 按钮  //
  48. //////////////////////////////////
  49. moveto  x1+974,y1+608  '点击密码输入框
  50. LeftClick 1
  51. Delay 1000
  52. Call Lib.键盘.KeyList(密码, 2, 20)'输入帐号

  53. dm.moveto  1023,725'点击 进入游戏 按钮
  54. dm.LeftdoubleClick



  55. ////////////////////////////////////
  56. //  判断是否在选区界面、选区   //////
  57. ///////////////////////////////////
  58. Do
  59.     dm_ret = dm.FindStr(x1, y1, x2, y2,"电信一区","ffffff-000000",1.0,intX,intY)
  60.     If intX >= 0 and intY >= 0 Then
  61.         dm.moveto intx, inty
  62.         dm.leftclick     '点击"电信一区"
  63.     End If
  64.     Delay 200
  65. Loop While dm_ret = - 1
  66. Do
  67.     dm_ret = dm.FindStr(x1, y1, x2, y2,"幽眠峡谷","ffffff-000000",1.0,intX,intY)
  68.     If intX >= 0 and intY >= 0 Then
  69.         dm.moveto intx, inty
  70.         dm.leftclick     '点击"幽眠峡谷"
  71.     End If
  72.     Delay 200
  73. Loop While dm_ret = - 1



  74. ////////////////////////////////////
  75. ////  点击"进入游戏" 按钮    ///////
  76. //////////////////////////////////
  77. dm.moveto 1035,714
  78. dm.leftclick



  79. ////////////////////////////////////
  80. ////    判断登录是否成功    ////////
  81. //////////////////////////////////
  82. Do
  83.     ' 查找 密码错误  界面
  84.     dm_ret = dm.FindPic( x1, y1, x2, y2,"确定.bmp","000000",0.9,0,intX,intY)
  85.     If intX >= 0 and intY >= 0 Then
  86.         Delay 1000
  87.         dm.moveto intX, intY
  88.         dm.leftclick
  89.         Goto 输入帐号密码  '出现错误提示,点击确定按钮之后,重新开始输入帐号密码
  90.         Exit Do
  91.     End If
  92.     '查找创建角色窗口句柄
  93.         hwnd = Plugin.Window.find("JFZR",0)
  94.         Delay 200
  95. Loop While hwnd = 0
  96. dm_ret = dm.UnBindWindow() '解绑登录窗口






  97. ////////////////////////////////////////////////////////////////////////////////////
  98. //////                             创建角色                         ////////////////
  99. //////////////////////////////////////////////////////////////////////////////////




  100. ///////////////////////////////////////////////////////////////////
  101. ////// 该区服已创建过角色,则执行选频道操作。未创建过则不选频道    ////
  102. /////////////////////////////////////////////////////////////////
  103. If Form1.OptionBox1.Value = 1 Then




  104. //////////////////////////////////////
  105. ///  判断是否在选择频道界面     ///////
  106. /////////////////////////////////////
  107. Call 判断(0, 0, 2000, 2000, "选择频道界面.bmp")



  108. ////////////////////////////////////
  109. ////////      绑定窗口句柄       ////
  110. ////////////////////////////////////
  111. dm_ret = dm.BindWindow(hwnd,"dx","windows","windows",0)'绑定窗口
  112. dm_ret = dm.GetClientRect(hwnd, x1, y1, x2, y2)'获取窗口客户区大小




  113. //////////////////////////////////////
  114. ///     点击 选择频道  按钮     ///////
  115. /////////////////////////////////////
  116. Delay 1000
  117. dm.moveto 637,653
  118. dm.leftclick  



  119. //////////////////////////////////////
  120. //////  查找创建角色按钮        ///////
  121. /////////////////////////////////////
  122. Do
  123.     dm_ret = dm.FindPic( x1, y1, x2, y2,"创建角色.bmp","000000",0.9,0,intX,intY)
  124.     If intX >= 0 and intY >= 0 Then
  125.         Delay 2000
  126.         dm.moveto intX, intY
  127.         dm.leftclick      
  128.         Exit Do
  129.     End If
  130. Loop While dm_ret = - 1

  131. End  if
  132. ///////////////////////////////////////
  133. //////                         ////////
  134. //////////////////////////////////////






  135. //////////////////////////////////////
  136. ////// 判断是否在创建角色界面  ////////
  137. /////////////////////////////////////   
  138. Call 判断(0, 0, 2000, 2000, "判断是否在创建角色界面.bmp")



  139. ////////////////////////////////////
  140. ////////      绑定窗口句柄       ////
  141. ////////////////////////////////////
  142. dm_ret = dm.BindWindow(hwnd,"normal","windows","windows",0)'绑定窗口
  143. dm_ret = dm.GetClientRect(hwnd, x1, y1, x2, y2)'获取窗口客户区大小



  144. ////////////////////////////////////////
  145. ////////      点击职业图标      ////////
  146. ///////////////////////////////////////  
  147. 职业序号= Form1.ComboBox1.ListIndex
  148. x坐标 = 500 + 87 * 职业序号
  149. dm.moveto x坐标, 590
  150. dm.leftclick



  151. ////////////////////////////////////////
  152. ////////    点击"生成"按钮       ////////
  153. ///////////////////////////////////////  
  154. Delay 2000
  155. dm.moveto 634,673
  156. dm.leftclick



  157. ////////////////////////////////////////
  158. ////////    输入随机姓名         ////////
  159. ///////////////////////////////////////  
  160. rem 输入随机姓名
  161. Call 判断(x1, y1, x2, y2, "输入名字.bmp")
  162. 随机姓名 = Lib.算法.随机取姓名()
  163. dm.moveto 566,576 '点击输入框
  164. dm.leftclick
  165. dm.SendString2 hwnd, 随机姓名
  166. Delay 200
  167. dm.moveto 630,670
  168. dm.leftclick




  169. ////////////////////////////////////////
  170. ////////   判断名字是否被占用    ////////
  171. ///////////////////////////////////////  
  172. Do
  173.     dm_ret = dm.FindPic( x1, y1, x2, y2,"名字被占用.bmp","000000",0.9,0,intX,intY)
  174.     If intX >= 0 and intY >= 0 Then
  175.         Delay 1000
  176.         dm.moveto intX, intY
  177.         dm.leftclick
  178.         Goto 输入随机姓名  '出现错误提示,点击确定按钮之后,重新开始输入随机姓名
  179.         Exit Do
  180.     End If   
  181.     ks = dm.FindPic( x1, y1, x2, y2,"创建角色.bmp","000000",0.9,0,intX,intY)
  182. Loop While ks = - 1



  183. ////////////////////////////////////////
  184. //////   "判断图片是否存在"子程序    ////
  185. ///////////////////////////////////////  
  186. Sub 判断(x, y, x2, y2,图片名称)
  187.     Do
  188.         dm_ret = dm.FindPic(x1, y1, x2, y2,图片名称,"000000",0.9,0,intX,intY)
  189.         Delay 200
  190.     Loop While dm_ret = - 1
  191. End Sub




  192. ////////////////////////////////////////
  193. //////        注册大漠          ////////
  194. ///////////////////////////////////////  
  195. Sub register()
  196.     Set ws = createobject("Wscript.Shell")
  197.     ws.run "regsvr32 atl.dll /s"
  198.     Set ws = nothing
  199.     call Plugin.RegDll.Reg ( "D:\test\dm.dll")
  200.     Set dm = createobject("dm.dmsoft")
  201.     ver = dm.ver()
  202.     If len(ver) = 0 Then
  203.         MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
  204.         EndScript
  205.     End If
  206.     dm.SetPath "D:\test"
  207. End Sub




  208. ////////////////////////////////////////
  209. //////      "脚本停止子程序"     ////////
  210. ///////////////////////////////////////  
  211. Sub OnScriptExit()
  212.     dm_ret = dm.UnBindWindow() //解绑窗口
  213. End Sub
复制代码
Q文件下载: 疾风之刃登录 创建角色 .rar (776.12 KB, 下载次数: 21)







游客,如果您要查看本帖隐藏内容请回复













联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:FIFA OL3自动后台经理人脚本
下一篇:机智的脚本——识别声音玩转最终幻想
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

4中级会员
587/600

587

积分

178

主题

6

听众
已帮网友解决0 个问题
好评
0
贡献
409
海币
3229
交易币
0
沙发
发表于 2015-3-24 16:38:22 | 只看该作者
强烈支持楼主ing……
4中级会员
343/600

343

积分

6

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
337
海币
974
交易币
0
板凳
发表于 2015-4-4 14:11:08 | 只看该作者
强烈支持楼主ing……

101

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
101
海币
503
交易币
0
地板
发表于 2015-4-9 23:26:45 | 只看该作者
我没有我没有哦

0

积分

0

主题

0

听众
已帮网友解决0 个问题
好评
0
贡献
0
海币
0
交易币
0
5#
发表于 2015-4-15 09:34:04 | 只看该作者
我只是看看这个是什么
3正式会员
253/300

253

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
253
海币
754
交易币
0

热心会员推广达人宣传达人签到达人

6#
发表于 2015-4-15 09:45:10 | 只看该作者
谢谢楼主分享,支持 海论坛
3正式会员
253/300

253

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
253
海币
754
交易币
0

热心会员推广达人宣传达人签到达人

7#
发表于 2015-4-15 09:59:43 | 只看该作者
支持下
回复

使用道具 举报

4

积分

2

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
2
海币
2
交易币
0
8#
发表于 2015-4-16 19:32:40 | 只看该作者
非常感谢楼主分享

15

积分

4

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
11
海币
643
交易币
0
9#
发表于 2015-4-23 03:01:49 | 只看该作者
好腻害的样子

57

积分

14

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
43
海币
940
交易币
0
10#
发表于 2015-4-28 11:27:55 | 只看该作者
V5,支持楼主!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-5-7 14:46 , Processed in 0.544126 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

快速回复 返回顶部 返回列表