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

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

@@ -57,9 +57,10 @@ class Room
let tempPlayers:Map<string, Player> = new Map<string, Player>;
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)