【脚本玩漆黑的魅影】冠军之路全自动练级

news2024/11/17 21:21:08

文章目录

  • 原理
  • 全部代码

在这里插入图片描述

原理

没有新东西。
安全区选在了这里,上面是洞口,下面是治疗。
因为逛的区域大了点,这次用跑的。(好像之前也能跑)

def chu_qu():  # 右逛
	c.press(B)
	press(UP, 0.4)
	c.release(B)
def hui_qu():  # 左逛
	c.press(B)
	press(DOWN, 0.4)
	c.release(B)

全部代码

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(DOWN)
	walk(DOWN)
	press(RIGHT, 0.3)
	walk(LEFT)
	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)
	walk(UP)
	walk(UP)
	walk(UP)
	press(LEFT, 0.4)
	walk(UP)
	walk(UP)
	walk(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(UP, 0.4)
	c.release(B)
def hui_qu():  # 左逛
	c.press(B)
	press(DOWN, 0.4)
	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("安全区1.png"), (911, 717, 1019, 804), 12)
data_pp = cai_yang(Image.open("没有PP.png"), (110, 815, 722, 1018), 12)
# 像素数据
data_attack = ((1084, 301), (112, 96, 32))
# 键位设置
UP = "w"
DOWN = "s"
LEFT = "a"
RIGHT = "d"
ACCELERATE = "u"
A = "j"
B = "k"

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Lazy ORM】 小工具 acw 本地客户端 你负责点击页面,他负责输出代码

介绍 wu-smart-acw-client 简称acw-client&#xff0c;是一个基于Lazy ORM定制的客户端代码生成小工具 Lazy ORM 小工具 acw 本地客户端 你负责点击页面&#xff0c;他负责输出代码安装 <dependency><groupId>top.wu2020</groupId><artifactId>wu-sma…

2024年腾讯云99元1年服务器_新老同享_续费99元一年

良心腾讯云推出99元一年服务器&#xff0c;新用户和老用户均可以购买&#xff0c;续费不涨价&#xff0c;续费也是99元&#xff0c;配置为轻量2核2G4M、50GB SSD盘、300GB月流量、4M带宽&#xff1a;优惠价格99元一年&#xff0c;续费99元&#xff0c;官方活动页面 txybk.com/g…

MySQL入门到中级知识汇总2024

文章目录 1.揭开MySQL的神秘面纱2. SQL的基本命令实操3. 数据库的备份与恢复4. MySQL常用的数据类型&#xff08;列类型&#xff09;5. 数据类型之小数类型的使用6. 表的创建7. 表的修改8. mysql事务9. mysql表类型和存储引擎10. mysql的视图11. mysql的管理 1.揭开MySQL的神秘…

OpenHarmony教程指南—性能示例(renderGroup接口)

性能示例 介绍 本示例使用renderGroup接口实现了在单一页面上存在大量应用动效的组件时&#xff0c;使用renderGroup方法来解决卡顿问题&#xff0c;从而提升绘制能力。 renderGroup原理说明&#xff1a;首次绘制组件时&#xff0c;若组件被标记为启用renderGroup状态&#…

考研常识 | 专业硕士与学术硕士的11个区别

专业硕士与学术硕士的11个区别 对于考研学子而言&#xff0c;了解专业学位与学术学位的区别&#xff0c;是报考的第一步。学术学位研究生一般都是全日制的&#xff0c;而专业学位研究生的学习方式还分为即全日制与非全日制两种。这篇文章将带大家认识全日制专业学位与全日制学术…

Visual C++ 2010学习版安装教程

1. 创建项目 点击 “创建新项目”&#xff0c;创建一个项目。 2. 创建 helloworld.c ⽂件 3. 在弹出的编辑框中&#xff0c;选中 “C文件(.cpp)”&#xff0c;将 下方 “源.cpp” 手动改为要新创建的文件名。 如&#xff1a;helloWorld.c 。注意&#xff0c;默认 cpp 后缀名&am…

vue+nodejs超市购物商城在线选品系统wtk87

在此基础上&#xff0c;结合现有超市货品信息管理体系的特点&#xff0c;运用新技术&#xff0c;构建了以 vue为基础的超市货品信息管理信息化管理体系。首先&#xff0c;以需求为依据&#xff0c;根据需求分析结果进行了系统的设计&#xff0c;并将其划分为管理员和用户二种角…

代码随想录算法训练营Day39 || leetCode 762.不同路径 || 63. 不同路径 II

62.不同路径 每一位的结果等于上方与左侧结果和 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> dp(m,vector(n,0));for (int i 0; i < m; i) dp[i][0] 1;for (int j 0; j < n; j) dp[0][j] 1;for (int i 1; i < m; …

MySQL-----存储过程

▶ 介绍 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合&#xff0c;调用存储过程可以简化应用开发人员的很多工作&#xff0c;减少数据在数据库和应用服务器之间的传输&#xff0c;对于提高数据处理的效率是有好处的。 存储过程思想上很简单&#xff0c;…

Vue3 快速上手从0到1,两小时学会【附源码】

小伙伴们好&#xff0c;欢迎关注&#xff0c;一起学习&#xff0c;无限进步 以下内容为vue3的学习笔记 项目需要使用到的依赖 npm install axios npm install nanoid vue-router npm install pinia npm install mitt 源码&#xff1a;Gitee 运行 npm install npm run dev需要运…

蓝桥杯练习系统(算法训练)ALGO-982 最小距离

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 最小距离 问题描述 数轴上有n个数字&#xff0c;求最近的两个数&#xff0c;即min(abs(x-y)) 输入格式 第一行包含一个整数n。   …

IDEA编译安卓源码TVBox

因为电视x受限&#xff0c;无法观看电视直播&#xff0c;为了春晚不受影响&#xff0c;于是网络一顿搜索&#xff0c;试过多个APP&#xff0c;偶尔找到这款开源的TVBox&#xff0c;寒假在家&#xff0c;随便拿来练练手&#xff0c;学习安卓APP的编写&#xff0c;此文做以记录&a…

面向对象的编程语言是什么意思?——跟老吕学Python编程

面向对象的编程语言是什么意思&#xff1f;——跟老吕学Python编程 面向对象是什么意思&#xff1f;面向对象的定义面向对象的早期发展面向对象的背景1.审视问题域的视角2.抽象级别3.封装体4.可重用性 面向对象的特征面向对象的开发方法面向对象程序设计基本思想实现 面向对象的…

超级终端Terminator

安装 在终端中输入 sudo apt install terminator 使用 CtrlShiftT 打开终端 右键选择水平分割/垂直分割 或者使用 CtrlShiftO或CtrlShiftE CtrlShiftW可以撤销刚刚的分割&#xff08;删除终端窗口指令&#xff09; Alt箭头&#xff08;方向键&#xff09;可以在…

牛客周赛 Round 36 解题报告 | 珂学家 | 状态DP + 构造 + 9棵树状数组

前言 整体评价 今天相对容易&#xff0c;E的构造题&#xff0c;感谢出题人极其善意的Case 1, 算是放水了。F题是个很典的结论题&#xff0c;由于存在动态点修改&#xff0c;所以引入树状数组做区间和的快速计算。 A. 小红的数位删除 题型: 签到 s input()print (s[:-3])B. …

Gradle模块化最佳实践

一&#xff0c;模块化的原因及意义 模块化是一种将大型的软件系统拆分成相互独立的模块的方法。具有以下优势&#xff1a; 代码复用&#xff1a;不同的模块可以共享相同的代码。这样可以避免重复编写相同的代码&#xff0c;提高开发效率。模块独立性&#xff1a;每个模块都可…

Mysql数据库-基本表操作

1.表操作 创建表&#xff1a;CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; field 表示列名 datatype 表示列的类型 character set 字符集&#xff0c;如果没有指定字符集&#xff…

单文件组件SFC及Vue CLI脚手架的安装使用

单文件组件SFC及Vue CLI脚手架的安装使用 Vue 单文件组件&#xff08;又名 *.vue 文件&#xff0c;缩写为 SFC&#xff09;是一种特殊的文件格式&#xff0c;它允许将 Vue 组件的模板、逻辑 与 样式封装在单个文件中。 为什么要使用 SFC 使用 SFC 必须使用构建工具&#xff…

js实现文本内容过长中间显示...两端正常展示

实现思路 获取标题盒子的真实宽度, 我这里用的是clientWidth&#xff1b;获取文本内容所占的实际宽度&#xff1b;根据文字的大小计算出每个文字所占的宽度&#xff1b;判断文本内容的实际宽度是否超出了标题盒子的宽度&#xff1b;通过文字所占的宽度累加之和与标题盒子的宽度…

05 排序与分页

排序与分页 1 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC&#xff08;ascend&#xff09;: 升序DESC&#xff08;descend&#xff09;:降序 ORDER BY 子句在SELECT语句的结尾 1.2 单列排序 SELECT last_name, job_id, department_id, hire_date FROM empl…