using System; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace ET.Server { /// /// 战斗服事件工具类 /// public static class BattleServerEventHelper { /// /// area related battleServerEvent /// /// public static void AreaBattleServerEvent(JObject msg) { // Log.Debug($"AreaBattleServerEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}"); long instanceId = Convert.ToInt64(msg.SelectToken("instanceId")); Map map = GameMapComponent.Instance.Get(instanceId); if (map == null) { Log.Warning($"areaBattleServerEvent no area: {msg}"); return; } switch (Convert.ToString(msg.SelectToken("eventName"))) { case "unitDead": { map.GetComponent().OnUnitDead(map, msg); return; } case "message": { // 副本消息 map.GetComponent().OnMessageEvent(msg); return; } case "gameOver": { map.GetComponent().OnGameOver(map); return; } case "pickItem": { map.GetComponent().OnPickItem(msg); return; } case "KillBossEventB2R": { map.GetComponent().OnKillBoss(msg); return; } case "BattleReportEventB2R": { // 战斗统计事件 map.GetComponent().OnBattleReport(map, msg); return; } default: { Log.Error($"unknown area event: {msg}"); return; } } } /// /// player related battleServerEvent /// /// public static void PlayerBattleServerEvent(JObject msg) { Log.Debug($"PlayerBattleServerEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}"); switch (Convert.ToString(msg.SelectToken("eventName"))) { case "ConsumeItemEventB2R": { return; } case "interActiveItem": { return; } case "changeSceneProgress": { return; } case "TransUnitEventB2R": { return; } case "SummonMountEventB2R": { return; } case "ShowRebirthDialogueB2R": { return; } case "TriggerSceneEventB2R": { return; } case "PlayerExceptionEventB2R": { return; } } } /// /// task related battleServerEvent /// /// public static void TaskBattleServerEvent(JObject msg) { Log.Debug($"TaskBattleServerEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}"); } public static void MapNotifyEvent(JObject msg) { Log.Debug($"MapNotifyEvent msg: {JsonConvert.SerializeObject(msg, Formatting.Indented)}"); } } }