From 5066f880fad8e75103f4e0a0d9288656ad95fabf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E6=B6=B5?= <1572542354@qq.com> Date: Sun, 11 May 2025 12:44:38 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20:bug:=20=E5=85=B3=E4=BA=8ETHUAI8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3=E4=B8=AD?= =?UTF-8?q?=E4=B8=A4=E7=A7=8Dattack=E7=9A=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contests/THUAI8/interface/interfacecpp.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/contests/THUAI8/interface/interfacecpp.md b/docs/contests/THUAI8/interface/interfacecpp.md index 185094d6..8aef5ca7 100644 --- a/docs/contests/THUAI8/interface/interfacecpp.md +++ b/docs/contests/THUAI8/interface/interfacecpp.md @@ -285,26 +285,20 @@ std::future MoveDown(int64_t timeInMilliseconds) ### 角色攻击 ```cpp -std::future Skill_Attack(int64_t TeamID, int64_t PlayerID, double angle) +std::future Skill_Attack(double angle) ``` - **返回类型:** `std::future` - **参数:** - - `TeamID`:队伍ID - - `PlayerID`:角色ID - `angle`:攻击方向,单位为弧度 角色向指定方向使用技能攻击,返回操作是否成功的future对象。 ```cpp -std::future Common_Attack(int64_t teamID, int64_t PlayerID, int64_t attackedTeamID, int64_t attackedPlayerID) +std::future Common_Attack(int64_t attackedPlayerID) ``` - - **返回类型:** `std::future` - **参数:** - - `teamID`:攻击者队伍ID - - `PlayerID`:攻击者角色ID - - `attackedTeamID`:被攻击者队伍ID - `attackedPlayerID`:被攻击者角色ID 角色对指定目标进行普通攻击,返回操作是否成功的future对象。 From e11f310fa5adc9e5dcc4924314aa4a8858a893cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E6=B6=B5?= <1572542354@qq.com> Date: Thu, 15 May 2025 11:28:35 +0800 Subject: [PATCH 2/4] =?UTF-8?q?fix:=20:bug:=20cpp=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contests/THUAI8/interface/interfacecpp.md | 101 ++++++++++-------- 1 file changed, 57 insertions(+), 44 deletions(-) diff --git a/docs/contests/THUAI8/interface/interfacecpp.md b/docs/contests/THUAI8/interface/interfacecpp.md index 8aef5ca7..f1f01c4d 100644 --- a/docs/contests/THUAI8/interface/interfacecpp.md +++ b/docs/contests/THUAI8/interface/interfacecpp.md @@ -1,5 +1,4 @@ - -# cpp接口一览 +# THUAI8 角色控制接口文档 本文档详细介绍THUAI8游戏中的两个主要角色控制接口:ICharacterAPI和ITeamAPI,以及它们从IAPI继承的所有方法。 @@ -139,27 +138,44 @@ THUAI8::PlaceType GetPlaceType(int32_t cellX, int32_t cellY) const 获取指定格子的类型,如障碍、空地等。 ```cpp -std::optional GetEnconomyResourceState(int32_t cellX, int32_t cellY) const +std::optional GetEnconomyResourceState(int32_t cellX, int32_t cellY) const ``` -- **返回类型:** `std::optional` +- **返回类型:** `std::optional` - **参数:** - `cellX`:格子X坐标 - `cellY`:格子Y坐标 获取指定格子的经济资源状态,如果该格子没有经济资源则返回空。 +**注:这里``THUAI8::EconomyResource``包含了关于经济资源的所有有效信息,包括:所属队伍``team_id``、开采进程``process``、经济资源类型``THUAI8::EconomyResourceType``** + ```cpp -std::optional> GetAdditionResourceState(int32_t cellX, int32_t cellY) const +std::optional GetAdditionResourceState(int32_t cellX, int32_t cellY) const ``` -- **返回类型:** `std::optional>` +- **返回类型:** `std::optional` - **参数:** - `cellX`:格子X坐标 - `cellY`:格子Y坐标 获取指定格子的加成资源状态,如果该格子没有加成资源则返回空。 +**注:这里``THUAI8::AdditionResource``包含了关于加成资源的所有有效信息,包括:所属队伍``team_id``、剩余血量``hp``、加成资源类型``THUAI8::AdditionResourceType``** + +```cpp +std::optional GetConstructionState(int32_t cellX, int32_t cellY) const +``` + +* **返回类型:**``std::optional`` +* **参数:** + - ``cellX``:格子X坐标 + - ``cellY``:格子Y坐标 + +获取指定格子的建筑状态(不含陷阱),如果该格子没有建筑则返回空。 + +**注:这里``THUAI8::ConstructionState``包含了关于建筑的所有有效信息,包括:所属队伍``team_id``、剩余血量``hp``、建筑类型(不含陷阱)``THUAI8::ConstructionType``** + ```cpp std::vector GetPlayerGUIDs() const ``` @@ -232,76 +248,61 @@ void PrintSelfInfo() const ### 角色移动 ```cpp -std::future Move(int32_t moveTimeInMilliseconds, double angle) +std::future Move(int64_t teamID, int64_t characterID, int32_t moveTimeInMilliseconds, double angle) ``` - **返回类型:** `std::future` - **参数:** + - `teamID`:队伍ID + - `characterID`:角色ID - `moveTimeInMilliseconds`:移动持续时间,单位为毫秒 - `angle`:移动方向,单位为弧度,使用极坐标(竖直向下方向为x轴,水平向右方向为y轴) 控制角色向指定方向移动指定的时间,返回操作是否成功的future对象。 -```cpp -std::future MoveRight(int64_t timeInMilliseconds) -``` - -- **返回类型:** `std::future` -- **参数:** - - `timeInMilliseconds`:移动持续时间,单位为毫秒 - -控制角色向右指定的时间,返回操作是否成功的future对象。 +### 角色攻击 ```cpp -std::future MoveUp(int64_t timeInMilliseconds) +std::future Skill_Attack(double angle) ``` - **返回类型:** `std::future` - **参数:** - - `timeInMilliseconds`:移动持续时间,单位为毫秒 + - `angle`:攻击方向,单位为弧度 -控制角色向上指定的时间,返回操作是否成功的future对象。 +角色向指定方向使用技能攻击,返回操作是否成功的future对象。 ```cpp -std::future MoveLeft(int64_t timeInMilliseconds) +std::future Common_Attack(int64_t attackedPlayerID) ``` - **返回类型:** `std::future` - **参数:** - - `timeInMilliseconds`:移动持续时间,单位为毫秒 + - `attackedPlayerID`:被攻击者角色ID + +角色对指定目标进行普通攻击,返回操作是否成功的future对象。 -控制角色向左指定的时间,返回操作是否成功的future对象。 +### 攻击建筑 ```cpp -std::future MoveDown(int64_t timeInMilliseconds) + std::future AttackConstruction() ``` -- **返回类型:** `std::future` -- **参数:** - - `timeInMilliseconds`:移动持续时间,单位为毫秒 +* **返回类型:**``std::future`` +* **参数:无** -控制角色向下指定的时间,返回操作是否成功的future对象。 +角色对建筑进行攻击,返回是否成功的future对象。 -### 角色攻击 +### 攻击加成资源 ```cpp -std::future Skill_Attack(double angle) +std::future AttackAdditionResource() ``` -- **返回类型:** `std::future` -- **参数:** - - `angle`:攻击方向,单位为弧度 +* **返回类型:**``std::future`` +* **参数:无** -角色向指定方向使用技能攻击,返回操作是否成功的future对象。 - -```cpp -std::future Common_Attack(int64_t attackedPlayerID) -``` -- **返回类型:** `std::future` -- **参数:** - - `attackedPlayerID`:被攻击者角色ID - -角色对指定目标进行普通攻击,返回操作是否成功的future对象。 +角色对加成资源进行攻击,返回是否成功的future对象。 ### 角色恢复与生产 @@ -334,10 +335,22 @@ std::future Construct(THUAI8::ConstructionType constructionType) - **返回类型:** `std::future` - **参数:** - - `constructionType`:建筑类型 + - `constructionType`:建筑类型(除陷阱类型外) 角色建造指定类型的建筑,返回操作是否成功的future对象。 +### 建造陷阱 + +```cpp +std::future ConstructTrap(THUAI8::TrapType trapType) +``` + +* **返回类型:**``std::future`` +* **参数:** + - ``trapType``:陷阱类型 + +角色建造陷阱,返回操作是否成功的future对象。 + ### 角色信息获取 ```cpp @@ -412,4 +425,4 @@ std::future BuildCharacter(THUAI8::CharacterType CharacterType, int32_t bi 3. API调用的结果(成功/失败) 4. 游戏状态变化 -调试API的日志文件保存在"logs/api-{teamID}-{playerID}-log.txt",其中teamID是团队ID,playerID是角色ID。日志记录了API调用的时间、参数和结果,便于开发者调试和分析游戏运行情况。 +调试API的日志文件保存在"logs/api-{teamID}-{playerID}-log.txt",其中teamID是团队ID,playerID是角色ID。日志记录了API调用的时间、参数和结果,便于开发者调试和分析游戏运行情况。 \ No newline at end of file From 1c0f0fefac3391066201c7c82d59151a7e1dd740 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E6=B6=B5?= <1572542354@qq.com> Date: Thu, 15 May 2025 16:02:54 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20:bug:=20cpp=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=96=87=E6=A1=A3Move=E3=80=81Produce=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contests/THUAI8/interface/interfacecpp.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/docs/contests/THUAI8/interface/interfacecpp.md b/docs/contests/THUAI8/interface/interfacecpp.md index f1f01c4d..e87a0e98 100644 --- a/docs/contests/THUAI8/interface/interfacecpp.md +++ b/docs/contests/THUAI8/interface/interfacecpp.md @@ -248,13 +248,11 @@ void PrintSelfInfo() const ### 角色移动 ```cpp -std::future Move(int64_t teamID, int64_t characterID, int32_t moveTimeInMilliseconds, double angle) +std::future Move(int32_t moveTimeInMilliseconds, double angle) ``` - **返回类型:** `std::future` - **参数:** - - `teamID`:队伍ID - - `characterID`:角色ID - `moveTimeInMilliseconds`:移动持续时间,单位为毫秒 - `angle`:移动方向,单位为弧度,使用极坐标(竖直向下方向为x轴,水平向右方向为y轴) @@ -317,13 +315,11 @@ std::future Recover(int64_t recover) 角色进行生命值恢复,返回操作是否成功的future对象。 ```cpp -std::future Produce(int64_t playerID, int64_t teamID) +std::future Produce() ``` - **返回类型:** `std::future` -- **参数:** - - `playerID`:角色ID - - `teamID`:队伍ID +- **参数:无** 角色进行资源生产,返回操作是否成功的future对象。 From 848a3cf68f748812cd80f0e68b07cae67a09eaf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E4=B8=80=E6=B6=B5?= <1572542354@qq.com> Date: Tue, 20 May 2025 17:06:52 +0800 Subject: [PATCH 4/4] =?UTF-8?q?fix:=20:bug:=20=E6=8E=A5=E5=8F=A3=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/contests/THUAI8/interface/interfacecpp.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/docs/contests/THUAI8/interface/interfacecpp.md b/docs/contests/THUAI8/interface/interfacecpp.md index e87a0e98..610e0a95 100644 --- a/docs/contests/THUAI8/interface/interfacecpp.md +++ b/docs/contests/THUAI8/interface/interfacecpp.md @@ -138,7 +138,7 @@ THUAI8::PlaceType GetPlaceType(int32_t cellX, int32_t cellY) const 获取指定格子的类型,如障碍、空地等。 ```cpp -std::optional GetEnconomyResourceState(int32_t cellX, int32_t cellY) const +std::optional GetEconomyResourceState(int32_t cellX, int32_t cellY) const ``` - **返回类型:** `std::optional` @@ -167,7 +167,7 @@ std::optional GetAdditionResourceState(int32_t cellX, std::optional GetConstructionState(int32_t cellX, int32_t cellY) const ``` -* **返回类型:**``std::optional`` +* **返回类型:**``std::optional` * **参数:** - ``cellX``:格子X坐标 - ``cellY``:格子Y坐标 @@ -176,6 +176,19 @@ std::optional GetConstructionState(int32_t cellX, int **注:这里``THUAI8::ConstructionState``包含了关于建筑的所有有效信息,包括:所属队伍``team_id``、剩余血量``hp``、建筑类型(不含陷阱)``THUAI8::ConstructionType``** +```cpp +std::optional GetTrapState(int32_t cellX, int32_t cellY) const +``` + +* **返回类型:**``std::optional` +* **参数:** + - ``cellX``:格子X坐标 + - ``cellY``:格子Y坐标 + +获取指定格子的陷阱状态,如果该格子没有陷阱则返回空。 + +**注:这里``THUAI8::Trap``包含了关于陷阱的所有有效信息,包括:所属队伍``team_id``、是否有效``trap_valid``、陷阱类型``THUAI8::TrapType``** + ```cpp std::vector GetPlayerGUIDs() const ```