From 582079f40fa25bcfefdf771c948c3c43406f6a6d Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 23 Dec 2020 13:47:36 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BA=BA=E5=9C=A8?= =?UTF-8?q?=E9=9A=8F=E4=BB=8E=E6=BB=A1=E5=90=8E,=20=E5=8F=AA=E9=87=8A?= =?UTF-8?q?=E6=94=BE=E6=8A=80=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/assistant.util.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/utils/assistant.util.ts b/src/utils/assistant.util.ts index cdb26d0..3e900c2 100644 --- a/src/utils/assistant.util.ts +++ b/src/utils/assistant.util.ts @@ -9,6 +9,7 @@ import {Player} from "../rooms/schema/Player"; import {HeroCfg} from "../cfg/parsers/HeroCfg"; import {EffectType} from "../cfg/enums/EffectType"; import {CardType} from "../cfg/enums/CardType"; +import {GameEnv} from "../cfg/GameEnv"; let assistantUtil = { @@ -150,10 +151,15 @@ let assistantUtil = { let effectMap: Map = global.$cfg.get(BaseConst.EFFECTCARD); let spellCards: Card[] = []; // 优先取随从 + let petCount = 1; + for (let [,pet] of dstPlayer.pets) { + if (pet.state == 1) petCount ++; + } + let noMorePet = petCount >= new GameEnv().maxPlayerPetCount; for (let card of cards) { let effect = effectMap.get(card.effect); // if (effect.type_id == EffectType.unit && dstPlayer.unitCfgs.has(card.effect + '')) { - if (effect.type_id == EffectType.unit) { + if (effect.type_id == EffectType.unit && !noMorePet) { result = card; break; } else if (effect.type_id == EffectType.skill) { @@ -163,6 +169,12 @@ let assistantUtil = { if (!result) { result = spellCards.randomOne(); } + if (!result) { + return { + card: result.id, + errcode: 1, + }; + } let targetType: SkillTargetType = CfgMan.getTargetByCard(result.effect); let targetPlayer; let targetPos; From f4fc33be7b3a91534dd729438d6e68b85a29a158 Mon Sep 17 00:00:00 2001 From: zhl Date: Wed, 23 Dec 2020 13:50:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=9A=8F=E4=BB=8E?= =?UTF-8?q?=E6=97=B6,=20=E6=97=A0=E6=9C=89=E6=95=88=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=B6,=20=E8=BD=AE=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/robot/Robot.ts | 4 +++- src/robot/RobotClient.ts | 4 +++- src/utils/assistant.util.ts | 5 +---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/robot/Robot.ts b/src/robot/Robot.ts index a33f4ad..262b7be 100644 --- a/src/robot/Robot.ts +++ b/src/robot/Robot.ts @@ -223,7 +223,9 @@ export class Robot { @wait('playerActTime') private async selectPet() { let data = await assistantUtil.selectPet(this.player, this.room.state); - this.reply('select_pet_c2s', data); + if (data) { + this.reply('select_pet_c2s', data); + } } diff --git a/src/robot/RobotClient.ts b/src/robot/RobotClient.ts index 183931e..b268ab3 100644 --- a/src/robot/RobotClient.ts +++ b/src/robot/RobotClient.ts @@ -230,7 +230,9 @@ export class RobotClient implements Client { @wait('playerActTime') private async selectPet() { let data = await assistantUtil.selectPet(this.selfPlayer, this.svrstate); - this.reply('select_pet_c2s', data) + if (data) { + this.reply('select_pet_c2s', data); + } } } diff --git a/src/utils/assistant.util.ts b/src/utils/assistant.util.ts index 3e900c2..f7ebec9 100644 --- a/src/utils/assistant.util.ts +++ b/src/utils/assistant.util.ts @@ -170,10 +170,7 @@ let assistantUtil = { result = spellCards.randomOne(); } if (!result) { - return { - card: result.id, - errcode: 1, - }; + return null; } let targetType: SkillTargetType = CfgMan.getTargetByCard(result.effect); let targetPlayer;