阴阳师代刷小程序

起因

本人在平时偶尔玩玩阴阳师,最近阴阳师推出了拜师系统,奖励丰厚。收够五个徒弟还能有动态框框和皮蛋。但是自己又不是魔鬼那种巨佬,又没人看的上。故开了个小号,小号又没有樱饼开不了系统自带的代刷系统。想到python能够通过模块来控制鼠标,那么能不能通过python控制鼠标来代肝呢。

实现

python用来控制鼠标之类的系统控件的模块为pywin32,pywin32模块下载地址在安装时需先配置python环境,安装完pywin32后就可以开始编码了。(本人使用网易阴阳师官方电脑版客户端登录)

import random
import time
import win32api, win32gui, win32con

# 需要点击的坐标
pos = {
    'people':(578, 336),#单人开始按钮的坐标
    'team':(659, 398),#多人组队开始按钮的坐标
}

def reset_window_pos(targetTitle):
    '''
    搜索桌面上的应用,将对应应用名的窗口固定并拉伸尺寸 
    '''
    hWndList = []
    win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd), hWndList)
    for hwnd in hWndList:
        title = win32gui.GetWindowText(hwnd)
        if (title.find(targetTitle) >= 0):    #调整目标窗口到坐标(600,300),大小设置为(600,600)
            win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 0,0,800,0, win32con.SWP_SHOWWINDOW)

def ClickLeftCur():
    '''
    鼠标的单击事件 
    '''
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    time.sleep(0.05)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)


def moveCurPos(pos):
    '''
    鼠标的移动事件
    '''
    win32api.SetCursorPos(pos)


def getCurPos():
    '''
    获取鼠标的坐标 
    '''
    return win32gui.GetCursorPos()

def GetRandom():
    '''
    生成随机坐标元祖
    '''
    return (random.randint(20,700),random.randint(300,400))

if __name__ == '__main__':
    time.sleep(2)
    # 获取当前鼠标的坐标
    # xy = getCurPos()
    # print(xy)
    # 获取阴阳师手游的窗口并将它固定
    reset_window_pos('阴阳师-网易游戏')
    # 循环操作
    for i in range(100):
        # 移动到单人开始的坐标,模拟点击,并等待23秒
        # 组队时,将pos['people']改为pos['team']即可
        moveCurPos(pos['people'])
        ClickLeftCur()
        time.sleep(23)
        # 战斗结算画面,随机点击御魂下方的画面
        moveCurPos(GetRandom())
        ClickLeftCur()
        time.sleep(1.5)
        moveCurPos(GetRandom())
        ClickLeftCur()
        time.sleep(3)
        moveCurPos(GetRandom())
        ClickLeftCur()
        moveCurPos(pos['people'])
        ClickLeftCur()
        ClickLeftCur()
        #等待转场动画结束
        time.sleep(3)

其中的时间设定可根据具体情况来设定。运行时需要使用管理员权限来运行不然会报错

这只是一段粗制滥造的代码,测试下来刷了三四百体力没啥问题。虽然程序友好性极差,但已经基本满足了我的个人需求。可能等以后有新需求了会再做优化吧。

posted @ 2018-12-07 19:34  一颗大白菜_20181203  阅读(1076)  评论(0编辑  收藏  举报