Board logo

标题: [原创] 【脚本】自动登录加入房间脚本,更新python版与vbs版本 [打印本页]

作者: lidawei0124    时间: 2020-3-28 11:15     标题: 【脚本】自动登录加入房间脚本,更新python版与vbs版本

自动登录加入房间脚本v1.0
by lidawei0124

使用场景:
例子1:打红8,双击运行脚本,输入打出门的房间密码,回车,等待30秒,所有小号都自动进入房间。
例子2:RR,双击运行脚本,输入bus的房间密码,回车,等待30秒,所有小号自动进入房间
根据备注学会自己修改后,该脚本可以实现更多应用场景,去除掉鼠标操作加入房间的部分,就是自动登录脚本。
进阶甚至本脚本甚至可以不局限与本游戏,其他带界面的软件游戏均可
Ps:
截止2020.3.28,我也是个玩了两周的半萌新了,游戏没咋研究,hackmap修改和脚本倒是研究的挺多,有问题可以回复,或者pm

两种不同的方法(自选其一):

1.python (缺点,所以python环境的安装需要10分钟,代码需要自己设置,每个角色需要单独建立一个快捷方式)
2.vbs(缺点,office等需求不对,容易报错,自己安装的字体补丁无法生效)====================================================================================
python :
使用说明:
1 安装Python,安装时勾选 add to path,
教程:https://jingyan.baidu.com/article/cd4c29792c36c6756f6e604b.html
2 安装依赖包:
    window的cmd窗口输入:
    pip install win32gui
pyautogui easygui
3 .py文件中,修改本代码每个账号和密码
4 .py文件中,修改每个账号对应的快捷方式,每个账号一个快捷方式
5 .py文件中,输入每个账号对应的快捷方式中-titile <窗口名>
   指定的窗口名字,代码里面和快捷方式里面都要一一对应
6 .py文件中,输入该账号角色的位置序号
7 使用mousesexy.exe测量加入房间按钮的鼠标坐标,并修改 .py文件中的加入房间的鼠标坐标
8 在bat文件中修改.py文件的路径
9 根据网速修改延时
python版文件:
自动登录加入房间python版.rar (648.9 KB)
=====================================================================================
Vbs版:
申明:
本文参考该贴:(感谢这位大佬的代码贡献)http://bbs.anhei2.com/viewthread.php?tid=413225
的自动加入房间脚本进行修改。
原因是该文章的脚本直接是一个vbs文件,直接调用运行游戏程序,而这一操作在win10下是无法成功的,具体原因是win10 使用vbs调用程序运行需要管理员方式,而vbs右键并无此选项。
因此可以使用bat脚本,首先调用管理员模式的cmd窗口,使用cmd窗口运行vbs,间接调用游戏程序。
待改进的缺点:
无法调用高分辨率补丁,无法调用自己安装的字体补丁,目前无解,知道的在论坛告诉我如何解决
使用说明:《高清补丁用户,请调用高清补丁的exe文件,才可实现高清》
该脚本的使用说明在压缩包的vbs文件备注中
测量游戏窗口的《加入房间》的鼠标坐标软件mousexy.exe在压缩包内部
VBS版文件:
自动登录加入脚本vbs版.rar (907.18 KB)
如报错请安装需求软件

最后补充一位大神自用的python脚本,使用bat调用管理员模式运行即可
复制内容到剪贴板
代码:
from tkinter import *

# coding=utf-8
#测试环境:python3.6,扩展了pyhook和pywin32
import pymouse, pykeyboard, os, sys, time
from pymouse import *
from pykeyboard import PyKeyboard
from tkinter import *

def open_app(app_dir):
    os.startfile(app_dir)
if __name__ == "__main__":
    #游戏快捷方式路径(快捷方式参数自己先配置好,一劳永逸)
    lnk_name = {
    1:'C:\\\\Users\\\\Administrator\\\\Desktop\\\\蛮子.lnk',\
    2:'C:\\\\Users\\\\Administrator\\\\Desktop\\\\德鲁伊.lnk',\
    3:'C:\\\\Users\\\\Administrator\\\\Desktop\\\\救助.lnk',\
    4:'C:\\\\Users\\\\Administrator\\\\Desktop\\\\审判.lnk',\
    5:'C:\\\\Users\\\\Administrator\\\\Desktop\\\\火法.lnk'}
    #索引之后的字符串填自己的账户名字:如asd666
    ac = {1:'asd',2:'asd',3:'asd',4:'asd-d',5:'asd'}
    #索引之后的字符串填自己的账户密码:如asd666
    pw = {1:'asd',2:'asd',3:'asd',4:'asd',5:'asd'}
    #人物坐标配置表可以自己加,这里只写6个,顺序是从左到右,自上而下
    hero_local_cfg = {1:[690,350],2:[880,350],3:[690,420],4:[880,420],5:[690,480],6:[880,480]}
    #这里根据自己人物的实际情况对应好位置
    hero_location = [1, 2, 1, 1, 5]
    root = Tk()
    Label(root,text='房间号 :').grid(row=0,column=0) # 对Label内容进行 表格式 布局
    Label(root,text='密码 :').grid(row=1,column=0)
    v1=StringVar()    # 设置变量 .
    v2=StringVar()
   
    rommId = Entry(root,textvariable=v1)            # 用于储存 输入的内容  
    rommPwd = Entry(root,textvariable=v2,show='*')
    rommId.grid(row=0,column=1,padx=10,pady=5)      # 进行表格式布局 .
    rommPwd.grid(row=1,column=1,padx=10,pady=5)
    def show():
        print("房间号 :%s" % rommId.get())          # get 变量内容
        print("密码 :%s" % rommPwd.get())
        root.quit()
        for i in range(5):
            time.sleep(1)
            print (lnk_name[i+1])
            app_dir =lnk_name[i+1]#指定应用程序目录
            open_app(app_dir)
            m = PyMouse()
            k = PyKeyboard()
            time.sleep(2)
            k.tap_key(k.shift_key)
            k.tap_key(k.tab_key)
            time.sleep(0.5)
            k.type_string(ac[i+1])   # 模拟键盘输入用户名
            time.sleep(0.5)
            k.tap_key(k.tab_key)
            time.sleep(0.5)
            k.type_string(pw[i+1])
            k.tap_key(k.enter_key)
            print(hero_local_cfg[hero_location][0],hero_local_cfg[hero_location][1])
            m.click(hero_local_cfg[hero_location][0],hero_local_cfg[hero_location][1],1)#人物位置
            time.sleep(1)
            m.click(hero_local_cfg[hero_location][0],hero_local_cfg[hero_location][1],1)
            k.tap_key(k.enter_key)
            time.sleep(0.5)
            m.click(1050,580,1)
            time.sleep(0.5)
            k.type_string(rommId.get())
            time.sleep(0.5)
            k.tap_key(k.tab_key)
            time.sleep(0.5)
            k.type_string(rommPwd.get())
            m.click(1040,550,1)
   
    Button(root,text='芝麻开门',width=10,command=show).grid(row=3,column=0,sticky=W,padx=10,pady=5)  # 设置 button 指定 宽度 , 并且 关联 函数 , 使用表格式布局 .
    Button(root,text='退出',width=10,command=root.quit).grid(row=3,column=1,sticky=E,padx=10,pady=5)
   
    mainloop()
   


        
        #k.tap_key(‘H’,n=2,interval=5)


[ 本帖最后由 lidawei0124 于 2020-3-29 21:25 编辑 ]

附件: 自动登录加入脚本vbs版.rar (2020-3-28 19:00, 907.18 KB) / 该附件被下载次数 0
http://test.anhei2.com/attachment.php?aid=978843

图片附件: [如果报错,首先试试是不是运行需求没安装] 运行需求.png (2020-3-28 11:41, 257.5 KB) / 该附件被下载次数 0
http://test.anhei2.com/attachment.php?aid=978845



附件: 自动登录加入房间python版.rar (2020-3-28 19:00, 648.9 KB) / 该附件被下载次数 0
http://test.anhei2.com/attachment.php?aid=978989
作者: cocoboss    时间: 2020-3-28 12:28

李大伟牛逼
作者: 18262602190    时间: 2020-3-28 21:25

这么吊的教程贴居然没人顶!我顶!!!!!!!!!!!!!!!!!
作者: 420176932    时间: 2020-3-28 21:57

不错收藏了
作者: huhong3789    时间: 2020-3-28 22:26

提示: 作者被禁止或删除 内容自动屏蔽
作者: z5801857    时间: 2020-3-28 23:37

帮顶!!!!
求助楼主,按照您的方法双击bat文件没有反应,打开py文件按F5运行后也没打开游戏。
我只想用简单点的功能,即一个快捷方式打开一个账号,省的输账号密码和title,不用批量登录账号,已经研究好几天了,直接用bat文件可以自动登录但无法载入HM等地图插件,请问有没有时间教导一下啊
作者: z5801857    时间: 2020-3-29 09:55

@echo off
>>%tmp%\D2LOG.vbs echo dim program
>>%tmp%\D2LOG.vbs echo program="F:\暗黑2大箱子战网客户端\D2Loader -direct -txt -pdir F:\暗黑2大箱子战网客户端\plugin\ -locale kor -skiptobnet -w -nohide -3dfx -title 大号"
>>%tmp%\D2LOG.vbs echo set Wshell=CreateObject("Wscript.Shell")
>>%tmp%\D2LOG.vbs echo set oexec=Wshell.Exec(program)
>>%tmp%\D2LOG.vbs echo wscript.Sleep 3000
>>%tmp%\D2LOG.vbs echo Wshell.SendKeys "密码"
>>%tmp%\D2LOG.vbs echo wscript.Sleep 1000
>>%tmp%\D2LOG.vbs echo Wshell.SendKeys "{TAB}"
>>%tmp%\D2LOG.vbs echo wscript.Sleep 1000
>>%tmp%\D2LOG.vbs echo Wshell.SendKeys "账号"
>>%tmp%\D2LOG.vbs echo wscript.Sleep 1000
>>%tmp%\D2LOG.vbs echo Wshell.SendKeys "{ENTER}"
>>%tmp%\D2LOG.vbs echo wscript.Sleep 2000

>>%tmp%\D2LOG.vbs echo Wshell.SendKeys "{ENTER}"
%tmp%\D2LOG.vbs
del %tmp%\D2LOG.vbs
我用上面这个bat文件能进入游戏,但是不能加载高清补丁和字体。想问一下BAT文件可以直接打开桌面的快捷方式吗
作者: cyber1987    时间: 2020-3-29 10:25

和我2个月前的帖子类似
http://bbs.anhei2.com/thread-415719-1-1.html

最大的问题是分辨率不同就需要修改坐标
可以考虑加入自动获取分辨率以及坐标自动变化的代码
作者: 五味子.    时间: 2020-3-29 18:05

VBS可以调用高分辨率补丁, 也可以调用自己使用的补丁,  调用高分辨率补丁 无非是调用的exe地址改成你的高分辨率启动器的exe




调用补丁要 启动参数写的对
另外, 如果你VBS放的位置不是暗黑根目录的话,  就要把你的地图和补丁放到VBS所在目录一份

如下图



图片附件: Q9JWMS5Q%PFQLDX15BQM7MY.png (2020-3-29 18:05, 32.27 KB) / 该附件被下载次数 0
http://test.anhei2.com/attachment.php?aid=979240



图片附件: 9CY]6ZD~7Q46%[O}94Q0KBV.png (2020-3-29 18:05, 18.62 KB) / 该附件被下载次数 0
http://test.anhei2.com/attachment.php?aid=979241


作者: lidawei0124    时间: 2020-3-29 21:21     标题: 回复 8# 的帖子

你的帖子我也看过的额
作者: lidawei0124    时间: 2020-3-29 21:23     标题: 回复 9# 的帖子

噗,我没有高清补丁那个exe,我只保留了他的dll, 也能用高清补丁,正常双击也可以高清,原来到了vbs这里就要这样操作,必须得高清补丁的exe了
作者: lidawei0124    时间: 2020-3-29 21:24     标题: 回复 7# 的帖子

bat 好像可以
具体问题楼下的人已经回答啦,高清补丁的exe就行
作者: lidawei0124    时间: 2020-3-29 21:27     标题: 回复 6# 的帖子

bat调用 vbs vbs调用exe, 调用的那条语句,后面加参数的时候,hackmap的名字要把hackmap所在的文件夹的绝对路径写上,而不能像以前一样只写113map,这只是hackmap的文件夹名字而已,你要把前面的路径都写全,因为vbs不知道113map到底在哪个位置
作者: lidawei0124    时间: 2020-3-29 21:29     标题: 回复 6# 的帖子

py文件不能直接运行,因为要打开游戏程序,必须要管理员权限运行,所以我采用的是使用bat 文件调用管理员权限下的cmd窗口。然后使用cmd运行 py文件,这样py文件运行时就有管理员权限了
作者: z5801857    时间: 2020-3-30 13:02

好贴!!!!!!!顶!!!!!!!!
解决了困扰我多天的问题,太感谢了。
作者: 明斯克的松鼠    时间: 2020-3-30 18:25

谢谢分享
作者: lidawei0124    时间: 2020-4-8 23:36

顶顶顶顶
作者: VXT    时间: 2020-5-2 13:24

对于我 这个单肝的家伙  我要试试  看爽不爽
作者: 牙套妹奈何美色    时间: 2020-6-11 08:25


作者: m13597542262    时间: 2021-3-19 19:35     标题: 回复 1# 的帖子

请问下无法运行 SetCursorPos 宏 怎么解
作者: lwb8814850    时间: 2021-3-23 11:31     标题: 感谢分享

感谢分享
作者: h82118    时间: 2021-6-4 18:20

VBS不行,提示错误,OFFICE2016




欢迎光临 anhei3战网 (http://test.anhei2.com/) Powered by Discuz! 6.0.0