精华内容
下载资源
问答
  • [python游戏脚本]我想用Python写一个游戏脚本,自动点击排队!
    2020-11-20 23:51:20

    我只是学会了Python,我用我的知识掌握和使用\u201Cautopy\u201D功能来编写一个脚本,该脚本自动点击鼠标队列,但是我希望这个脚本运行而不被显示在前面的窗口,即使是最小化。我在后台继续工作,但我不明白Python的强大功能。下面是python游戏脚本的代码。其中一些方法我在互联网上找到。大多数python游戏脚本我想到我自己。进口win32guiimport win32conimport timeimport mathimport autopyLeft_ #宣布鼠标左键colour_1 = (228225223) # RGB主界面colour_2 = (229197141) # RGB准备colour_3 =(19) 44岁24日# RGB战斗结束colour_4 = (115、75、40) def准备(X_axis Y_axis): # # #得到R, G, B所需的像素# # # R = _color (X_axis, Y_axis) [0] G = _color (X_axis Y_axis) [1] B = _color (X_axis) Y_axis)[2]返回R, G, Bclass GameAssist: def __init__(自我,wdname):\u201C\u201C初始化\u201D\u201C#得到游戏窗口句柄= (0,wdname)如果不是:打印(\u201C游戏窗口没有找到,请确认窗口句柄的名称:[% s]\u201D% wdname)退出()#顶部的窗口显示()newx = 0 newy = 1 (, newx _TOPMOST newy, 300300年,_SHOWWINDOW) def Line_Up(): #日Hefang自动队列(1)(102262)()()(1)(102262)()()()(183240)()(Left_btn,真的)()_move (183155) () (Left_btn、虚假)()(183256)()()()(288280)()()():def技巧# # # #模拟鼠标点击# # # #

    更多相关内容
  • Y1:椭圆中心点之Y轴位置,但以Form的实№边界为限Const T_GATEWAY="1.1.1.1" '网关Const T_NEWDNS1="2.2.2.2" 'DNS1Const T_NEWDNS2="3.3.3.3" 'DNS2strWinMgmt="winmgmts:{impersonationLevel=impersonate}"Set ...

    Y1:椭圆中心点之Y轴位置,但以Form的实№边界为限

    Const T_GATEWAY="1.1.1.1" '网关

    Const T_NEWDNS1="2.2.2.2" 'DNS1

    Const T_NEWDNS2="3.3.3.3" 'DNS2

    strWinMgmt="winmgmts:{impersonationLevel=impersonate}"

    Set NICS=GetObject( strWinMgmt ).InstancesOf("Win32_NetworkAdapterConfiguration")

    For Each NIC In NICS

    If NIC.IPEnabled Then

    NIC.SetDNSServerSearchOrder Array(T_NEWDNS1,T_NEWDNS2)

    NIC.SetGateways Array(T_GATEWAY)

    End If

    NextDownloadComplete

    常量值说明

    adCmdUnspecified-1不指定命令类型的参数

    那么如何更改计算机说明呢?是这样,您可以启动Regedit.exe,然后手动更改注册表值HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\lanmanserver\parameters\srvcomment

    删除命令按钮中的所有代码;并在Command1中添加下列代码:->SetMyDog=NewCDog

    MyDog.Name="Billy"

    MyDog.Bark

    MyDog.Sleep->

    该代码简单地将MyDog设置成CDog的一个新的实例,设置Name后,调用Bark,最后运行Sleep子过程

    Set fs=CreateObject("scripting.filesystemobject")

    Set gs=CreateObject("scripting.filesystemobject")

    Set f=fs.opentextfile("url.txt",1,true) 'url.txt是要分割的txt文件,里面保存了几万个地址

    n=0

    do while f.atendofstream<>true

    n=n+1

    data=""

    Set g=gs.opentextfile(CStr(n)+".lst",2, true) '分割后的文件保存为:1.lst 2.lst 3.lst……

    if f.atendofstream<>true then

    for a=1 to 1000 '分割后,一个文件保存1000地址

    data=f.readline

    g.writeline data

    next

    end if

    loop

    f.close

    g.close

    ->

    str=trim(strname.value)意外结尾

    对于上述第一点,可以将Form的Visible属性设为False如果类中一个以上的过程被定义为 Default,那么会出现错误。

    展开全文
  • kmclass驱动级键鼠,用于游戏脚本制作,仅支持64位系统及win10 python调用
  • 利用抓取windows窗口图像,并对图像进行基本识别操作后对模拟器窗口发送虚拟操作指令,由于是在模拟器之外的,因此原理上不会有风险
  • 操作如下:在游戏物体上绑定PyRun.cs在PyRun.cs上绑定PyFile和PyFilePath就行了 public class PyRun : MonoBehaviour { //Python文件 public Object pyFile; //Python文件路径 public string pyFilePath="Assets...
  • Python游戏脚本原来这么简单

    千次阅读 2021-12-30 20:41:00
    游戏脚本其实并不高深,最简单的体验方法就是下载一个Airtest了,直接截几个图片,写几层代码,就可以按照自己的逻辑玩儿游戏了。 当然,本篇文章不是要讲Airtest这个怎么用,而是用原始的python+opencv来实现...

    游戏这种东西完全可以用写代码的方式帮我们自动完成。游戏脚本其实并不高深,最简单的体验方法就是下载一个Airtest了,直接截几个图片,写几层代码,就可以按照自己的逻辑玩儿游戏了。

    当然,本篇文章不是要讲Airtest这个怎么用,而是用原始的python+opencv来实现上面的操作。

    这两天我写了一个公主连结刷初始号的程序,也不能算写游戏脚本的老手,这篇文章主要是分享一些基础的技术和使用上的心得吧。

    准备工作

    首先,我们要完成以下准备。

    安卓设备一个:模拟器或者真机都可以。

    安装ADB,并添加到系统的PATH里:adb是用来

    安装tesseract-ocr,并添加到系统的PATH里:帮助我们实现简单的字符识别

    安装python3.7以上的版本

    这里adb和tesseract我放在百度网盘里了,里面顺便放了一个录制的效果视频。

    链接:pan.baidu.com/s/1edTPu2o7… 提取码:33aw

    python库安装

    pipinstall pillow pytesseract opencv-python复制代码

    除此以外,如果有需要可以安装uiautomator2,这篇文章就不涉及这块知识了。

    使用adb获取安卓设备

    这里我们主要是涉及到单个安卓设备的ADB连接操作,首先我们打开模拟器。

    然后我们调用adb devices来获取当前的安卓设备,我这里是一个模拟器。

    接下来可以调用adb shell测试一下是否能进入到安卓设备的shell环境下,确认可以输入exit退出即可。

    如果有的时候进不了shell,可以先调用一下adb kill-server,然后再调用adb devices。

    可能常用的ADB Shell命令

    接下来是一些ADB的命令操作。通过adb命令,我们可以用python来操作的安卓设备。

    屏幕截图

    最常见的操作就是截图了,先调用screencap截图放到安卓设备里,然后再把截图下拉到电脑。

    def take_screenshot():  
        os.system("adb shell screencap -p /data/screenshot.png")  
        os.system("adb pull /data/screenshot.png ./tmp.png") 
    

    下拉文件

    下拉文件就是刚刚那个adb pull了,以公主连结为例,以下代码可以导出账号信息的xml,以后通过xml就可以登录了。

    os.system(f"adb pull /data/data/tw.sonet.princessconnect/shared_prefs/tw.sonet.princessconnect.v2.playerprefs.xml ./user_info.xml") 
    

    上传文件

    有了下拉自然就有上传了,通过adb push即可完成。以公主连结为例,以下代码可以完成账号的切换。

    # 切换账号1  
    os.system("adb push ./user_info1.xml /data/data/tw.sonet.princessconnect/shared_prefs/tw.sonet.princessconnect.v2.playerprefs.xml")  
    # 切换账号2 
    os.system("adb push ./user_info2.xml /data/data/tw.sonet.princessconnect/shared_prefs/tw.sonet.princessconnect.v2.playerprefs.xml") 
    

    点击屏幕某个位置

    def adb_click(center, offset=(0, 0)):  
        (x, y) = center  
        x += offset[0]  
        y += offset[1]  
        os.system(f"adb shell input tap {x} {y}") 
    

    输入文字

    text = "YourPassword"  
    os.system(f"adb shell input text {text}") 
    

    删除字符

    有的时候输入框会有输入的缓存,我们需要删除字符。

    # 删除10个字符  
    for i in range(10):  
        os.system("adb shell input keyevent 67") 
    

    查询当前运行的包名和Activity

    通过以下代码,可以查询当前运行的程序的Activity,也可以顺便查包名。

    adb shell dumpsys activity activities 
    

    停止某个应用

    有时候会需要停止某个应用,需要提供应用的包名。

    adb shell am force-stop tw.sonet.princessconnect 
    

    开启某个应用

    开启某个应用需要提供包名以及Activity。

    adb shell am start -W -n tw.sonet.princessconnect/jp.co.cygames.activity.OverrideUnityActivity 
    

    图像操作

    对于图像的操作第一就是图像查找了,比如说像Airtest提供的这种,无非就是判断某个图像在不在截屏中,在的话在什么位置。

    除此之外还需要一些抠图,比如说我们想获取账号的id,账号的等级,需要截取出一部分图片然后进行OCR操作。

    图像查找

    图像查找其实就是先拿到两张图片,然后调用cv2.matchTemplate方法来查找是否存在以及位置,这里匹配是一个相对模糊的匹配,会有一个相似度的概率,最高是1。我们设定一个阈值来判断模板是否在截屏里即可。

    这里截屏如下,文件名为tmp.png:

    模板如下:

    代码如下:

    import cv2  
    def image_to_position(screen, template):  
        image_x, image_y = template.shape[:2]  
        result = cv2.matchTemplate(screen, template, cv2.TM_CCOEFF_NORMED)  
        min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)  
        print("prob:", max_val)  
        if max_val > 0.98:  
            global center  
            center = (max_loc[0] + image_y / 2, max_loc[1] + image_x / 2)  
            return center  
        else:  
            return False  
    if __name__ == "__main__":  
        screen = cv2.imread('tmp.png')  
        template =  cv2.imread('Xuandan.png')  
        print(image_to_position(screen, template)) 
    

    运行上述代码后,可以看到模板匹配出来的概率为0.9977,位置为(1165, 693),对于一张图片,左上角为原点,因为我的分辨率是1280 * 720,那么右下角的坐标就是(1280, 720)。可以看到我们这个选单其实就是刚好在右下角的位置。

    如何快速裁剪模板?(win10)

    游戏脚本其实并不是代码很难写,而是需要截很多的图,这些图要保证分辨率和原始一样。我发现在win10如果用画图打开图片

    可以保证使用QQ截屏出来的分辨率,和图片本身的分辨率一样。

    这个时候直接用qq截屏出来的模板即可直接用于识别。

    图像裁剪

    接下来就是有时候需要裁剪一些图像了,当然我们的模板图片也可以通过裁剪图片的方式得到,这样的模板图片是最准的。

    裁剪其实就是需要裁剪的位置,以及需要的高度和宽度,说白了就是一篇长方形的区域,下面的代码使用PIL库实现。

    from PIL import Image  
    def crop_screenshot(img_file, pos_x, pos_y, width, height, out_file):  
        img = Image.open(img_file)  
        region = (pos_x, pos_y, pos_x + width, pos_y + height)  
        cropImg = img.crop(region)  
        cropImg.save(out_file)  
        print("exported:", out_file)  
    if __name__ == "__main__":  
        crop_screenshot("tmp.png", 817,556, 190, 24, "test_id.png") 
    

    上面的代码以截取玩家的id为例。

    运行代码后,得到截图如下:

    简单的OCR

    得到了以上的图片信息后就是进行OCR了,也就是光学字符识别。这里代码非常简单,只要调用API即可。

    from PIL import Image  
    import pytesseract  
    image = Image.open('test_id.png')  
    content = pytesseract.image_to_string(image)   # 识别图片  
    print(content) 
    

    不过需要注意的一点就是pytesseract识别出来的结果会有空格符,换行符这样的符号,真正要用的时候进行一些字符的过滤即可。

    The End

    这篇文章到这里就结束了,主要还是介绍一些ADB以及图像相关的基础操作。谢谢大家的观看。

    如果大家想学习python或者想要python免费资料的话可扫码获取 

     

    展开全文
  • 然后是python-32位,如果使用pycharm一定要选好解释器,如果还用了ipython等工具,一定要把默认解释器也相应修改。 当然最简单的就是在visual code上编辑啦。 import win32com.client dm = win32...

    我们准备在python中调用按键精灵的大漠插件来完成模拟驱动的鼠标键盘操作。大漠 综合 插件 (dm.dll)采用vc6.0编写,识别速度超级快! 采用COM接口编写,适用于所有语言调用。
    网上相关教程极少,我们只能一步步自己摸索。
    首先下载大漠核心组件dm.dll,在win10的新版总是出现闪退bug,为了稳定性,选择比较老的3.2xxx版本了。
    下载地址
    下载解压后,将dm.dll复制到C:\Windows\SysWOW64文件夹里。(显然你应该是64位系统,应该没人用32位了吧)
    以管理员方式打开cmd,如果你是windows管理员账号直接打开应该就没问题了
    键入:

    C:
    cd C:\Windows\SysWOW64
    regsvr32 dm.dll
    

    大功告成了,注册完成

    import win32com.client
    
    
    dm = win32com.client.Dispatch('dm.dmsoft')  #调用大漠插件
    dm.moveto(10,10)
    

    其中win32com帮我们加载了dll文件,直接调用dm.function dm.constant就可以使用插件了,注意有返回值的对象最好写上等于符号,哪怕他返回的变量没有用(vc的语法)

    然后运行,发现一长串的报错…
    别急,分析报错,我们的python版本一般来说我64位的,而大漠是02年推出的脚本插件,是基于按键精灵和vc语言开发的Active X脚本,它只支持32位。

    为了支持插件我们只好下载一个32位的python下载地址
    我下载的是python3.6-32的
    下载之后最好把add path勾选,然后把之前64位的path再系统变量里取消掉,之后再讲为什么要这么做。之后呢,如果使用pycharm一定要选好解释器(32位),如果还用了ipython等工具,一定要把默认解释器也相应修改。

    当然最简单的就是在visual code加上Ipython模块上编辑啦,你直接替换一下解释器属性就行了。

    如果以上配置成功,再运行以上代码。你的输出大概这样,然后鼠标会移到屏幕左上角。

    输出正确

    仔细阅读插件文档加调试了一两天之后…
    彻底放弃了long SetSimMode(mode)这个函数,这个函数总是返回值为0,提示我未注册,导致我没法进入硬件驱动模式,从而被楚留香屏蔽了脚本输入。

    直到今天再读文档发现了这个函数
    头秃
    于是修改代码为如下,保存名字为 test.py
    注:这段代码是不可以直接运行的,因为大漠插件要求管理员权限,直接run可能运行失败
    运行方法:
    1.首先将python3.6-32位的path加入系统变量Path中
    2.以管理员身份启动命令行
    3.键入 python X:\xxxx(你的路径)\test.py
    如果你没添加path,要么去修改path,要么直接cd到python3.6-32位目录下输入该指令

    import win32com.client
    import win32con
    import win32gui
    import time
    hwnd=win32gui.FindWindow(None,'楚留香')
    if(win32gui.IsIconic(hwnd)):
        win32gui.ShowWindow(hwnd, win32con.SW_RESTORE)
    win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 300,200,1200,800,win32con.SWP_SHOWWINDOW)
    dm = win32com.client.Dispatch('dm.dmsoft')  #调用大漠插件
    re=dm.BindWindow(hwnd,"normal","dx2","dx",4)
    print(re)
    print(dm.GetLastError())
    def keydownup(num,times):
        while True:
            dm_res=dm.keypress(num)
            time.sleep(times)
    keydownup(27,3)
    

    如果打印值不为1、0,说明配置是有问题
    可能导致问题几点:
    1.关闭uca,拿win10来说控制面板-安全和维护-关闭所有防火墙-更改用户控制和账户控制设置,拉到最低
    1

    2.重启开机按F1,F2和DEL,进入BIOS模式,进入ROOT或者Security选项卡,把Secure Boot 选项的enabled 改为disable
    2
    3.将游戏同时也以管理员身份启动

    这段代码是每隔3s给楚留香发送1个ESC键,如果这个ESC没被屏蔽掉,证明我们模拟输入就成功了。
    测试成功

    然后游戏中显然ESC键生效了,我们已经基本掌握了如何用python+大漠插件方式向“楚留香”发送模拟指令,接下来的逻辑工作无非是确定每个点的坐标,然后进行键位组合即可。

    但是还有一个问题没解决,就是如何识别文字。
    摆摊界面的价格,机器是不可能自动识别的,我们必须识别出来再与我们理想价格做一个比较,才能辅助我们抢不抢购。

    附录:大漠插件虚拟键码
    key_str 虚拟键码

    "1",          49
    
    "2",          50
    
    "3",          51
    
    "4",          52
    
    "5",          53
    
    "6",          54
    
    "7",          55
    
    "8",          56
    
    "9",          57
    
    "0",          48
    
    "-",          189
    
    "=",          187
    
    "back",       8
    
     
    
    "a",          65
    
    "b",          66
    
    "c",          67
    
    "d",          68
    
    "e",          69
    
    "f",          70
    
    "g",          71
    
    "h",          72
    
    "i",          73
    
    "j",          74
    
    "k",          75
    
    "l",          76
    
    "m",          77
    
    "n",          78
    
    "o",          79
    
    "p",          80
    
    "q",          81
    
    "r",          82
    
    "s",          83
    
    "t",          84
    
    "u",          85
    
    "v",          86
    
    "w",          87
    
    "x",          88
    
    "y",          89
    
    "z",          90
    
     
    
    "ctrl",       17
    
    "alt",        18
    
    "shift",      16
    
    "win",        91
    
    "space",      32
    
    "cap",        20
    
    "tab",        9
    
    "~",          192
    
    "esc",        27
    
    "enter",      13
    
     
    
    "up",         38
    
    "down",       40
    
    "left",       37
    
    "right",      39
    
     
    
    "option",     93
    
     
    
    "print",      44
    
    "delete",     46
    
    "home",       36
    
    "end",        35
    
    "pgup",       33
    
    "pgdn",       34
    
     
    
    "f1",         112
    
    "f2",         113
    
    "f3",         114
    
    "f4",         115
    
    "f5",         116
    
    "f6",         117
    
    "f7",         118
    
    "f8",         119
    
    "f9",         120
    
    "f10",        121
    
    "f11",        122
    
    "f12",        123
    
     
    
    "[",          219
    
    "]",          221
    
    "\\",         220
    
    ";",          186
    
    "'",          222
    
    ",",          188
    
    ".",          190
    
    "/",          191
    
    展开全文
  • 游戏脚本其实并不高深,最简单的体验方法就是下载一个Airtest了,直接截几个图片,写几层代码,就可以按照自己的逻辑玩儿游戏了。 当然,本篇文章不是要讲Airt这个怎么用,而是用原始的python+opencv来实现上面的...
  • 使用脚本语言可以更加快速...Python 对于游戏脚本语言来说是一种不错的选择,它很强大,容易嵌入使用,能够无缝地使用 C/C++ 进行扩展,包含很多脚本语言所具有的高级特性,并且它可以用来实现自动化过程[TR1: autom...
  • 精讲python游戏脚本开发,极力推荐给初学者,有经验的也可以作为参考。
  • Python按键脚本

    千次阅读 2021-03-30 09:20:09
    Python按键脚本 from pynput.mouse import Button, Controller import time # 获取鼠标对象 mouse = Controller() # 输出鼠标当前的坐标 print(mouse.position) # 将新的坐标赋值给鼠标对象 mouse.position = ...
  • 这段时间迷上了玩点点点的小游戏,但是某些重复的环节着实无聊,就想着能不能用PYTHON做一个游戏脚本,不过为了熟悉需要做脚本的各个模块,于是打算在4399上找一个比较像的游戏做个脚本练练手,后来发现打地鼠这个...
  • 如何用python游戏脚本

    千次阅读 多人点赞 2020-08-17 13:43:08
    前言 最近在玩儿公主连结,之前也玩儿过阴阳师这样的游戏,这样的游戏都会有个初始号这样的东西,或者说是可以肝的东西。 很多人学习python,不知道从何学起。 很多人学习python,掌握...游戏脚本其实并不高深,最简
  • python脚本

    2020-11-24 06:49:24
    广告关闭腾讯云11.11云上盛惠 ,精选...python实用脚本实践一、文件相关查找文件import ospath = xxxfiles =os.listdir(path) for f in files: if f.endswith(.png) and fish in f:print(i found this + f) 分类文...
  • 使用脚本语言可以更加快速地开发游戏逻辑,而不必担心由于 C++ 程序员的粗心大意所造成的后果。使用已有的脚本语言可以节省开发新型自定义语言的时间和开销,并且这些语言通常要比自己创造的语言更加的强大。 入门...
  • Python写一个游戏脚本,你会吗?

    千次阅读 2020-12-03 03:08:53
    学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手。如果你也想多练项目实战。可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,...
  • 端游 挂机 脚本 python 大漠插件 端游 挂机 脚本 python 大漠插件
  • Python开发游戏自动化后台脚本

    千次阅读 热门讨论 2021-10-13 19:54:43
    Python开发游戏自动化后台脚本前言说明获取窗口句柄获得后台窗口截图数字识别识别并点击图片位置后台文字输入完整代码参考 前言 前段时间沉迷猪场一梦江湖,由于实在太肝便萌生出用脚本做日常的想法,写了第一个test...
  • 一些使用的python脚本小练习。入门用
  • os操作(对文档进行操作) os.getcwd:获取当前文件路径 os.path.join:对路径进行拼接 os.listdir:获取当前路径下的文件名 os.chdir:改变文件名 os.system:在terminal下直接输出
  • 开始着手用Python写一个游戏脚本(一)

    万次阅读 多人点赞 2019-06-04 15:26:04
    学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手。 这次以热门手游楚留香作为练手的目标啦
  • python制作游戏外挂

    2021-01-20 05:23:42
    首先要声明,这里的游戏外挂的概念,和那些大型网游里的外挂可不同,不能自动打怪,不能喝药不能躲避GM…… 那做这个外挂有啥用?问的好,没用,除了可以浪费你一点时间,提高一下编程技术,增加一点点点点点点的做...
  • Python作为一门面向对象的性语言,其实它的学习也很简单- 配置- Python基础(语法、、数据类型、高级变量、函数、Python高级特性)- 面向对象编程、面向对象高级编程- 错误、调试、测试- 网络编程、进程、线程、协程...
  • 本人编写的炉石脚本,再黄金局打一投一获得40%的胜率,适于刷千胜.由于走量故不支持烧绳.由于运用了多进程,需要再Python Shell运行命名为py1.py的文件即可.如报出异常可私我.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,476
精华内容 19,390
关键字:

python游戏脚本