本帖最后由 xhtdtk 于 2021-8-10 21:00 编辑
写在前面:
目前有很多的内存和图色脚本,但是很多游戏用CE查找内存就闪退,图色不知道截图多少太麻烦。但是,现在大部分游戏是越来越方便玩家,快捷了玩家的操作,于是我想利用这些快捷操作制作简单的能完成日常的脚本。
工具:
Python3.7.8,spy++,游戏S武
先写函数方便调用:
import win32gui,win32con
from pymouse import PyMouse
from pykeyboard import PyKeyboard
import pyperclip
import time
'''
1、pip install pywin32
2、https://www.lfd.uci.edu/~gohlke/pythonlibs/安装pyhook(win_amd64.whl),pip install whl文件路径
3、pip install PyUserinput
4、pip install pyperclip
说明:pywin32——激活窗口,获取窗口位置;pyhook和PyUserinput模拟键鼠;pyperclip输入文字
'''
class window:
def init(self,classname,title):#classname和title是窗口信息,可以使用spy++获取
self.classname=classname
self.title=title
self.hld=win32gui.FindWindow(self.classname,self.title)
def headwindow(self):#窗口置顶(前提不能窗口不是最小化)
win32gui.SetForegroundWindow(self.hld)
def sizewindow(self):#获取窗口位置
left,top,right,bottom=win32gui.GetWindowRect(self.hld)
return left,top,right,bottom
def alt(keyboard):#快捷键alt+e打开物品
k = PyKeyboard()
k.press_key(k.alt_key)
k.tap_key(keyboard)
time.sleep(0.5)
k.release_key(k.alt_key)
def write(text):#输入信息并发送
pyperclip.copy(text)
k = PyKeyboard()
k.press_key(k.control_key)
k.tap_key('v')
time.sleep(0.5)
k.release_key(k.control_key)
k.tap_key(k.enter_key)
难道是我不会用MD>_<(截图看的方便些)
spy++查找class和title步骤:
调用函数:
import function#调用自己写的函数
from pymouse import PyMouse
import time
import random
m = PyMouse()
window=function.window('GLFW30','神武4 - 华山之巅')#找到窗口
window.headwindow()#置顶窗口
time.sleep(random.randint(2,5))
function.alt('h')#快捷键Alt+H
time.sleep(random.randint(2,5))
function.write('江湖密探')#输入江湖密探并回车
time.sleep(random.randint(2,5))
sizewindow=window.sizewindow()#获取游戏窗口矩阵坐标,坐标返回在元组中
m.click(sizewindow[0]+363,sizewindow[1]+230)#加上相对坐标后,点击坐标自动寻路,这样就不会因为窗口不固定而点击不了
效果:
最后:
虽然很简单就实现了找人,但有些时候还不能触发自动寻路,或者触发不了NPC的对话。NPC触发对话可以在后面写上一行点击NPC的代码,那么如何判断我是否触发了自动寻路呢,to be continue... |