Kaynağa Gözat

【优化】获取当前战场中心的方法改进下,可以通过塔死亡事件下发消息

johnclot69 1 yıl önce
ebeveyn
işleme
f0a4d7f13e

+ 0 - 5
DotNet/Hotfix/Helper/BattleServerEventHelper.cs

@@ -31,11 +31,6 @@ namespace ET.Server
                     map.GetComponent<MapEventComponent>().OnUnitDead(msg);
                     return;
                 }
-                case "Dead":
-                {
-                    map.GetComponent<MapEventComponent>().OnDead(msg);
-                    return;
-                }
                 case "message":
                 {
                     map.GetComponent<MapEventComponent>().OnMessageEvent(msg);

+ 21 - 10
DotNet/Hotfix/Scenes/Game/Map/MapEventComponentSystem.cs

@@ -43,16 +43,6 @@ namespace ET.Server
         {
         }
 
-        /// <summary>
-        /// 塔死亡事件
-        /// </summary>
-        /// <param name="self"></param>
-        /// <param name="msg"></param>
-        public static void OnDead(this MapEventComponent self, JObject msg)
-        {
-            Log.Debug($"塔死亡事件...");
-        }
-
         /// <summary>
         /// 副本消息
         /// </summary>
@@ -60,6 +50,27 @@ namespace ET.Server
         /// <param name="msg"></param>
         public static void OnMessageEvent(this MapEventComponent self, JObject msg)
         {
+            switch (Convert.ToString(msg.SelectToken("msg")))
+            {
+                case "Dead:Tower1":
+                {
+                    Log.Debug($"塔1死亡事件...");
+                    self.GetParent<Map>().DeadUnits.Add(1001);
+                    return;
+                }
+                case "Dead:Tower2":
+                {
+                    Log.Debug($"塔2死亡事件...");
+                    self.GetParent<Map>().DeadUnits.Add(1002);
+                    return;
+                }
+                case "Dead:Tower3":
+                {
+                    Log.Debug($"塔3死亡事件...");
+                    self.GetParent<Map>().DeadUnits.Add(1003);
+                    return;
+                }
+            }
         }
 
         /// <summary>

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

@@ -360,16 +360,18 @@ namespace ET.Server
         /// <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"
-            };
+            // 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";
         }
     }
 }

+ 6 - 16
DotNet/Hotfix/Scenes/Game/Player/PlayerBtlComponentSystem.cs

@@ -1,8 +1,6 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Linq;
 
 namespace ET.Server
 {
@@ -14,13 +12,16 @@ namespace ET.Server
             protected override void Awake(PlayerBtlComponent self)
             {
                 Log.Info($"创建玩家属性组件...");
-                self.Player = self.GetParent<WNPlayer>();
-                self.CharacterProp = self.Player.BasicProp;
+                WNPlayer player = self.GetParent<WNPlayer>();
+                self.CharacterProp = player.BasicProp;
                 if (self.CharacterProp == null)
                 {
-                    Log.Warning($"PlayerBtlComponentSystem 玩家职业信息为空: playerId={self.Player.GetId()}, 职业={self.Player.GetPro()}");
+                    Log.Warning($"PlayerBtlComponentSystem 玩家职业信息为空: playerId={player.GetId()}, 职业={player.GetPro()}");
                 }
 
+                self.CalProLvlData();
+
+                self.CalFinalData();
             }
         }
 
@@ -31,17 +32,6 @@ namespace ET.Server
             }
         }
 
-        /// <summary>
-        /// 初始化
-        /// </summary>
-        /// <param name="self"></param>
-        public static void Init(this PlayerBtlComponent self)
-        {
-            self.CalProLvlData();
-
-            self.CalFinalData();
-        }
-
         /// <summary>
         /// 计算角色的职业和等级带来的属性
         /// </summary>

+ 0 - 13
DotNet/Hotfix/Scenes/Game/Player/PlayerDataComponentSystem.cs

@@ -9,7 +9,6 @@ namespace ET.Server
             {
                 Log.Info($"创建玩家基础数据组件...");
                 self.Data = info;
-                self.Player = self.GetParent<WNPlayer>();
             }
         }
 
@@ -17,18 +16,6 @@ namespace ET.Server
         {
             protected override void Destroy(PlayerDataComponent self)
             {
-                // todo 暂时去掉数据落地逻辑
-                // Log.Debug($"玩家基础数据保存");
-                // self?.Save();
-            }
-        }
-
-        public static async ETTask Save(this PlayerDataComponent self)
-        {
-            if (self.Data != null)
-            {
-                self.Data.Id = self.Player.GetId();
-                await DBManagerComponent.Instance.GetZoneDB(self.DomainZone()).Save(self.Data);
             }
         }
     }

+ 0 - 16
DotNet/Hotfix/Scenes/Game/Player/PlayerMoneyComponentSystem.cs

@@ -8,7 +8,6 @@
             protected override void Awake(PlayerMoneyComponent self)
             {
                 Log.Info($"创建玩家货币组件...");
-                self.Player = self.GetParent<WNPlayer>();
             }
         }
 
@@ -16,22 +15,7 @@
         {
             protected override void Destroy(PlayerMoneyComponent self)
             {
-                // Log.Debug($"玩家货币数据保存");
-                // self?.Save();
             }
         }
-
-        /// <summary>
-        /// 初始化
-        /// </summary>
-        /// <param name="self"></param>
-        public static void Init(this PlayerMoneyComponent self)
-        {
-        }
-
-        public static async ETTask Save(this PlayerMoneyComponent self)
-        {
-            await ETTask.CompletedTask;
-        }
     }
 }

+ 15 - 43
DotNet/Hotfix/Scenes/Game/Player/PlayerSkillComponentSystem.cs

@@ -11,57 +11,29 @@ namespace ET.Server
             protected override void Awake(PlayerSkillComponent self)
             {
                 Log.Info($"创建玩家技能组件...");
-                self.Player = self.GetParent<WNPlayer>();
-            }
-        }
+                WNPlayer player = self.GetParent<WNPlayer>();
 
-        public class PlayerSkillComponentDestroySystem: DestroySystem<PlayerSkillComponent>
-        {
-            protected override void Destroy(PlayerSkillComponent self)
-            {
-                // todo 暂时去掉数据落地逻辑
-                // Log.Debug($"玩家技能数据保存");
-                // self?.Save();
-            }
-        }
-
-        /// <summary>
-        /// 初始化
-        /// </summary>
-        /// <param name="self"></param>
-        public static void Init(this PlayerSkillComponent self)
-        {
-            self.Data = new PlayerSkillInfo();
-            self.Data.Skills = new List<Struct.PlayerSkillBaseData>();
-            // 初始化技能数据
-            CharacterConfig config = CharacterConfigCategory.Instance.Get(self.Player.GetPro());
-            if (config != null && config.InitSkillList.Count > 0)
-            {
-                foreach (Struct.IntIntData intIntData in config.InitSkillList.Where(intIntData => intIntData != null))
+                self.Data = new PlayerSkillInfo();
+                self.Data.Skills = new List<Struct.PlayerSkillBaseData>();
+                // 初始化技能数据
+                CharacterConfig config = CharacterConfigCategory.Instance.Get(player.GetPro());
+                if (config != null && config.InitSkillList.Count > 0)
                 {
-                    self.Data.Skills.Add(new Struct.PlayerSkillBaseData(intIntData.value1, intIntData.value2, true, 0L));
+                    foreach (Struct.IntIntData intIntData in config.InitSkillList.Where(intIntData => intIntData != null))
+                    {
+                        self.Data.Skills.Add(new Struct.PlayerSkillBaseData(intIntData.value1, intIntData.value2, true, 0L));
+                    }
                 }
+                // 初始化战斗服缓存数据
+                self.ToJson4BattleServerSkills = self.ToJson4BattleServerSkills();
             }
-            // 初始化战斗服缓存数据
-            self.ToJson4BattleServerSkills = self.ToJson4BattleServerSkills();
-
-            // self?.Save();
         }
 
-        /// <summary>
-        /// 保存数据
-        /// </summary>
-        /// <param name="self"></param>
-        private static async ETTask Save(this PlayerSkillComponent self)
+        public class PlayerSkillComponentDestroySystem: DestroySystem<PlayerSkillComponent>
         {
-            if (self.Data == null)
+            protected override void Destroy(PlayerSkillComponent self)
             {
-                Log.Debug($"保存玩家技能组件数据, Data is null");
-                return;
             }
-
-            self.Data.Id = self.Player.GetId();
-            await DBManagerComponent.Instance.GetZoneDB(self.DomainZone()).Save(self.Data);
         }
 
         /// <summary>
@@ -75,7 +47,7 @@ namespace ET.Server
 
             foreach (SkillConfig prop in SkillConfigCategory.Instance.GetAll().Values.Where(prop => prop != null))
             {
-                if (prop.ProId != self.Player.GetPro() || prop.SkillType != (int)SkillType.PLAYER_PASSIVE)
+                if (prop.ProId != self.GetParent<WNPlayer>().GetPro() || prop.SkillType != (int)SkillType.PLAYER_PASSIVE)
                 {
                     continue;
                 }

+ 6 - 4
DotNet/Hotfix/Scenes/Game/Player/PlayerSystem.cs

@@ -26,13 +26,15 @@ namespace ET.Server
                 // 玩家基础数据组件
                 self.AddComponent<PlayerDataComponent, PlayerInfo>(playerInfo);
                 // 玩家临时数据组件
-                self.AddComponent<PlayerTempDataComponent>().Init();
+                self.AddComponent<PlayerTempDataComponent>();
                 // 玩家技能组件
-                self.AddComponent<PlayerSkillComponent>().Init();
+                self.AddComponent<PlayerSkillComponent>();
                 // 玩家货币组件
-                self.AddComponent<PlayerMoneyComponent>().Init();
+                self.AddComponent<PlayerMoneyComponent>();
+                // 玩家背包组件
+                // self.AddComponent<BagComponent>();
                 // 玩家属性组件
-                self.AddComponent<PlayerBtlComponent>().Init();
+                self.AddComponent<PlayerBtlComponent>();
             }
         }
 

+ 11 - 36
DotNet/Hotfix/Scenes/Game/Player/PlayerTempDataComponentSystem.cs

@@ -11,7 +11,16 @@ namespace ET.Server
             protected override void Awake(PlayerTempDataComponent self)
             {
                 Log.Info($"创建玩家临时数据组件...");
-                self.Player = self.GetParent<WNPlayer>();
+                self.MapData = new PlayerMapInfo();
+
+                self.MapData.mapId = 10098;
+                self.MapData.x = 230;
+                self.MapData.y = 100;
+                self.MapData.direction = System.MathF.PI / 2;
+                self.MapData.hp = PLAYER.initHp;
+                self.MapData.mp = PLAYER.initMp;
+
+                self.ToJson4BattleServerTempData = self.GetBattleServerTempData();
             }
         }
 
@@ -19,41 +28,7 @@ namespace ET.Server
         {
             protected override void Destroy(PlayerTempDataComponent self)
             {
-                // todo 暂时去掉数据落地逻辑
-                // Log.Debug($"玩家临时数据保存");
-                // self?.Save();
-            }
-        }
-
-        /// <summary>
-        /// 初始化
-        /// </summary>
-        /// <param name="self"></param>
-        public static void Init(this PlayerTempDataComponent self)
-        {
-            self.MapData = new PlayerMapInfo();
-
-            self.MapData.mapId = 10098;
-            self.MapData.x = 230;
-            self.MapData.y = 100;
-            self.MapData.direction = System.MathF.PI / 2;
-            self.MapData.hp = PLAYER.initHp;
-            self.MapData.mp = PLAYER.initMp;
-
-            self.ToJson4BattleServerTempData = self.GetBattleServerTempData();
-            // self?.Save();
-        }
-
-        private static async ETTask Save(this PlayerTempDataComponent self)
-        {
-            if (self.MapData == null)
-            {
-                Log.Debug($"保存玩家临时数据组件数据, Data is null");
-                return;
             }
-
-            self.MapData.Id = self.Player.GetId();
-            await DBManagerComponent.Instance.GetZoneDB(self.DomainZone()).Save(self.Player.GetId(), self.MapData);
         }
 
         /** 同步场景出生数据 **/
@@ -97,7 +72,7 @@ namespace ET.Server
             data.Add("x", self.MapData.x);
             data.Add("y", self.MapData.y);
             data.Add("direction", self.MapData.direction);
-            data.Add("hp", self.MapData.hp > 0 ? self.MapData.hp : self.Player.GetComponent<PlayerBtlComponent>().GetAllInflus(PlayerBtlData.MaxHP));
+            data.Add("hp", self.MapData.hp > 0 ? self.MapData.hp : self.GetParent<WNPlayer>().GetComponent<PlayerBtlComponent>().GetAllInflus(PlayerBtlData.MaxHP));
             data.Add("mp", self.MapData.mp);
             return data;
         }

+ 0 - 0
DotNet/Hotfix/Scenes/Game/Player/SessionPlayerComponentSystem.cs → DotNet/Hotfix/Scenes/Game/Session/SessionPlayerComponentSystem.cs


+ 0 - 3
DotNet/Model/DotNet.Model.csproj

@@ -27,9 +27,6 @@
         <Compile Include="..\..\Unity\Assets\Scripts\Codes\Model\Share\**\*.cs">
             <Link>Share\%(RecursiveDir)%(FileName)%(Extension)</Link>
         </Compile>
-        <Compile Update="Const\Struct.cs">
-          <Link>Share\Const\Struct.cs</Link>
-        </Compile>
 
     </ItemGroup>
     <ItemGroup>

+ 0 - 2
DotNet/Model/Scenes/Game/Player/PlayerBtlComponent.cs

@@ -15,7 +15,5 @@ namespace ET.Server
         public Dictionary<PlayerBtlData, int> AllInflus = new Dictionary<PlayerBtlData, int>();
         /** 职业初始信息配置 **/
         public CharacterConfig CharacterProp { get; set; }
-        /** 缓存的玩家对象 **/
-        public WNPlayer Player { get; set; }
     }
 }

+ 0 - 3
DotNet/Model/Scenes/Game/Player/PlayerDataComponent.cs

@@ -6,8 +6,5 @@
         /** 玩家基础数据 **/
         public PlayerInfo Data { get; set; }
 
-        /** 玩家对象 **/
-        public WNPlayer Player { get; set; }
-
     }
 }

+ 0 - 2
DotNet/Model/Scenes/Game/Player/PlayerMoneyComponent.cs

@@ -3,7 +3,5 @@
     [ComponentOf(typeof (WNPlayer))]
     public class PlayerMoneyComponent: Entity, IAwake, IDestroy
     {
-        /** 玩家对象 **/
-        public WNPlayer Player { get; set; }
     }
 }

+ 0 - 3
DotNet/Model/Scenes/Game/Player/PlayerSkillComponent.cs

@@ -10,8 +10,5 @@ namespace ET.Server
 
         /** 战斗服技能数据 **/
         public List<Struct.SkillInfo> ToJson4BattleServerSkills { get; set; }
-
-        /** 玩家实体 **/
-        public WNPlayer Player { get; set; }
     }
 }

+ 0 - 3
DotNet/Model/Scenes/Game/Player/PlayerTempDataComponent.cs

@@ -11,8 +11,5 @@ namespace ET.Server
         /** 战斗服数据 **/
         public Dictionary<string, object> ToJson4BattleServerTempData { get; set; }
 
-        /** 玩家对象 **/
-        public WNPlayer Player { get; set; }
-
     }
 }

+ 0 - 0
DotNet/Model/Scenes/Game/Player/SessionLockComponent.cs → DotNet/Model/Scenes/Game/Session/SessionLockComponent.cs


+ 0 - 0
DotNet/Model/Scenes/Game/Player/SessionPlayerComponent.cs → DotNet/Model/Scenes/Game/Session/SessionPlayerComponent.cs