Python:批量创建暗黑2的RR小号

前言:

暗黑玩了17年,啥都玩过了,现在主要是休闲,平时也会编程做点小脚本,不过暗黑2的脚本从来没做过。
RR的第一步是创建小号,但是重复劳动较多,所以想试试Python怎么实现。
花了一个小时写了出来,相当于按键精灵,给大家分享一下(需要根据自己电脑的分辨率调整坐标)。
1、需要在https://www.lfd.uci.edu/~gohlke/pythonlibs/安装pyHook,我安装的是pyHook-1.5.1-cp37-cp37m-win_amd64.whl
2、需要pip install pyuserinput

# coding=utf-8
from pymouse import PyMouse
from pykeyboard import PyKeyboard
import win32api, win32con
import time
import os

def click_and_sleep(h, v, seconds=1):
    '''点击并暂停'''
    m.click(h, v)
    time.sleep(seconds)

def alt_table():
    '''alt_table切换页面'''
    k.press_key(k.alt_key)
    k.tap_key(k.tab_key)
    k.release_key(k.alt_key)
    time.sleep(1)

def login_d2():
    '''登录Diablo游戏'''
    # k.press_keys([k.windows_l_key, 'm']) #返回到桌面上
    # time.sleep(1)
    # m.click(1552, 354, n=2) #双击打开游戏
    os.system(r'start E:\暗黑破坏神2-v1.13\D2Loader.exe -w -pdir 113map -ns')
    time.sleep(1)
    click_and_sleep(980, 538) #略过开始界面

def login_account(username, password='******'):
    '''登录账户'''
    click_and_sleep(979, 577)  # 点击battle.net
    m.click(981, 568, n=2) #双击账户名
    time.sleep(1)
    k.type_string(username) #输入账户名
    time.sleep(1)
    k.press_key(k.tab_key)
    time.sleep(1)
    k.type_string(password) #输入密码
    click_and_sleep(967, 699) #登录

def make_char(account_name):
    '''新建非资料片小号'''
    first_name = account_dict[account_name][0] #角色最后两个字母的第一个字母
    char_occupation = account_dict[account_name][1] #角色的职业
    for i in ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']:
        click_and_sleep(697, 726, 1)  # 新建人物
        click_and_sleep(char_dict[char_occupation][0], char_dict[char_occupation][1])
        char_name = 'CYFZ' + first_name + i #角色的全名
        k.type_string(char_name)
        time.sleep(1)
        click_and_sleep(885, 764) #取消资料片人物
        click_and_sleep(1252, 787)  # 点击“好”
        click_and_sleep(1292, 712)  # 点击“结束”

if __name__ == "__main__":
    m = PyMouse()
    k = PyKeyboard()
    # alt_table()
    # print(win32api.GetSystemMetrics(win32con.SM_CXSCREEN)) #获取窗口的分辨率
    # print(win32api.GetSystemMetrics(win32con.SM_CYSCREEN))
    # print(m.position())
    char_dict = {'bar': (963, 516), 'ama': (666, 516), 'nec': (862, 516), 'pal': (1078, 516), 'sor': (1178, 516)}
    account_dict = {'cyrr1':('A', 'bar'), 'cyrr2':('B', 'pal'), 'cyrr3':('C', 'nec'), 'cyrr4':('D', 'ama'), 'cyrr5':('E', 'sor'), 'cyrr6':('F', 'bar'), 'cyrr7':('G', 'pal')}
    login_d2()
    for key in account_dict:
        login_account(key)
        make_char(key)
        click_and_sleep(666, 788, seconds=1) #返回游戏主界面

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值