python引入op模块 实现游戏后台挂机 阴阳师

python引入op插件实现后台挂机

写在前面:不要违法操作哦

准备工具

  1. 需要用到的环境为 python3.74
    python3.74传送门
  2. 代码编写环境 pycharm
    pycharm传送门
  3. 安装python win32的扩展,
    win32扩展传送门
  4. op插件(类似于大漠插件)
    op 0.39传送门
  5. 实验用到的雷神模拟器
    模拟器传送门
  6. 老工具人阴阳师
    这个自己在模拟器内部下载

安装自己随意

op模块用win32模块来打开引用

from win32com.client import Dispatch
class Demo:
    def __init__(self):
        # 创建com对象
        self.op = op = Dispatch("op.opsoft.1");
        self.hwnd = 0;
        self.send_hwnd = 0;
        op.SetPath("C:\\Users\\Administrator\\Desktop\\houtai\\image\\");
        #全局资源的位置

创建一个方法输出op版本号

    def test_qidong(self):
        # 输出插件版本号
        print("版本号", self.op.Ver());

输出成功则会显示相应的版本号,在op文档中可以查询相关的报错信息。

雷电模拟器的绑定子窗体的方法

    def test_bkmode(self):
      #绑定
        self.hwnd = self.op.FindWindowByProcess("dnplayer.exe","LDPlayerMainFrame","雷电模拟器") ;
        print(self.hwnd);
        time.sleep(0)
        hwnd = self.op.FindWindowEx(self.hwnd, "RenderWindow", "TheRender");
        print("找到子窗体", hwnd);
        # time.sleep(0.1);

        r = self.op.BindWindow(hwnd, "opengl", "windows", "windows", 1);
        # opengl 后台模式 normal 前台模式;
        if r == 0:
            print("绑定失败");
        else:
            print("绑定成功,,,,");
            time.sleep(0);

创建一个简单的移动窗口到固定位置的方法,并修改窗体的大小。

    def test_windos(self):
        op_ret = self.op.GetWindowRect(self.hwnd)
        print(op_ret); #显示窗口初始大小
        self.op.SetClientSize(self.hwnd,864,497);
        print("窗口设置为x=867,y=467")
        self.op.MoveWindow(self.hwnd, 10, 10);
        print("窗口移动成功10,10");
        self.op.SetWindowTransparent(self.hwnd,255); #0是隐藏窗口不占位置,完全透明
        #透明度设置
        print("设置透明度成功");

在脚本运行完后需要释放绑定方法。

    def test_end(self):
        op_ret = self.op.UnBindWindow();
        # 退出进程
        return op_ret;

这是一个用于测试的截图方法验证是否可以后台截图。

    def test_jietu(self):
        op = self.op.Capture(1, 1, 864, 491, "screen.bmp")
        if op == 1:
            print("方法调用成功");
        else:
            print("截图失败");

测试后台鼠标调用是否正常的方法

    def test_dianji(self):
        ret1 = self.op.MoveTo(29, 46);
        ret2 = self.op.LeftClick();
        if ret1==0&ret2==0:
            print("失败");
        else:
            print("成功!");

代码的调用解释

def test_all():
    demo = Demo();
    #初始化
    # demo.test_qidong()
    #打开雷电的方法
    demo.test_bkmode()
    #绑定窗体
    demo.test_windos()
    #移动窗体
    demo.test_jietu()
    #截图
    time.sleep(1)
    #等待1秒
    demo.test_dianji()
    #测试点击
    demo.test_end()
    #释放函数
    print("成功结束")
    return 0;

test_all();

这些都成功了那么op插件就完成了绑定,并且完成了一次后台运行的小测试,后续就可以使用它啦,

这里放置完整代码

from win32com.client import Dispatch
import time
import random
class Demo:
    def __init__(self):
        # 创建com对象
        self.op = op = Dispatch("op.opsoft.1");
        self.hwnd = 0;
        self.send_hwnd = 0;
        op.SetPath("C:\\Users\\Administrator\\Desktop\\houtai\\image\\");
        #全局资源的位置

    def test_qidong(self):
        # 输出插件版本号
        print("版本号", self.op.Ver());
        a = self.op.WinExec("F:\\leidian\\LDPlayer4\\dnplayer.exe", 1);
        print("打开",a);

    def test_bkmode(self):
      #绑定
        self.hwnd = self.op.FindWindowByProcess("dnplayer.exe","LDPlayerMainFrame","雷电模拟器") ;
        print(self.hwnd);
        time.sleep(0)
        hwnd = self.op.FindWindowEx(self.hwnd, "RenderWindow", "TheRender");
        print("找到子窗体", hwnd);
        # time.sleep(0.1);

        r = self.op.BindWindow(hwnd, "opengl", "windows", "windows", 1);
        # opengl 后台模式 normal 前台模式;
        if r == 0:
            print("绑定失败");
        else:
            print("绑定成功,,,,");
            time.sleep(0);

    def test_windos(self):
        op_ret = self.op.GetWindowRect(self.hwnd)
        print(op_ret);
        self.op.SetClientSize(self.hwnd,864,497);
        print("窗口设置为x=867,y=467")
        self.op.MoveWindow(self.hwnd, 10, 10);
        print("窗口移动成功10,10");
        self.op.SetWindowTransparent(self.hwnd,255); #0是隐藏窗口不占位置,完全透明
        #透明度设置
        print("设置透明度成功");

    def test_end(self):
        op_ret = self.op.UnBindWindow();
        # 退出进程
        return op_ret;

    def test_jietu(self):
        op = self.op.Capture(1, 1, 864, 491, "screen.bmp")
        if op == 1:
            print("方法调用成功");
        else:
            print("截图失败");

    def test_dianji(self):
        ret1 = self.op.MoveTo(29, 46);
        ret2 = self.op.LeftClick();
        if ret1==0&ret2==0:
            print("失败");
        else:
            print("成功!");
def test_all():
    demo = Demo();
    #初始化
    # demo.test_qidong()
    #打开雷电的方法
    demo.test_bkmode()
    #绑定窗体
    demo.test_windos()
    #移动窗体
    demo.test_jietu()
    #截图
    time.sleep(1)
    #等待1秒
    demo.test_dianji()
    #测试点击
    demo.test_end()
    #释放函数
    print("成功结束")
    return 0;

test_all();



成功结果
本人萌新一枚,大佬不要捶我,后期会写一个后台运行的yys脚本,欢迎来 282993419 摸鱼。

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 阴阳是一款日本的RPG手游,拥有大量的角色和副本,玩家需要通过组建不同的阵容和策略来挑战各种游戏关卡。 Python是一种高级编程语言,被广泛应用于软件开发和数据分析领域。在阴阳中,Python可以作为后台开发技术来处理游戏中的服务器和数据交互。通过Python后台开发,可以实现以下功能: 1. 游戏服务器管理:Python后台可以处理阴阳游戏服务器的启动、关闭、监控等管理操作,确保服务器的稳定运行。 2. 数据存储和处理:Python后台可以使用数据库技术来存储和管理玩家的游戏数据,包括角色信息、装备、道具等。同时,还可以使用Python的数据处理库来进行数据分析和优化。 3. 游戏逻辑处理:Python后台可以负责处理游戏中的逻辑判断和计算,例如计算角色的属性数值、技能释放的伤害计算等。通过Python的强大的逻辑处理能力,可以为玩家提供流畅而丰富的游戏体验。 4. 游戏更新和维护:Python后台可以负责游戏的更新和维护工作,包括新版本的功能开发、BUG修复等。同时,还可以配合其他工具进行自动化测试和部署,提高开发效率。 总之,阴阳Python后台可以为游戏提供稳定的服务器管理、高效的数据处理和丰富的游戏逻辑,进一步提升玩家的游戏体验。同时,Python的简洁易读的语法也使得后台的开发和维护更加便捷,为游戏开发者提供了一种强大的工具。 ### 回答2: 阴阳是一款非常受欢迎的手游戏,而Python是一种功能强大的编程语言。所以阴阳后台开发可以选择使用Python语言来实现。 阴阳后台主要负责游戏数据的管理、用户信息的存储与处理、游戏逻辑的实现等功能。Python作为一种简洁易读的语言,具备很高的可扩展性和兼容性,能够满足阴阳后台开发的需要。 Python对于数据处理和存储非常方便。后台可以使用Python的数据库操作库来实现游戏数据的增删改查功能,如使用MySQLdb或SQLAlchemy等库来连接数据库,并进行数据的读写操作。同时,Python还有很多强大的数据处理库,如Pandas和NumPy,可以对大量数据进行高效的处理和分析。 此外,Python的网络编程能力也很强大。阴阳后台作为一个服务端应用,需要与前端和其他模块进行数据交互。Python提供了许多库和框架,如Django和Flask,能够简化网络应用的开发。这些框架可以帮助开发人员快速构建API接口、处理HTTP请求、实现身份验证等功能。 同时,Python还支持多线程和异步编程,可以实现高并发的处理能力,提升后台的性能和响应速度。这对于阴阳后台的开发来说是至关重要的,可以确保玩家在游戏中的流畅体验。 综上所述,阴阳后台开发可选择使用Python语言实现,能够满足数据管理、用户处理、游戏逻辑实现等需求,并且具备可扩展性和兼容性,能够提供高性能和灵活的开发环境。 ### 回答3: 阴阳是一款非常受欢迎的手游戏,而Python后台则是指该游戏后台系统所采用的技术。Python是一种高级编程语言,它简洁、易读且开发效率高,因此被广泛应用在后台系统开发中。 阴阳游戏后台系统一般由服务器和数据库组成,主要负责处理与游戏玩家相关的数据,例如玩家的角色信息、背包道具、战斗记录等。Python作为一种功能强大的编程语言,可以帮助开发者高效地处理这些数据。 使用Python作为后台语言有以下几个好处: 1. 易于学习和使用:Python语法简洁易懂,容易上手。对于开发者而言,学习曲线相对较低。 2. 开发效率高:Python拥有丰富的开源库和框架,可以帮助开发者快速构建功能。这使得开发者能够专注于游戏的核心逻辑,而无需花费过多时间处理底层细节。 3. 跨平台性:Python可以在多个操作系统上运行,如Windows、Linux和MacOS等。这使得游戏后台能够灵活地部署在不同的服务器环境中。 4. 扩展性强:Python语言具有良好的扩展性,可以与其他语言进行无缝集成。这对于阴阳游戏后台来说尤为重要,因为它可能需要与其他系统或第三方服务进行交互。 综上所述,阴阳游戏后台采用Python作为开发语言具有很多优势。Python简洁易学、高效便捷,能够帮助开发者高效地处理游戏数据,提升开发效率,并且具有良好的跨平台性和扩展性。因此,选择Python作为阴阳游戏后台的开发语言是明智而合理的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值