You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

桌面运行Unturned游戏服务器,Python随机武器程序自动化补全求助

解决Unturned服务器自动传递Python生成武器指令的问题

作为经常折腾游戏服务器自动化的开发者,我完全理解你手动粘贴变量的麻烦!咱们直接来解决这个核心问题——让Python程序自动把生成的武器相关指令发送到Unturned服务器控制台,不用手动操作。

下面给你两个最实用的方案,按优先级推荐:

方案1:使用Unturned官方RCON(最稳定、跨平台)

RCON是游戏服务器通用的远程控制台协议,Unturned原生支持,这是最靠谱的自动化方式,不管你是Windows还是Linux服务器都能用。

步骤1:开启服务器的RCON功能

  1. 找到你的Unturned服务器配置文件,一般是Config.json(或者ServerCommands.dat,取决于服务器版本)
  2. 修改以下配置项(如果没有就添加):
    • 开启RCON:"RCON": true
    • 设置RCON端口:"RCON_Port": 27015(默认是27015,你可以自定义,注意防火墙要开放这个端口)
    • 设置RCON密码:"RCON_Password": "你的安全密码"
  3. 重启服务器让配置生效

步骤2:用Python通过RCON发送指令

我们可以用现成的rcon库来简化开发,不用自己写socket通信:

首先安装库:

pip install rcon

然后修改你的Python程序,添加以下代码(替换成你的实际配置):

from rcon.source import Client

# 你的RCON配置信息
RCON_HOST = "localhost"  # 如果服务器在本地就填localhost,远程服务器填IP
RCON_PORT = 27015       # 和你服务器配置的RCON端口一致
RCON_PASSWORD = "你的RCON密码"

# 假设你的程序已经生成了武器指令,比如给玩家ID为1的玩家随机武器
random_weapon_id = "你的程序生成的武器ID"
player_id = 1
weapon_command = f"give {player_id} {random_weapon_id}"

# 连接RCON并发送命令
try:
    with Client(RCON_HOST, RCON_PORT, passwd=RCON_PASSWORD) as client:
        response = client.run(weapon_command)
        print(f"服务器执行成功,响应: {response}")
except Exception as e:
    print(f"发送指令失败: {str(e)}")

这样你的程序运行后,就能自动把指令发送到服务器控制台,完全不用手动粘贴!

方案2:Windows下模拟键盘输入(适合本地控制台运行的服务器)

如果你的服务器是在本地Windows电脑的控制台窗口运行,也可以用Python模拟键盘输入,把指令自动输入到控制台窗口里。这个方法不需要配置RCON,但只适用于Windows环境。

步骤1:安装依赖库

pip install pywin32

步骤2:添加自动输入代码

import win32api
import win32con
import win32gui
import time

def send_command_to_console(window_title, command):
    # 根据窗口标题找到Unturned服务器控制台
    hwnd = win32gui.FindWindow(None, window_title)
    if not hwnd:
        print("找不到Unturned服务器控制台窗口,请确认窗口标题正确!")
        return
    
    # 激活控制台窗口
    win32gui.SetForegroundWindow(hwnd)
    time.sleep(0.3)  # 给系统一点时间切换窗口
    
    # 逐个字符发送指令
    for char in command:
        win32api.keybd_event(ord(char), 0, 0, 0)
        win32api.keybd_event(ord(char), 0, win32con.KEYEVENTF_KEYUP, 0)
        time.sleep(0.01)
    
    # 发送回车键执行命令
    win32api.keybd_event(win32con.VK_RETURN, 0, 0, 0)
    win32api.keybd_event(win32con.VK_RETURN, 0, win32con.KEYEVENTF_KEYUP, 0)

# 调用示例,替换成你的控制台窗口标题和生成的指令
console_title = "Unturned Server Console"  # 注意要和实际窗口标题完全一致
weapon_command = "你的程序生成的武器指令"
send_command_to_console(console_title, weapon_command)

注意事项

  • 确保控制台窗口没有最小化,否则模拟输入可能失效
  • 窗口标题要完全匹配,你可以在控制台窗口的标题栏看到准确名称

最后小提示

优先推荐方案1,因为RCON是官方支持的方式,稳定性和兼容性都更好,哪怕以后把服务器搬到远程主机也能用。方案2适合临时快速实现,但局限性比较大。

内容的提问来源于stack exchange,提问作者tasmaanseduivel

火山引擎 最新活动