From 32b17ddfcc27ec6cd680509638916b0cbb016842 Mon Sep 17 00:00:00 2001 From: sunwen <605420856@qq.com> Date: Sat, 11 Oct 2025 16:55:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9D=9E=E7=A9=BA=E6=96=AD?= =?UTF-8?q?=E8=A8=80=E5=8F=AF=E8=83=BD=E4=BC=9A=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E5=B4=A9=E6=BA=83=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GameManager.js | 21 ++++++++++++++++----- GameManager.ts | 26 +++++++++++++++++++------- RoomManager.js | 20 +++++++++++++------- RoomManager.ts | 23 +++++++++++++++-------- 4 files changed, 63 insertions(+), 27 deletions(-) diff --git a/GameManager.js b/GameManager.js index c4e6b09..b407f8b 100644 --- a/GameManager.js +++ b/GameManager.js @@ -36,6 +36,7 @@ class GameManager { } } claculateRanking(aPlayers) { + var _a, _b; let sortPlayers = []; for (const player of aPlayers.values()) { if (player.mHp <= 0) { @@ -51,11 +52,13 @@ class GameManager { if (sortPlayers[i].mCharacterName != "") { continue; } - let characterName = this.mCharacterNames.pop(); + let characterName = (_a = this.mCharacterNames.pop()) !== null && _a !== void 0 ? _a : ""; sortPlayers[i].mCharacterName = characterName; if (characterName == "飞鸟千寻") { let player = aPlayers.get(sortPlayers[i].mCurrentEnemy); - player.mCharacterName = "高桥林佑"; + if (player) { + player.mCharacterName = "高桥林佑"; + } } } } @@ -65,7 +68,7 @@ class GameManager { if (player.mHp > 0) { player.mRank = 1; if (this.mCharacterNames.length > 0) { - player.mCharacterName = this.mCharacterNames.pop(); + player.mCharacterName = (_b = this.mCharacterNames.pop()) !== null && _b !== void 0 ? _b : ""; } return; } @@ -73,22 +76,30 @@ class GameManager { } } calcuteGameFightResult() { + var _a; let temp = new Map(this.mGameFightPlayer); let restRound = null; while (temp.size > 0) { const iterator = temp.keys(); - const playerID = iterator.next().value; + const playerID = (_a = iterator.next().value) !== null && _a !== void 0 ? _a : ""; let player = temp.get(playerID); if (!player) { return; } if (player.mIsResting) { - restRound = [player, this.mGameFightPlayer.get(player.mCurrentEnemy)], + let enemy = this.mGameFightPlayer.get(player.mCurrentEnemy); + if (!enemy) { + return; + } + restRound = [player, enemy], temp.delete(playerID); continue; } else { let enemy = temp.get(player.mCurrentEnemy); + if (!enemy) { + return; + } if (player.mAgile >= enemy.mAgile) //palyer 敏捷高 { this.claculatePlayerHp(player, enemy); diff --git a/GameManager.ts b/GameManager.ts index a01769c..4758788 100644 --- a/GameManager.ts +++ b/GameManager.ts @@ -68,12 +68,15 @@ export class GameManager { continue; } - let characterName = this.mCharacterNames.pop()!; + let characterName = this.mCharacterNames.pop() ?? ""; sortPlayers[i].mCharacterName = characterName; if(characterName == "飞鸟千寻") { - let player = aPlayers.get(sortPlayers[i].mCurrentEnemy)!; - player.mCharacterName = "高桥林佑"; + let player = aPlayers.get(sortPlayers[i].mCurrentEnemy); + if(player) + { + player.mCharacterName = "高桥林佑"; + } } } } @@ -87,7 +90,7 @@ export class GameManager player.mRank = 1; if(this.mCharacterNames.length > 0) { - player.mCharacterName = this.mCharacterNames.pop()!; + player.mCharacterName = this.mCharacterNames.pop() ?? ""; } return; } @@ -102,7 +105,7 @@ export class GameManager while (temp.size > 0) { const iterator = temp.keys(); - const playerID = iterator.next().value!; + const playerID = iterator.next().value ?? ""; let player = temp.get(playerID); if(!player) { @@ -110,13 +113,22 @@ export class GameManager } if(player.mIsResting) { - restRound = [player, this.mGameFightPlayer.get(player.mCurrentEnemy)!], + let enemy = this.mGameFightPlayer.get(player.mCurrentEnemy); + if(!enemy) + { + return; + } + restRound = [player, enemy], temp.delete(playerID); continue; } else { - let enemy = temp.get(player.mCurrentEnemy)!; + let enemy = temp.get(player.mCurrentEnemy); + if(!enemy) + { + return; + } if(player.mAgile >= enemy.mAgile)//palyer 敏捷高 { this.claculatePlayerHp(player, enemy); diff --git a/RoomManager.js b/RoomManager.js index 02531f2..735e13d 100644 --- a/RoomManager.js +++ b/RoomManager.js @@ -33,8 +33,9 @@ class Room { generatePairings() { let tempPlayers = new Map; for (const key of this.mPlayers.keys()) { - if (this.mPlayers.get(key).mHp > 0) { - tempPlayers.set(key, this.mPlayers.get(key)); + const player = this.mPlayers.get(key); + if (player && player.mHp > 0) { + tempPlayers.set(key, player); } } this.mMatchMaker.updatePlayers(tempPlayers); @@ -100,15 +101,20 @@ class RoomManager { return this.mInstance; } join(aRoomID, aName, aSocket) { - if (!this.mRooms.has(aRoomID)) { + const room = this.mRooms.get(aRoomID); + if (!room) { return [false, "No room Id", null, null]; } - let room = this.mRooms.get(aRoomID); if (room.mPlayers.has(aName)) { let player = room.mPlayers.get(aName); - player.setPlayerSocketId(aSocket.id); - aSocket.join(aRoomID); - return [true, "", room.mStatus, player]; + if (player) { + player.setPlayerSocketId(aSocket.id); + aSocket.join(aRoomID); + return [true, "", room.mStatus, player]; + } + else { + return [false, "unKnow error", null, null]; + } } if (room.mPlayers.size < GameDefine_1.ALL_PLAYER_NUM) { let player = new Player_1.Player(aName, aSocket.id); diff --git a/RoomManager.ts b/RoomManager.ts index 707fec3..c930a66 100644 --- a/RoomManager.ts +++ b/RoomManager.ts @@ -57,9 +57,10 @@ class Room let tempPlayers:Map = new Map; for(const key of this.mPlayers.keys()) { - if(this.mPlayers.get(key)!.mHp > 0) + const player = this.mPlayers.get(key); + if(player && player.mHp > 0) { - tempPlayers.set(key, this.mPlayers.get(key)!); + tempPlayers.set(key, player); } } this.mMatchMaker.updatePlayers(tempPlayers); @@ -145,18 +146,24 @@ export class RoomManager join(aRoomID:string, aName:string, aSocket:Socket):[boolean, string, number | null, Player | null] { - if(!this.mRooms.has(aRoomID)) + const room = this.mRooms.get(aRoomID); + if (!room) { return [false, "No room Id", null, null]; } - - let room = this.mRooms.get(aRoomID)!; if(room.mPlayers.has(aName)) { let player = room.mPlayers.get(aName); - player!.setPlayerSocketId(aSocket.id); - aSocket.join(aRoomID); - return [true, "", room.mStatus, player!]; + if(player) + { + player.setPlayerSocketId(aSocket.id); + aSocket.join(aRoomID); + return [true, "", room.mStatus, player]; + } + else + { + return [false, "unKnow error", null, null]; + } } if(room.mPlayers.size < ALL_PLAYER_NUM)