如何使用Python在游戏中移动目标

2024-09-28 05:17:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个玩CS:GO的AI

但我无法移动目标

我尝试了pyautogui、win32api、pynput库,所有这些库都可以在桌面或任何有光标的地方使用

但在游戏中并没有光标,当我跟随鼠标时,鼠标的位置停留在中间((1920/21080/2),对我来说)当移动鼠标旋转时,它会增加一小段时间,然后回到那个位置

如何在CS:GO或GTAV或python的任何游戏中移动aim。python代码和真正的鼠标有什么区别

我不认为这是因为反作弊,因为它没有工作的GTAV

我看了同样的话题,但它们并没有解决我的问题

所有库的代码类似,因此我使用的代码如下:

import pyautogui, sys
import _thread
import time

time.sleep(2)

def kaydir(miktarX, miktarY):
    pyautogui.moveRel(miktarX, miktarY)

print('Press Ctrl-C to quit.')
try:
    while True:
        x, y = pyautogui.position()
        positionStr = 'X: ' + str(x).rjust(4) + ' Y: ' + str(y).rjust(4)
        print(positionStr, end='')
        print('\b' * len(positionStr), end='', flush=True)
        _thread.start_new_thread(kaydir, (1, 1))
        time.sleep(0.08)
except KeyboardInterrupt:
    print('\n')

Tags: 代码import游戏gotimesleep鼠标cs
1条回答
网友
1楼 · 发布于 2024-09-28 05:17:23

首先,你问这个问题是什么意思

what is the difference between python code and real mouse?

但如果你想为任何游戏创建机器人,你有两个选择:

  • 内存黑客: 获取一些内存指针以更改输入标志等(通过作弊引擎等)

  • 模拟用户交互(您的方式): 如果您想使用PyAutoGUI进行交互,我认为这是一个很好的起点:https://www.youtube.com/watch?v=NaZTtUmE990

    我更喜欢的另一种方式是(正如您所提到的)WinAPI: 鼠标移动的C++实现(因为我不知道如何在Python中执行):

    int main() {
        HWND tWin= FindWindow("TargetWindow", "Target Window");
        if (tWin) {
            RECT rect = {0};
            GetWindowRect(tWin, &rect);
            SetCursorPos(rect.right - 180 /*x offset*/, rect.bottom - 300 /*y offset*/);
        }
    
        return 0;
    }
    

    另外,如果您的程序是64位,请确保使用64位WinAPI

    如果您的游戏在更高权限下运行,您需要以管理员或系统管理员的身份运行您的机器人

    但是我认为要创建一个bot,你还需要内存黑客(只是阅读)来获取玩家的位置等,因为从程序员的角度来看,你如何从游戏屏幕图像中提取位置项等?。你也可以使用机器学习,但对于一个游戏来说,它需要一个巨大的训练过程

相关问题 更多 >

    热门问题