修改非空断言可能会导致的崩溃错误

This commit is contained in:
2025-10-11 16:55:43 +08:00
parent 75c483103e
commit 32b17ddfcc
4 changed files with 63 additions and 27 deletions

View File

@@ -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);