Boffon 发表于 2020-4-1 16:48

自己写的yys御魂python脚本

本帖最后由 Boffon 于 2020-4-1 23:24 编辑

突然发现觉醒副本也能用!!!突破也可以试一下
最近买了30买了一个礼包,但是花和战升级太慢了,于是花了半天的时间用python写了一个脚本只能肝御魂,写完发现,虽然解放双手但是费体力,并且不能后台,电脑不能使用;
我的思路是用图像识别的方式,比较hash值来判断执行程序
拿到后还要根据自己的情况设置时间
下一个准备研究一下探索副本,欢迎大家一起交流;

print("正在加载库")
import win32api
import win32con
import time
import random
import win32gui
import random
from PIL import Image, ImageGrab
# %matplotlib inline
print("加载完成")
print("正在定义函数")
def move_click(x, y, t=0):# 移动鼠标并点击左键
    win32api.SetCursorPos((x, y))# 设置鼠标位置(x, y)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN |
                         win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)# 点击鼠标左键
    if t == 0:
      time.sleep(random.random()*2+1)# sleep一下
    else:
      time.sleep(t)
    return 0

def get_posx(x, window_size):# 返回x相对坐标
    return (window_size - window_size) * x /870

def get_posy(y, window_size):# 返回y相对坐标
    return (window_size - window_size) * y /520

def get_window_info():# 获取阴阳师窗口信息
    wdname = '阴阳师-网易游戏'
    handle = win32gui.FindWindow(0, wdname)# 获取窗口句柄
    if handle == 0:
      print('请打开PC端阴阳师,并进入御魂界面,选定御魂层数')
      return None
    else:
      return win32gui.GetWindowRect(handle)

def get_hash(img):
    img = img.resize((16, 16), Image.ANTIALIAS).convert('L')# 抗锯齿 灰度
    avg = sum(list(img.getdata())) / 256# 计算像素平均值
    s = ''.join(map(lambda i: '0' if i < avg else '1', img.getdata()))# 每个像素进行比对,大于avg为1,反之为0
    return ''.join(map(lambda j: '%x' % int(s, 2), range(0, 256, 4)))

def hamming(hash1, hash2, n=20):
    b = False
    assert len(hash1) == len(hash2)
    if sum(ch1 != ch2 for ch1, ch2 in zip(hash1, hash2)) < n:
      b = True
    return b

def resolution():# 获取屏幕分辨率
    return win32api.GetSystemMetrics(0), win32api.GetSystemMetrics(1)
print("函数定义完成")
print("正在读取对比图")
hash1='fe7ef01e6386c7c287e08ff01df83ffc3ffc1bf809f00de003c001820004381f'
hash3='09e03ff07ff27fe47ff87f783f7f7f0f4fef7e3f302f00000000000180000000'
print("脚本准备完成")
print("正在图像识别")
window_size=get_window_info()
topx, topy = window_size, window_size
a=topx + get_posx(732, window_size)
b=topy + get_posy(408, window_size)
c=topx + get_posx(832, window_size)
d=topy + get_posy(508, window_size)
img_ready = ImageGrab.grab((topx + get_posx(732, window_size), topy + get_posy(408, window_size),
                            topx + get_posx(832, window_size), topy + get_posy(508, window_size)))
# 查看图片
# img_ready
print("图像识别完成")
print("ma'shang")
hash2=get_hash(img_ready)
n=int(input("请输入要刷几次御魂:"))
for i in range(n):
    print("正在进行第"+str(i)+"次御魂")
    if hamming(hash1, hash2, n=20):
      e=random.randint(int(a)+10,int(c)-10)
      f=random.randint(int(b)+10,int(d)-10)
      move_click(e,f)
      time.sleep(random.randint(3,4))
      e=random.randint(1013,1112)
      f=random.randint(520,667)
      move_click(e,f)
      win32api.SetCursorPos((random.randint(200,500),random.randint(200,500)))
      time.sleep(random.randint(1,3))
      win32api.SetCursorPos((random.randint(200,500),random.randint(200,500)))
      move_click(random.randint(200,500),random.randint(200,500))
      g=random.randint(40,45)
      time.sleep(g)
      window_size=get_window_info()
      topx, topy = window_size, window_size
      a1=topx + get_posx(350, window_size)
      c1=topx + get_posx(510, window_size)
      b1=topy + get_posy(280, window_size)
      d1=topy + get_posy(450, window_size)
      img2 = ImageGrab.grab((a1,b1,c1,d1))
      hash4=get_hash(img2)
      if hamming(hash3,hash4,n=20):
            e=random.randint(1013,1112)
            f=random.randint(520,667)
            move_click(e,f)
            time.sleep(random.randint(3,4))
      print("第"+str(i+1)+"次御魂已完成")
print("任务全部完成")

UPC 发表于 2020-4-1 19:37

Boffon 发表于 2020-4-1 19:24
我也是,过段时间碰一碰,要有需求才有学习的动力啊

其实俺是在做毕设被逼着学Python的{:301_972:}{:301_972:}学了之后看到很多人说作用大(好像是这么回事,虽然还啥也做不了{:1_937:}),所以我决定还会继续深入学习:lol

Boffon 发表于 2020-4-1 23:22

UPC 发表于 2020-4-1 19:37
其实俺是在做毕设被逼着学Python的学了之后看到很多人说作用大(好像是这么回事, ...

我也是之前毕业设计的时候学了一点,现在上班了偶尔娱乐一下

Xiniur 发表于 2020-4-1 17:22

谢谢分享

UPC 发表于 2020-4-1 17:26

学习了...唉呸!....收藏了,python入门中{:301_1000:}

白狐、 发表于 2020-4-1 17:35

一脸懵,看不懂呀{:1_909:}

flymew 发表于 2020-4-1 17:35

虽然用不到,还是赞一下。

黑白时代 发表于 2020-4-1 17:47

虽然现在不玩了,还是要支持下

mxhao88 发表于 2020-4-1 18:29

谢谢分享,下载试用一下

vagrantear 发表于 2020-4-1 19:09

过来学习一下,看看源码,感谢分享

Boffon 发表于 2020-4-1 19:24

UPC 发表于 2020-4-1 17:26
学习了...唉呸!....收藏了,python入门中

我也是,过段时间碰一碰,要有需求才有学习的动力啊
页: [1] 2
查看完整版本: 自己写的yys御魂python脚本