Browse Source

【游戏服】修复一些null exception

大爷 1 year ago
parent
commit
34c790f396

+ 1 - 1
DotNet/Hotfix/Scenes/Game/Handler/C2G_AddUnitsToMapHandler.cs

@@ -39,7 +39,7 @@ namespace ET.Server
             }
 
             // 临时openId
-            string _openId = (10000 + new Random().Next(999)).ToString();
+            string _openId = (10000 + new Random().Next(99999999)).ToString();
             await player.Map.AddUnitPlayer(_openId, request.UnitId, request.Force, request.Flag, request.X, request.Y, GetRandomPlayerName(), GetRandomUrl());
 
             reply();

+ 5 - 0
DotNet/Hotfix/Scenes/Game/Handler/C2G_BattleNotifyHandler.cs

@@ -37,6 +37,11 @@ namespace ET.Server
             {
                 var map = player.Map;
                 var players = map.UnitPlayers.Values.ToArray();
+                if(players.Length == 0)
+                {
+                    Log.Debug("Player count == 0, abort cmd");
+                    return;
+                }
                 var rand = new Random();
                 var randunit = players[rand.Next(players.Length)];
 

+ 2 - 2
DotNet/Hotfix/Scenes/Game/Session/SessionPlayerComponentSystem.cs

@@ -45,11 +45,11 @@ namespace ET.Server
                     map.DestroyZoneRequest();
                     // 移除本地场景数据
                     map.DomainScene().GetComponent<GameMapComponent>().Remove(map.Id, map.RoomId);
+
+                    map.Dispose();
                 }
 
                 player.Dispose();
-
-                map.Dispose();
             }
         }