1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- using System.Collections.Generic;
- using BattleIce;
- namespace ET.Server
- {
- public class PlayerTempDataComponentAwakeSystem: AwakeSystem<PlayerTempDataComponent, WNPlayer>
- {
- /// <summary>
- /// 玩家临时数据组件创建
- /// </summary>
- /// <param name="self"></param>
- /// <param name="player"></param>
- protected override void Awake(PlayerTempDataComponent self, WNPlayer player)
- {
- self.Player = player;
- }
- }
- public class PlayerTempDataComponentDestroySystem: DestroySystem<PlayerTempDataComponent>
- {
- /// <summary>
- /// 玩家临时数据组件销毁
- /// </summary>
- /// <param name="self"></param>
- protected override void Destroy(PlayerTempDataComponent self)
- {
- self?.Save();
- }
- }
- [FriendOf(typeof (PlayerTempDataComponent))]
- public static class PlayerTempDataComponentSystem
- {
- public static async ETTask InitFromDB(this PlayerTempDataComponent self)
- {
- List<PlayerMapInfo> list = await DBManagerComponent.Instance.GetZoneDB(self.DomainZone())
- .Query<PlayerMapInfo>(p => p.Id == self.Player.GetId());
- if (list is { Count: > 0 })
- {
- self.MapData = list[0];
- }
- else
- {
- self.MapData = new PlayerMapInfo();
- self.MapData.mapId = 10098;
- await self.Save();
- }
- }
- public static async ETTask Save(this PlayerTempDataComponent self)
- {
- if (self.MapData != null)
- {
- await DBManagerComponent.Instance.GetZoneDB(self.DomainZone()).Save(self.MapData);
- }
- }
- /** 同步场景出生数据 **/
- public static void SyncBornData(this PlayerTempDataComponent self, float bornX, float bornY, int bornAreaId)
- {
- self.MapData.bornX = bornX;
- self.MapData.bornY = bornY;
- self.MapData.bornMapId = bornAreaId;
- }
- /** 同步场景临时数据 **/
- public static void SyncNowData(this PlayerTempDataComponent self, int areaId, long instanceId, GetPlayerData data)
- {
- self.MapData.x = data.x;
- self.MapData.y = data.y;
- self.MapData.direction = data.direction;
- self.MapData.hp = data.hp;
- self.MapData.mp = data.mp;
- self.MapData.mapId = areaId;
- self.MapData.mapInstanceId = instanceId;
- }
- /** 同步场景历史数据 **/
- public static void SyncHistoryData(this PlayerTempDataComponent self, MapConfig prop, long instanceId, GetPlayerData data)
- {
- self.MapData.historyX = data.x;
- self.MapData.historyY = data.y;
- self.MapData.historyDirection = data.direction;
- self.MapData.historyMapId = prop.Id;
- self.MapData.historyMapInstanceId = instanceId;
- }
- }
- }
|