Python SDK 文档
欢迎使用我们为比赛编写的 Python SDK!本文档将详细介绍可供选手调用的接口和功能,包括参数、返回值类型以及用法示例,帮助您更好地理解如何使用该 SDK 来控制您的无人作战系统参与比赛。
模板说明
版本要求:Python 3.12
首先请安装依赖项,需要在命令行中输入:
pip install -r requirements.txt
你可以在 logic.py
中编写你的代码。对于有经验的开发者,你也可以修改项目中的其他任何文件。
在命令行中运行以下命令来启动 Agent:
python main.py --server <server> --token <token>
<server>
:游戏的服务器地址。(默认值:ws://localhost:14514
)<token>
:Agent 的令牌。(默认值:1919810
)
例如:
python main.py --server ws://localhost:14514 --token 1919810
- 运行此模板前,请确保你的环境满足 Python 版本要求,并已正确安装所有依赖项。
- 如果修改了模板内容,可能需要相应地调整运行命令或代码逻辑。
- 在运行前,请务必检查你的服务器地址和令牌是否正确,以确保 Agent 能够成功连接到游戏服务器。
接口介绍
获取游戏状态信息
-
获取所有玩家信息
players_info = agent.all_player_info
- 返回类型:
Optional[List[PlayerInfo]]
all_player_info
属性将返回一个包含所有玩家信息的列表。每个玩家信息包括玩家的 ID、生命值、护甲、当前护甲血量、速度、当前武器、武器池、位置和背包物品等。 - 返回类型:
-
获取地图信息
game_map = agent.map
- 返回类型:
Optional[Map]
map
属性将返回地图信息,包括地图的长度和障碍物位置。 - 返回类型:
-
获取资源信息
supplies = agent.supplies
- 返回类型:
Optional[List[Supply]]
supplies
属性将返回一个包含所有资源信息的列表。每个资源信息包括资源的种类、位置和数量。 - 返回类型:
-
获取安全区信息
safe_zone = agent.safe_zone
- 返回类型:
Optional[SafeZone]
safe_zone
属性将返回安全区信息,包括安全区的中心位置和半径。 - 返回类型:
-
获取自身 ID
self_id = agent.self_id
- 返回类型:
Optional[int]
self_id
属性将返回自身玩家的 ID。 - 返回类型:
-
获取 ticks
ticks = agent.ticks
- 返回类型:
Optional[int]
ticks
属性将返回当前 ticks - 返回类型:
操作无人作战系统
-
选择出生地
agent.choose_origin(position)
- 参数:
position
(Position[float]) 代表出生地位置 - 返回类型:
None
使用
choose_origin
方法选择无人作战系统的出生地。 - 参数:
-
移动
agent.move(position)
- 参数:
position
(Position[float]) 代表目标位置 - 返回类型:
None
使用
move
方法使无人作战系统移动到指定位置。 - 参数:
-
停止移动
agent.stop()
- 返回类型:
None
使用
stop
方法停止无人作战系统的移动。 - 返回类型:
-
拾取资源
agent.pick_up(item_kind, count)
- 参数:
item_kind
(ItemKind) - 资源种类count
(int) - 数量
- 返回类型:
None
使用
pick_up
方法使无人作战系统拾取当前脚下 1×1 方格上的资源。 - 参数:
-
放弃资源
agent.abandon(item_kind, count)
- 参数:
item_kind
(ItemKind) - 资源种类count
(int) - 数量
- 返回类型:
None
使用
abandon
方法使无人作战系统放弃背包中的指定数量的资源。 - 参数:
-
切换武器
agent.switch_firearm(item_kind)
- 参数:
item_kind
(FirearmKind) - 目标武器的种类 - 返回类型:
None
使用
switch_firearm
方法切换无人作战系统的当前武器。 - 参数:
-
使用药品
agent.use_medicine(medicine_kind)
- 参数:
medicine_kind
(MedicineKind) - 药品种类 - 返回类型:
None
使用
use_medicine
方法使用药品恢复无人作战系统的生命值。 - 参数:
-
使用手榴弹
agent.use_grenade(position)
- 参数:
position
(Position[float]) - 目标位置 - 返回类型:
None
使用
use_grenade
方法投掷手榴弹攻击敌人或破坏墙体。 - 参数:
-
攻击
agent.attack(position)
- 参数:
position
(Position[float]) - 目标位置 - 返回类型:
None
使用
attack
方法使无人作战系统攻击指定位置的敌人。 - 参数:
其他
-
判断是否连接到服务器
connected = agent.is_connected()
- 返回类型:
bool
is_connected
方法指示 Agent 是否已连接到服务器。 - 返回类型:
-
判断游戏是否准备就绪
ready = agent.is_game_ready()
- 返回类型:
bool
is_game_ready
方法指示游戏是否已准备就绪,即是否已获取到所有必要的游戏状态信息。 - 返回类型: