【脚本玩漆黑的魅影】寂雨镇全自动练级

文章目录

  • 原理
  • 全部代码

在这里插入图片描述

原理

老样子。

治疗路径,练级路径。

def zhi_liao():  # 去治疗
	walk(RIGHT)
	walk(RIGHT)
	press(UP, 0.4)
	for i in [1, 2, 3, 4]:
		press(A)
	for i in [1, 2, 3, 4]:
		press(B)
	press(DOWN, 0.4)
	press(LEFT)
def chu_qu():  # 右逛
	c.press(B)
	press(RIGHT, 0.6)
	c.release(B)
def hui_qu():  # 左逛
	c.press(B)
	press(LEFT, 0.6)
	c.release(B)

全部代码

cai_yang.py

from PIL import Image

import random
# 获得采样数据
def cai_yang(target: Image, rec: (int, int, int, int), count):
	result = []
	i = 1
	while i <= count:
		# 随机XY
		x, y = random.randint(rec[0], rec[2]), random.randint(rec[1], rec[3])
		result.append(((x, y), target.getpixel((x, y))))
		i = i + 1
	return result
# 获得对比结果
def is_same_img(img: Image, data):
	for i in data:
		if img.getpixel(i[0]) != i[1]:
			return False
	return True

main.py

from PIL import ImageGrab

from cai_yang import is_same_img
from core import *
# 脚本核心
def a1():
	global state_can_attack
	if is_same_img(ImageGrab.grab(), data_safe):  # 在安全区
		if state_can_attack:  # 去战斗
			chu_qu()
		else:  # 去治疗
			zhi_liao()
			state_can_attack = True
	elif ImageGrab.grab().getpixel(data_attack[0]) == data_attack[1]:  # 在战斗
		if is_same_img(ImageGrab.grab(), data_pp):  # 没PP
			state_can_attack = False
		if state_can_attack == False:  # 逃跑
			tao_pao()
		else:  # 战斗
			zhan_dou()
	else:  # 战斗外
		hui_qu()
if __name__ == '__main__':
	# 键盘事件处理
	def a0(key):
		if key == kb.Key.f12:
			global state12
			state12 = not state12
			print(f"自动练级:{state12}")
			# 模拟器加速
			if state12:
				c.press(ACCELERATE)
			else:
				c.release(ACCELERATE)
	# 开关
	state12 = False
	# 是否能够战斗
	state_can_attack = True
	# 监听键盘
	with kb.Listener(on_press=a0):
		while True:
			if state12:
				a1()

core.py

import time

from pynput import keyboard as kb

from settings import *
c = kb.Controller()
def press(key, interval=0.2, interval2=0.1):  # 按一下
	c.press(key)
	time.sleep(interval)
	c.release(key)
	time.sleep(interval2)
def walk(key):  # 走一步
	c.release(ACCELERATE)
	press(key)
	c.press(ACCELERATE)
def zhi_liao():  # 去治疗
	walk(RIGHT)
	walk(RIGHT)
	press(UP, 0.4)
	for i in [1, 2, 3, 4]:
		press(A)
	for i in [1, 2, 3, 4]:
		press(B)
	press(DOWN, 0.4)
	press(LEFT)
def tao_pao():  # 逃跑
	for i in [1, 2, 3]:
		press(B)
	press(DOWN)
	press(RIGHT)
	press(A)
	for i in [1, 2, 3]:
		press(B)
def chu_qu():  # 右逛
	c.press(B)
	press(RIGHT, 0.6)
	c.release(B)
def hui_qu():  # 左逛
	c.press(B)
	press(LEFT, 0.6)
	c.release(B)
def zhan_dou():  # 战斗
	press(A)

settings.py

from PIL import Image

from cai_yang import cai_yang
# 图片采样数据
data_safe = cai_yang(Image.open("安全区.png"), (1362, 820, 1600, 1006), 12)
data_pp = cai_yang(Image.open("没有PP.png"), (110, 815, 722, 1018), 12)
# 像素数据
data_attack = ((876, 306), (32, 160, 64))
# 键位设置
UP = "w"
DOWN = "s"
LEFT = "a"
RIGHT = "d"
ACCELERATE = "u"
A = "j"
B = "k"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/445862.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣同类题:重排链表

很明显做过一次 class Solution { public:void reorderList(ListNode* head) {if(!head||!head->next)return;ListNode *fasthead,*lowhead;ListNode *prenullptr,*curnullptr,*nextnullptr;while(fast->next!nullptr){fastfast->next;if(fast->next)fastfast->…

风控规则决策树可视化(升级版)

上一篇我们介绍了如何通过交叉表来生成规则&#xff0c;本篇我们来介绍一种可以生成多规则的方法&#xff0c;决策树。除了做模型以外&#xff0c;也可以用来挖掘规则&#xff0c;原理是一样的。 下面通过sklearn的决策树方法来实现风控规则的发现&#xff0c;同时分享一种可以…

【联邦学习综述:概念、技术】

出自——联邦学习综述&#xff1a;概念、技术、应用与挑战。梁天恺 1*&#xff0c;曾 碧 2&#xff0c;陈 光 1 从两个方面保护隐私数据 硬件层面 可 信 执 行 环 境 &#xff08;Trusted Execution Environment&#xff0c;TEE&#xff09;边 缘 计 算&#xff08;Edge Com…

电动车窗开关中MOS管的应用解析

随着科技的不断发展&#xff0c;电动车窗系统已经成为现代汽车中不可或缺的一部分。而MOS&#xff08;金属氧化物半导体&#xff09;管的应用&#xff0c;为电动车窗开关注入了新的活力&#xff0c;极大地提高了其使用寿命和安全性。 一、MOS的优越性能 MOS管以其卓越的开关…

磁盘无法访问?别慌,这里有解决之道!

电脑中&#xff0c;那块储存着重要文件与数据的磁盘&#xff0c;突然之间无法访问&#xff0c;是不是让你感到惊慌失措&#xff1f;面对这样的突发状况&#xff0c;很多人可能会感到手足无措。但别担心&#xff0c;本文将为你解析磁盘无法访问的原因&#xff0c;并提供实用的数…

小文件问题及GlusterFS的瓶颈

01海量小文件存储的挑战 为了解决海量小文件的存储问题&#xff0c;必须采用分布式存储&#xff0c;目前分布式存储主要采用两种架构&#xff1a;集中式元数据管理架构和去中心化架构。 (1)集中式元数据架构&#xff1a; 典型的集中式元数据架构的分布式存储有GFS&#xff0…

代码讲解:如何把3D数据转换成旋转的视频?

目录 3D数据集下载 读取binvox文件 使用matplotlib创建图 动画效果 完整代码 3D数据集下载 这里以shapenet数据集为例&#xff0c;可以访问外网的可以去直接申请下载&#xff1b;我也准备了一个备份在百度网盘的数据集&#xff0c;可以参考&#xff1a; ShapeNet简介和下…

Leetcode 54. 螺旋矩阵

题目描述&#xff1a; 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 示例 2&#xff1a; 输入&a…

Linux文件系列: 深入理解缓冲区和C标准库的简单模拟实现

Linux文件系列: 深入理解缓冲区和C标准库的简易模拟实现 一.缓冲区的概念和作用二.一个样例三.理解样例1.样例解释2.什么是刷新? 四.简易模拟实现C标准库1.我们要实现的大致框架2.mylib.h的实现1.文件结构体的定义2.myfopen等等函数的声明3.完整mylib.h代码 3.myfopen函数的实…

备战蓝桥杯Day25 - 二叉搜索树

一、基本概念 二叉搜索树&#xff08;Binary Search Tree&#xff09;&#xff0c;又称为二叉查找树或二叉排序树&#xff0c;是一种具有特定性质的二叉树。 定义&#xff1a;二叉搜索树可以是一棵空树&#xff0c;也可以是具有以下特性的非空二叉树&#xff1a; 若其左子树不…

MAC OS 14.2.1 ASP.NET Core 调试遇到的端口占用的问题

一、问题描述 在调试 ASP.NET Core 项目时&#xff0c;遇到一个很奇怪的问题&#xff0c;不管项目是否已经运行&#xff0c;使用 Postman 测试接口时&#xff0c;都返回 403 Forbidden。重启电脑&#xff0c;刚开始还好好的&#xff0c;过一会儿就返回 403 Forbidden。 二、问…

AOP切面编程,以及自定义注解实现切面

AOP切面编程 通知类型表达式重用表达式切面优先级使用注解开发&#xff0c;加上注解实现某些功能 简介 动态代理分为JDK动态代理和cglib动态代理当目标类有接口的情况使用JDK动态代理和cglib动态代理&#xff0c;没有接口时只能使用cglib动态代理JDK动态代理动态生成的代理类…

2024蓝桥杯每日一题(双指针)

一、第一题&#xff1a;牛的学术圈 解题思路&#xff1a;双指针贪心 仔细思考可以知道&#xff0c;写一篇综述最多在原来的H指数的基础上1&#xff0c;所以基本方法可以是先求出原始的H指数&#xff0c;然后分类讨论怎么样提升H指数。 【Python程序代码】 n,l map(int,…

一篇文章搞定数字电桥

大家好&#xff0c;我是砖一。 最近做项目过程中&#xff0c;有一个应届生问我怎么测电容和电感&#xff0c;我推荐他使用数字电桥&#xff08;也叫LCR表&#xff09;&#xff0c;他不会用&#xff0c;今天我写了一篇文章供小白们参考一下&#xff0c;包学会~ 一&#xff0c;…

WebRTC简介及实战应用 — 从0到1实现实时音视频聊天等功能

一、WebRTC简介 WebRTC 是由一家名为 Gobal IP Solutions,简称 GIPS 的瑞典公司开发的。Google 在 2011 年收购了 GIPS,并将其源代码开源。然后又与 IETF 和 W3C 的相关标准机构合作,以确保行业达成共识。其中: Web Real-Time Communications (WEBRTC) W3C 组织:定义浏览…

【npm】node包管理工具npm的介绍和基础使用

简言 npm 是 Node.js 的 包管理器&#xff08;Package Manager&#xff09;&#xff0c;它是专门用于管理 Node.js 项目中第三方库的工具。 本文介绍下npm和其使用方法。 npm介绍 npm 是世界上最大的软件注册中心。各大洲的开源开发者都使用 npm 共享和借用软件包&#xff…

开源组件安全风险及应对

在软件开发的过程中&#xff0c;为了提升开发效率、软件质量和稳定性&#xff0c;并降低开发成本&#xff0c;使用开源组件是开发人员的不二选择&#xff08;实际上&#xff0c;所有软件开发技术的演进都是为了能够更短时间、更低成本地构建软件&#xff09;。这里的开源组件指…

Spring事件发布监听器ApplicationListener原理- 观察者模式

据说监听器模式也是mq实现的原理, 不过mq我还没来得及深入学习, 先用spring来理解一下吧 Spring事件发布监听器ApplicationListener原理- 观察者模式 什么是观察者模式一个Demo深入认识一下观察者模式Spring中的事件发布监听ps 什么是观察者模式 大家都听过一个故事叫做烽火戏…

Git学习笔记(流程图+示例)

概念 图中左侧为工作区&#xff0c;右侧为版本库。Git 的版本库里存了很多东西&#xff0c;其中最重要的就是暂存区。 • 在创建 Git 版本库时&#xff0c;Git 会为我们自动创建一个唯一的 master 分支&#xff0c;以及指向 master 的一个指 针叫 HEAD。&#xff08;分支和HEAD…

设计模式-结构型模式-代理模式

代理模式&#xff08;Proxy&#xff09;&#xff0c;为其他对象提供一种代理以控制对这个对象的访问。[DP] // 定义接口 interface Subject {void request(); }// 真实主题对象 class RealSubject implements Subject {Overridepublic void request() {System.out.println(&quo…