Quellcode durchsuchen

【游戏服】修复玩家的名字和头像没有的问题;修复玩家出生地不正常的问题;

大爷 vor 1 Jahr
Ursprung
Commit
4fbfd21308

+ 2 - 0
Config/Proto/InnerMessage_S_20001.proto

@@ -167,6 +167,8 @@ message R2G_LiveComment // IActorMessage
 	string OpenId = 1;
 	int64 RoomId = 2;
 	string Content = 3;		// 评论内容
+	string Nickname = 4;
+	string Url = 5;
 }
 
 message R2G_LiveGift // IActorMessage

+ 14 - 0
DotNet/Hotfix/Scenes/Game/Handler/C2G_AddUnitsToMapHandler.cs

@@ -37,7 +37,9 @@ namespace ET.Server
                 return;
             }
 
+
             Struct.MonsterUnit unit = new Struct.MonsterUnit();
+            unit.name = GetRandomName();
             unit.id = request.UnitId;
             unit.force = request.Force;
             if (!string.IsNullOrEmpty(request.Flag))
@@ -59,5 +61,17 @@ namespace ET.Server
 
             reply();
         }
+
+        private string GetRandomName()
+        {
+            string[] names =
+            {
+                "好人", "小新", "精钢侠", "带投大戈", "奥仔", "袄特门", "兔比斯", "张剑闯天牙", "窝耗帅", "大白"
+            };
+
+            var rand = new Random();
+            var first = names[rand.Next(names.Length)];
+            return first + rand.Next(9999);
+        }
     }
 }

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

@@ -36,7 +36,7 @@ namespace ET.Server
                 // Token为空初始化信息
                 playerInfo.RoomId = playerInfo.Id;
                 playerInfo.AnchorOpenId = playerInfo.Id.ToString();
-                playerInfo.AvatarUrl = "测试头像";
+                playerInfo.AvatarUrl = "";
                 playerInfo.Name = "主播-" + playerInfo.Id;
             }
             else

+ 6 - 9
DotNet/Hotfix/Scenes/Game/Handler/R2G_LiveCommentHandler.cs

@@ -54,20 +54,17 @@ namespace ET.Server
                     break;
             }
 
-            string[] pos = map.GetCurXY().Split(";");
-
-            Random rand = new Random();
-            float r = (float)Math.Sqrt(rand.Next(2304)) + 12;
-            double ang = rand.Next(40) / 180.0f * Math.PI + Math.PI/2.0f + Math.PI;
-            float x = int.Parse(pos[0]) + (float)(r * Math.Cos(ang));
-            float y = int.Parse(pos[1]) - (float)(r * Math.Sin(ang));
+            var pos = map.GetRandomPlayerPos();
 
             Struct.MonsterUnit unit = new Struct.MonsterUnit();
             unit.id = templateId;
             unit.force = 1;
-            unit.x = (int)x;
-            unit.y = (int)y;
+            unit.x = pos.X;
+            unit.y = pos.Y;
             unit.autoGuard = true;
+            unit.name = request.Nickname;
+            unit.alias = request.Url;
+            
 
             int objId = await map.AddUnits(unit, true);
 

+ 16 - 9
DotNet/Hotfix/Scenes/Game/Map/MapEventComponentSystem.cs

@@ -52,18 +52,26 @@ namespace ET.Server
                 {
                     if ("Tower1".Equals(parames[1]))
                     {
-
+                        Map map = self.GetParent<Map>();
+                        map.CurBattleIndex = 1;
+                        self.TransferUnitsToNewTower();
                         return;
                     }
                     else if ("Tower2".Equals(parames[1]))
                     {
                         Log.Debug($"塔2死亡事件...");
-                        self.GetParent<Map>().DeadUnits.Add(1002);
-                        return;
-                    } else if ("Tower3".Equals(parames[1]))
+                            Map map = self.GetParent<Map>();
+                            map.CurBattleIndex = 2;
+                            self.TransferUnitsToNewTower();
+
+                            return;
+                    }
+                    else if ("Tower3".Equals(parames[1]))
                     {
                         Log.Debug($"塔3死亡事件...");
-                        self.GetParent<Map>().DeadUnits.Add(1003);
+                        Map map = self.GetParent<Map>();
+                        map.CurBattleIndex = 3;
+                        self.TransferUnitsToNewTower();
                         return;
                     }
                     else
@@ -106,13 +114,12 @@ namespace ET.Server
         {
             Map map = self.GetParent<Map>();
 
-            int cnt = 0;
             foreach(Struct.UnitPlayerData player in map.UnitPlayers.Values)
             {
-                //TODO: 转移坐标为当前战斗区域中的随机位置
-                map.GetXmdsManager().transferUnit(map.Id.ToString(), player.ObjId, 178f + (cnt++), 139f);
+                var pos = map.GetRandomPlayerPos();
+                map.GetXmdsManager().transferUnit(map.Id.ToString(), player.ObjId, pos.X, pos.Y);
             }
-            Log.Debug($"transfer unit: {cnt}");
+            Log.Debug($"transfer unit: {map.UnitPlayers.Count}");
         }
 
         /// <summary>

+ 30 - 23
DotNet/Hotfix/Scenes/Game/Map/MapSystem.cs

@@ -1,6 +1,7 @@
-using System;
+using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Numerics;
 using BattleIce;
 using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
@@ -24,7 +25,6 @@ namespace ET.Server
                 self.Type = self.Prop.Type;
                 self.Player = player;
                 self.UnitPlayers = new Dictionary<string, Struct.UnitPlayerData>();
-                self.DeadUnits = new List<int>();
 
                 // 战斗服事件组件
                 self.AddComponent<MapEventComponent>();
@@ -361,27 +361,6 @@ namespace ET.Server
             return self.UnitPlayers.Values.FirstOrDefault(unitPlayer => unitPlayer != null && unitPlayer.ObjId == objId);
         }
 
-        /// <summary>
-        /// 获取当前坐标xy
-        /// </summary>
-        /// <param name="self"></param>
-        /// <returns></returns>
-        public static string GetCurXY(this Map self)
-        {
-            // return self.DeadUnits.Count switch
-            // {
-            //     // 1塔位置
-            //     0 => "230;85",
-            //     // 1塔挂了,2塔位置
-            //     1 when self.DeadUnits.Contains(1001) => "150;85",
-            //     // 1塔2塔挂了,3塔位置
-            //     2 when self.DeadUnits.Contains(1001) && self.DeadUnits.Contains(1002) => "70;85",
-            //     _ => "230;85"
-            // };
-            // todo 默认塔1位置,后面调整为路点
-            return "218;78";
-        }
-
         /// <summary>
         /// 玩家增加贡献值
         /// </summary>
@@ -431,5 +410,33 @@ namespace ET.Server
         {
             return self.DomainScene().GetComponent<GameDouyinComponent>().TokenIsNull;
         }
+
+        //获得当前战场(当前塔位置),随机位置
+        public static Vector2 GetRandomPlayerPos(this Map self)
+        {
+            Vector2[] TowerPos = { new Vector2() { X = 103, Y = 197 }, new Vector2() { X = 190, Y = 133 }, new Vector2() { X = 104, Y = 69 } };
+            int index = self.CurBattleIndex;
+            var tower = TowerPos[index];
+            var rand = new Random();
+            float r;
+            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;
+            }
+            else if (index == 1)
+            {
+                r = (float)Math.Sqrt(rand.Next(3136)) + 10;
+                ang = rand.Next(20) / 180.0f * Math.PI + Math.PI * 76f / 180f;
+            }
+            else
+            {
+                r = (float)Math.Sqrt(rand.Next(2500)) + 10;
+                ang = rand.Next(22) / 180.0f * Math.PI + Math.PI * 150f / 180f;
+            }
+
+            return new Vector2(tower.X + (float)(r * Math.Cos(ang)), tower.Y - (float)(r * Math.Sin(ang)));
+        }
     }
 }

+ 1 - 1
DotNet/Hotfix/Scenes/Router/HttpDouyinApiCallbackHandler.cs

@@ -104,7 +104,7 @@ namespace ET.Server
 
                 foreach (StartSceneConfig config in list.Where(config => config is { Id: 10001 }))
                 {
-                    MessageHelper.SendActor(config.InstanceId, new R2G_LiveComment() { OpenId = secOpenId, RoomId = roomId, Content = content});
+                    MessageHelper.SendActor(config.InstanceId, new R2G_LiveComment() { OpenId = secOpenId, RoomId = roomId, Content = content, Nickname = nickname, Url = avatarUrl});
                     break;
                 }
 

+ 3 - 2
DotNet/Model/Const/Struct.cs

@@ -140,6 +140,7 @@
         {
             /** 怪物名字 **/
             public string name { get; set; }
+            public string alias { get; set; }
 
             /** 怪物模板ID **/
             public int id { get; set; }
@@ -156,10 +157,10 @@
             public bool unique = false;
 
             /** 坐标x **/
-            public int x { get; set; }
+            public float x { get; set; }
 
             /** 坐标y **/
-            public int y { get; set; }
+            public float y { get; set; }
 
             /** 是否是任务 共享怪 **/
             public int shareType { get; set; }

+ 6 - 0
DotNet/Model/Generate/Message/InnerMessage_S_20001.cs

@@ -354,6 +354,12 @@ namespace ET
 		[ProtoMember(3)]
 		public string Content { get; set; }
 
+		[ProtoMember(4)]
+		public string Nickname { get; set; }
+
+		[ProtoMember(5)]
+		public string Url { get; set; }
+
 	}
 
 	[Message(InnerMessage.R2G_LiveGift)]

+ 3 - 0
DotNet/Model/Scenes/Game/Map/Map.cs

@@ -37,5 +37,8 @@ namespace ET.Server
         /** 游戏结束标记 **/
         [StaticField]
         public bool IsGameOver = false;
+
+        //当前战场中心
+        public int CurBattleIndex = 0;
     }
 }