Преглед изворни кода

【游戏服】修复测试添加的单位openid可能重复导致战场转移失败的问题;
微调一三战场单位生成范围

大爷 пре 1 година
родитељ
комит
6fa4e49a08

+ 7 - 2
DotNet/Hotfix/Scenes/Game/Handler/C2G_AddUnitsToMapHandler.cs

@@ -39,8 +39,13 @@ namespace ET.Server
             }
 
             // 临时openId
-            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());
+            while (true)
+            {
+                string _openId = (10000 + new Random().Next(99999999)).ToString();
+                if (player.Map.GetUnitPlayerByOpenId(_openId) != null) continue;
+                await player.Map.AddUnitPlayer(_openId, request.UnitId, request.Force, request.Flag, request.X, request.Y, GetRandomPlayerName(), GetRandomUrl());
+                break;
+            }
 
             reply();
         }

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

@@ -72,7 +72,7 @@ namespace ET.Server
                 var funcIndex = int.Parse(request.Message[5..]);
                 if (funcIndex == 7)
                 {
-                    MessageHelper.SendActor(instanceid, new R2G_LiveLike() { OpenId = randunit.OpenId, RoomId = roomId, NickName = randunit.Name, Url = randunit.Url, Likes = 10 });
+                    MessageHelper.SendActor(instanceid, new R2G_LiveLike() { OpenId = randunit.OpenId, RoomId = roomId, NickName = randunit.Name, Url = randunit.Url, Likes = 30 });
                 }
                 else if(funcIndex <= 6 && funcIndex >= 1)
                 {

+ 10 - 5
DotNet/Hotfix/Scenes/Game/Map/MapSystem.cs

@@ -378,7 +378,12 @@ namespace ET.Server
                 Map = self
             };
 
-            self.UnitPlayers.TryAdd(openId, unitPlayerData);
+            if(!self.UnitPlayers.TryAdd(openId, unitPlayerData))
+            {
+                Log.Debug("openid already exist");
+                await self.RemovePointUnit(objId);
+                return null;
+            }
             return unitPlayerData;
         }
 
@@ -464,8 +469,8 @@ namespace ET.Server
             double ang;
             if (index == 0)
             {
-                r = (float)Math.Sqrt(rand.Next(2500)) + 10;
-                ang = rand.Next(22) / 180.0f * Math.PI + Math.PI * 78f / 180f + Math.PI;
+                r = (float)Math.Sqrt(rand.Next(3025)) + 10;
+                ang = rand.Next(22) / 180.0f * Math.PI + Math.PI * 77f / 180f + Math.PI;
             }
             else if (index == 1)
             {
@@ -474,8 +479,8 @@ namespace ET.Server
             }
             else
             {
-                r = (float)Math.Sqrt(rand.Next(2500)) + 10;
-                ang = rand.Next(22) / 180.0f * Math.PI + Math.PI * 150f / 180f;
+                r = (float)Math.Sqrt(rand.Next(2809)) + 10;
+                ang = rand.Next(22) / 180.0f * Math.PI + Math.PI * 148f / 180f;
             }
 
             return new Vector2(tower.X + (float)(r * Math.Cos(ang)), tower.Y - (float)(r * Math.Sin(ang)));