剑三商城网页外观限量脚本自用学习测试交流代码
花影残月
编辑于 2024年05月31日 05:27

//5月10日测试,cookie只保存3小时

//chrome浏览器无痕模式,无痕不记录cookie才能登录多个账号

//按键,多开

//--------------输入项:多开的数量------------------------------------------------------------------------------

N = 25

//--------------输入项:大区服务器账号密码,目前是4项输入信息,一行输入所有,分隔符空格-----------------

zhangmi = "大区 服务器 账号 密码 大区 服务器 账号 密码"

dim Myzhangmi

Myzhangmi = Split(zhangmi, " ")

//--------------------------------------打开商城网址------------------------------------------------------------

HwndEx = Plugin.Window.SearchEx("Chrome_WidgetWin_1", "打开新的无痕模式标签页 - Google Chrome", 0)

Dim MyArray_chrome

MyArray_chrome=Split (HwndEx,"|")

i=0

While i < N

Call Plugin.Window.Restore(MyArray_chrome(i))

Call Plugin.Window.Size(MyArray_chrome(i), 550, 910)//窗口调整大小为550,910

i = i + 1

Wend

i=0

While i < N

Call Plugin.Window.Active(MyArray_chrome(i))//激活窗口

Call Plugin.Bkgnd.LeftClick(MyArray_chrome(i), 176 + Rnd() * 1, 62 + Rnd() * 1)//点击网址输入框

Delay 100

Call Plugin.Bkgnd.SendString(MyArray_chrome(i), "https://webmall.xoyo.com/#/sign-in?redirect=%2F") //商城网址

Call Plugin.Bkgnd.KeyDown(MyArray_chrome(i), 13)

Delay 50

i = i + 1

Wend

Delay 5000

//-------------------------------窗口操作---------------------------------------------------------

HwndEx = Plugin.Window.SearchEx("Chrome_WidgetWin_1", "剑网3游戏商城(网页版) - Google Chrome", 0)

Dim MyArray

MyArray=Split (HwndEx,"|")

i=0

While i < N

Call Plugin.Window.Restore(MyArray(i))

Call Plugin.Window.Size(MyArray(i), 550, 910)//窗口调整大小为550,910

  If i < 45 Then 

   Call Plugin.Window.Move(MyArray(i), 40 * i, 0)

   Delay 100

  Else 

    Call Plugin.Window.Move(MyArray(i), 40 * (i - 45), 100)

    Delay 100

  End If

i = i + 1

Wend

Dim H_商城

H_商城=Split ("1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50"," ")

i = 0

While i < N

Call Plugin.Window.Active(MyArray(i))  

Call Plugin.Window.Show(MyArray(i))  //5月10日测试,不知道什么原因后台获取不了,这里只好使用前台获取了

MoveTo 30 + 40 * i, 200

Delay 500               //这些延迟,或者下面所有的相关延迟根据情况修改

H_商城(i) = Plugin.Window.MousePoint()

Delay 500

TracePrint (H_商城(i))

i = i + 1

Wend

Dim H_商城_最底层

H_商城_最底层=Split ("1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50"," ")

i = 0

While i < N

H_商城_最底层(i) = Plugin.Window.FindEx(MyArray(i), 0, 0, "")

i = i + 1

Wend

Function 刷新

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(MyArray(i), 91, 62)  

i = i + 1

wend

Delay 9000 //延迟一下,太快怕没刷新好

End Function

Call 刷新

//--------------------5.10--这个网页的bg取色不知道为什么用不了----------------------

Delay 5000

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Delay 80

Call Plugin.Bkgnd.LeftClick(H_商城(i), 343 + Rnd() * 1, 374 + Rnd() * 1)//点击登录

Delay 100

i = i + 1

Wend

Delay 5000//延迟一下,太快怕出问题

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))  //5月10日测试,不知道什么原因后台会乱输入,用前台

Call Plugin.Bkgnd.LeftClick(H_商城(i), 171 + Rnd() * 1, 193 + Rnd() * 1)

Delay 800

Call Plugin.Bkgnd.SendString(H_商城(i), Myzhangmi(2 + 4 * i))//输入账号

Delay 200

i = i + 1

Wend

Delay 1000//延迟一下,太快怕出问题

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))  //5月10日测试,不知道什么原因后台会乱输入,用前台

Call Plugin.Bkgnd.LeftClick(H_商城(i), 171 + Rnd() * 1, 242 + Rnd() * 1)

Delay 800

Call Plugin.Bkgnd.SendString(H_商城(i), Myzhangmi(3 + 4 * i))//输入密码

Delay 200

i = i + 1

Wend

Delay 1000//延迟一下,太快怕出问题

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Bkgnd.LeftClick(H_商城(i), 158 + Rnd() * 1, 411 + Rnd() * 1)//勾选协议

i = i + 1

Wend

Delay 1000//延迟一下,太快怕出问题

//因为验证码有操作时效,这段立即登录不要了

//i=0

//While i < N

//Call Plugin.Window.Active(MyArray(i))//激活窗口

//Call Plugin.Bkgnd.LeftClick(H_商城(i), 163 + Rnd() * 360, 308 + Rnd() * 33)//立即登录

//i = i + 1

//Wend

//=======================这里可以加入自动打码平台的接口=======判定验证码==================

K核实1 = InputBox("核实所有号打码完毕,登录完毕。输入任意值点确认")

Function 鼠标拖上去一格(A)

While A>0

  Delay 100

  Call Plugin.Bkgnd.LeftDown(H_商城(i), 303, 654)

  Delay 100

  Call Plugin.Bkgnd.MoveTo(H_商城(i), 303, 606)

  Delay 100

  Call Plugin.Bkgnd.LeftUp(H_商城(i), 303, 606)

  Delay 100

  A = A - 1

Wend

End Function

Function 前台鼠标——点击确定

MoveTo 573 + 40 * i, 527

  Delay 500

  LeftClick 1

  Delay 500

End Function

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))  //5月10日测试,不知道什么原因后台有时候点不出来,用前台

Delay 200

Call Plugin.Bkgnd.LeftDoubleClick(H_商城(i), 211 + Rnd() * 332, 247 + Rnd() * 30)//选择大区

Delay 800

i=i+1

Wend

Delay 2000

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))  

Delay 200

If Myzhangmi(0+4*i) = "双线一区" or Myzhangmi(0+4*i) = "双线二区" or Myzhangmi(0+4*i) = "双线四区" or Myzhangmi(0+4*i) = "双线区"Then 

Delay 500

Call 鼠标拖上去一格(1)

  Call 前台鼠标——点击确定

  TracePrint ("选择了双线区")

Else 

  Call 前台鼠标——点击确定

  TracePrint ("选择了电信区")

End If

i = i + 1

Wend

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))//5月10日测试,不知道什么原因后台有时候点不出来,用前台

Delay 200

Call Plugin.Bkgnd.LeftClick(H_商城(i), 207 + Rnd() * 336, 319 + Rnd() * 31)//选择服务器

Delay 800

i=i+1

Wend

Delay 2000

i=0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))

If i=0 Then 

Delay 3500

Else

  Delay 350

End If

If Myzhangmi(1 + 4 * i) = "天鹅坪"or Myzhangmi(1 + 4 * i) = "唯我独尊" Then 

  Call 鼠标拖上去一格(1)

  TracePrint("选择了天鹅坪or唯我独尊")

ElseIf Myzhangmi(1 + 4 * i) = "破阵子" or Myzhangmi(1 + 4 * i) = "梦江南" Then

  TracePrint("选择了破阵子or梦江南")

ElseIf Myzhangmi(1 + 4 * i) = "飞龙在天" or Myzhangmi(1 + 4 * i) = "斗转星移" Then

  Call 鼠标拖上去一格(3)

  TracePrint("选择了飞龙在天or斗转星移")

ElseIf Myzhangmi(1 + 4 * i) = "青梅煮酒" or Myzhangmi(1 + 4 * i) = "乾坤一掷" Then

  Call 鼠标拖上去一格(2)

  TracePrint ("选择了青梅煮酒or乾坤一掷")

ElseIf Myzhangmi(1 + 4 * i) = "幽月轮" Then

  Call 鼠标拖上去一格(4)

  TracePrint ("选择了幽月轮")

ElseIf Myzhangmi(1 + 4 * i) = "剑胆琴心" Then

  Call 鼠标拖上去一格(5)

  TracePrint("选择了剑胆琴心")

ElseIf Myzhangmi(1 + 4 * i) = "绝代天骄" Then

  Call 鼠标拖上去一格(6)

  TracePrint ("选择了绝代天骄")

ElseIf Myzhangmi(1 + 4 * i) = "蝶恋花" Then

  Call 鼠标拖上去一格(7)

  TracePrint("选择了蝶恋花")

ElseIf Myzhangmi(1 + 4 * i) = "龙争虎斗" Then

  Call 鼠标拖上去一格(8)

  TracePrint ("选择了龙争虎斗")

ElseIf Myzhangmi(1 + 4 * i) = "长安城" Then

  Call 鼠标拖上去一格(9)

  TracePrint ("选择了长安城") 

End If   

Call 前台鼠标——点击确定

i = i + 1

Wend

i = 0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))

Delay 200

Call Plugin.Bkgnd.LeftClick(H_商城(i), 206 + Rnd() * 338, 391 + Rnd() * 32)//选择角色

Delay 800

i = i + 1

Wend

Delay 1000

i = 0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))//5月10日测试,不知道什么原因后台有时候点不出来,用前台

Delay 200

Call 前台鼠标——点击确定

i = i + 1

Wend

Delay 1000

i = 0

While i < N

Call Plugin.Window.Active(MyArray(i))//激活窗口

Call Plugin.Window.Show(MyArray(i))

Delay 200

Call Plugin.Bkgnd.LeftClick(H_商城(i), 180 + Rnd() * 255, 519 + Rnd() * 36)//确定

i = i + 1

Wend

Delay 8000

//---------------------------------------------解锁------------------------------------------

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 74 + Rnd() * 7, 78 + Rnd() * 9)//点击解锁

i = i + 1

Wend

Delay 3000

j = 5

Rem 点击解锁

While j > 0

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 295 + Rnd() * 9, 463 + Rnd() * 35)//点击开始解锁,用中间那个位置防止点到物品

i = i + 1

Delay 3000

Wend

j =j -1

Wend

j = InputBox("观察是否解锁完毕,完毕则输入0点击确认,否则输入1-10,数字代表进行的解锁次数,点击确认")

If j = 0 Then 

TracePrint ("解锁完毕")

Else 

  Goto 点击解锁

End If

//------------------------------抢从这里开始-------------------------------------------------------------------

Call 刷新//有可能第一次进入商城,是无商品状态的(所以刷新一下)

Function 点击限时限量

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 74 + Rnd() * 75, 200 + Rnd() * 10)//点击限时限量

Delay 100+Rnd() * 20  //太快怕出问题

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Function 点击限量抢购

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 213 + Rnd() * 0, 89 + Rnd() * 0)//点击限量抢购

Delay 100+Rnd() * 20  //太快怕出问题

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Function 点击第一个物品

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 74 + Rnd() * 200, 214 + Rnd() * 432)//点击第一个物品

Delay 100+Rnd() * 20  //太快怕出问题

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Function 点击第二个物品

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 331 + Rnd() * 197, 215 + Rnd() * 430)//点击第二个物品

Delay 100+Rnd() * 20  //太快怕出问题

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Function 点击第三个物品

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 74 + Rnd() * 210, 696 + Rnd() * 11)//点击第三个物品

Delay 100+Rnd() * 20  //太快怕出问题

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Function 点击下面的立即购买

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 44 + Rnd() * 520, 719 + Rnd() * 51)//点击下面的立即购买

Delay 100+Rnd() * 20  //太快怕出问题

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Delay 5000  //进入商城限量外观--预购界面

Call 点击限时限量

Call 点击限量抢购

Call 点击第一个物品

Call 点击下面的立即购买

//----------每次抢购时间不一致,需要修改-----------等待----------20:15---------------------------------------

Rem 倒计数中1  //20.15,等待抢限量(和脚本系统时间进行倒计数运算)

Dim MyTime1

MyTime1 = Time

time数组 = Split(MyTime1, ":")

//倒计时20:14:55----20:15:05,这里可以修改测试

If time数组(0) = 20 and time数组(1)=14 and time数组(2)>=55 then

TracePrint ("正在执行抢盒子命令:>14分55秒"&MyTime1)

ElseIf time数组(0) = 20 and time数组(1) = 15 and time数组(2) < 5 Then

  TracePrint ("正在执行抢盒子命令<15分5秒"&MyTime1)

ElseIf time数组(0) = 20 and time数组(1)=15 and time数组(2) >= 5 then

TracePrint ("时间已过,准备退出商城"&MyTime1)

Goto 退出商城1

Else 

  TracePrint ("时间还没到,回来继续等待"&MyTime1)

  Delay 1000

  Goto 倒计数中1

End If

i = 0    //时间到20:15,开始抢购

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 208 + Rnd() * 194, 516 + Rnd() * 41)//点击二次确认购买

i = i + 1

Wend

Delay 100//不知道多少比较好,太快连点怕出问题

//如果没有通宝的话,这里会跳转另一个界面,剩下的操作就失效了(但是也没有通宝了,无所谓)

Goto 倒计数中1

Rem 退出商城1

Delay 30000

Function 点击x掉通宝不足界面

i = 0

While i < N

Delay 25

Call Plugin.Bkgnd.LeftClick(H_商城(i), 304 + Rnd() * 0, 571 + Rnd() * 0)//点击x掉通宝不足界面

Delay 55

i = i + 1

Wend

Delay 2000//等待加载 可以去掉

End Function

Function 点击左上返回键(B)

While B>0

i = 0

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 71, 29)//点击,左上返回键

Delay 150

i = i + 1

Wend

B=B-1

Wend

Delay 1000//等待加载 可以去掉

End Function

Call 点击x掉通宝不足界面

//主要是还不知道,第一个物品抢完后会不会消失,还是不消失继续抢第二个物品。加一个点击第二个物品购买(我觉得可以刷新试试看)

Call 点击左上返回键(5)

Call 刷新

Call 点击限时限量

Call 点击限量抢购

Call 点击第一个物品

Call 点击第二个物品

Call 点击下面的立即购买

//-------------------------------等待------------------20:25---------------------------------------

Rem 倒计数中2  //20.25,等待抢限量(和脚本系统时间进行倒计数运算)

Dim MyTime2

MyTime2 = Time

time数组 = Split(MyTime2, ":")

//倒计时20:24:55----20:25:05,这里可以修改测试

If time数组(0) = 20 and time数组(1)=24 and time数组(2)>=55 then

TracePrint ("正在执行抢盒子命令:>29分40秒"&MyTime2)

ElseIf time数组(0) = 20 and time数组(1) = 25 and time数组(2)<5 Then

TracePrint ("正在执行抢盒子命令:<30分08秒"&MyTime2)

ElseIf time数组(0) = 20 and time数组(1)= 25 and time数组(2) >= 5 then

TracePrint ("时间已过,准备退出商城"&MyTime2)

Goto 退出商城2

Else 

  TracePrint ("时间还没到,回来继续等待"&MyTime2)

  Delay 1000

  Goto 倒计数中2

End If

i = 0    //时间到20:30,开始抢购

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 208 + Rnd() * 194, 516 + Rnd() * 41)//点击二次确认购买

i = i + 1

Wend

Delay 100//不知道多少比较好,太快连点怕出问题

//如果没有通宝的话,这里会跳转另一个界面,剩下的操作就失效了(但是也没有通宝了,无所谓)

Goto 倒计数中2

Rem 退出商城2

Delay 30000

Call 点击x掉通宝不足界面

//主要是还不知道,第一个物品抢完后会不会消失,还是不消失继续抢第二个物品。加一个点击第二个物品购买(我觉得可以刷新试试看)

Call 点击左上返回键(5)

Call 刷新

Call 点击限时限量

Call 点击限量抢购

Call 点击第一个物品

Call 点击第三个物品

Call 点击下面的立即购买

//-------------------------------等待------------------20:30---------------------------------------

Rem 倒计数中3  //20.30,等待抢限量(和脚本系统时间进行倒计数运算)

Dim MyTime3

MyTime3 = Time

time数组 = Split(MyTime3, ":")

//倒计时20:29:55----20:30:05,这里可以修改测试

If time数组(0) = 20 and time数组(1)=29 and time数组(2)>=55 then

TracePrint ("正在执行抢盒子命令:>34分40秒"&MyTime3)

ElseIf time数组(0) = 20 and time数组(1) = 29 and time数组(2) < 5 Then

TracePrint ("正在执行抢盒子命令:<35分08秒"&MyTime3)

ElseIf time数组(0) = 20 and time数组(1)= 30 and time数组(2) >= 5 then

TracePrint ("时间已过,准备退出商城"&MyTime3)

Goto 退出商城3

Else 

  TracePrint ("时间还没到,回来继续等待"&MyTime3)

  Delay 1000

  Goto 倒计数中3

End If

i = 0    //时间到20:30,开始抢购

While i < N

Call Plugin.Bkgnd.LeftClick(H_商城(i), 208 + Rnd() * 194, 516 + Rnd() * 41)//点击二次确认购买

i = i + 1

Wend

Delay 100//不知道多少比较好,太快连点怕出问题

//如果没有通宝的话,这里会跳转另一个界面,剩下的操作就失效了(但是也没有通宝了,无所谓)

Goto 倒计数中3

Rem 退出商城3

Delay 30000

Call 点击x掉通宝不足界面

//主要是还不知道,第一个物品抢完后会不会消失,还是不消失继续抢第二个物品。加一个点击第二个物品购买(我觉得可以刷新试试看)

Call 点击左上返回键(5)

Call 刷新

//=================================抢完了,回到首页=================================================