Bläddra i källkod

【优化】只有主播需要用playerEnterRequest进战斗服,其它玩家仍然用AddUnit

johnclot69 1 år sedan
förälder
incheckning
def74f2d21

+ 2 - 5
DotNet/Hotfix/Helper/PlayerFactory.cs

@@ -14,11 +14,8 @@
                     .AddChild<WNPlayer, Session, PlayerInfo>(session, playerInfo);
 
             // 绑定sessionId
-            if (playerInfo.PlayerType == 0)
-            {
-                player.GameSessionActorId = session.InstanceId;
-                player.Session = session;
-            }
+            player.GameSessionActorId = session.InstanceId;
+            player.Session = session;
             player.BasicProp = CharacterCategory.Instance.Get(playerInfo.Pro);
             player.BornType = (int)BORN_TYPE.NORMAL;
             player.EnterState = (int)ENTER_STATE.online;

+ 13 - 39
DotNet/Hotfix/Scenes/Game/Handler/C2G_AddUnitsToMapHandler.cs

@@ -3,7 +3,7 @@
 namespace ET.Server
 {
     /// <summary>
-    /// 向场景增加玩家
+    /// 向场景增加单位
     /// </summary>
     [MessageHandler(SceneType.Game)]
     public class C2G_AddUnitsToMapHandler: AMRpcHandler<C2G_AddUnitsToMap, G2C_AddUnitsToMap>
@@ -37,47 +37,21 @@ namespace ET.Server
                 return;
             }
 
-            // Struct.MonsterUnit unit = new Struct.MonsterUnit();
-            // unit.id = request.UnitId;
-            // unit.force = request.Force;
-            // if (!string.IsNullOrEmpty(request.Flag))
-            // {
-            //     unit.flag = request.Flag;
-            // }
-            // else
-            // {
-            //     unit.x = request.X;
-            //     unit.y = request.Y;
-            // }
-            // unit.autoGuard = true;
-            //
-            // await player.Map.AddUnits(unit, false);
-
-            // 预先创建数据
-            Scene scene = session.DomainScene();
-            long _id = IdGenerater.Instance.GenerateUnitId(scene.DomainZone());
-            PlayerInfo playerInfo = new PlayerInfo();
-            playerInfo.Id = _id;
-            playerInfo.UserId = session.GetComponent<SessionPlayerComponent>().UserId;
-            playerInfo.PlayerType = 1;
-            playerInfo.Name = "玩家-" + _id;
-            playerInfo.Sex = 0;
-            playerInfo.Pro = (int)PlayerProType.CANG_LANG;
-            playerInfo.Level = 1;
-            playerInfo.Exp = 0;
-
-            WNPlayer unitPlayer = await PlayerFactory.CreatPlayer(session, playerInfo);
-
-            if (unitPlayer == null)
+            Struct.MonsterUnit unit = new Struct.MonsterUnit();
+            unit.id = request.UnitId;
+            unit.force = request.Force;
+            if (!string.IsNullOrEmpty(request.Flag))
             {
-                Log.Debug($"创建单位玩家有误...unitPlayerId={_id}, force={request.Force}");
-                response.Error = ErrorCode.ERR_CreateUnitPlayerError;
-                reply();
-                return;
+                unit.flag = request.Flag;
+            }
+            else
+            {
+                unit.x = request.X;
+                unit.y = request.Y;
             }
+            unit.autoGuard = true;
 
-            // 进入主播场景
-            player.Map.PlayerEnterRequest(unitPlayer);
+            await player.Map.AddUnits(unit, false);
 
             reply();
         }

+ 1 - 2
DotNet/Hotfix/Scenes/Game/Map/MapSystem.cs

@@ -117,8 +117,7 @@ namespace ET.Server
 
             try
             {
-                string ToJSON4EnterScene = player.GetPlayerType() == 1 ? player.ToJSON4EnterSceneByUnitPlayer(self) : player.ToJSON4EnterScene(self);
-                self.GetZoneManager().playerEnterRequest(player.GetId().ToString().Trim(), self.Id.ToString().Trim(), ToJSON4EnterScene);
+                self.GetZoneManager().playerEnterRequest(player.GetId().ToString().Trim(), self.Id.ToString().Trim(), player.ToJSON4EnterScene(self));
             }
             catch (Exception e)
             {

+ 0 - 82
DotNet/Hotfix/Scenes/Game/Player/PlayerSystem.cs

@@ -292,87 +292,5 @@ namespace ET.Server
             Log.Debug($"{self.GetName()}, enterSceneData:{retjson.ToString()}");
             return retjson;
         }
-
-        public static string ToJSON4EnterSceneByUnitPlayer(this WNPlayer self, Map map)
-        {
-            var json = new
-            {
-                effects = new
-                {
-                    MaxHP = 99999,
-                    HPPer = 1,
-                    HP = 88888,
-                    Attack = 20,
-                    AttackPer = 100,
-                    MoveSpeed = 5,
-                },
-                effectsExt = new { },
-                // skills = self.ToJson4BattleServerSkillInfos,
-                skills = new List<SkillInfo>()
-                {
-                    new SkillInfo
-                    {
-                        id = 90210,
-                        level = 1,
-                        type = 3,
-                        skillTime = 0,
-                        cdTime = 0,
-                        flag = 0
-                    },
-                    new SkillInfo
-                    {
-                        id = 90203,
-                        level = 1,
-                        type = 1,
-                        skillTime = 0,
-                        cdTime = 0,
-                        flag = 0
-                    },
-                },
-                tasks = new { },
-                flags = new { },
-                playerEntered = false,
-                avatars = new { },
-                basic = new
-                {
-                    name = self.GetName(),
-                    alliesForce = 0,
-                    force = 1,
-                    pro = self.GetPro(),
-                    serverId = ConstGame.GameServerId,
-                    titleId = 0,
-                    level = self.GetLevel(),
-                    vip = 0,
-                    upLevel = 1,
-                    // 无悬赏
-                    beReward = 0,
-                    logicServerId = ConstGame.GameServerId,
-                    sex = self.GetSex(),
-                    uuid = self.GetId().ToString(),
-                    potionAddition = 0
-                },
-                connectServerId = "bs-" + ConstGame.GameServerId,
-                uid = self.GetId().ToString(),
-                unitTemplateID = 1,
-                robot = false,
-                tempData = new
-                {
-                    //x = this.getPlayerAreaData().bornX,
-                    //y = this.getPlayerAreaData().bornY,
-                    x = 229,
-                    y = 82,
-                    direction = System.MathF.PI / 2,
-                    hp = 100000,
-                    mp = 0,
-                },
-                pkInfo = new { mode = 0, value = 0, level = 1, },
-                //petBase,
-                addTestPetData = 0,
-                sceneData = new { allowAutoGuard = 3, },
-            };
-            string retjson = JsonSerializer.Serialize(json, new JsonSerializerOptions { IncludeFields = true });
-            Log.Debug($"{self.GetName()}, enterSceneData:{retjson.ToString()}");
-            return retjson;
-        }
     }
 }

+ 1 - 1
DotNet/Model/Scenes/Game/DBEntity/PlayerInfo.cs

@@ -16,7 +16,7 @@ namespace ET.Server
         /** 下线时间 **/
         public long LogoutTime { get; set; }
 
-        /** 玩家类型 0-正常玩家 1-unitPlayer 2-ai **/
+        /** 玩家类型 0-正常玩家 1-ai **/
         public int PlayerType { get; set; }
 
         /** 名称 **/